天道酬勤

Oracle and My Life

Archive for November, 2010

无有效备份下恢复数据库一例

4 comments

昨天通宵恢复一个1T的数据库,早上6点成功恢复,立即开始备份。7点回家睡觉下午三点起床,也许这就是一个DBA的生活。本想现在写写恢复过程,不过又想睡觉了,明天好好写吧。

Updated  @ 2010-12-07

一、系统背景:

硬件:    P690_1和P670_1

操作系统:A IX 5.2 ML04

数据库:  Oracle 9.2.0.1.0  2 Nodes RAC  HA

备库P570(非DG): 与DG原理类似,利用生产库的归档日志在P570上恢复

故障时间:2010-11-23  13:20

二、故障现象:

数据库系统在13:19报告SYSTEM表空间空间不够无法自动扩展,因为系统使用RAW设备所以无法自动扩展,需要管理员手工增加RAW设备文件。

Tue Nov 23 13:18:41 2010

Completed: alter database backup controlfile to ‘/p690_1_arch

Tue Nov 23 13:19:20 2010

ORA-1653: unable to extend table WWW.MLOG$_WWW_MONEY_T by 8192 in           tablespace SYSTEM

ORA-1653: unable to extend table WWW.MLOG$_WWW_MONEY_T by 8192 in           tablespace SYSTEM

ORA-1653: unable to extend table WWW.MLOG$_WWW_MONEY_T by 8192 in           tablespace SYSTEM

……

客户工程师在P670_1节点上新增RAW设备并增加到SYSTEM表空间:

RAW设备:/dev/rwwwdb_system04

SQL>alter tablespace system add ‘/dev/rwwwdb_system04’ reuse;

随后系统报错:

ORA-01157: cannot identify/lock data file 424 – see DBWR trace file

ORA-01110: data file 424: ‘/dev/rwwwdb_system04′

ORA-27037: unable to obtain file status

IBM AIX RISC System/6000 Error: 2: No such file or directory

Additional information: 3

Tue Nov 23 14:17:03 2010

Errors in file /oracle/ora92/admin/wwwdb/bdump/wwwdb1_dbw0_516116.trc:

ORA-01186: file 424 failed verification tests

ORA-01157: cannot identify/lock data file 424 – see DBWR trace file

ORA-01110: data file 424: ‘/dev/rwwwdb_system04′

Tue Nov 23 14:17:03 2010

File 424 not verified due to error ORA-01157

dbv检查数据文件,报文件坏块:

DBVERIFY – Verification starting : FILE = /dev/rwwwdb_system04

Page 1 is influx – most likely media corrupt

Corrupt block relative dba: 0×00000001 (file 0, block 1)

Fractured block found during dbv:

Data in bad block:

type: 0 format: 0 rdba: 0×00000000

last change scn: 0×0000.00000000 seq: 0×0 flg: 0×00

spare1: 0×0 spare2: 0×0 spare3: 0×0

consistency value in tail: 0×00000000

check value in block header: 0×0

此时,由于系统表空间不足数据库系统被挂起,欲将增加失败的数据文件离线删除后重启数据库实例报错:

SQL>ALTER DATABASE DATAFILE ‘/dev/rwwwdb_system04′ offline drop;

Tue Nov 23 14:56:18 2010

ORA-1541 signalled during: ALTER DATABASE DATAFILE ‘/dev/rwwwdb_system04′ off…

This instance was first to open

ORA-1147 signalled during: alter database open…

ORA-01122: database file 424 failed verification check

ORA-01110: data file 424: ‘/dev/rwwwdb_system04′

ORA-01251: Unknown File Header Version read for file number 26

不要受[ID 422031.1]ORA-01122, ORA-01251 or data blocks reported as corrupted影响,否则方向错了会花比较多的时间

时间:16:00

由于系统数据量大,在生产库不能短时间恢复情况下的

措施:启动P570备库

结果:启动备库P570失败

