7.添加日志文件,standby日志组的数量比redo日志组的数量多1
--主备库都执行
alter database add standby logfile group 4 ('/gp/standby/standbyrd01.log') size 50m;
alter database add standby logfile group 5 ('/gp/standby/standbyrd02.log') size 50m;
alter database add standby logfile group 6 ('/gp/standby/standbyrd03.log') size 50m;
alter database add standby logfile group 7 ('/gp/standby/standbyrd04.log') size 50m;
SQL> startup
Oracle instance started.
Total System Global Area 1073741824 bytes
Fixed Size 2089472 bytes
Variable Size 415239680 bytes
Database Buffers 591396864 bytes
Redo Buffers 65015808 bytes
Database mounted.
ORA-16004: backup database requires recovery
ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1: '/opt/dgdb/oradata/dgdb/system01.dbf'
ORA-16004: backup database requires recovery
ORA-01152: file 1 was not restored from a sufficiently old backup
ORA-01110: data file 1: '/opt/dgdb/oradata/dgdb/system01.dbf'
ALTER DATABASE OPEN
Signalling error 1152 for datafile 1!
ORA-16004 signalled during: ALTER DATABASE OPEN..
alter database recover managed standby database;
--部署之后,需要先启动redo应用,然后暂停,才能open备库,不能部署之后就马上open备库。
startup mount
8.启动redo 应用
SQL> alter database recover managed standby database disconnect from session;
alter database recover managed standby database using current logfile disconnect from session;--实时
9.检查日志应用情况
暂停应用
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
select process,status,sequence# from v$managed_standby;
-- 查看日志的应用情况,对比主从的最大序列号
select max(sequence#) from v$archived_log;
select sequence#,applied,first_time,COMPLETION_TIME from v$archived_log a;
select * from (
select sequence#,applied,first_time from v$archived_log a
where applied = 'YES' order by sequence# desc ) where rownum<=5;
-- 查看灾备模式
select a.OPEN_MODE,a.PROTECTION_MODE,a.PROTECTION_LEVEL,database_role from v$database a;
SQL> select a.OPEN_MODE,a.PROTECTION_MODE,a.PROTECTION_LEVEL,database_role from v$database a;
OPEN_MODE PROTECTION_MODE PROTECTION_LEVEL DATABASE_ROLE
---------- -------------------- -------------------- ----------------
READ ONLY MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE PHYSICAL STANDBY
-------------------------主备切换----------------------------------------
-- 主库
select switchover_status from v$database;
alter database commit to switchover to physical standby;
shutdown immediate
startup mount
--备库
select switchover_status from v$database;
alter database commit to switchover to primary;
alter database open;
show parameter db_unique
----------------------切换回来-----------------------------------
-- 主库
select switchover_status from v$database;
alter database commit to switchover to physical standby;
shutdown immediate
startup mount
SQL> select switchover_status from v$database;
SWITCHOVER_STATUS
--------------------
SWITCHOVER PENDING
SQL> alter database recover managed standby database disconnect from session;
Database altered.
SQL> select switchover_status from v$database;
SWITCHOVER_STATUS
--------------------
TO PRIMARY
--备库
select switchover_status from v$database;
alter database commit to switchover to primary;
alter database open;