Dataguard实战(9):RHEL4.5 安装 Oracle10G Dataguard 多个备库 - 转物理备库二为逻辑备库(主机vmthree)

来源:互联网 发布:国际经济数据网站推荐 编辑:程序博客网 时间:2024/05/28 05:16

九、转物理备库二为逻辑备库(主机vmthree)

9.1 主库检查(vmone)

以下sql可以确定哪些表不支持(不被支持的表通常是由于列的定义包含了不支持的数据类型):
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';
假设某张表没有主键或唯一约束,可以通过以下方式来给表增加唯一特征:
SQL> ALTER TABLE mytab ADD PRIMARY KEY (id, name) RELY DISABLE;

查看主库是否启用了supplemental logging特性:
SQL> select supplemental_log_data_pk,supplemental_log_data_ui from v$database;
SUP SUP
--- ---
NO NO
如果未启动,可以这样开启:
SQL> alter database add supplemental log data (PRIMARY KEY,unique INDEX) columns;

9.2 备库停止redo apply

SQL> RECOVER MANAGED STANDBY DATABASE CANCEL;

9.3 在主库生成LogMiner字典到redo,并归档(vmone)

build过程会等到所有事务都完成,这个步骤需要使用闪回查询技术对数据字典信息执行一致性读,故undo_retention需要设置时间长一些,3600以上,不然可能碰到ora-1555。

SQL> EXECUTE DBMS_LOGSTDBY.BUILD;
SQL> alter system archive log current;

9.4 转换物理备库为逻辑备库,同时会将db_name设置为LOGDB,会自动更新spfile

SQL> RECOVER TO LOGICAL STANDBY LOGDB;
SQL> exit
此时会自动应用未曾应用的日志。

9.5 由于修改了db_name,逻辑备库需重建密码文件,一定是要用orapw<SID>,密码和主库一样

$ orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=iamwangnc force=y

9.6 现在是一个全新的新库了,可以修改一些初始化参数,然后关闭并mount上

$ sqlplus '/as sysdba'
逻辑备库不支持以下参数,可以忽略掉。
--SQL> alter system set db_file_name_convert='' scope=both;
--SQL> alter system set log_file_name_convert='' scope=both;
SQL> shutdown immediate
SQL> STARTUP MOUNT;

9.7 打开逻辑备库,由于此时和主库事务不一致,需RESETLOGS

SQL> ALTER DATABASE OPEN RESETLOGS;

9.8 启动sql apply

SQL> alter database start logical standby apply immediate;

9.9 逻辑备库信息查询

SQL> select name,database_role,db_unique_name,open_mode,protection_mode,protection_level,switchover_status,supplemental_log_data_pk,supplemental_log_data_ui from v$database;
NAME     DATABASE_ROLE    DB_UNIQUE_NAME                 OPEN_MODE PROTECTION_MODE      PROTECTION_LEVEL     SWITCHOVER_STATUS    SUP SUP
-------- ---------------- ------------------------------ ---------- -------------------- -------------------- -------------------- --- ---
LOGDB    LOGICAL STANDBY LOGSTDBY                       READ WRITE MAXIMUM AVAILABILITY MAXIMUM AVAILABILITY NOT ALLOWED          YES YES
SQL> archive log list;
数据库日志模式            存档模式
自动存档             启用
存档终点            /orahome/arch/LOGSTDBY
最早的联机日志序列     0
下一个存档日志序列   1
当前日志序列           1
SQL> select * from v$dataguard_status;

到此主库+物理备库+逻辑备库建立完毕!!!

--End--

 

 

from:http://hi.baidu.com/edeed/blog/item/5e5590efb4f6bde8ce1b3e18.html

原创粉丝点击