原因:在10月19增加数据库文件/dev/rphoto1026时出错,需要恢复。

时间:16:20

措施:利用生产系统RMAN备份来恢复

结果:无法恢复

原因:每晚8点的定时备份任务在14日由于备份空间不足备份失败,后续没有任务备份;系统归档日志保留策略为7天,若要恢复到14日备份前,缺少1天的归档日志文件。

Read the rest of this entry »

Written by ochef

November 24th, 2010 at 9:30 pm

Posted in Backup & Recover,Database

Tagged with ,

客户培训

leave a comment

22-23日连续三天,公司为客户培训Falconstor CDP容灾方案IBM TSM备份和恢复

-The End-

Written by ochef

November 23rd, 2010 at 10:36 am

Posted in Backup & Recover

Tagged with ,

学习:NFS网络文件系统优化(二)

leave a comment

1.NFS的发展:

NFS最初由Sun在1984年发布,客户端通过网络访问远程服务器上的各种文件,感觉就像这些文件就存储在客户端上的磁盘一样。简单点说就是把一台机器上的某个文件系统mount到另外一台机器上使用。NFS前后一共有四个版本:V2,只能通过 UDP 进行操作;V3,添加了对 TCP 的支持;由 Internet Engineering Task Force发布了V4。AIX 5.3支持V2、3、4,缺省是V3,RHEL对NFS缺省版本是V4。

NFS 同时支持 TCP 和 UDP。UDP适合对于局域网中的应用,而对于要求可靠性高的环境来说,TCP 则更加可靠,并且还可以在 WAN 中提供更好的性能,因为它可以进行流量控制以帮助最大限度地减少网络延迟。有一点,NFS与平台和操作系统无关,它通过使用远程过程调用 (RPC) 来实现这项功能。

2.NFS的访问流程:

客户端计算机通过挂载文件系统,请求访问导出的数据。然后,当客户端线程尝试处理 NFS 挂载的文件系统中的数据时,将这些数据重定向到 biod,后者会通过 LAN 将数据传递到 NFS 服务器及其 nfsd 守护进程。服务器使用 nfds 来导出可供其客户端使用的目录。biod 类似cache功能,执行预读入和延迟写请求都需要这个守护进程,既可以清空缓冲区缓存,也可以填满缓冲区缓存。

3.NFS的监控:

系统提供的有nmon、topas、nfsstat、nfs、nfs4cl 和 netpmon命令都能获得NFS的信息。

nmon 和 topas

nmon或者topas之类的工具,因为它提供了一个很好的全面视图,其中说明了系统中正在进行的工作。请记住,NFS 性能问题可能与NFS 子系统根本没有任何关系。nmon 更适合于长期趋势研究和分析,配合”nmon analyser”可以生成免费的性能报告。例如:

# nmon -f -t -r test1 -s 60 -c 180

注意-f 按标准格式输出文件:<hostname>_YYYYMMDD_HHMM.nmon

# sort -A systemnfs_yymmdd.nmon > systemnfs_yymmdd.csv

nmon 监控3 个小时,每 60 秒进行一次快照。然后对所创建的输出文件进行排序最后由nmon analyser分析。

nmon工具获取使用,nmon analyser分析工具获取

nfsstat

nfsstat 工具是最重要的工具,这个命令可以显示有关 NFS 和 RPC 调用的所有类型的信息。

# nfsstat -cr

-c客户端

-r提供 RPC 信息

#nfsstat -cn

nfs4cl

如果是NFS V4,可以显示 NFS 版本 4 的统计信息和属性。

# nfs4cl showfs

netpmon

可以使用 netpmon 命令帮助对 NFS 瓶颈进行故障排除。除了监视许多其他类型的网络统计信息之外,netpmon 还可以监视客户端:包括读取和写入子例程、以及 NFS RPC 请求。对于服务器,netpmon 可以监视读取和写入请求。netpmon 将启动跟踪并在后台运行,直到停止它为止。

