在直接使用 RMAN 将数据库还原到备用服务器时,需要满足以下先决条件:
例如,考虑以下方案:
注意:以下过程中使用的方案假定从 <Server-A> 备份的数据库将还原到 <Server-B>,且保留该数据库名称。该方案还假定原始主机和目标主机的目录结构相同。此外,此方案还假定您使用的是 Oracle 10gR2。
要将数据库还原到备用服务器,请执行以下步骤:
src:/opt/oracle/10gR2:N
例如:
$cd $ORACLE_BASE/admin $mkdir src $mkdir adump bdump cdump dpdump pfile udump $mkdir -p $ORACLE_BASE/oradata/src $mkdir -p $ORACLE_BASE/flash_recovery_area/SRC
# /opt/CA/ABoraagt/orasetup
当 orasetup 提示您使用恢复管理器编录处理数据库备份时,请指定“y”。
Are you planning on using a Recovery Manager catalog to handle database backups (Recommended)?(Y/N) Y
当 orasetup 提示您指定 Oracle 实例的名称时,请指定原始实例 ID。
Oracle instance id to be used by this agent [<Enter> to end]: src 该 Oracle 实例的 ORACLE_HOME 环境值:(默认值:/opt/oracle/10gR2):
当 orasetup 提示您指定恢复管理器服务名称的名称时,请指定 RMAN 编录数据库的已配置 TNS 名称。
Since you have configured the Recovery Manager, please provide the Recovery Manager service name for database src. Recovery Manager service name : catdb
# Node where the original backup was made from SBT_ORIGINAL_CLIENT_HOST=Server-A.
以 sysdba 用户的身份连接到原始数据库实例 src。
$ sqlplus "/ as sysdba" Generate pfile from spfile. SQL>create pfile from spfile;
在路径 $ORACLE_HOME/dbs 中创建一个名为 init<$ORACLE_SID>.ora 的文件,将该文件复制到位于备用目标 Server B 上的同一路径。
假定现有的数据库名称为“tmpdb”。
从 spfile 为数据库“tmpdb”创建 pfile。
以 sysdba 用户的身份连接到数据库实例“tmpdb”。
$export ORACLE_SID=tmpdb $sqlplus "/ as sysdba" Generate pfile from spfile. SQL> create pfile from spfile;
在路径 ORACLE_HOME/dbs 中创建文件“inittmpdb.ora”。将该文件复制到“initsrc.ora”,在此文件中将所有 SID 名称“temdb”替换为“src”并保存文件。
$export ORACLE_SID=src $sqlplus /nolog SQL>conn sys/passw0rd as sysdba SQL>startup nomount pfile=$ORACLE_HOME/dbs/init$ORACLE_SID.ora SQL>exit
$rman catalog rman/rman@catdb RMAN> set dbid=<源数据库 db_id 值> RMAN> connect target system/passw0rd; RMAN>run { 2>allocate channel ch1 type sbt parms='SBT_LIBRARY=/opt/Arcserve/ABoraagt/libobk64.so'; 3>restore spfile; 4>release channel ch1; 5>}
注意:对于 32 位 Oracle 数据库,SBT_LIBRARY 使用 libobk32.so。对于 64 位 Oracle 数据库,SBT_LIBRARY 使用 libobk64.so。
还原作业在 Arcserve Backup 服务器作业队列上运行。当该作业完成时,spfile 数据库将还原到 $ORACLE_HOME/dbs 路径。
关闭数据库。
RMAN>shutdown immediate; RMAN>exit
使用刚还原的 spfile 以及“nomount”选项重新启动数据库。
$sqlplus /nolog SQL>conn sys/passw0rd as sysdba SQL>startup nomount SQL>quit
$rman catalog rman/rman@catdb RMAN> set dbid=<源数据库 db_id 值> RMAN> connect target system/passw0rd; RMAN> run { 2> allocate channel dev1 type 'sbt_tape' parms='SBT_LIBRARY=/opt/Arcserve/ABoraagt/libobk64.so'; 3> restore controlfile; 4> release channel dev1; 5> }
或者,如果从特定备份片还原控制文件以执行时间点还原,请执行以下步骤:
$ rman catalog rman/rman@catdb RMAN> set dbid=<源数据库 db_id 值> RMAN> connect target system/passw0rd; RMAN> run { 2> allocate channel dev1 type 'sbt_tape' parms='SBT_LIBRARY=/opt/Arcserve/ABoraagt/libobk64.so'; 3> restore controlfile from ‘Y’; 4> release channel dev1; 5> }
要获取表示备份片信息的“Y”,请执行以下步骤:
RMAN> set dbid=<dbid>; RMAN> list backup of controlfile;
还原作业在 Arcserve Backup 服务器作业队列上运行。当该作业完成时,数据库控制文件将还原到 $ORACLE_HOME/oradata/$ORACLE_SID 路径。
$sqlplus / as sysdba SQL>alter database mount; SQL>exit
$rman catalog rman/rman@catdb RMAN> set dbid=<源数据库 db_id 值> RMAN> connect target system/passw0rd; RMAN>run { 2>allocate channel ch1 type sbt parms='SBT_LIBRARY=/opt/Arcserve/ABoraagt/libobk64.so'; 3>restore database; 4>restore archivelog all; 5>release channel ch1; 6>}
还原作业在 Arcserve Backup 服务器作业队列上运行。当该作业完成时,将还原数据库文件和存档日志。
$sqlplus / as sysdba SQL> recover database using backup controlfile until cancel
SQL> alter database open resetlogs;
Copyright © 2016 |
|