【转】TSM5.3安装步骤
安装步骤
2.1 安装TSM服务器
创建/usr/Tivoli/tsm 文件系统,大小1G左右 放入安装介质,smit installp 安装如下组件 tivoli.tsm.server.aix5.rte64 tivoli.tsm.server.com tivoli.tsm.server.webcon tivoli.tsm.server.aix5.rte64 tivoli.tsm.server.com2.2 安装TSM备份归档客户机
放入AIX client 安装介质,smit installp 安装如下组件 tivoli.tsm.client.api.64bit tivoli.tsm.client.api.jfs2 tivoli.tsm.client.ba.jfs2.base tivoli.tsm.client.ba.jfs2.common tivoli.tsm.client.ba.jfs2.image tivoli.tsm.client.ba.jfs2.nas tivoli.tsm.client.ba.jfs2.web2.3 安装ORACLE TDP
放入tivoli data protection for oracle 安装介质,smit installp 安装如下组件 tivoli.tsm.client.oracle.aix51.64bit tivoli.tsm.client.oracle.tools.aix51.64bit2.4 安装SAN Agent
放入SAN Agent 安装介质,smit installp 安装如下组件 tivoli.tsm.StorageAgent.rte tivoli.tsm.devices.aix5.rte三、配置步骤
3.1 配置TSM 服务端
1 修改环境变量 在TSM Server的.profile文件增加如下内容: export DSMSERV_DIR=/usr/tivoli/tsm/server/bin export DSMSERV_CONFIG=/usr/tivoli/tsm/server/bin/dmserv.opt 2注册license , register lic file=* number=20审核license audit lic
3定义库以及库路径 define library lib3582 libtype=SCSI SERial=AUTODetect AUTOLabel=no SHARED=yes RESETDrives=Yes define path tsm lib3582 srctype=server desttype=library device=/dev/smc0 online=yes 4定义驱动器以及驱动器路径 define drive lib3582 drv0 online=yes element=256 define drive lib3582 drv1 online=yes element=257 define path tsm drv0 srctype=server desttype=drive library=lib3582 device=/dev/rmt0 online=yes define path tsm drv1 srctype=server desttype=drive library=lib3582 device=/dev/rmt1 online=yes 5定义设备类 define devclass lto2dev library=lib3582 devtype=lto 6 检入库卷label libvolume lib3582 search=yes checkin=scratch LABELSource=Barcode
OVERWRITE=yes VOLRange=zy9580,zy9599
7 定义TSM DB卷,并扩展 define dbvolume /usr/tivoli/tsm/server/db1.dsm f=500 extend db 500 8 定义 TSM LOG卷,并扩展 define logvolume /usr/tivoli/tsm/server/log1.dsm f=256 extend log 500 9 定义存储池 define stgpool P5_FS_POOL lto2dev maxscratch=0define volume P5_FS_POOL zy9582
define volume P5_FS_POOL zy9583define stgpool P5_ORA_POOL lto2dev maxscratch=0
define volume P5_ORA_POOL zy9595
define volume P5_ORA_POOL zy9596define volume P5_ORA_POOL zy9597
define volume P5_ORA_POOL zy9598 define volume P5_ORA_POOL zy9599 10 定义策略域
define domain P5_FS_DOMAIN
define policyset P5_FS_DOMAIN P5_FS_SET
define mgmtclass P5_FS_DOMAIN P5_FS_SET P5_FS_CLASS
define copygroup P5_FS_DOMAIN P5_FS_SET P5_FS_CLASS standard type=backu destination=P5_FS_POOL
assign defmgmtclass P5_FS_DOMAIN P5_FS_SET P5_FS_CLASS
activate policyset P5_FS_DOMAIN P5_FS_SET
define domain P5_ORA_DOMAIN
define policyset P5_ORA_DOMAIN P5_ORA_SET
define mgmtclass P5_ORA_DOMAIN P5_ORA_SET P5_ORA_CLASS
define copygroup P5_ORA_DOMAIN P5_ORA_SET P5_ORA_CLASS standard type=backu destination=P5_ORA_POOL VERExists=1 VERDeleted=0 RETExtra=0 RETOnly=0
assign defmgmtclass P5_ORA_DOMAIN P5_ORA_SET P5_ORA_CLASS
activate policyset P5_ORA_DOMAIN P5_ORA_SET 11 注册客户机register node P570_FS p570_fs domain=P5_FS_DOMAIN backdelete=yes archdelete=yes passe=0
register node P550_FS p550_fs domain= P5_FS_DOMAIN backdelete=yes archdelete=yes passe=0
register node P570_TDPO p570_tdpo domain=P5_ORA_DOMAIN backdelete=yes archdelete=yes passe=0
register node P550_TDPO p550_tdpo domain= P5_ORA_DOMAIN backdelete=yes archdelete=yes passe=0 12 定义管理调度DEFine SCHedule bkupdb Type=Administrative CMD='backup db type=full devclass=lto2dev volumenames=zy9580 scratch=no' ACTIVE=yes STARTTime=12:00:00
DEFine SCHedule delvolhist Type=Administrative CMD='DELete VOLHistory TODate=today-1 type=dbbackup' ACTIVE=Yes STARTTime=11:50:00
13 启动TSM 服务器 到/usr/tivoli/tsm/server/bin nohup dsmserv&3.2 配置TSM 客户端
1 修改环境标量 在TSM Client的.profile文件增加如下内容: export DSM_DIR=/opt/tivoli/tsm/client/ba/bin export DSM_CONFIG=/opt/tivoli/tsm/client/ba/bin/dsm.opt export DSM_LOG=/opt/tivoli/tsm/client/ba/bin export DSMI_CONFIG=/opt/tivoli/tsm/client/api/bin64/dsm.opt export DSMI_DIR=/opt/tivoli/tsm/client/api/bin64 export DSMI_LOG=/opt/tivoli/tsm/client/api/bin64 2修改/usr/tivoli/tsm/client/ba/bin 目录下的dsm.opt 以及dsm.sys 文件如下 dsm.opt dsm.sys 3 用命令dsmc 启动命令行客户机,连接TSM 服务器看是否成功3.3 配置ORACLE TDP
1修改tdpo.opt 如下: 2 修改/usr/tivoli/tsm/client/api/bin64 目录下的dsm.opt 以及dsm.sys 文件如下: dsm.opt dsm.sys 3 生成密码文件 tdpoconf password –tdpo_optfile=/usr/tivoli/tsm/client/oracle/bin64/tdpo.opt 4. 链接libobk.a ln –s /usr/lib/libobk.a $ORACLE_HOME/lib64/libobk.a 链接完后重新启动数据库 5 sbttest 测试是否TDP和ORACLE 链接成功 $ORACLE_HOME/bin/sbttest test 6 安装Catalog 数据库 6.1为恢复目录单独创建表空间catalog_tbs, 6.2创建恢复目录用户 CREATE USER rman IDENTIFIED BY rman DEFAULT TABLESPACE catalog_tbs; 6.3 为用户rcat_user 赋予角色 GRANT connect,resource,recovery_catalog_owner TO rman; 6.4 使用RMAN 连接恢复目录 RMAN catalog=rman/rman@rman9i 6.5 在RMAN 提示符下创建catalog create catalog tablespace catalog_tbs; 6.5 使用RMAN 同时连接目标数据和恢复目录 set ORACLE_SID=nc31 RMAN target / catalog=rman/rman@rman9i 6.6使用恢复目录注册数据库 RMAN>Register database; 7.如果sbttest 不成功 需要执行这一步 7.1添加errorlogname /oracle/mytdpo.log 到DSMI_DIR下的 dsm.sys文件 7.2重新运行tdpo password 命令生成密码 7.3进入/oracle 目录确认生成了mytdpo.log 文件 7.4更改mytdpo.log 的权限, chmod 666 /oracle/mytdpo.log chown oracle:dba /oracle/mytdpo.log3.4 配置SAN Agent
1 修改/usr/tivoli/tsm/StorageAgent/bin/dsmsta.opt 增加一行 DEVCONFIG devconfig.out 2 使用如下命令 dsmsta setstorageserver myname=storagent mypassword=storagent myhladdress=172.16.1.12 servername=tsm serverpassword=tsm hladdress=172.16.1.21 lladdress=1500 这条命令在devconfig.txt 文件产生如下行: 这条命令在dsmsta.opt 产生如下行: SERVERNAME TSM 3 在TSM server 上发出如下命令 set servername TSM set serverpassword tsm set serverhladdress 172.16.1.21 set serverlladdress 1500 set crossdefine on 设置完可以用q status 查看结果 4 在TSM server 上为san agent 定义服务器 define server storagnt serverpassword=storagnt hladdress=172.16.1.12 lladdress=1500 validateprotocol=all 6 在TSMserver 上定义源服务器为storagnt 的驱动器路径 define path storagnt drv0 srctype=server desttype=drive library=lib3582 device=/dev/rmt0 define path storagnt drv1 srctype=server desttype=drive library=lib3582 device=/dev/rmt1 7 为启用lan-free 修改客户机的dsm.sys 文件增加 LANFREECOMMMETHOD TCPIP LANFREECOMMMETHOD SHAREDMEM LANFREETCPPORT 1500 LANFREESHMPORT 1510 enablelanfree yes 8 启动san agent nohup dsmsta&四、TSM 策略域,存储池配置列表
4.1 策略域概要配置
Policy Domain Name | Policy Set | Management Class | Default (Y/N) | Backup Copy Group | Archive Copy Group | Storage Pool |
P5_FS_DOMAIN | standard | standard | Y | standard | standard | P5_FS_POOL |
P5_ORA_DOMAIN | standard | standard | Y | standard | standard | P5_ORA_POOL |
4.2 策略域详细配置
策略域: P5_FS_DOMAIN | ||
备份副本组 | ||
Type | BACKUP | 副本组的类型是备份. |
DESTINATION | P5_FS_POOL | 目标存储池是(请参考存储池定义表). |
FREQUENCY | 0 | 可以立即备份刚刚备份过的文件 |
VEREXISTS | 2 | 在客户机文件系统上存在的文件最多保留的2个备份版本 |
VERDELETED | 1 | 在客户机文件系统上不存在的文件最多保留的1个备份版本 |
RETEXTRA | 30 | 当备份版本到期后30天删除. |
RETONLY | 60 | 从客户机上删除的文件保留最新的版本60天 |
MODE | Absolute | 不管上次备份的文件是否改变都进行备份 |
SERIALIZATION | Static | 备份没有正在被修改文件并仅尝试一次 |
策略域: P5_ORA_DOMAIN | ||
备份副本组 | ||
Type | BACKUP | 副本组的类型是备份. |
DESTINATION | P5_ORA_POOL | 目标存储池是(请参考存储池定义表). |
FREQUENCY | 0 | 可以立即备份刚刚备份过的文件 |
VEREXISTS | 1 | 在客户机文件系统上存在的文件最多保留的2个备份版本 |
VERDELETED | 0 | 在客户机文件系统上不存在的文件最多保留的1个备份版本 |
RETEXTRA | 0 | 当备份版本到期后立即删除. |
RETONLY | 0 | 从客户机上删除的文件保留最新的版本60天 |
MODE | Absolute | 不管上次备份的文件是否改变都进行备份 |
SERIALIZATION | Static | 备份没有正在被修改文件并仅尝试一次 |
4.3节点配置
Node name |
password |
Policy domain |
note |
P550_FS | p550_fs | P5_FS_DOMAIN | 550文件系统备份 |
P550_TDPO | p550_tdpo | P5_ORA_DOMAIN | 550 Oracle备份 |
P570_FS | p570_fs | P5_FS_DOMAIN | 570文件系统备份 |
P570_TDPO | p570_tdpo | P5_ORA_DOMAIN | 570 Oracle备份 |
4.4存储池配置
POOL name |
VOLUME |
P5_FS_POOL | ZY9582,ZY9583 |
P5_ORA_POOL | ZY9595,ZY9596,ZY9597,ZY9598,ZY9599 |
五、Oracle 备份策略,调度和备份脚本
5.1 备份策略和调度
每周日凌晨1点增量0 备份,周4 凌晨1点增量1备份,周一,二,三,五,六凌晨1点做增量2备份 。每天每隔4个小时做一次归档日志的备份。 每天凌晨5点删除15天以前的归档,每天凌晨6点删除15天前的DB备份。 查看oracle 用户的调度 crontab –l 0 1 * * 0 /oracle/rmanscript/incr0.sh & 0 1 * * 4 /oracle/rmanscript/incr1.sh & 0 1 * * 1,2,3,5,6 /oracle/rmanscript/incr2.sh & 0 5 * * * /oracle/rmanscript/dele_arch.sh & 0 6 * * * /oracle/rmanscript/dele_tape.sh & 0 4,8,12,16,20 * * * /oracle/rmanscript/arch.sh &5.2 备份脚本
5.2.1 incr0.sh 增量0备份
. /oracle/.profile target='target /' rcvcat='catalog rman/rman@rman9i' # Get the current time for constructing a fairly unique filename in /tmp: time=`date '+%m%d%H'` # Construct filenames using $time for uniqueness: cmdfile=/oracle/rmanscript/log/incr0_$time.rcv msglog=/oracle/rmanscript/log/incr0_$time.log cat <<EOF >$cmdfile run{ allocate channel sbt1 type 'SBT_TAPE'; resync catalog; sql 'alter system archive log current' ; backup filesperset 10 format 'arch_%s_%p' (archivelog like '/oradata/archivelog/%' delete input channel sbt1); backup format 'cf_%s_%p' (current controlfile); backup incremental level 0 filesperset 10 tag 'incr_level_0' format 'incr0_%u_%p_%c' database; sql 'alter system archive log current' ; backup filesperset 10 format 'arch_%s_%p' (archivelog like '/oradata/archivelog/%' delete input channel sbt1) release channel sbt1; } EOF rman $target $rcvcat cmdfile $cmdfile msglog $msglog exit5.2.2 incr1.sh 增量1备份
. /oracle/.profile target='target /' rcvcat='catalog rman/rman@rman9i' # Get the current time for constructing a fairly unique filename in /tmp: time=`date '+%m%d%H'` # Construct filenames using $time for uniqueness: cmdfile=/oracle/rmanscript/log/incr1_$time.rcv msglog=/oracle/rmanscript/log/incr1_$time.log cat <<EOF >$cmdfile run{ allocate channel sbt1 type 'SBT_TAPE'; resync catalog; sql 'alter system archive log current' ; backup filesperset 10 format 'arch_%s_%p' (archivelog like '/oradata/archivelog/%' delete input channel sbt1); backup format 'cf_%s_%p' (current controlfile); backup incremental level 1 filesperset 10 tag 'incr_level_1' format 'incr1_%u_%p_%c' database; sql 'alter system archive log current' ; backup filesperset 10 format 'arch_%s_%p' (archivelog like '/oradata/archivelog/%' delete input channel sbt1); release channel sbt1; } EOF rman $target $rcvcat cmdfile $cmdfile msglog $msglog exit5.2.3 incr2.sh 增量2备份
. /oracle/.profile target='target /' rcvcat='catalog rman/rman@rman9i' # Get the current time for constructing a fairly unique filename in /tmp: time=`date '+%m%d%H'` # Construct filenames using $time for uniqueness: cmdfile=/oracle/rmanscript/log/incr2_$time.rcv msglog=/oracle/rmanscript/log/incr2_$time.log cat <<EOF >$cmdfile run{ allocate channel sbt1 type 'SBT_TAPE'; resync catalog; sql 'alter system archive log current' ; backup filesperset 10 format 'arch_%s_%p' (archivelog like '/oradata/archivelog/%' delete input channel sbt1); backup format 'cf_%s_%p' (current controlfile); backup incremental level 2 filesperset 10 tag 'incr_level_2' format 'incr2_%u_%p_%c' database; sql 'alter system archive log current' ; backup filesperset 10 format 'arch_%s_%p' (archivelog like '/oradata/archivelog/%' delete input channel sbt1) release channel sbt1; } EOF rman $target $rcvcat cmdfile $cmdfile msglog $msglog exit5.2.4 arch.sh 归档日志备份
. /oracle/.profile target='target /' rcvcat='rcvcat rman/rman@rman9i' # Get the current time for constructing a fairly unique filename in /tmp: time=`date '+%m%d%H'` # Construct filenames using $time for uniqueness: cmdfile=/oracle/rmanscript/log/arch_$time.rcv msglog=/oracle/rmanscript/log/arch_$time.log cat <<EOF >$cmdfile run{ allocate channel sbt1 type 'SBT_TAPE' ; resync catalog; sql 'alter system archive log current' ; backup filesperset 10 format 'arch_%s_%p' (archivelog like '/oradata/archivelog/%' delete input channel sbt1); release channel sbt1; } EOF rman $target $rcvcat cmdfile $cmdfile msglog $msglog exit5.2.5 del_arch.sh定期删除归档日志备份
# Initialize default connect string variables: . /oracle/.profile target='target /' rcvcat='rcvcat rman/rman@rman9i' time=`date '+%m%d%H'` # Initialize filenames: obsolete_tape=/oracle/rmanscript/log/arch_tape_$time.log # list of obsolete tape backups cmdfile=/oracle/rmanscript/log/delete_arch$time.cmd # the generated RMAN commmand script delete_log=/oracle/rmanscript/log/deleted_arch_$time.log # execution log from generated script # Get a list of obsolete tape files: rman msgno $target $catalog msglog $obsolete_tape << EOF > /dev/null list backup of archivelog until time 'sysdate-15'; exit; EOF # sed actions: del_bpiece="-e /AVAILABLE/ s/\(.* \)\(.*\)$/change backuppiece '\2' delete;/" #echo "allocate channel for delete type 'sbt_tape' ;" > $cmdfile grep AVAILABLE $obsolete_tape | sed "$del_bpiece" >> $cmdfile echo "release channel;" >> $cmdfile # # Execute the RMAN command file to delete the obsolete files: # rman msgno $target $rcvcat msglog $delete_log cmdfile $cmdfile exit5.2.6 del_tape.sh 定期删除数据库备份
# Initialize default connect string variables: . /oracle/.profile target='target /' rcvcat='catalog rman/rman@rman9i' time=`date '+%m%d%H'` # Initialize filenames: obsolete_tape=/oracle/rmanscript/log/ob_tape_$time.log # list of obsolete tape backups cmdfile=/oracle/rmanscript/log/delete$time.cmd # the generated RMAN commmand script delete_log=/oracle/rmanscript/log/deleted_$time.log # execution log from generated script # Get a list of obsolete tape files: rman msgno $target $catalog msglog $obsolete_tape << EOF > /dev/null report obsolete redundancy=1 until time 'sysdate-15' device type 'sbt_tape'; #report obsolete device type 'sbt_tape'; exit; EOF # sed actions: del_bpiece="-e /RMAN-06285/ s/\(.* \)\(.*\)$/change backuppiece '\2' delete;/" echo "allocate channel for delete type 'sbt_tape' ;" > $cmdfile grep RMAN-06285 $obsolete_tape | sed "$del_bpiece" >> $cmdfile echo "release channel;" >> $cmdfile # # Execute the RMAN command file to delete the obsolete files: # rman msgno $target $rcvcat msglog $delete_log cmdfile $cmdfile exit六 FAQ
1. 如何启动和停止TSM 服务器
方法一: 启动:进入/usr/tivoli/tsm/server/bin 目录 输入命令 dsmserv 停止:在dsmserv 的提示符TSM:TSM>下 输入halt 方法二: 启动:进入/usr/tivoli/tsm/server/bin目录 输入命令 nohup dsmserv& 停止:ps –ef | grep dsm 查看dsmserv 的进程号 kill 进程号 tail –f nohup.out 查看日志 当机器重新启动时,TSM 服务器依靠 /etc/inittab 中的 自动启动2 如何启动管理命令行接口
直接在系统提示符下输入 dsmadmc 提示输入user id : 这里为admin 提示输入password 这里为 admin 然后进入TSM 管理命令行 若要更改admin的password 输入:update admin admin newpassword3如何启动WEB管理接口
打开IE ,输入http://172.16.1.21:8041/ibm/console 用户名:iscadmin 口令 :password 如果打开页面无效 进入/opt/IBM/ISC/PortalServer/bin 输入startISC.sh ISC_Portal4 如何进行文件系统的备份
直接在系统提示符下输入命令如: 备份/usr 目录及下面的子目录dsmc sel /usr/ -subdir=yes 单独备份/etc/host 文件 dsmc sel /etc/host5 如何查看备份
oracle连接rman rman target / catalog rman/rman@rman9i5.1概述可用的备份
RMAN>list backup summary; B 表示 backup F 表示 FULL A 表示 archive log 0 1 表示 incremental backup5.2按备份类型列出备份
RMAN>list backup by file; 按照 数据文件备份,归档日志备份,控制文件备份,服务器参数文件备份 列出5.3列出详细备份
RMAN>list backup;5.4列出表空间和数据文件备份
list backup of tablespace 和list backup of datafile 输出和list backup 相似 如:list backup of tablespace user_tbs; list backup of datafile 3;5.5列出归档日志备份
RMAN>list archivelog all; 简要信息 RMAN>list backup of archivelog all; 详细信息5.6列出控制文件和服务器参数文件
RMAN>list backup of controfile; RMAN>list backup of spfile;6如何进行数据库故障恢复
如果安装配置了OEM 可以使用恢复向导进行恢复 步骤 1 startup mount 2 restore database 3 recover database 4 alter database open resetlogs7 如何查看RMAN备份日志验证是否备份成功。
rman 的备份日志放在/oracle/rmanscript/log 目录下, 根据时间以及备份级别命名 incr0_110915.log 表示11月9号15时做的增量0 备份 查看日志 如果日志结尾为 Recovery Manager complete. 表示该级别的备份成功 如果日志包含如下: RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== 表示有错误 需要更正。七 恢复
当数据库出现故障 需要进行恢复,运行脚本restore.sh su – oracle cd /rmanscript ./restore.sh 还原结束后,查看还原日志,看是否成功 日志位于/oracle/rmanscript/log 目录下 日志示例: Recovery Manager: Release 9.2.0.6.0 - 64bit Production Copyright (c) 1995, 2002, Oracle Corporation. All rights reserved. connected to target database (not started) connected to recovery catalog database RMAN> startup nomount; 2> run 3> { 4> allocate channel sbt1 type 'sbt_tape'; 5> restore controlfile; 6> alter database mount; 7> restore database; 8> recover database; 9> alter database open resetlogs; 10> release channel sbt1; 11> } 12> Oracle instance started Total System Global Area 320308816 bytes Fixed Size 742992 bytes Variable Size 285212672 bytes Database Buffers 33554432 bytes Redo Buffers 798720 bytes allocated channel: sbt1 channel sbt1: sid=13 devtype=SBT_TAPE channel sbt1: Tivoli Data Protection for Oracle: version 5.2.0.0 Starting restore at 10-NOV-05 channel sbt1: starting datafile backupset restore channel sbt1: restoring controlfile output filename=/oradata/oratest/control01.ctl channel sbt1: restored backup piece 1 piece handle=oratestfull_03h3dd2p_1_1 tag=ORATEST_FULL params=NULL channel sbt1: restore complete replicating controlfile input filename=/oradata/oratest/control01.ctl output filename=/oradata/oratest/control02.ctl output filename=/oradata/oratest/control03.ctl Finished restore at 10-NOV-05 database mounted Starting restore at 10-NOV-05 channel sbt1: starting datafile backupset restore channel sbt1: specifying datafile(s) to restore from backup set restoring datafile 00001 to /oradata/oratest/system01.dbf restoring datafile 00003 to /oradata/oratest/cwmlite01.dbf restoring datafile 00004 to /oradata/oratest/drsys01.dbf restoring datafile 00008 to /oradata/oratest/tools01.dbf restoring datafile 00011 to /oradata/oratest/NNC_DATA01.dbf restoring datafile 00013 to /oradata/oratest/NNC_DATA03.dbf restoring datafile 00015 to /oradata/oratest/NNC_INDEX02.dbf channel sbt1: restored backup piece 1 piece handle=oratestfull_03h3dd2p_1_1 tag=ORATEST_FULL params=NULL channel sbt1: restore complete channel sbt1: starting datafile backupset restore channel sbt1: specifying datafile(s) to restore from backup set restoring datafile 00002 to /oradata/oratest/undotbs01.dbf restoring datafile 00005 to /oradata/oratest/example01.dbf restoring datafile 00006 to /oradata/oratest/indx01.dbf restoring datafile 00007 to /oradata/oratest/odm01.dbf restoring datafile 00009 to /oradata/oratest/users01.dbf restoring datafile 00010 to /oradata/oratest/xdb01.dbf restoring datafile 00012 to /oradata/oratest/NNC_DATA02.dbf restoring datafile 00014 to /oradata/oratest/NNC_INDEX01.dbf restoring datafile 00016 to /oradata/oratest/NNC_INDEX03.dbf channel sbt1: restored backup piece 1 piece handle=oratestfull_04h3dd3s_1_1 tag=ORATEST_FULL params=NULL channel sbt1: restore complete Finished restore at 10-NOV-05 Starting recover at 10-NOV-05 starting media recovery archive log thread 1 sequence 4 is already on disk as file /oradata/oratest/redo03.log archive log thread 1 sequence 5 is already on disk as file /oradata/oratest/redo01.log archive log filename=/oradata/oratest/redo03.log thread=1 sequence=4 archive log filename=/oradata/oratest/redo01.log thread=1 sequence=5 media recovery complete Finished recover at 10-NOV-05 database opened new incarnation of database registered in recovery catalog starting full resync of recovery catalog full resync complete released channel: sbt1 Recovery Manager complete.附录:还原测试
创建新库test ,导入数据从NC311. 还原之前先对数据库做一次备份
. /oracle/.profile target='target sys/sys@test' rcvcat='catalog rman/rman@rman9i' # Get the current time for constructing a fairly unique filename in /tmp: time=`date '+%m%d%H'` # Construct filenames using $time for uniqueness: cmdfile=/oracle/rmanscript/log/test_$time.rcv msglog=/oracle/rmanscript/log/test_$time.log cat <<EOF >$cmdfile run{ allocate channel sbt1 type 'SBT_TAPE'; resync catalog; sql 'alter system archive log current' ; backup filesperset 10 format 'testarch_%s_%p' (archivelog like '/oradata/testarchivelog/%' delete input channel sbt1); backup format 'testcf_%s_%p' (current controlfile); backup full filesperset 10 tag 'test_full' format 'testfull_%u_%p_%c' database; sql 'alter system archive log current' ; backup filesperset 10 format 'testarch_%s_%p' (archivelog like '/oradata/testarchivelog/%' delete input channel sbt1); release channel sbt1; } EOF rman $target $rcvcat cmdfile $cmdfile msglog $msglog exit2.备份之前先验证数据
sqlplus sys/sys@test as sysdba SQL> select count(*) from test.OM_JOB; COUNT(*) ---------- 17593.模拟数据库故障
shutdown immediate; 关闭数据库 重命名所有数据文件和控制文件4.运行还原脚本
#before restore ,you must shutdown db target='target sys/sys@test' rcvcat='catalog rman/rman@rman9i' time=`date '+%m%d%H'` cmdfile=/oracle/rmanscript/log/restore_$time.rcv msglog=/oracle/rmanscript/log/restore_$time.log cat <<EOF >$cmdfile startup nomount; run { allocate channel sbt1 type 'sbt_tape'; restore controlfile; alter database mount; restore database; recover database; alter database open resetlogs; release channel sbt1; } EOF rman $target $rcvcat cmdfile $cmdfile msglog $msglog exit5. 还原结束验证数据
sqlplus sys/sys@test as sysdba SQL> select count(*) from test.OM_JOB; COUNT(*) ---------- 1759posted on 2010-01-04 15:38 Oracle和MySQL 阅读(547) 评论(0) 编辑 收藏 举报