# netpmon -T 1800 -o  /tmp/netpmon.out

netpmon必须由trcstop来停止跟踪,

# trcstop

注意: netpmon 是一个很有用的跟踪实用工具,但是性能开销有时甚至会超过其作用;使用这个实用工具时请小心。

4.NFS的优化

优化必须是对Client和Server同时进行。

nfsmo 设置并显示 nsfstat 优化参数。mount 优化基于 NFS 服务器的资源,前提是挂载了 NFS 文件系统之后才能生效。

Client端

biod 守护进程在连接性方面起到了很重要的作用。当 biod 自我优化线程数量(该守护进程根据需要创建和删除线程)时,可以根据整体负载,对 biod 线程的最大数目进行优化。注意,仅增大线程的数目并不能减轻由 CPU、I/O 或者内存瓶颈所引起的性能问题。

虚拟内存管理器 (VMM) 的参数 minperm 和 maxperm。与优化数据库服务器有所不同,对于 NFS 来说,希望允许 VMM 使用尽可能多的 RAM 来进行 NFS 数据缓存。大多数 NFS 客户端对于工作段页面的需求很少。为了确保所有的内存都用于文件缓存,可以将 maxperm 和 maxclient 设置为 100%。

# vmo -a|grep maxperm%

maxperm% = 20

# vmo -a|grep maxclient%

maxclient% = 20

# vmo -o maxperm%=100

如果使用了数据库,并且它可以使用自己的文件数据缓存,那么在这种情况下, maxperm 和 maxclient 设置不应为 100%,应将这些数值设置得较低,并且使用 NFS 中的并行 I/O 模式挂载文件系统。另外还请注意,NFS 在每个客户端系统中维护缓存,其中包含最近访问的文件和目录的属性。mount 命令可以控制在缓存中保存这些条目的时间长度。对于 mount 命令的参数,可以更改下面几项:actimeo、acregmin、acregmax、acdirmin、acdirmax

例如,acregmin 参数可以指定在实际更新之后,文件条目将要保留的最短时间。在更新文件的时候,将根据这个参数的具体值,将其从缓存中删除。使用 mount 命令,还可以指定希望进行的是硬装入还是软装入。使用软装入,如果出现了错误,那么将立即对请求的程序进行报告;而对于硬装入,NFS 将不断地进行重试。这些重试本身可能会导致性能问题。从可靠性的角度而言,推荐使用硬装入读取和写入目录,以防止可能对数据造成的破坏。

mount 参数 rsize 和 wsize 分别定义读取和写入目录的 RPC 包的最大值。缺省值是 32768 个字节。对于 NFS 版本 3 和 4,如果在高速网络中挂载的 NFS 卷,那么应该将这个值增大到 65536。另一方面,如果网络速度非常缓慢,那么可能会为了通过发送较短的包来减少包碎片的数量,而考虑减少这个缺省值。然而,如果减少这个缺省值,那么将需要发送更多的包,这可能会增加整体网络的使用率。

Server

NFS 既可以使用 TCP,也可以使用 UDP,tcp_sendspace 和 tcp_recvspace 值设置得高于缺省值,因为这可能会通过增加网络性能而对服务器产生影响。不能使用 nfso 对这些内容进行优化,而是使用 no。

# no -a|grep space

tcp_recvspace = 16384

tcp_sendspace = 16384

udp_recvspace = 42080

udp_sendspace = 9216

如果运行 NFS 的是版本 4,要允许 TCP 窗口的大小大于 64KB,需要启用nfs_rfc1323,同样在客户端中进行设置。

# no -o rfc1323=1

Setting rfc1323 to 1

或者

# nfso -o nfs_rfc1323=1

如果服务器是专门的 NFS 服务器,参数是 nfs_max_read_size将设置读取应答 RPC 的最大大小

#nfso -L nfs_max_read_size

