1、停止物理备库日志的应用 停止备库的日志应用 SQL> select open_mode,DATABASE_ROLE from v$database; OPEN_MODE DATABASE_ROLE ---------------------------------------- -------------------------------- READ ONLY WITH APPLY PHYSICAL STANDBY SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL; 数据库已更改。 | 2、修改主库配置以支持逻辑备库在主库中,修改主库参数,并使主库支持逻辑备库 SQL> alter system set UNDO_RETENTION=3600; System altered. SQL> execute DBMS_LOGSTDBY.BUILD; PL/SQL procedure successfully completed. |
每次搭建逻辑备库,都需要执行这一步 3、物理备库切换到逻辑备库转换,数据库名称(db_name)会变为新的名字 orcllgdg (以前为orcl) 在备库open的状态时,或切换不了,可将数据库启动到mount状态后再切换。 SQL> shutdown immediate 数据库已经关闭。 已经卸载数据库。 ORACLE 例程已经关闭。 SQL> startup mount ORACLE 例程已经启动。 Total System Global Area 1586708480 bytes Fixed Size 2281616 bytes Variable Size 989859696 bytes Database Buffers 587202560 bytes Redo Buffers 7364608 bytes 数据库装载完毕。 SQL> ALTER DATABASE RECOVER TO LOGICAL STANDBY orcllgdg; 数据库已更改。 |
4、设置备库standby日志接收设置增加备库的LOG_ARCHIVE_DEST以接收standby日志 SQL> alter system set LOG_ARCHIVE_DEST_3='LOCATION=C:\app\wang\fast_recovery_area\orcl\STANDBYLOG VALID_FOR=(STANDBY_LOGFILES, STANDBY_ROLE) DB_UNIQUE_NAME=orcldg'; 系统已更改。 |
参考(本地归档与standblog最好分开,分别存放在各自单独的目录里) alter system set LOG_ARCHIVE_DEST_1='LOCATION=/lisodb/arch_log VALID_FOR=(ONLINE_LOGFILES, STANDBY_ROLE) DB_UNIQUE_NAME=lisodb'; alter system set LOG_ARCHIVE_DEST_3='LOCATION=/lisodb/standby_log VALID_FOR=(STANDBY_LOGFILES, STANDBY_ROLE) DB_UNIQUE_NAME=lisodb'; |
5、打开逻辑备库将逻辑备库切换到open状态 SQL> ALTER DATABASE OPEN RESETLOGS; 数据库已更改。 | 6、启动日志的sql应用启用sql apply SQL> ALTER DATABASE START LOGICAL STANDBY APPLY IMMEDIATE; 数据库已更改。 | 7、查看逻辑备库打开模式以及角色 SQL> select open_mode,DATABASE_ROLE from v$database; OPEN_MODE DATABASE_ROLE ---------------------------------------- -------------------------------- READ WRITE LOGICAL STANDBY SQL> |
|