【DB笔试面试753】在Oracle中,将一个物理DG转换为逻辑DG有哪些步骤呢?_Oracle

♣          题目         部分

在Oracle中,将一个物理DG转换为逻辑DG有哪些步骤呢?


     
♣          答案部分          


1. 停用备库MRP进程

对于将物理备库切换到逻辑备库,需要在主库构建LogMiner字典及启用补充日志,因此应先停用备库的MRP进程,避免产生额外的Redo Apply。如果正在使用Broker管理现有的物理备库,应先在Broker中禁用目标数据库。

1alter database recover managed standby database cancel;
     

 

2. 主库构建LogMiner字典

这里字典表空间尽量大一点,不然逻辑DG搭建可能不能同步,另外,如果表空间出现问题就不能删除表空间,那么应该先把表空间数据移除,再删除LOGMNRTBS的数据。

在主库上运行:

1create tablespace logmnrtbs datafile '+DATA' size 100m autoextend on next 5m maxsize 2000m;
2execute dbms_logmnr_d.set_tablespace('logmnrtbs');
3exec dbms_logstdby.build;
     


3. 把物理备库恢复为逻辑备库

如果物理备库是RAC,那么应该修改CLUSTER_DATABASE=FALSE,然后再以exclusive模式启动,不然会报错:“ORA-19952: database should be mounted exclusively”。

关闭物理备库的2个节点数据库,然后在节点1上执行:

1ALTER SYSTEM SET CLUSTER_DATABASE=FALSE SCOPE=SPFILE SID='*';
2shutdown immediate;
3startup mount exclusive;
4ALTER DATABASE RECOVER TO LOGICAL STANDBY testdglg parallel 4;
5startup mount;
     


4. 修改备库参数、打开逻辑备用数据库、启用SQL应用

 1ALTER SYSTEM SET CLUSTER_DATABASE=TRUE SCOPE=SPFILE SID='*';
 2startup force MOUNT
 3ALTER DATABASE OPEN RESETLOGS;
 4alter database start logical standby apply immediate;
 5! ps -ef|grep -i ora_lsp
 6
 7----可以看到name自动改变,为读写模式,日志序列也从1开始
 8set line 1000
 9select inst_id,name,open_mode,database_role,protection_mode from gv$database; 
10archive log list;
11
12
13---逻辑DG日志应用情况
14SET LINE 9999 PAGESIZE 9999
15COL FILE_NAME FORMAT A120
16SELECT THREAD#,SEQUENCE#, FILE_NAME, APPLIED, TIMESTAMP 
17FROM DBA_LOGSTDBY_LOG D 
18WHERE D.SEQUENCE# >=(SELECT MAX(SEQUENCE#)-3 FROM  DBA_LOGSTDBY_LOG NB WHERE  NB.THREAD#=D.THREAD# AND NB.APPLIED='YES' ) 
19ORDER BY THREAD#,D.SEQUENCE#;
     

然后启动节点二即可。