快速,持续,稳定,傻瓜式
支持Mysql,Sqlserver数据同步

Oracle Dataguard物理容灾

请联系QQ:1793040 索取软件

    • 1 DG物理架构
    • 2 准备工作
      • 2.1 相关名字
        • 2.1.1 节点及实例名
        • 2.1.2 网络配置
      • 2.2 OS network
    • 3 主库准备工作
      • 3.1 修改数据库的name参数
      • 3.2 配置主库TNS
      • 3.3 配置主库归档模式
      • 3.4 FAL参数
      • 3.5 备份主库文件
    • 4 备库准备工作
      • 4.1 配置备库TNS
      • 4.2 配置备库监听
      • 4.3 测试备库与主库的连接
    • 5 备库数据恢复
      • 5.1 修改初始化参数
      • 5.2 将口令文件放到默认目录
      • 5.3 恢复控制文件
      • 5.4 恢复数据文件
      • 5.5 创建spfile参数文件
      • 5.6 开启备库实时
    • 6 ADG
      • 6.1 Standby redo log
      • 6.2 打开备库实时同步
    • 7 主备库切换
      • 7.1 查看自己的身份
      • 7.2 查看当前状态
      • 7.3 将主库切换为备库
      • 7.4 将备库切换为主库
      • 7.5 验证数据同步

在这里插入图片描述

  • 主库
    有oracle软件,database(datafile、control、redo等)共同构成了数据库。如果主机坏了,数据库就不能访问了。
  • 备库
    只有操作系统os和一个oracle软件。把主库的database通过rman备份,然后将备份片传到备库上。它们的一切信息都是一样的,所以db_name等都是一样的。(在rman备份前要确定数据库是归档模式,因为rman必须在归档模式下进行操作。)

DG是一项Oracle自带的功能,利用它设立一个备用数据库,备用数据库可达到与主库数据实时同步的左右。当主库发生故障时,备库的存在可以保证数据不会丢失多于一个事务所造成的影响(网络条件理想的状态下)。
ADG的作用则是当主库故障或因其他原因无法使用时,备库可以几乎无缝承担起主库的事务。

在这里插入图片描述

  • 备份完的数据文件,数据文件头部记录的信息都是属于主库的,所以它们的是相同的,所以需要用加以区分。
  • 就是SID,可以和不一样
  • 提供服务的数据库的名字

除了后三个名字都可以修改

2.1.1 节点及实例名

主库 primary 备库 standby
hostname yr YAORAO
db_name orcl orcl
db_unique_name orcl_pri orcl_std
service_names oradb_pri orcadb_std
global_name orcl_pri orcl_std

2.1.2 网络配置

主库 primary 备库 standby
OS_version Oracle Linux 5.7 Oracle Linux 5.7
IP_ADDRESS 192.168.233.250 192.168.233.2
  • 配置网络环境和host文件

需要分别在主库和备库的/etc/hosts文件里添加主库和备库的host的IP和name(注意是在root用户下更改)
主库primary 192.168.233.250
备库standby 192.168.233.2

  • 验证主、备库是否连通

  • 查看数据库的name参数
    在这里插入图片描述
  • 设置主库的是orcl_pri

  • 设置主库的为orcl_pri

DB_UNIQUE_NAME是一个静态参数,不能马上生效,需要重启后生效。

  • 重新启动数据库后再次查看name参数

TNS的作用是表明备库的各类地址信息,系统需要通过访问这个文件准确的与备库取得联系。所以不论是主机还是备机,SCN当中的内容都是对方的信息。

1.listener.ora
由于主库的监听在安装Oracle时就已经安装了,所以不用单独配置,可以直接开启监听。

  • 查看主库监听状态
    使用oracle用户
    在这里插入图片描述
    文件listener.ora记录了IP ADDRESS、port、db_name/service_name等信息,监听相当于”发射塔”,公布了自己的坐标、名字等。
    其中,

  • 打开主库监听

  • 再次查看主库监听信息
    在这里插入图片描述status是READY表示监听为开启状态。其中,orclXDB是数据库自己的一个。

