重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4527|回复: 0
打印 上一主题 下一主题

[Oracle] 物理备库切换为逻辑备库步骤

[复制链接]
跳转到指定楼层
楼主
发表于 2020-4-26 15:40:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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>
  

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2024-11-30 11:55 , Processed in 0.082462 second(s), 21 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表