【转】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.com     

 

2.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.web

 

2.3 安装ORACLE TDP

放入tivoli data protection for oracle 安装介质,smit installp

安装如下组件

 

tivoli.tsm.client.oracle.aix51.64bit

tivoli.tsm.client.oracle.tools.aix51.64bit

2.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=0

define volume P5_FS_POOL zy9582

define volume P5_FS_POOL zy9583

define stgpool P5_ORA_POOL lto2dev maxscratch=0

define volume P5_ORA_POOL zy9595

define volume P5_ORA_POOL zy9596

define 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.log

3.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

 

exit

5.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

 

exit

 

5.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

 

exit

5.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

 

exit

5.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

 

exit

      

5.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 newpassword

 

3如何启动WEB管理接口

 打开IE ,输入http://172.16.1.21:8041/ibm/console

 用户名:iscadmin

 口令  :password

 如果打开页面无效

 进入/opt/IBM/ISC/PortalServer/bin 输入startISC.sh ISC_Portal

 

4 如何进行文件系统的备份

  直接在系统提示符下输入命令如:

  备份/usr 目录及下面的子目录dsmc sel /usr/ -subdir=yes

  单独备份/etc/host 文件      dsmc sel /etc/host

 

 

  

5 如何查看备份

  oracle连接rman

  rman target / catalog rman/rman@rman9i

5.1概述可用的备份       

RMAN>list backup summary;

 B 表示 backup

 F 表示 FULL

 A 表示 archive log

 0 1 表示 incremental backup

 

5.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 resetlogs

 

7 如何查看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 ,导入数据从NC31

1.      还原之前先对数据库做一次备份

  . /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

 

exit

 

2.备份之前先验证数据

   sqlplus sys/sys@test as sysdba

 SQL> select count(*) from test.OM_JOB;

 

  COUNT(*)

———-

1759

3.模拟数据库故障

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

exit

5. 还原结束验证数据

sqlplus sys/sys@test as sysdba

 SQL> select count(*) from test.OM_JOB;

 

  COUNT(*)

———-

1759

 

Comment

*

沪ICP备14014813号-2

沪公网安备 31010802001379号