- 浏览: 4405139 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (634)
- Oracle日常管理 (142)
- Oracle体系架构 (45)
- Oracle Tuning (52)
- Oracle故障诊断 (35)
- RAC/DG/OGG (64)
- Oracle11g New Features (48)
- DataWarehouse (15)
- SQL, PL/SQL (14)
- DB2日常管理 (9)
- Weblogic (11)
- Shell (19)
- AIX (12)
- Linux/Unix高可用性 (11)
- Linux/Unix日常管理 (66)
- Linux桌面应用 (37)
- Windows (2)
- 生活和工作 (13)
- 私人记事 (0)
- Python (9)
- CBO (15)
- Cognos (2)
- ORACLE 12c New Feature (2)
- PL/SQL (2)
- SQL (1)
- C++ (2)
- Hadoop大数据 (5)
- 机器学习 (3)
- 非技术 (1)
最新评论
-
di1984HIT:
xuexilee!!!
Oracle 11g R2 RAC高可用连接特性 – SCAN详解 -
aneyes123:
谢谢非常有用那
PL/SQL的存储过程和函数(原创) -
jcjcjc:
写的很详细
Oracle中Hint深入理解(原创) -
di1984HIT:
学习了,学习了
Linux NTP配置详解 (Network Time Protocol) -
avalonzst:
大写的赞..
AIX内存概述(原创)
本文主要介绍将DataGuard的物理standby转换至逻辑standby,有关于物理standby的搭建可以参见
http://czmmiao.iteye.com/blog/911083
搭建逻辑备库前的注意事项
初始化参数配置
初始化参数的修改并不仅仅只是在待创建的Standby数据库端创建,当前的Primary数据库甚至同一个Data Guard配置中的其他Standby数据库的初始化参数都有可能需要进行修改。
对于Primary数据库,至少需要新增一个LOG_ARCHIVE_DEST_n参数,以发送REDO数据到新的Standby端,同时其他一些与Standby环境相关的参数也会涉及调整,如LOG_ARCHIVE_CONFIG及FAL_*等参数。
而对于现有的Standby数据库(如果有的话),主要是基于角色转换的考虑,有必要对一些参数提前进行设置,设置的参数对当前功能不会有任何影响或促进,如果确定不进行角色转换,那么同一个Data Guard配置中的其他Standby数据库初始化参数也可以不做任何调整。
监听和NetService配置
建议用Net Manager 工具来配置,这样不容易出现错误。
创建密钥文件
必须确保在同一个Data Guard环境中,所有数据库的SYS用户拥有相同密码,建议从其他服务器复制密钥文件到本地,然后按照密钥文件名的格式修改文件名即可。
注意Windows平台和Linux/UNIX平台下,密钥文件名的命名格式并不相同,Windows平台下密钥文件名格式为PWD[sid].ora,而Linux/UNIX平台下密钥文件名格式为orapw[sid],注意文件名的大小写哟。
停止物理备库的redo应用
SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
Database altered.
Primary数据库生成数据字典
执行下列过程,生成LogMiner字典信息:
SQL> EXECUTE DBMS_LOGSTDBY.BUILD;
PL/SQL procedure successfully completed.
该过程专门用于生成记录的元数据信息到redo log,这样改动才会被传输到逻辑standby,然后才会被逻辑standby进行SQL应用。
提示:
该过程会自动启用primary数据库的补充日志(supplemental logging)功能(如果未启用的话)。
该过程执行需要等待当前所有事务完成,因此如果当前有较长的事务运行,可能该过程执行也需要多花一些等待时间。
该过程是通过闪回查询的方式来获取数据字典的一致性,因此oracle初始化参数UNDO_RETENTION值需要设置的足够大。
注意:在Primary生成数据字典前,一定要确保待转换的物理Standby数据库已经停止REDO应用。如果已经启用了REDO应用,执行下列语句停止REDO应用:
控制文件中记录了日志文件的应用状态,正常情况下一个日志文件只会被应用一次,如果Primary生成的数据字典信息被物理Standby数据库应用了,等该物理Standby转换成逻辑Standby数据库时(不应用数据字典不代表就不能执行转换哟)就不会再应用这些文件,自然也没有Primary数据库对象的元数据,这可能会导致这部分对象的修改不能被逻辑Standby正常应用。
我们操作的根本目的是为了让逻辑Standby能够应用到这部分数据字典信息,只要能够实现这一点,是否暂停REDO应用或什么时间暂停REDO应用就无所谓了。这也我们理解另外一个问题,如果Primary生成LogMiner字典信息时,待转换的物理Standby数据库没有暂停REDO应用怎么办?好办,马上暂停REDO应用,然后Primary数据库重新生成一下LogMiner字典信息就是。
转换物理Standby为逻辑Standby
执行下列语句,转换物理Standby为逻辑Standby:
SQL> SHOW PARAMETER DB_NAME
NAME TYPE VALUE
---------------------- ----------- ------------------------------
db_name string orcl
SQL> ALTER DATABASE RECOVER TO LOGICAL STANDBY LGDG;
Database altered.
执行完该语句之后,关闭数据库并重新启动到MOUNT状态:
SQL> SHUTDOWN IMMEDIATE
ORA-01507: database not mounted
ORACLE instance shut down.
SQL> STARTUP MOUNT;
ORACLE instance started.
Total System Global Area 167772160 bytes
Fixed Size 1218316 bytes
Variable Size 79694068 bytes
Database Buffers 83886080 bytes
Redo Buffers 2973696 bytes
Database mounted.
为什么要重启?因为上述操作涉及逻辑Standby数据库更名,包括DBID、INCARNATION等均已被重新初始化。
再次查看DB_NAME参数和数据库角色:
SQL> SHOW PARAMETER DB_NAME;
NAME TYPE VALUE
-------------------------- ----------- ------------------------------
db_name string LGDG
SQL> SELECT DATABASE_ROLE FROM V$DATABASE;
DATABASE_ROLE
----------------
LOGICAL STANDBY
现在DB_NAME和数据库的角色都已经被修改。
4调整逻辑Standby数据库初始化参数
设置重做日志文件路径,将本地生成的归档文件和Primary数据库发送来的归档文件分开,存放到不同目录内,注意归档文件路径不要冲突,修改参数如下:
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=/u01/archive VALID_FOR=(ONLINE_LOGFILES, ALL_ROLES) DB_UNIQUE_NAME=LGDG';
# LGDG 是dg之间区分主库和备库的唯一名中配置的
System altered
.
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_3='LOCATION=/u01/std
VALID_FOR=(STANDBY_LOGFILES, STANDBY_ROLE) DB_UNIQUE_NAME=LGDG';
System altered.
增加standby redo logfile
SQL>alter database add standby logfile group 4 '/u01/app/oracle/oradata/orcl/standby04.dbf' size 50M;
SQL>alter database add standby logfile group 5 '/u01/app/oracle/oradata/orcl/standby05.dbf' size 50M;
5调整逻辑Primary数据库初始化参数
SQL> alter system set log_archive_dest_1='location=/u01/archive valid_for=(online_logfiles,all_roles) db_unique_name=orcl_pd';
System altered.
SQL> alter system set log_archive_dest_3='location=/u01/std valid_for=(standby_logfiles,standby_role) db_unique_name=orcl_pd';
System altered.
SQL>alter database add standby logfile group 4 '/u01/app/oracle/oradata/orcl/standby04.dbf' size 50M;
SQL>alter database add standby logfile group 5 '/u01/app/oracle/oradata/orcl/standby05.dbf' size 50M;
6打开逻辑Standby
由于逻辑Standby与Primary数据库事务并不一致,因此第一次打开时必须指定RESETLOGS子句,执行语句如下:
SQL> ALTER DATABASE OPEN RESETLOGS;
Database altered.
然后执行下列SQL命令开始应用REDO数据:
SQL> ALTER DATABASE START LOGICAL STANDBY APPLY ;
Database altered.
重新执行启动REDO应用的命令,附加APPLY IMMEDIATE子句,以打开实时应用(由于当前REDO应用已经启动,因此我们首先停止REDO应用):
SQL> ALTER DATABASE STOP LOGICAL STANDBY APPLY;
Database altered.
SQL> ALTER DATABASE START LOGICAL STANDBY APPLY IMMEDIATE;
Database altered.
7验证环境
所有配置完成,接下来尝试在Primary数据库端执行修改操作,看看是否能够分别在逻辑Standby和物理Standby端应用。
首先在Primary数据库端执行下列语句,向tmp1表插入一条新记录并提交:
SQL> insert into scott.dept values(1,'dave','dmm');
1 row created.
SQL> commit;
Commit complete.
SQL> alter system switch logfile;
System altered.
接下来看看逻辑Standby的同步情况:
SQL> select * from scott.dept;
DEPTNO DNAME LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
1 dave dmm
提示: 细心观察重做日志,发现逻辑Standby有一点设计得很好,从Primary数据库接收到的重做日志文件文件,应用过之后就会自动删除,节省了磁盘空间。
OK,至此逻辑Standby创建成功.
参考至:http://ylw6006.blog.51cto.com/470441/676137
http://www.5ienet.com/note/html/dg/logical-standby-created-step-by-step.shtml
http://blog.csdn.net/tianlesoftware/article/details/5564179
本文原创,转载请注明出处、作者
如有错误,欢迎指正
邮箱:czmcj@163.com
发表评论
-
Duplicate a Database Using RMAN in Oracle Database 11g Release 2
2016-11-03 15:38 976Duplicate a Database Using RMA ... -
grid control 安装总结 (三)之EMD upload error: uploadXMLFiles skipped或忘记OMS密码
2014-11-17 17:16 2821[oracle@anbob agent10g]$ bin/e ... -
Grid Control服务端看不到Agent相关信息,同时OMS状态为unknown处理
2014-11-17 17:14 2194一次Grid Control的agent是启动的,但是在GC ... -
给11gR2 RAC添加LISTENER监听器并静态注册
2014-10-22 17:52 3225之前有同学想要给11gR2的RAC添加LISTENER监听器 ... -
HOW TO REMOVE CRS AUTO START AND RESTART FOR A RAC INSTANCE
2014-10-12 20:08 1505Subject: HOW TO REMOVE CRS AU ... -
How To Enable Archive Logging In RAC Environment [ID 1186764.1]
2014-10-12 19:45 1043How To Enable Archive Logging ... -
Oracle 11g RAC使用Manual和Policy Managed方法配置
2014-10-12 17:25 8919软件环境: 操作系统:Red Hat Enterpris ... -
Moving OCR and Voting Disk to Oracle ASM Online
2014-10-12 16:35 2691Prior Oracle 11gR2, it was only ... -
Oracle 11g R2的启动与关闭(原创)
2014-10-10 15:04 27240概述 Oracle 11gR2 中对CRSD资源进行了重新 ... -
重新配置与卸载11gR2 Grid Infrastructure
2014-10-10 08:24 2334概述Oracle 11g R2 Grid Infrastru ... -
Data Guard Broker Properties
2014-10-07 16:15 1024Data Guard Broker Properties ... -
Data Guard - Snapshot Standby Database配置
2014-10-07 07:39 987概述一般情况下,物理standby数据库处于mount状态 ... -
Active Data Guard
2014-10-06 19:27 904Oracle Active Data Guard is a ... -
Data Guard Broker系列之六:Fast-Start Failover
2014-10-06 18:29 3110Fast-Start Failover 基本概念 Fa ... -
Data Guard Broker系列之五:数据库角色转换
2014-10-06 18:28 1295数据库转换的基本概 ... -
Data Guard Broker系列之四:数据库管理
2014-10-06 18:27 1240数据库状态管理 数据 ... -
Data Guard Broker系列之三:Data Guard Broker配置管理
2014-10-06 16:56 1297配置data guard broker配置文件基本参数 ... -
Data Guard Broker系列之二:Data Guard Broker配置实战
2014-10-05 16:16 1615配置之前DG环境状态 测试的DG环境安装在同一个机器上, ... -
Data Guard broker系列之一:Data Guard Broker基础
2014-10-05 16:13 2320Data Guard broker概览 Data ... -
Dataguard切换保护模式(从MAXIMUM PERFORMANCE 到 maximize availability)
2014-10-05 14:52 12861. 首先查看主库当前保护模式(主库操作)SQL> s ...
相关推荐
然后,要在主库上创建备份并传输到备库,接着在备库上恢复这些备份,并启用物理备库模式。这个过程中,重做日志的实时应用(Real-time apply)是保持主备同步的关键,它会将主库产生的重做日志实时传送到备库并应用...
在这个配置文档中,我们将深入了解物理备库的设置,这是DataGuard的一种形式,它提供了与主数据库完全一致的副本。物理备库在物理结构上与主库相同,通过块对块的复制保证数据的一致性。 首先,我们来看看物理备库...
MRP 进程是 DataGuard 的核心进程,负责将redo日志从主库传输到备库。可以使用以下 SQL 语句来检查 MRP 进程的状态: SELECT PROCESS FROM V$MANAGED_STANDBY WHERE PROCESS LIKE 'MRP%'; 2. 确定备库是否启用 ...
### Oracle Dataguard 逻辑 Standby 建立详解 #### 一、Oracle Dataguard 概述 Oracle Dataguard 是 Oracle 数据库提供的一种高可用性和灾难恢复解决方案,通过在主数据库(Primary Database)与备数据库(Standby...
播布客Oracle DataGuard物理备库快速实战演示
Oracle 10g RAC 环境下的 DataGuard 备库搭建实例是一个重要的数据库高可用性和灾难恢复方案。DataGuard 提供了主库和备库之间的实时数据复制,确保在主库出现故障时,备库能够快速接管,保证业务连续性。在 RAC ...
Oracle Dataguard 支持多种类型的备库:物理备库、逻辑备库以及快照备库。其中,物理备库是与主库具有相同结构和数据副本的数据库,它能够接收并应用来自主库的日志文件,从而保持数据同步。本文主要介绍的是如何...
3. 启动备库 4. 修改相关配置文件完成主备自动同步 热备法 热备法是 Oracle Dataguard 创建方法中的一种,优点是无需停止主库服务,但缺点是操作比较复杂,操作过程对主库性能影响比较大。 热备法的操作步骤如下...
在进行高可用Dataguard 主备切换时,需要确保主备库之间的数据是一致的。如果主备库之间的数据不同步,需要执行以下命令来重新同步: SQL> alter database recover managed standby database using current logfile...
在数据库管理领域,尤其是Oracle数据库环境中,DataGuard是一种常用的数据保护解决方案,它通过创建物理或逻辑备用数据库来提供高可用性和灾难恢复能力。归档日志是DataGuard体系中的关键组成部分,它们记录了数据库...
本文档详细介绍了如何搭建 Oracle Dataguard 物理备库,包括配置 tnsnames.ora 文件、创建口令文件、配置备库参数、启动备库等步骤。通过本文档,读者可以了解 Dataguard 的基本概念和搭建流程,了解如何使用 ...
为了实现灾备恢复,需要创建主库的初始化参数给备库用。使用以下SQL语句来实现: SQL>Create pfile from spfile; 生成的文件名为 initcz2013.ora,存放目录默认放在$ORACLE_HOME/database 下。 5. 在主库创建监听...
在Oracle数据库环境中,为了确保数据的安全性和系统的高可用性,通常会采用Oracle Dataguard技术来构建主备库(Primary and Standby Databases)。当主库(Primary Database)发生故障时,可以将物理备库(Physical ...
### ORACLE DataGuard 创建步骤详解 #### 一、前期准备工作 在进行Oracle DataGuard物理Standby数据库的创建之前,确保所有必要的准备工作都已经完成,并且配置正确。这些准备工作分为软件部分和硬件部分。 #####...
Oracle DataGuard 是一种基于数据库的高可用性解决方案,它提供了自动 Failover 和 Switchover 功能,能够在主库宕机或故障的情况下自动切换到备库,从而保证数据库的高可用性。 Switchover 切换是指在主库与备库...
在 DataGuard 中,数据库角色可以切换为主库或备库。Primary 角色是数据库的主角色,负责提供数据库访问,而 Standby 角色是数据库的备用角色,负责实时备份数据库。数据库角色切换可以通过 Switchover 或 Failover ...
7. 在主库上建立备库控制文件 三、 备库配置 1. 准备备库参数文件 2. 创建11g数据库基本目录 3. 修改配置lisener监听文件 4. 修改配置tnsname.ora文件 5. 重启监听服务(主库备库都要执行) 6. 启动备库到...
Oracle数据库的Data Guard技术是Oracle提供的数据保护解决方案,它可以通过创建一个或多个物理或逻辑备用来提供数据保护。Data Guard确保生产数据库的数据可以同步到一个或多个备数据库上,以便在主数据库出现故障时...