1、检查及处理丢失的文档
SQL> select sequence#,applied from dba_logstdby_log;(备库)
通过对比主库log号,进行对比,如果不同序号,
则将主库log文件拷贝到备库相应位置,并注册
alter database register logical logfile
2、检查待转换逻辑standby的日志应用情况
SQL> select applied_scn,latest_scn from v$logstdby_progress;
APPLIED_SCN LATEST_SCN
----------- ----------
754411 754411
如果两值一致,表示所有接收到的归档都已经应用了。
3、检查及修正待转换逻辑standby的初始化参数
主要是本地归档日志和远程归档日志路径
SQL> show parameter dest
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest_size big integer 2G
log_archive_dest string
log_archive_dest_1 string LOCATION=/home/oracle/oradata/
archive/ VALID_FOR=(all_logfil
es,all_roles) DB_UNIQUE_NAME=r
ac1
log_archive_dest_10 string
log_archive_dest_2 string SERVICE=rac2 lgwr async VALID_
FOR=(online_logfiles,primary_r
ole) DB_UNIQUE_NAME=rac2
log_archive_dest_3 string LOCATION=/home/oracle/oradata/
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
archivelog/ VALID_FOR=(standby
_logfiles,standby_roles) DB_UN
IQUE_NAME=rac1
4、查看新的primary数据库角色
SQL> select database_role from v$database;
DATABASE_ROLE
----------------
LOGICAL STANDBY
5、转换备库为主库
停止备库接收数据
SQL> alter database activate logical standby database finish apply;
Database altered.
再次查看备库的角色
SQL> select database_role from v$database;
DATABASE_ROLE
----------------
PRIMARY
成功!!!!