2.配置主库的tnsname.ora


在这里插入图片描述

主备数据库实现数据同步的基础是主库的归档日志可以实时共享给备库,而这个功能就是通过修改的主库的归档日志位置信息,将备库的位置添加到主库当中去。

  • 查看主库是否为归档模式

  • 在mount状态下,打开主库的归档

  • 设置数据库强制归档,强制数据库记录log,记录在redo里

  • 配置闪回区
    1.设置dest_1为本地

2.设置dest_2为备库


通过lgwr来写,async是异步。
也就是说,所有的业务都访问主库,备库只能read only。要写数据就是往主库里写,传输是通过数据块。
主库接收到备库的信息,就是同步,在主库没有接收到备库的收到信息之前,不进行其他操作,但这样会影响主库的工作效率。
异步就是即使没收到备库的信息,也不影响自己的工作。

  • 添加所有成员
    列出所有的主备库

FAL是fetch archived log指获取归档日志。

  • 指定一个service name,standby数据库使用。

  • 是方便fal server引用standby库。

如果在传输中,中断了,只有配置了这个参数,备库才可以主动从主库要东西,把缺少的内容要来,所以这个时候,备库才相当于一个服务端,向它的”客户”——主库去要东西。

  • 设置备库的文件管理方式是自动的

为什么要在主库配置的时候去配置备库的文件管理方式呢?
因为如果主库坏了,备库还在备份,是实时传输的,所以最少丢失的数据单位是一个事务。
因此,这时备库出来服务的时候,切换成了failover,备库脱离了这个环境,就成为了一个独立的库了。在测试两个库是否一样,能否独立工作,是用switchover,这个时候,备库就成了主库,主库便成了备库,所以这个时候,备库就要standby了。

主库文件的备份包括数据文件、控制文件、归档文件、密码文件、初始化参数文件的备份。

  • 创建备份片存放目录

  • 备份数据文件和归档日志文件

  • 备份控制文件

因为是给备库创建的,所以叫standby controlfile

  • 备份初始化参数文件

  • 通过scp传输给备库

  • 在备库的/u01/oracle/rman_bak/路径下查看:
    在这里插入图片描述

开始配置备库之前,首先需要再次确认备库的Oracle数据库版本是否与主库相同,且service_name、unique_name和hostname主备库不能相同。
备库的准备工作包括配置TNS、监听与测试备库与主库的连接。

备库的TNS内容均为主库的信息

  • 修改备库tnsnames.ora
    tnsnames.ora文件记录了服务器名和其对应的信息。包括要连谁的IP、端口号、以及service name的所有信息


必须重启后这个文件才生效
可以先看下状态


如果是启动状态就要先通过命令关掉监听,再通过命令打开监听。现在再查看监听状态,可以看到有一个实例。
注意,如果再在编辑listener.ora时,global_dbname和service_name不同,那么下面的service会显示为”orcl”

1.检查主库和备库的监听是否正常,tnsname能否ping

  • 备库的监听文件
    在这里插入图片描述
  • 主库的监听文件
    在这里插入图片描述
    2.使用tnsping测试主库与备库是否连接
  • 备库ping主库

在这里插入图片描述
在这里插入图片描述

目前已经准备好了回复所需的全部文件,现在需要一步一步的利用主库传输过来的数据恢复备库,并建立主库与备库的实时共享。


注意复制粘贴的时候,要看行号,以前一行的一定还要在一行。


  • 先在nomount状态下打开数据库

  • 通过rman恢复控制文件

注意,要先在参数文件里找到控制文件的存放地址


  • 通过standby的控制文件mount数据库

现在数据库是mount状态。

  • 主库的数据文件地址:

  • 备库的数据文件地址:

  • 通知控制文件备份片位置


目标端存储备份片的地址和源端不同,但是控制文件记录的信息是源端存储备份片的位置,所以要通知控制文件备份片的地址在哪里

  • 恢复数据文件先去主库找datafile的地址,一一建在备库上。
  • 恢复数据文件

  • 查看告警日志

根据告警日志中的报错信息,进行更改

