备份恢复环境:
(1).源端:
SUSE Enterprise Linux 11
Oracle 11g 11.2.0.3.6(RAC)
(2).目标端:
SUSE Enterprise Linux 11
Oracle 11g 11.2.0.3.6(RAC)
冷备份及恢复情形:
冷备份 odsdb 集群数据,并于出现故障时,在原集群环境下进行恢复。其中,odsdb 已配置 NBU 备份环境。
NBU Master Server 的主机名为 xmn-nbu-master,NBU Media Server 的主机名为 xmn-5230。
冷备份步骤:
1.设置系统参数(oracle)
$> export NLS_DATE_FORMAT=YYYY-MM-DD:hh24:mi:ss
$> export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
$> export NB_ORA_CLIENT=odsdbsvr1
$> export NB_ORA_SERV=xmn-nbu-master
2.执行备份操作(oracle)
2.执行备份操作(oracle)
首先以下列命令 rman target / catalog rman/rman@rman11g 连接目标库及恢复目录数据库。
随后,执行以下脚本进行备份。
RMAN> RUN{
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALLOCATE CHANNEL ch00 TYPE 'SBT_TAPE' parms="ENV=(NB_ORA_CLIENT=odsdbsvr1,NB_ORA_SERV=xmn-nbu-master)";
ALLOCATE CHANNEL ch01 TYPE 'SBT_TAPE' parms="ENV=(NB_ORA_CLIENT=odsdbsvr1,NB_ORA_SERV=xmn-nbu-master)";
ALLOCATE CHANNEL ch02 TYPE 'SBT_TAPE' parms="ENV=(NB_ORA_CLIENT=odsdbsvr1,NB_ORA_SERV=xmn-nbu-master)";
BACKUP FULL tag 'cold backup' filesperset 4 FORMAT 'ManualBackup%d_%s_%p_%t' DATABASE;
RELEASE CHANNEL ch00;
RELEASE CHANNEL ch01;
RELEASE CHANNEL ch02;
ALLOCATE CHANNEL ch00 TYPE 'SBT_TAPE' parms="ENV=(NB_ORA_CLIENT=odsdbsvr1,NB_ORA_SERV=xmn-nbu-master)";
BACKUP FORMAT 'ManualBackupCntrl_%s_%p_%t' CURRENT CONTROLFILE;
RELEASE CHANNEL ch00;
}
3.备份SPFILE(oracle)
登陆至 sqlplus 环境,执行以下语句备份 spfile。
SQL> create pfile='/home/oracle/20151023pfile.ora’ from spfile;
4.查看DBID(oracle)
同样于 sqlplus 环境,执行以下语句确定数据库的 DBID。注意:应记住 DBID 以用于恢复。
SQL> SELECT dbid FROM v$database;
输出结果类似如下:
DBID
--------------------
3412031686
冷恢复步骤:
1.删除数据库实例(oracle)
通过 dbca 删除 instance,例如在图形界面删除。
2.设置系统参数(oracle)
$> export NLS_DATE_FORMAT=YYYY-MM-DD:hh24:mi:ss
$> export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
$> export NB_ORA_CLIENT=odsdbsvr1
$> export NB_ORA_SERV=xmn-nbu-master
3.启动数据库至 nomount(oracle)
利用备份的 pfile 参数文件覆盖原启动文件。
$> cp /home/oracle/20151023pfile.ora /u01/app/oracle/product/11.2.0/db_1/dbs/initodsdb1.ora
进入 sqlplus 环境,将数据库启动至 nomount 状态。
SQL> startup nomount
4.配置远程 AS SYSDBA/SYSOPER 登陆的密码文件(oracle)
例如以下操作将 sys 密码改为 password。
$> cd $ORACLE_HOME/dbs
$> orapwd file=orapwodsdb1 password=password entries=5
5.恢复控制文件(oracle)
通过以下语句进入连接恢复目录数据库,并制定要恢复的数据库 DBID。
$> rman rcvcat rman/rman@rman11g
RMAN> set dbid=3412031686
RMAN> connect target sys/password
随后,通过以下脚本恢复控制文件。
RMAN> run{
allocate channel ch0 type 'sbt_tape'
parms="ENV=(NB_ORA_CLIENT=odsdbsvr1,NB_ORA_SERV=xmn-nbu-master)";
restore controlfile;
release channel ch0;
}
6.启动数据库至mount状态(oracle)
SQL> alter database mount;
7.恢复数据库文件(oracle)
通过以下语句进入连接恢复目录数据库,并以当前库为连接的目标库。
$> rman rcvcat rman/rman@rman11g
RMAN> connect target sys/password
随后,运行以下脚本恢复数据库文件。
RMAN> run{
allocate channel ch0 type 'sbt_tape'
parms="ENV=(NB_ORA_CLIENT=yxdbsvr1,NB_ORA_SERV=xmn-nbu-master)";
allocate channel ch1 type 'sbt_tape'
parms="ENV=(NB_ORA_CLIENT=yxdbsvr1,NB_ORA_SERV=xmn-nbu-master)";
allocate channel ch2 type 'sbt_tape'
parms="ENV=(NB_ORA_CLIENT=yxdbsvr1,NB_ORA_SERV=xmn-nbu-master)";
restore database;
switch datafile all;
recover database;
}
8.启动数据库至 open 状态(oracle)
SQL> alter database open resetlogs;
9.重新配置监听(oracle)
需要的话重新配置监听。