[Oracle] Data Guard系列(4) - 在不停主库的情况下创建物理备库(三)
Database altered.
SYS@JKKA>ALTER DATABASE ADD STANDBY LOGFILE GROUP 13 ('/data/oradata/jkka/data/standby_redo13.log') size 100M;
Database altered.
4)创建备库的spfile,重启备库至mount或open状态
从11g开始,物理备库既可以启动至moutn,也可以启动至open
[sql]
SQL>create spfile from pfile;
File created.
SQL>shutdown immediate
SQL>startup
5)重建备库的online redo log
[sql]
SYS@jkka> alter system set standby_file_management=manual;
System altered.
SYS@jkka> alter system set LOG_FILE_NAME_CONVERT='/data/oradata/jkka/data/','/data/oradata/jkka/data/' scope=spfile;
System altered.
shutdown immediate;
startup;
SYS@jkka> alter database clear logfile group 1;
Database altered.
SYS@jkka> alter database clear logfile group 2;
Database altered.
SYS@jkka> alter database clear logfile group 3;
Database altered.
SYS@jkka> alter system reset LOG_FILE_NAME_CONVERT;
System altered.
shutdown immediate;
startup;
SYS@jkka> alter system set standby_file_management=auto;
System altered.
5. 备库启动redo apply
因为之前我们把log_archive_dest_state_2设为defer,现在需要在主备库中把它设为enable:
[sql]
SYS@JKKA>alter system set log_archive_dest_state_2=enable;
System altered.
现在一切都已准备就绪,可以在备库启动日志应用:
[sql]
SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
Database altered.
下面验证主备库间是否可以同步,首先查看备库当前的归档日志:
[sql]
SQL>SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;
SEQUENCE# FIRST_TIME NEXT_TIME
---------- ------------------- -------------------
504 2013-08-22 14:41:54 2013-08-22 20:32:39
从上面我们可以看出备库当前最大的归档日志为504。
然后再查看主库当前最大的归档日志也是504:
[sql]
SYS@JKKA>select max(sequence#) from v$archived_log;
MAX(SEQUENCE#)
--------------
504
我们在主库做一次日志切换,此时主库的最大归档日志为505.
[sql]
SYS@JKKA>ALTER SYSTEM SWITCH LOGFILE;
System altered.
这时再看备库的归档日志,如果505已经从主库成功拷贝至备库,说明主备库同步正常。
[sql]
SQL>SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;
SEQUENCE# FIRST_TIME NEXT_TIME
---------- ------------------- -------------------
504 2013-08-22 14:41:54 2013-08-22 20:32:39
505 2013-08-22 20:32:39 2013-08-22 20:35:41