sqlplus / as sysdba
shutdown immediate
startup nomount
備庫(kù)恢復(fù)新的控制文件:
rman target /
restore controlfile from '/home/oracle/standby.ctl';
備庫(kù)開(kāi)啟到mount狀態(tài):
alter database mount;
e.增量備份注冊(cè)到RMAN的catalog,取消日志應(yīng)用,恢復(fù)增量備份
確認(rèn)備庫(kù)已關(guān)閉DG同步進(jìn)程:
sqlplus / as sysdba
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
備庫(kù)rman注冊(cè)增量備份文件:
rman target /
catalog start with '/home/oracle/';
YES
備庫(kù)開(kāi)啟恢復(fù)增量備份:
recover database noredo;
f.開(kāi)啟備庫(kù)的恢復(fù)進(jìn)程
備庫(kù)開(kāi)啟日志同步進(jìn)程:
sqlplus / as sysdba
alter database openread only;
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;
主庫(kù)重新激活同步:
sqlplus / as sysdba
ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=defer;
ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=enable;
查詢是否存在GAP,確認(rèn)主備是否同步:
sqlplus / as sysdba
SELECT * FROM V$ARCHIVE_GAP;
SELECT max(sequence#) from v$archived_log where applied='YES';
SELECT PROCESS, STATUS, THREAD#, SEQUENCE#, BLOCK#, BLOCKS FROM V$MANAGED_STANDBY;
rman target /
catalog start with '/oradata/ORCL_STBY';
YES
SWITCH DATABASE TO COPY;
將備庫(kù)文件管理方式改為手動(dòng):
sqlplus / as sysdba
alter system setstandby_file_management=MANUAL;
重命名 tempfile && logfile:
sqlplus / as sysdba
##logfile
alter database clear logfile group 1;
alter database clear logfile group 2;
alter database clear logfile group 3;
alter database clear logfile group 4;
alter database clear logfile group 5;
alter database clear logfile group 6;
alter database clear logfile group 7;
alter database renamefile'/oradata/ORCL/redo03.log' to '/oradata/ORCL_STBY/redo03.log';
alter database renamefile'/oradata/ORCL/redo02.log' to '/oradata/ORCL_STBY/redo02.log';
alter database renamefile'/oradata/ORCL/redo01.log' to '/oradata/ORCL_STBY/redo01.log';
alter database renamefile'/oradata/ORCL/standby_redo04.log' to '/oradata/ORCL_STBY/standby_redo04.log';
alter database renamefile'/oradata/ORCL/standby_redo05.log' to '/oradata/ORCL_STBY/standby_redo05.log';
alter database renamefile'/oradata/ORCL/standby_redo06.log' to '/oradata/ORCL_STBY/standby_redo06.log';
alter database renamefile'/oradata/ORCL/standby_redo07.log' to '/oradata/ORCL_STBY/standby_redo07.log';##tempfile
alter database renamefile'/oradata/ORCL/temp01.dbf' to '/oradata/ORCL_STBY/temp01.dbf';
alter database renamefile'/oradata/ORCL/pdbseed/temp012021-04-11_06-13-50-844-AM.dbf' to '/oradata/ORCL_STBY/pdbseed/temp012021-04-11_06-13-50-844-AM.dbf';
alter database renamefile'/oradata/ORCL/BFA6BEE45A1E3605E053AC01A8C0DD20/datafile/o1_mf_temp_j749f5fy_.dbf' to '/oradata/ORCL_STBY/BFA6BEE45A1E3605E053AC01A8C0DD20/datafile/o1_mf_temp_j749f5fy_.dbf';
備庫(kù)重命名完后再改為自動(dòng):
sqlplus / as sysdba
alter system setstandby_file_management=AUTO;
恢復(fù)主備GAP:
recover database from service orcl noredo using compressed backupset;
sqlplus / as sysdba
col HXFNM for a100
set line222
select HXFIL File_num,substr(HXFNM,1,40) HXFNM,fhscn from x$kcvfh;
主庫(kù)切幾次歸檔
sqlplus / as sysdba
ALTER SYSTEM ARCHIVE LOG CURRENT;
ALTER SYSTEM SWITCH LOGFILE;
開(kāi)啟備庫(kù)應(yīng)用日志
sqlplus / as sysdba
alter database open;
alter pluggable database all open;
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;
查看備庫(kù)同步是否正常
sqlplus / as sysdba
set line222
col member for a60
select t1.group#,t1.thread#,t1.bytes/1024/1024,t1.status,t2.member from gv$standby_log t1,gv$logfile t2 where t1.group#=t2.group#;
主庫(kù)插入數(shù)據(jù)
sqlplus test/test@pdb01
insert into test values (999);
commit;
備庫(kù)查詢是否實(shí)時(shí)同步
alter session setcontainer=pdb01;select * from test.test;
ID
----------
12999
sqlplus / as sysdba
SQL>select member from v$logfile;
MEMBER
--------------------------------------------------------------------------------
/oradata/ORCL_STBY/redo03.log
/oradata/ORCL_STBY/redo02.log
/oradata/ORCL_STBY/redo01.log
/oradata/ORCL/standby_redo04.log
/oradata/ORCL/standby_redo05.log
/oradata/ORCL/standby_redo06.log
/oradata/ORCL/standby_redo07.log
關(guān)閉備庫(kù)文件自動(dòng)管理:
sqlplus / as sysdba
alter system setstandby_file_management=MANUAL;
清理standby log:
sqlplus / as sysdba
alter database clear logfile group 4;
alter database clear logfile group 5;
alter database clear logfile group 6;
alter database clear logfile group 7;
修改standby log路徑:
sqlplus / as sysdba
alter database renamefile'/oradata/ORCL/standby_redo04.log' to '/oradata/ORCL_STBY/standby_redo04.log';
alter database renamefile'/oradata/ORCL/standby_redo05.log' to '/oradata/ORCL_STBY/standby_redo05.log';
alter database renamefile'/oradata/ORCL/standby_redo06.log' to '/oradata/ORCL_STBY/standby_redo06.log';
alter database renamefile'/oradata/ORCL/standby_redo07.log' to '/oradata/ORCL_STBY/standby_redo07.log';
修改完后打開(kāi)備庫(kù)文件自動(dòng)管理:
sqlplus / as sysdba
alter system setstandby_file_management=AUTO;
c.主庫(kù)切日志,備庫(kù)開(kāi)啟日志應(yīng)用
檢查主備scn是否一致:
sqlplus / as sysdba
col HXFNM for a100
set line222
select HXFIL File_num,substr(HXFNM,1,40) HXFNM,fhscn from x$kcvfh;
主庫(kù)切幾次歸檔:
sqlplus / as sysdba
ALTER SYSTEM ARCHIVE LOG CURRENT;
ALTER SYSTEM SWITCH LOGFILE;
開(kāi)啟備庫(kù)應(yīng)用日志:
sqlplus / as sysdba
alter database open;
alter pluggable database all open;
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;
查看備庫(kù)同步是否正常:
sqlplus / as sysdba
set line222
col member for a60
select t1.group#,t1.thread#,t1.bytes/1024/1024,t1.status,t2.member from gv$standby_log t1,gv$logfile t2 where t1.group#=t2.group#;
主庫(kù)插入數(shù)據(jù):
sqlplus test/test@pdb01
insert into test values (999);
commit;
備庫(kù)查詢是否實(shí)時(shí)同步:
sqlplus / as sysdba
alter session setcontainer=pdb01;select * from test.test;
ID
----------
12999