收藏 分销(赏)

Oracle-DataGuard数据同步技术及配置详解.doc

上传人:仙人****88 文档编号:9197425 上传时间:2025-03-16 格式:DOC 页数:8 大小:49.54KB 下载积分:10 金币
下载 相关 举报
Oracle-DataGuard数据同步技术及配置详解.doc_第1页
第1页 / 共8页
Oracle-DataGuard数据同步技术及配置详解.doc_第2页
第2页 / 共8页


点击查看更多>>
资源描述
Oracle DataGuard数据同步技术及配置详解 一、DataGuard数据同步技术 DataGuard是Oracle数据库自带的数据同步功能,基本原理是将日志文件从原数据库传输到目标数据库,然后在目标数据库上应用(Apply)这些日志文件,从而使目标数据库与源数据库保持同步。DataGuard提供了三种日志传输(Redo Transport)方式,分别是ARCH传输、LGWR同步传输和LGWR异步传输。在上述三种日志传输方式的基础上,提供了三种数据保护模式,即最大性能(Maximum Performance Mode)、最大保护(Maximum Protection Mode)和最大可用(Maximum Availability Mode),其中最大保护模式和最大可用模式要求日志传输必须用LGWR同步传输方式,最大性能模式下可用任何一种日志传输方式。 最大性能模式:这种模式是默认的数据保护模式,在不影响源数据库性能的条件下提供尽可能高的数据保护等级。在该种模式下,一旦日志数据写到源数据库的联机日志文件,事务即可提交,不必等待日志写到目标数据库,如果网络带宽充足,该种模式可提供类似于最大可用模式的数据保护等级。 最大保护模式:在这种模式下,日志数据必须同时写到源数据库的联机日志文件和至少一个目标库的备用日志文件(standby redo log),事务才能提交。这种模式可确保数据零丢失,但代价是源数据库的可用性,一旦日志数据不能写到至少一个目标库的备用日志文件(standby redo log),源数据库将会被关闭。这也是目前市场上唯一的一种可确保数据零丢失的数据同步解决方案。 最大可用模式:这种模式在不牺牲源数据库可用性的条件下提供了尽可能高的数据保护等级。与最大保护模式一样,日志数据需同时写到源数据库的联机日志文件和至少一个目标库的备用日志文件(standby redo log),事务才能提交,与最大保护模式不同的是,如果日志数据不能写到至少一个目标库的备用日志文件(standby redo log),源数据库不会被关闭,而是运行在最大性能模式下,待故障解决并将延迟的日志成功应用在目标库上以后,源数据库将会自动回到最大可用模式下。 根据在目标库上日志应用(Log Apply)方式的不同,DataGuard可分为Physical Standby(Redo Apply)和Logical Standby(SQL Apply)两种。 Physical Standby数据库,在这种方式下,目标库通过介质恢复的方式保持与源数据库同步,这种方式支持任何类型的数据对象和数据类型,一些对数据库物理结构的操作如数据文件的添加,删除等也可支持。如果需要,Physical Standby数据库可以只读方式打开,用于报表查询、数据校验等操作,待这些操作完成后再将数据库置于日志应用模式下。 Logical Standby数据库,在这种方式下,目标库处于打开状态,通过LogMiner挖掘从源数据库传输过来的日志,构造成SQL语句,然后在目标库上执行这些SQL,使之与源数据库保持同步。由于数据库处于打开状态,因此可以在SQL Apply更新数据库的同时将原来在源数据库上执行的一些查询、报表等操作放到目标库上来执行,以减轻源数据库的压力,提高其性能。 DataGuard数据同步技术有以下优势: 1) Oracle数据库自身内置的功能,与每个Oracle新版本的新特性(如ASM)都完全兼容,且不需要另外付费; 2) 配置管理较简单,不需要熟悉其他第三方的软件产品; 3) Physical Standby数据库支持任何类型的数据对象和数据类型; 4) Logical Standby数据库处于打开状态,可以在保持数据同步的同时执行查询等操作; 5) 在最大保护模式下,可确保数据的零丢失; DataGuard数据同步技术的劣势体现在以下几个方面: 1) 由于传输整个日志文件,因此需要较高的网络传输带宽; 2) Physical Standby数据库虽然可以只读方式打开,然后做些查询、报表等操作,但需要停止应用日志,这将使目标库与源数据不能保持同步,如果在此期间源数据库发生故障,将延长切换的时间; 3) Logical Standby数据库不能支持某些特定的数据对象和数据类型; 4) 不支持一对多复制,不支持双向复制,因此无法应用于信息集成的场合; 5) 只能复制整个数据库,不能选择某个schema或表空间进行单独复制; 6) 不支持异构的系统环境,需要相同的操作系统版本和数据库版本; DataGuard技术是Oracle推荐的用于高可用灾难恢复环境的数据同步技术。 二、ORACLE Dataguard配置步骤      说明:主服务器dbsrv1(10.55.88.1),standby服务器dbsrv2(10.55.88.2),两台机器都安装相同版本的数据库,安装在相同位置,安装时都不创建数据库,本例中数据库都安装在d:\oracle下,数据库版本oracle 9.2.0.1 1. 在dbsrv1用dbca(数据库创建助手)创建一个归档数据库 2. 设置主节点为force Logging模式(为了双向切换,建议备用节点也设置为force logging模式)   具体做法:   sqlplus /nolog   connect / as sysdba;   ALTER DATABASE FORCE LOGGING; 3. 生成备用数据库控制文件和主库pfile文件   具体做法:   alter database create standby controlfile as 'd:\oracle\standby.ctl'; create pfile='d:\oracle\init.ora' from spfile; 关闭主数据库:shutdown immediate; 备份控制文件,数据文件以及参数文件: 控制文件和数据库文件一般在oradata下的WDS文件夹下(备份整个WDS文件夹),参数文件在oraclehome的ora92下的database子目录下名称为spfileWDS.ora.   4. 登陆备份节点,进行数据库恢复,拷贝备用数据库控制文件和主库pfile文件   具体做法:   (在备机的ORACLE目录下先建好ADMIN和ORADATA两个目录) copy控制文件,数据文件以及参数文件到dbsrv2上,拷贝后要清除ARCHIVE目录下的文件。 将新生成的standby.ctl和init.ora也拷贝到dbsrv2将,standby.ctl放置在d:\oracle\oradata\WDS\下,init.ora文件放在d:\ORACLE目录下。 (注意一定要在主和备数据库关闭状态下做这些文件的拷贝,否则拷贝出来的文件将是无效的) copy d:\oracle\admin\wds\*.* 目录拷贝到备机的相应目录下,并删除子目录里面的文件。 5. 编辑copy到dbsrv2的init.ora文件,增加 *.standby_archive_dest='d:\oracle\oradata\wds\archive' *.fal_server='wds' *.fal_client='wds_standby' *.standby_file_management=auto *.remote_archive_enable=TRUE 同时修改 *.control_files='d:\oracle\oradata\WDS\standby.ctl' 6. 配置主节点上的Listener.ora及tnsnames.ora文件 Listener.ora(在D:\oracle\ora92\network\admin下) # LISTENER.ORA Network Configuration File: d:\oracle\ora92\network\admin\listener.ora # Generated by Oracle configuration tools. LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = dbsrv1)(PORT = 1521)) ) ) ) SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = d:\oracle\ora92) (PROGRAM = extproc) ) (SID_DESC = (GLOBAL_DBNAME = WDS) (ORACLE_HOME = d:\oracle\ora92) (SID_NAME = WDS) ) ) Tnsname.ora(在D:\oracle\ora92\network\admin下) # TNSNAMES.ORA Network Configuration File: d:\oracle\ora92\network\admin\tnsnames.ora # Generated by Oracle configuration tools. WDS = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = dbsrv1)(PORT = 1521)) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = WDS) ) ) WDS_STANDBY = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = dbsrv2)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = WDS) ) ) (注意删除结尾处的空格) 改好以后将这两个文件拷贝到备机的相应文件夹下。 7. 配置备机上的standby点监听器及tnsnames.ora文件 # LISTENER.ORA Network Configuration File: d:\oracle\ora92\network\admin\listener.ora # Generated by Oracle configuration tools. LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = dbsrv2)(PORT = 1521)) ) ) ) SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = d:\oracle\ora92) (PROGRAM = extproc) ) (SID_DESC = (GLOBAL_DBNAME = WDS) (ORACLE_HOME = d:\oracle\ora92) (SID_NAME = WDS) ) ) Tnsnames.ora和主节点一样 8. 重建密码文件 到命令行: orapwd file=d:\oracle\ora92\\database\pwdwds.ora password=narisq entries=5 在dbsrv2上用oradim重建wds服务 Oradim –new –sid WDS –usrpwd narisq 在命令行输入LSNRCTL命令,用START启动监听器 sqlplus /nolog SQL>conn sys/narisq@wds_standby as sysdba SQL>create spfile from pfile='d:\oracle\init.ora'; 注意:将控制文件放到init.ora中指定的目录 SQL> startup nomount; SQL> alter database mount standby database; SQL> shutdown immediate; SQL> startup nomount; SQL> alter database mount standby database; SQL> alter database recover managed standby database disconnect from session; 数据库处于管理恢复模式下 9. 在dbsrv1上设置归档路径 SQL> startup; SQL> alter system set log_archive_dest_2='service=wds_standby LGWR reopen=60' scope=both; (修改内存和spfile文件中该参数的值) SQL> alter system switch logfile; SQL> / 在备用节点观察日志,看是否主节点的归档日志同时归档到备节点上。察看d:\oracle\admin\bdump\下的alert文件 10. 在主节点进行同样的配置,方法如下: 主备切换: 以便切换后继续日志传递,即当备节点变成主用后,主节点上能接收从备节点归档过来的日志,在d:\oracle\oradata\wds\archive\下创建目录stdarch SQL> alter system set standby_archive_dest='d:\oracle\oradata\wds\archive\stdarch'; 11. 停止主数据库,启用备用数据库,方法如下: 更改主数据库为备用状态 SQL> alter database commit to switchover to physical standby; 关闭主数据库 SQL> shutdown immediate; 在备用模式启用主数据 SQL> startup nomount; SQL> alter database mount standby database; SQL> select name,open_mode,PROTECTION_MODE,DATABASE_ROLE from v$database; SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION; 打开备用数据库(在备机上) Sqlplus /nolog SQL> Conn sys/narisq@wds_standby as sysdba SQL> alter database commit to switchover to primary; SQL> alter system set log_archive_dest_2='service=wds LGWR reopen=60' scope=both; SQL> shutdown immediate; SQL> startup SQL> alter system switch logfile; SQL> / 在主库上观察日志应用情况,察看d:\oracle\admin\bdump\下的alert文件 SQL> create table t as select * from dba_users; SQL> alter system switch logfile; 在dbsrv1上以read only打开数据库,执行查询 SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL; SQL> ALTER DATABASE OPEN READ ONLY; SQL> select username from t; 将dbsrv1切换回管理恢复模式 SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION; 12. 把数据库切换回到主节点dbsrv1上 在dbsrv2上 SQL> alter database commit to switchover to physical standby; SQL> shutdown immediate 在dbsrv1上 conn /as sysdba SQL> alter database commit to switchover to primary; SQL> shutdown immediate; SQL> startup 完成自由切换 ********************************** 把备机从恢复模式启动到只读模式 SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL; SQL>ALTER DATABASE OPEN READ ONLY; ********************************** 把备机启动到恢复模式 SQL> shutdown immediate; SQL> startup nomount; SQL> alter database mount standby database; SQL> alter database recover managed standby database disconnect from session; failover 在standby上 1. SQL>alter database recover managed standby database finish; or SQL>alter database recover managed standby database finish skip standby logfile; 2. SQL>alter database commit to switchover to primary; 3. SQL>shutdown immediate; 4. SQL>startup;
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服