建立逻辑standby

1、查看主数据库中有无不支持的字段

SQL> select * from DBA_LOGSTDBY_UNSUPPORTED;

 

2、下面的语句,standby端将不在执行

ALTER DATABASE
ALTER MATERIALIZED VIEW
ALTER MATERIALIZED VIEW LOG
ALTER SESSION
ALTER SYSTEM
CREATE CONTROL FILE
CREATE DATABASE
CREATE DATABASE LINK
CREATE PFILE FROM SPFILE
CREATE MATERIALIZED VIEW
CREATE MATERIALIZED VIEW LOG
CREATE SCHEMA AUTHORIZATION
CREATE SPFILE FROM PFILE
DROP DATABASE LINK
DROP MATERIALIZED VIEW
DROP MATERIALIZED VIEW LOG
EXPLAIN
LOCK TABLE
SET CONSTRAINTS
SET ROLE
SET TRANSACTION

 

3、确定在主数据库上,补充日志是否被启用,可以查询v$database


SQL> select supplemental_log_data_pk,supplemental_log_data_ui from v$database;

 

4、找出不被支持的表

SQL> 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';

 

5、创建rely 的主键约束

SQL> alter table t1 add primary key (id) rely disable; ------确定是唯一

 

6、取消standby的redo应用

SQL>alter database recover managed standby database cancel;

 

7、主库完整数据字典,并传到备库


SQL> execute dbms_logstdby.build;

 

 8、备库执行转换命令

SQL> alter database recover to logical standby rac3;
alter database recover to logical standby rac3
*
ERROR at line 1:
ORA-19953: database should not be open   --------------此时报错正常

 

9、关闭数据库并启动到mount状态

SQL> shutdown immediate

SQL> startup mount
SQL> select database_role from v$database;

DATABASE_ROLE
----------------
LOGICAL STANDBY   ---------------已经转化过来了

 

10、再次执行转化

SQL> alter database recover to logical standby rac3;

SQL> show parameter db_name

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_name                              string      RAC3

 

11、重构备库密码文件

orapwd file=/home/oracle/product/10.2.0/db_1/dbs/orapwrac3 password=oracle entries=5;

 

12、查看备库归档路径和接受路径(要不同)

SQL> show parameter standby_ar

SQL> show parameter   log_archive

 

13、创建备库log

SQL> alter database add standby logfile group 4 ('/home/oracle/oradata/rac1/standbyrd01.log') size 20M;

SQL> alter database add standby logfile group 4 ('/home/oracle/oradata/rac1/standbyrd01.log') size 20M;

SQL> alter database add standby logfile group 6 ('/home/oracle/oradata/rac1/standbyrd03.log') size 20M;

SQL> select member from v$logfile;

 

14、打开数据库

SQL> alter database open resetlogs;

 

15、应用逻辑备库

SQL> alter database start logical standby apply immediate;

 

 16、验证时,必须用普通用户

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值