本文共 4555 字,大约阅读时间需要 15 分钟。
run {
allocate channel t1 type disk;
allocate channel t2 type disk;
allocate channel t3 type disk;
allocate channel t4 type disk;
crosscheck archivelog all;
delete noprompt expired archivelog all;
backup full filesperset 6 format '/rman/cc/db_%d_%U' database;
sql 'alter system archive log current';
backup archivelog all format '/rman/cc/arch_%T_%s_%p';
backup current controlfile for standby format '/rman/cc/ctl_%U';
release channel t1;
release channel t2;
release channel t3;
release channel t4;
}
run{
allocate channel t1 type disk;
allocate channel t2 type disk;
allocate channel t3 type disk;
allocate channel t4 type disk;
allocate channel t5 type disk;
allocate channel t6 type disk;
restore database;
restore archivelog all;
release channel t1;
release channel t2;
release channel t3;
release channel t4;
release channel t5;
release channel t6;
}
pr: srvctl config database -d msc1ccdb
如果pr的密码文件不在asm盘里,需要将dbs下的orapw文件拷贝到asm盘中,并srvctl modify database -d msc1ccdb -pwfile '+asm盘中密码文件的位置'
将asm盘中的密码文件cp到/tmp下,并传输到dr端/tmp下
dr端密码文件拷贝到asm盘中,并 srvctl modify database -d msc4ccdb -pwfile '+asm盘中密码文件的位置'
srvctl config database -d msc4ccdb 确认
grid下的listener.ora设置如下:
LISTENER=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER))))
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = msc4db1)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER=ON # line added by Agent
VALID_NODE_CHECKING_REGISTRATION_LISTENER=ON # line added by Agent
oracle的listener.ora配置:
LISTENER_CC =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.17.141.15)(PORT = 1521))
)
)
)
SID_LIST_LISTENER_CC =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = ccdb)
(ORACLE_HOME = /oracle/product/19c/)
(SID_NAME = ccdb)
)
)
tnsname.ora配置:
msc4ccdb =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = ****)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ccdb)
)
)
local_listener配置为vip
local_listener="(ADDRESS=(PROTOCOL=TCP)(HOST=****)(PORT=1521))"
可以通过在pr端连接sqlplus sys/****@dr as sysdba测试tnsname和密码文件
理想状态下pr端归档的备份脚本最好disable,省的需要手动恢复归档
但如果在备份恢复的过程归档被备份并删除,归档传输进程会中断,需要手动恢复归档,才能自动恢复传输
run {
allocate channel ci type disk;
restore archivelog from logseq 550;
release channel ci;
}
如果在dr恢复完成后报redo不存在,需要重建redo
alter database clear logfile group 10;
alter database clear logfile group 11;
alter database clear logfile group 12;
alter database clear logfile group 13;
alter database clear logfile group 14;
alter database clear logfile group 15;
alter database clear logfile group 16;
alter database clear logfile group 17;
alter database clear logfile group 18;
alter database clear logfile group 19;
alter database clear logfile group 20;
alter database clear logfile group 21;
standy redo:
alter database clear logfile group 30;
alter database clear logfile group 31;
alter database clear logfile group 32;
alter database clear logfile group 33;
alter database clear logfile group 34;
alter database clear logfile group 35;
alter database clear logfile group 36;
alter database clear logfile group 37;
alter database clear logfile group 38;
alter database clear logfile group 39;
alter database clear logfile group 40;
alter database clear logfile group 41;
alter database clear logfile group 42;
如果pr有omf创建的文件,且db_create_file_dest不为空,而dr端db_create_file_dest为空(即没使用omf),需要手动恢复那些omf的数据文件,并将pr端db_create_file_dest设为空,相关报错如下
需要手动重新恢复这些文件:
select name,file# from v$datafile where name like '%MUST%';
select name,file# from v$tempfile where name like '%MUST%';
run{
allocate channel c1 device type disk;
set newname for datafile 1 to '+CCDATA01/ccdb/system001.dbf';
set newname for datafile 2 to '+CCDATA01/ccdb/sysaux001.dbf';
set newname for datafile 3 to '+CCDATA01/ccdb/undotbs1.dbf';
set newname for datafile 4 to '+CCDATA01/ccdb/users001.dbf';
restore datafile 1;
restore datafile 2;
restore datafile 3;
restore datafile 4;
switch datafile all;
release channel c1 ;
}
run{
allocate channel c1 device type disk;
set newname for tempfile 1 to '+CCDATA01/ccdb/temp01.dbf';
restore tempfile 1;
switch tempfile all;
release channel c1 ;
}
起MRP进程,并查看MRP进程是否正常:
alter database recover managed standby database disconnect from session;
select process,status from v$managed_standby;
如果dataguard创建失败,需要把pr的归档备份清理脚本enable,但是由于pr已经有dr连接,且dr端应用进程异常,会造成归档无法被清理,从而可能导致pr的归档路径和归档的备份路径都爆掉,需要回滚pr的某些参数:
alter system set log_archive_dest_2='' scope=both;
转载地址:http://qlwmf.baihongyu.com/