创建spfile文件:


备份的文件恢复的数据库是之前备份的那一时刻,因此需要用归档日志去追从过去到现在,所以要去读归档日志的条目。

  • 备库进行日志恢复

recover文件,并且管理数据库
disconnect from session:把recover的动作放到后台去自己执行,和前端断开

  • 在备库停止日志恢复

备库停掉recover的动作,但是对于主库来说,依旧还在传送日志条目和归档文件,只要网络通,就会一直传

  • 恢复主库到备份的日志传输

恢复主库到备份的日志传输,暂停日志传输后的归档日志会全部传输到备库,不会导致备库的归档日志 gap

  • 手动启动日志应用,备库:

这时如果在主库手动切换日志,备库存归档日志文件的相应地址有内容时,就是连好了。

  • 打开备库
    在这里插入图片描述
    备库打开后,它的open_mode打开模式依旧是read only。因为DG只能read only,也可以实时接收,但不能recover。
    ADG(Active Data Guard)是活跃的,数据能同步的备库。并且ADG可以读写分离。其中,读的地址连在备库,写的地址连在主库。

1.SRL只有在数据库是standby角色是才起作用,建议为primary也配置SRL只是为了以后主库备库切换时不用再次设置
2.standby上SRL完全等同于primary上的ORL(Online redo log),在primary发生日志切换时,Remote File System(RFS)进程把primary上的ORL写到standby的SRL,同时standby归档上一个SRL
3.standby通过应用并归档SRL以达到与primary一致。主库如果有n组,那么备库要建立n+1组,bytes要一样大

  • 查看主库有多少日志组

  • 查看主库log的大小

在这里插入图片描述因为主库有5组,那么备库需要创建5+1组(不考虑成员)


在这里插入图片描述


此时备库的打开状态发生了变化:可以应用了
在这里插入图片描述此时备库已经是ADG状态了,在主库修改文件,并提交,备库就能实现实时同步了。

  • 在主库的test表插入两行数据并提交
    在这里插入图片描述
  • 在备库查看test表的内容
    在这里插入图片描述

如果主库不commit,备库就看到的是提交前的状态。
配置好standby redo log的话,就可以达到事务级的保护。


  • 主库
    在这里插入图片描述
  • 备库
    在这里插入图片描述

  • 主库
    在这里插入图片描述
    查询结果是TO STANDBY 或 SESSIONS ACTIVE表明可以进行切换;

  • 备库
    在这里插入图片描述
    查看备库的状态,查询结果为TO PRIMARY 或 SESSIONS ACTIVE表明可以切换成主库;

  • 将数据库切换为standby(备库)状态,此sql执行后,数据库默认关闭,需重启数据库

在这里插入图片描述

  • 将主库启动之mount状态

在这里插入图片描述

  • 查看数据库状态,结果为PHYSICAL STANDBY 说明切换成功

在这里插入图片描述

  • 将数据库开启至open

在这里插入图片描述

  • 将数据库切换为primary(主库)状态,此sql执行之后,数据库默认跳到mount状态,需再次open数据库

在这里插入图片描述

  • 开启数据库

在这里插入图片描述

  • 查询数据库状态,结果为FAILED DESTINATION,PRIMARY,READ WRITE说明切换主库成功

在这里插入图片描述

  • 打开备库应用日志功能,在新备库(之前的主库)执行

在这里插入图片描述

  • 验证主备库数据是否同步:在主库切换logfile,多次切换验证 Current log sequence 是否同步

在这里插入图片描述

  • 在主备库分别查看归档日志序列号是否一致,多次切换后主备库的Current log sequence相同,则DG无异常
    在这里插入图片描述
  • 此时在新主库修改内容,备库实时变化
    新主库
    在这里插入图片描述
    新备库
    在这里插入图片描述
    没有和主库同步是因为主库没有提交事务,这是事务级保护
  • 主库提交事务
    在这里插入图片描述
  • 备库实时同步
    在这里插入图片描述

相关推荐

咨询软件
 
QQ在线咨询
售前咨询热线
QQ1793040