Logical standby database 搭建(配置)

Posted ZhenXing_Yu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Logical standby database 搭建(配置)相关的知识,希望对你有一定的参考价值。

说明

Logical standby 数据库是通过Physical standby数据库转换的。
Logical standby是通过之前创建的Physical standby转换的。
Physical standby搭建可参考下列链接: http://www.cnblogs.com/zhenxing/p/5260693.html

 

逻辑DG支持的数据类型

在从物理DG转换为逻辑DG前,先需要确定逻辑DG支持的数据类型和支持哪些DDL操作,可参考下列链接:

http://docs.oracle.com/cd/B28359_01/server.111/b28294/data_support.htm#CHDDCCIG

 

转换主要需要进行的操作

主库
    创建主库作为逻辑备库时的在线日志归档路径(作为备库时生效)
    执行构建LogMiner需要的数据字典生成语句

备库:
    停止逻辑备库的日志应用
    创建作为逻辑备库时的在线日志归档路径(接受主库传送过来的归档日志)
    切换数据库成逻辑备库并设置新的db_name
    重启数据库到mount模式
    以resetlogs方式打开数据库
    启用实时日志应用

 

系统说明

主库:

IP:172.25.21.111
Linux:RHEL6.4
DB:Oracle 11.2.0.4
SID:siebuat


备库:

IP:172.25.21.222
Linux:RHEL6.4
DB:Oracle 11.2.0.4
SID:uatldg

 

具体步骤

 

--------------------------------主库--------------------------------

1、创建主库作为逻辑备库时的在线日志归档路径(作为备库时生效)

alter system set log_archive_dest_3=\'location=/oracle/ldg_archivelog valid_for=(standby_logfiles,standby_role) db_unique_name=siebuat\'

--确保存在ldg_archivelog这个目录

 

2、执行构建LogMiner需要的数据字典生成语句

EXECUTE DBMS_LOGSTDBY.BUILD;

 

--------------------------------备库--------------------------------


1、停止物理备库的日志应用

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

2、创建作为逻辑备库时的在线日志归档路径(接受主库传送过来的归档日志)

alter system set log_archive_dest_3=\'location=/oracle/ldg_archivelog valid_for=(standby_logfiles,standby_role) db_unique_name=uatldg\'--主库的归档日志接收路径
alter system set log_archive_dest_1=\'location=/oracle/archivelog valid_for=(online_logfiles,all_roles) db_unique_name=uatldg\'--本地的归档存放路径

3、查看数据当前状态、角色信息

SELECT SWITCHOVER_STATUS,
       DATABASE_ROLE,
       OPEN_MODE,
       PROTECTION_MODE,
       PROTECTION_LEVEL
  FROM V$DATABASE;

 

4、切换数据库成逻辑备库并设置新的db_name

alter database recover to logical standby uatldg; --这里我直接设定新db name为uatldg,转换前和主库一样是siebuat

 

5、重启数据库到mount模式

SHUTDOWN IMMEDIATE;
STARTUP MOUNT;

--再次查看数据库状态,已经转换成了逻辑备库
SELECT SWITCHOVER_STATUS,
       DATABASE_ROLE,
       OPEN_MODE,
       PROTECTION_MODE,
       PROTECTION_LEVEL
  FROM V$DATABASE;
 

6、以resetlogs方式打开数据库

ALTER DATABASE OPEN RESETLOGS;

7、启用实时日志应用

alter database start logical standby apply immediate;--实时
alter database start logical standby apply;--不实时

alter database stop logical standby apply;--取消日志应用

8、测试数据同步是否成功

1、主库scott用户下新建一个表或修改一条记录

2、查看备库是否同步成功,如果同步不成功,需要查看alert日志和相关视图查看是否配置有问题。

9、注意事项

/*

在测试数据是否正常同步时,不要使用数据库的内部账号 逻辑dg在默认情况下不传输系统用户下,用户自行创建的数据 如,在sys用户下创建一个test表,这个表不会同步到逻辑备库 可以使用下列语句查看哪些用户作为内部用户

*/ SELECT OWNER FROM DBA_LOGSTDBY_SKIP WHERE STATEMENT_OPT = \'INTERNAL SCHEMA\';

10、参考文档

http://docs.oracle.com/cd/B28359_01/server.111/b28294/create_ls.htm#g105412

http://www.cnblogs.com/zhenxing/p/5260693.html

 

以上是关于Logical standby database 搭建(配置)的主要内容,如果未能解决你的问题,请参考以下文章

Oracle Dataguard管理命令(logical standby)

[Oracle][DATAGUARD] 关于确认LOGICAL STANDBY的同期状况的方法

Logical STANDBY日志应用延迟案例一则

Data Guard - Snapshot Standby Database配置

物理standby database的日常维护

RMAN使用RMAN增量备份刷新 Standby Database