利用RMAN进行作STANDBY
利用RMAN 创建备用数据库可以用两种办法,一种是常规的Restore 命令,利用从主数据库拷贝过去的备用控制文件,把备用数据库启动到备用mount 下,这个时候的备用数据库是没有数据文件的。然后在备用端,启动RMAN命令,连接该数据库(与主数据库DBID一样),把从主
数据库拷贝过来的RMAN 备份还原出来。最后就与其它方法一样了,进入备用的管理恢复模式。
另外一个办法就是复制命令了,如:
DUPLICATE TARGET DATABASE FOR STANDBY NOFILENAMECHECK;
1.首先 创建主数据库sid 为test primary 建立备用数据库的 环境
将主节点数据库的参数拷贝到standby数据库server上
修改Primary Server 的Oraclce初始化参数;
LOG_ARCHIVE_DEST_1= 'LOCATION= /arch mandatory reopen=15’
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_2= 'SERVICE=standby' 注:到Standby Database的数据库连接名
LOG_ARCHIVE_DEST_STATE_2=ENABLE
LOG_ARCHIVE_FORMAT='ARC%t_%s.arc'
LOG_ARCHIVE_MIN_SUCCEED_DEST=2
STANDBY_ARCHIVE_DEST=’ /arch’
修改standby节点上的数据参数 如:
LOG_ARCHIVE_DEST_1= 'LOCATION= /arch mandatory reopen=15’
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_2= 'SERVICE=primary'
LOG_ARCHIVE_DEST_STATE_2=ENABLE
LOG_ARCHIVE_FORMAT='ARC%t_%s.arc'
LOG_ARCHIVE_MIN_SUCCEED_DEST=2
STANDBY_ARCHIVE_DEST=’ /arch’
2.两台服务器上将TNS,linstener配置好 并启动 。
Primary database |
standby = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.5.21)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = test) ) ) primary = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.5.20)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = test) ) ) |
Standby Database |
standby = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.5.21)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = test) ) ) primary = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.5.20)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = pstest) ) ) |
3、创建standby db参数文件与密码文件,启动standby db到nomount下
4、备份主数据库与备用控制文件以及所有日志归档。
RMAN> backup database;
RMAN> Backup current controlfile for standby;
RMAN> sql "Alter System Archive Log Current";
RMAN> Backup filesperset 10 ArchiveLog all delete input;
这一步 我做的时候就:
在Primary Database上创建Standby Database的控制文件
SQL>shutdown immediate;
SQL>startup mount;
SQL>alter database create standby controlfile as ‘/arch/control01.ctl’
然后将文件拷贝的standby的/arch下
RMAN> backup full database;
Sql>alter system archive log current ;
然后直接将primary所有的归档日志拷贝到standby的相同路径中。
5.然后 将生成的RMAN备份文件与后面的日志文件从主数据库上拷贝到备用库的相同路径下 (默认RMAN备份文件的路径是$oracle_home/dbs)
6、在standby db上启动RMAN
rman target sys/oracle@primary AUXILIARY sys/test;
7、开始创建备用数据库
RMAN> duplicate target database for standby dorecover nofilenamecheck;
如果操作成功 则。
RMAN>sql"alter database mount standby database";
8、确认是否两台机器archived logs 有差距
Select sequence# from v$log_history
9、如果两台机器之间有差距,进行恢复
RMAN>sql"Recover automatic standby database ";
RMAN>sql"Recover managed standby database timeout 30";
10.RMAN>sql"alter database recover managed standby database disconnect from session;";
整个过程包括了备用控制文件的创建,启动到Mount 下,参数文件中指定的路径转换与数据文件的还原,归档日志的还原等。
补充 如果需要路径转换可以使用 参数 如:
DB_FILE_NAME_CONVERT=('/dev/raw/raw3','/u/oracle/oradata/system01.dbf')
LOG_FILE_NAME_CONVERT=('/dev/raw/raw7','/u/oracle/oradata/redo1.log'
'/dev/raw/raw8','/u/oracle/oradata/redo2.log')
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/92530/viewspace-128027/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/92530/viewspace-128027/