NAME                       CUR    DEF    BOOT   MIN    MAX    UNIT           TYPE

DEPENDENCIES

—————————————————————————————–

nfs_max_read_size      32K    32K    32K    512    64K    Bytes             D

—————————————————————————————–

将 nfs_max_read_size 增大到 64K

#nfso -o nfs_max_read_size=65536

若要重新启动系统之后继续生效,可以将其放入到 /etc/tunables/nextboot 文件中。

#nfso -L

-a 或者 -L 标志可得到更详细的信息。

Reference:

AIX文档库

-The End-

Written by ochef

November 8th, 2010 at 4:35 pm

Posted in IBM日记

Tagged with ,

学习:AIX 5L网络性能优化(一)

one comment

当系统网络发生了争用的时候,诊断使用的第一条命令就是:netstat。netstat是获得网络配置情况的快速方法,但在不加参数的情况下不会获得详细信息。

AIX中的 TCP/IP 各层:
net
MTU(Maximum Transfer Unit):定义为可以通过网络进行传输的最大的数据包。其大小取决于网络的类型。例如,16 位令牌环网的缺省 MTU 大小为 17914,而光纤分布式数据接口(Fiber Distributed Data Interface,FDDI)的缺省 MTU 大小为 4352。以太网的缺省 MTU 大小为 1500(在启用了巨型帧 (jumbo frames) 的情况下为 9000)。数据包越大,所需要传输的数据包就越少,从而提高系统的带宽使用率。要更改为使用巨型帧,可以使用如下的方法:

[root@p550:/]#smit devices

Communication->Ethernet Adapter->Adapter->Change / Show Characteristics of an Ethernet Adapter->选择网卡

Transmit jumbo frames     [no] ->  将no更为yes

注:如果系统中仅使用了虚拟 I/O 以太网,刚无法进行这项更改。

Media speed:适配器将根据此项配置情况与其他设备进行通信。保持硬件固件级别的最新状态,可以修复许多网络问题。下面命令可以查看固件级别:

[root@p550:/]#lscfg -vp | grep -p ROM

ROM Level.(alterable)…….DV0210

监控网络状态的常用命令

netstat -in 可以显示整体网络统计信息。

-m 选项,允许查看内核 malloc 统计信息,其中包括每个 CPU 的 mbuf 内存请求(包括各个缓冲区的大小)、正在使用的和失败的数量。

enstat 命令显示设备驱动器统计信息:

[root@p550:/]#entstat -d en0

netpmon 可以从网络的角度提供有关 CPU 使用的信息,它还包括网络设备驱动器 I/O、Internet 套接字调用,以及其他各种统计信息的数据。该命令将启动跟踪工作并在后台运行,直到您使用 trcstop 命令中止它。下面使用一个大小为 2M 字节来跟踪缓冲区:

[root@p550:/]# netpmon  -T 2000000  -o /tmp/net.out

spray 命令

spray命令将发送单向的数据包流从本地主机到远程主机,能显示数据包的数量以及数据包的传输速率。但在使用 spray 之前,确保 sprayd守护进程已启用,默认是关闭的。使用smit inetd开启和刷新。

[root@p630/]#which spray
/usr/sbin/spray

[root@p630/]#ls -l /usr/etc/spray
lrwxrwxrwx   1 root     system           15 Oct 27 2009  /usr/etc/spray -> /usr/sbin/spray

[root@p630/]#/usr/etc/spray p550 -c 2000 -l 1400 -d 1
sending 2000 packets of length 1402 to
p550 …
no packets dropped by p550
758 packets/second, 1062769 bytes/second

上面示例中,向主机 p550发送了 2000 个数据包,数据包之间的时间延迟为一微秒,每个数据包的长度为 1400 个字节。

Reference:

AIX文档库

-The End-

Written by ochef

November 1st, 2010 at 4:16 pm

Posted in IBM日记

Tagged with

无觅相关文章插件,快速提升流量