(完整word版)OracleDataGuard数据同步技术及配置详解
Oracle DataGuard数据同步技术及配置详解
2022的第一个红包发多少合适
一、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子目录下名称为a。
 
4. 登陆备份节点,进行数据库恢复,拷贝备用数据库控制文件和主库pfile文件
  具体做法:
  (在备机的ORACLE目录下先建好ADMIN和ORADATA两个目录) 
水滴石穿对什么    copy控制文件,数据文件以及参数文件到dbsrv2上,拷贝后要清除ARCHIVE目录下的文件。
   
    将新生成的standby。ctl和a也拷贝到dbsrv2将,l放置在d:\oracle\oradata\WDS\下,a文件放在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\a
# 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\a
# 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)
    )
  )ab型血人的性格特点
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;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。