以下粗體部分是需要执行的重要部分,请注意。
一 . 前期检查工作
主库上操作 :
SELECT NAME,CREATED,LOG_MODE,OPEN_MODE,DATABASE_ROLE,FORCE_LOGGING FROM
V$DATABASE; 确认数据库处于自动归档模式,如果不是,修改为自动归档模式 。
执行此句 ALTER DATABASE FORCE LOGGING;
备注: ALTER DATABASE NO FORCE LOGGING; 在所有建立Logical Standby 工作完成后取
消force logging .
另外,在创建逻辑备库时确保在主数据库中做配置使用的账号有以下数据库角色权限:
a、logstdby_administrator 角色, 用来使用逻辑备用功能
b、select_catalog_role 角色, 能够访问所有数据字典视图。
这里我们选用sys 来进行操作。
我们需要通过查询主库中视图DBA_LOGSTDBY_UNSUPPORTED 来确定主数据库中是否
含有不支持的对象 (如果有,可能需要做一些调整才能继续) :
SQL> SELECT * FROM DBA_LOGSTDBY_UNSUPPORTED;
该视图显示包含不被逻辑STANDBY 支持的数据类型的表的列名及该列的数据类型.
SELECT OWNER,TABLE_NAME FROM DBA_LOGSTDBY_NOT_UNIQUE
WHERE (OWNER,TABLE_NAME) NOT IN (SELECT DISTINCT OWNER,TABLE_NAME FROM
DBA_LOGSTDBY_UNSUPPORTED)
AND BAD_COLUMN = 'Y';
该语句在主库中检查SQL 应用能否唯一识别表列,找出不被支持的表.
确定在主数据库上,补充日志是否被启用,可以查询v$database,如下:
SQL> select supplemental_log_data_pk,supplemental_log_data_ui from v$database;
SUP SUP
‐‐‐
YES YES
如果主库中存在不符合要求的table, 补充日志没有被启用, 且确实没有办法加入PK
或非空唯一索引,那么在Primary DB上启用补充日志:
SQL> alter database add supplemental log data(primary key,unique index)
columns;
在主库上创建一个新的表空间,用于LogMiner,否则Logical Standby 需要的对象
Oracle10g Logical Standby 建立及管理
将默认创建在SYSTEM 表空间中(这是比较危险的)。( 这一步在ORACLE 文档中似乎没有提
到,这里是为了不影响system 表空间而引入的 ) 。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/12137615/viewspace-617343/ ,如需转载,请注明出处,否则将追究法律责任。