在创建逻辑备库之前,必须得先创建物理备库,关于如何创建物理备库,请参考《Data Guard 系列(4) - 在不停主库的情况下创建物理备库》。

1. 在物理备库上停止日志应用服务

SYS@jkka> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

Database altered.

2. 重新设置主库为将来的角色转换做准备(switchover)

逻辑备库和物理备库不一样,在进行SQL应用的时候还会产生日志,即逻辑备库的在线重做日志,因此逻辑备库不但要对从主库传过来的Standby日志进行归档,还必须得对备库自己产生的在线日志进行归档。下面我们假定log_archive_dest_1指定standby日志的归档路径,log_archive_dest_3指定在线日志的归档路径。

虽然主库并不需要配置两个归档路径,但为了方便将来可能的角色转换(switchover),一般建议在主库中也做相应的配置。

首先,查看当前主库的log_archive_dest_1:

SYS@JKKA> show parameter log_archive_dest_1

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_1 string location=/data/oradata/jkka/archivelog
valid_for=(all_logfiles,all_roles)
db_unique_name=jkka

需要把valid_for属性修改为只对在线日志生效:

SYS@JKKA> alter system set log_archive_dest_1='location=/data/oradata/jkka/archivelog valid_for=(online_logfiles,all_roles) db_unique_name=jkka';

System altered.

接着在OS上新建standby归档目录,新增的log_archive_dest_3指向它:

SYS@JKKA> alter system set log_archive_dest_3='location=/data/oradata/jkka/archstandby VALID_FOR=(STANDBY_LOGFILES,STANDBY_ROLE) DB_UNIQUE_NAME=jkka';

System altered.

SYS@JKKA> alter system set log_archive_dest_state_3=enable;

System altered.

3. 在主库构建LogMiner字典

SYS@JKKA> EXECUTE DBMS_LOGSTDBY.BUILD;

PL/SQL procedure successfully completed.

4. 把物理备库转换成逻辑备库

SYS@jkka> ALTER DATABASE RECOVER TO LOGICAL STANDBY jkka2;

Database altered.

注意:上面的jkka2是新的逻辑备库的db_name,它必须得跟主库的db_name不一样,这点和物理备库不一样。

上述语句执行成功后,会把备库的db_name修改成新的名字jkka2,关闭备库,重启至mount状态让其生效:

SQL> shutdown immediate
SQL> startup mount

5. 调整逻辑备库参数

这一步和第二步类似,首先查看当前的log_archive_dest_1的配置:

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_1 string location=/data/oradata/jkka/archivelog
valid_for=(all_logfiles,all_roles)
db_unique_name=jkka2

需要把valid_for属性修改为只对在线日志生效:

SYS@jkka> alter system set log_archive_dest_1='location=/data/oradata/jkka/archivelog valid_for=(online_logfiles,all_roles) db_unique_name=jkka2';

System altered.

log_archive_dest_2保持不变:

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_2 string service=jkkapri ASYNC
VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) db_unique_name=jkka

在OS上新建standby归档目录,新增的log_archive_dest_3指向它:

SYS@jkka> alter system set log_archive_dest_3='location=/data/oradata/jkka/archstandby VALID_FOR=(STANDBY_LOGFILES,STANDBY_ROLE) DB_UNIQUE_NAME=jkka2';

System altered.

SYS@jkka> alter system set log_archive_dest_state_3=enable;

System altered.

6)已resetlogs方式打开逻辑备库

alter database open resetlogs;
ALTER DATABASE START LOGICAL STANDBY APPLY IMMEDIATE;

[Oracle] Data Guard 系列(5) - 创建逻辑备库的更多相关文章

  1. Oracle Data Guard 创建物理Standby数据库

    创建物理备库 机器名                    a1                    a2                    IP:                    192 ...

  2. Oracle Data Guard

    DG 是 Oracle Data Guard 的简称.也就是Oracle11g的 数据卫士. 由于在工作中 Oracle和 SQL SERVER2008 同时都需要维护管理.给我的感觉这里的 DG 其 ...

  3. (转)Oracle Data Guard学习

    一.Data Guard提供如下三种数据保护模式: 1)最高保护模式(Maximum Protection) 这里的”最高保护“是指最大限度的保护数据不丢失,也就是至少有一个standby和prima ...

  4. Oracle Data Guard 重要配置参数

    Oracle Data Guard主要是通过为生产数据库提供一个或多个备用数据库(是产生数据库的一个副本),以保证在主库不可用或异常时数据不丢失并通过备用数据库继续提供服务.对于Oracle DG的配 ...

  5. Oracle data guard学习

    Oracle data guard学习:三思笔记 Data guard 1data guard结构: data guard是一个集合,由一个primary数据库(生产数据库)和一个或多个standby ...

  6. 在物理 Data Guard 中对异构主备系统的支持 (文档 ID 1602437.1)

    Data Guard中主数据库与物理备用数据库(Redo Apply)之间可以有什么差别?本说明针对重做应用和 Oracle Data Guard 12 发行版 1 进行了更新.它适用于 Oracle ...

  7. Oracle Data Guard的配置

    概述 Oracle Data Guard 是针对企业数据库的最有效和最全面的数据可用性.数据保护和灾难恢复解决方案.它提供管理.监视和自动化软件基础架构来创建和维护一个或多个同步备用数据库,从而保护数 ...

  8. Oracle Data Guard配置

    Oracle Data Guard 的配置在网上有很多资料,但是没有一个完整的,配置下来多少有些问题.在踩了各种坑之后,自己终于配置成功,就想把这过程记录下来. 1   测试环境 主数据库:windo ...

  9. Oracle data guard 10g 搭建

    Oracle data guard 10g 搭建 1系统常规参数检查 硬盘 [root@localhost ~]# df -h 内核 [root@localhost ~]# uname -a [roo ...

随机推荐

  1. Socket,非阻塞,fcntl

    一.fcntl 用以下方法将socket设置成为非阻塞方式 int  flags = fcntl(socket,F_GETFL,0); fcntl(socket,F_SETFL,flags|O_NON ...

  2. jQuery ajax - getScript() 方法和getJSON方法

    实例 使用 AJAX 请求来获得 JSON 数据,并输出结果: $("button").click(function(){ $.getJSON("demo_ajax_js ...

  3. ACM—Number Sequence(HDOJ1005)

    原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1005 主要内容: A number sequence is defined as follows: f ...

  4. Hibernate(三)——框架中的关系映射

    在设计数据库时我们会考虑,表与表之间的关系,例如我们前边经常提到的一对一,一对多,多对多关系,在数据库中我们通过外键,第三张表等来实现这些关系.而Hibernate时间实体类和数据库中的表进行的映射, ...

  5. android jni ——Field & Method --> Accessing Field

    现在我们知道了怎样使用native code访问简单的数据类型和引用参考类型(string,array),下面我们来介绍怎样让jni代码去访问java中的成员变量和成员函数,然后可以再jni中回调ja ...

  6. OJ2.0userInfo页面Modify逻辑bug修复,search功能逻辑实现

    这周的主要任务:userInfo页面Modify逻辑bug修复,search功能逻辑实现. (一)Modify逻辑bug修复: 这里存在的bug就是在我们不重置password的时候依照前面的逻辑是不 ...

  7. Oracle 10g轻量级客户端安装[转]

    http://www.oracle.com/technetwork/cn/topics/winsoft-095945-zhs.html oracle技术官方网 http://www.oracle.co ...

  8. Git 笔记一 Git简介

    git 笔记一 什么是版本控制 所谓版本控制就是记录对文件的修改记录,这样以后就能回退到需要的 版本.比如你对一段代码进行了几次修改,有几次修改不想要了,如果 使用了版本控制,就可以回退到未做这些修改 ...

  9. C#/.Net Post获取数据流的一种简单写法

    最近在弄一些第三方的平台,经常调用第三方的接口实现某些特定的功能 在实现的同时基本上都需要本地的数据经过服务器在Request到第三方的服务器中处理,再返回相应的数据结构体:json/xml 以下是我 ...

  10. 不用position,让div垂直居中

    先弄懂after伪类的用法,就可以很容易理解了. <!DOCTYPE html> <html lang="en"><head> <meta ...