阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Oracle Dataguard搭建-单机到单机

365次阅读
没有评论

共计 8922 个字符,预计需要花费 23 分钟才能阅读完成。

1. 目的

详细描述如何搭建单节点到单节点的 Oracle Data Guard 结构,下文简称为 DG。

2. 环境规划

环境规划,参考下面的表格。

  主库 备库
机器名 dgdb1 dgdb2
IP 地址 10.128.20.125 10.128.20.126
操作系统版本 Oracle Linux 6.5 Oracle Linux 6.5
数据库版本 11.2.0.4 11.2.0.4
数据库名 dgdb dgdb
数据库实例名 dgdb1 dgdb2

3. 搭建环境

在服务器上安装操作系统。
根据环境规划设置服务器的主机名和 IP 地址。
在两台数据库服务器上面安装 oracle 软件,并在主机上创建数据库。

4. 搭建 DG

4.1. 主库的配置

4.1.1. 启用 Forced Logging

登录主库,执行下面的命令启用 Forced Logging。

SQL> ALTER DATABASE FORCE LOGGING;

数据库已更改。

4.1.2. 创建 standby 日志组
查看现有的日志组

SQL> select GROUP#,MEMBER from v$logfile;

GROUP# MEMBER
------ --------------------------------------------------
     1 /u01/app/oracle/oradata/DGDB/redo01.log
     2 /u01/app/oracle/oradata/DGDB/redo02.log
     3 /u01/app/oracle/oradata/DGDB/redo03.log

创建 standby 日志组要比联机日志组多一组。

SQL> alter database add standby logfile  
group 4 ('/u01/app/oracle/oradata/DGDB/std_redo04.log') size 50m,
group 5 ('/u01/app/oracle/oradata/DGDB/std_redo05.log') size 50m,
group 6 ('/u01/app/oracle/oradata/DGDB/std_redo06.log') size 50m,
group 7 ('/u01/app/oracle/oradata/DGDB/std_redo07.log') size 50m; 

数据库已更改。

4.1.3. 启用归档模式

查看数据库是否为归档模式

SQL> archive log list
数据库日志模式             非存档模式
自动存档             禁用
存档终点            USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列     52
当前日志序列           54

现在数据库为非归档模式,需要将数据库更改为归档模式
关闭数据库

sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on 星期四 109 06:33:01 2014

Copyright (c) 1982, 2013, Oracle.  All rights reserved.


连接到: 
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> shutdown immediate
数据库已经关闭。已经卸载数据库。ORACLE 例程已经关闭。

将数据库启动到 mount 模式

SQL> startup mount
ORACLE 例程已经启动。Total System Global Area 1653518336 bytes
Fixed Size          2253784 bytes
Variable Size        1375734824 bytes
Database Buffers      268435456 bytes
Redo Buffers            7094272 bytes
数据库装载完毕。

将数据库更改为归档模式

SQL> alter database archivelog;

数据库已更改。SQL> archive log list
数据库日志模式            存档模式
自动存档             启用
存档终点            USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列     51
下一个存档日志序列   53
当前日志序列           53

4.1.4. 配置 oracle net

使用 netca 或 netmgr 创建 listener.ora 和 tnsnames.ora.
修改 listener.ora 文件

# listener.ora Network Configuration File: /u01/app/oracle/product/11.2.0.4/dbhome_1/network/admin/listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = DGDB1)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0.4/dbhome_1)
      (SID_NAME = DGDB)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = dgdb1.dhc.com)(PORT = 1521))
    )
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

ADR_BASE_LISTENER = /u01/app/oracle

修改 tnsnames.ora

DGDB2 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.128.20.126)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = DGDB2)
    )
  )

DGDB1 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.128.20.125)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = DGDB1)
    )
  )

4.1.5. 配置参数文件。

创建 pfile

SQL> create pfile from spfile;

文件已创建。

然后在 $ORACLE_HOME/dbs 目录中找到文件 initDGDB.ora。
修改 initDGDB.ora,加入或者修改以下内容。

DB_UNIQUE_NAME='DGDB1'
LOG_ARCHIVE_CONFIG='DG_CONFIG=(DGDB1,DGDB2)'
LOG_ARCHIVE_DEST_1=
 'LOCATION=/arch
  VALID_FOR=(ALL_LOGFILES,ALL_ROLES) 
  DB_UNIQUE_NAME=DGDB1'
LOG_ARCHIVE_DEST_2=
 'SERVICE=DGDB2 lgwr ASYNC
  VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) 
  DB_UNIQUE_NAME=DGDB2'
log_archive_dest_state_1=enable
log_archive_dest_state_2=enable
fal_server='DGDB2'
fal_client='DGDB1'
standby_file_management=auto

修改参数文件之后,还要在两个机器上创建 /arch 目录来保存归档日志。

[root@dgdb1 ~]# mkdir /arch
[root@dgdb1 ~]# chown oracle:oinstall /arch/
[root@dgdb1 ~]# chmod 775 /arch/

关闭数据库

[oracle@dgdb1 dbs]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on 星期四 109 06:37:26 2014

Copyright (c) 1982, 2013, Oracle.  All rights reserved.


连接到: 
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> shutdown immediate
数据库已经关闭。已经卸载数据库。ORACLE 例程已经关闭。

创建 spfile

SQL> create spfile from pfile;

文件已创建。

启动数据库

SQL> startup
ORACLE 例程已经启动。Total System Global Area 1653518336 bytes
Fixed Size          2253784 bytes
Variable Size        1375734824 bytes
Database Buffers      268435456 bytes
Redo Buffers            7094272 bytes
数据库装载完毕。数据库已经打开。

4.2. 备库的配置

4.2.1. 配置 oracle net

在备库上用 netca 或者 netmgr 创建 listener.ora 和 tnsnames.ora。
修改 listener.ora

# listener.ora Network Configuration File: /u01/app/oracle/product/11.2.0.4/dbhome_1/network/admin/listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = DGDB2)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0.4/dbhome_1)
      (SID_NAME = DGDB)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = dgdb2.dhc.com)(PORT = 1521))
    )
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

ADR_BASE_LISTENER = /u01/app/oracle

修改 tnsnames.ora

DGDB2 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.128.20.126)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = DGDB2)
    )
  )

DGDB1 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.128.20.125)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = DGDB1)
    )
  )

将主库 /u01/app/oracle/product/11.2.0.4/dbhome_1/dbs 目录中的 pfile 和密码文件复制到备库上。

[oracle@dgdb1 dbs]$ scp initDGDB.ora orapwDGDB 10.128.20.126:/u01/app/oracle/product/11.2.0.4/dbhome_1/dbs/
The authenticity of host '10.128.20.126 (10.128.20.126)' can't be established.
RSA key fingerprint is 0c:74:49:a9:2c:dd:ff:af:c9:1f:cb:6b:a6:44:4d:3b.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.128.20.126' (RSA) to the list of known hosts.
oracle@10.128.20.126's password: 
initDGDB.ora                                 100% 1386     1.4KB/s   00:00    
orapwDGDB                                    100% 1536     1.5KB/s   00:00

4.2.2. 配置参数文件

修改 pfile

DB_UNIQUE_NAME='DGDB2'
LOG_ARCHIVE_CONFIG='DG_CONFIG=(DGDB1,DGDB2)'
LOG_ARCHIVE_DEST_1=
 'LOCATION=/arch
  VALID_FOR=(ALL_LOGFILES,ALL_ROLES) 
  DB_UNIQUE_NAME=DGDB2'
LOG_ARCHIVE_DEST_2=
 'SERVICE=DGDB1 lgwr ASYNC
  VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) 
  DB_UNIQUE_NAME=DGDB1'
log_archive_dest_state_1=enable
log_archive_dest_state_2=enable
fal_server='DGDB1'
fal_client='DGDB2'
standby_file_management=auto

在备库上创建 spfile

[oracle@dgdb2 admin]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on 星期四 109 06:56:55 2014

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

已连接到空闲例程。SQL> create spfile from pfile;

文件已创建。

在备库上创建必需的目录

mkdir /u01/app/oracle/fast_recovery_area
mkdir -p /u01/app/oracle/admin/DGDB/adump

启动备库到 nomount

SQL> startup nomount
ORACLE 例程已经启动。Total System Global Area 1653518336 bytes
Fixed Size          2253784 bytes
Variable Size        1375734824 bytes
Database Buffers      268435456 bytes
Redo Buffers            7094272 bytes

4.3. 使用 RMAN 生成物理备库

使用下面的命令,登录 rman

rman target sys/oracle@DGDB1 auxiliary sys/oracle@DGDB2 nocatalog

恢复管理器: Release 11.2.0.4.0 - Production on 星期四 109 07:44:07 2014

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

已连接到目标数据库: DGDB (DBID=2206457594)
使用目标数据库控制文件替代恢复目录
已连接到辅助数据库: DGDB (未装载)

使用下面的命令,生成物理备库

RMAN> duplicate target database for standby nofilenamecheck from active database;

生成的备库没有 redo 和 standby 日志文件,需要把主库的文件复制过去。

[oracle@dgdb1 DGDB]$ scp *.log 10.128.20.126:/u01/app/oracle/oradata/DGDB/oracle@10.128.20.126's password: 
redo01.log                                   100%   50MB  50.0MB/s   00:01    
redo02.log                                   100%   50MB  25.0MB/s   00:02    
redo03.log                                   100%   50MB  50.0MB/s   00:01    
std_redo04.log                               100%   50MB  50.0MB/s   00:01    
std_redo05.log                               100%   50MB  50.0MB/s   00:01    
std_redo06.log                               100%   50MB  50.0MB/s   00:01    
std_redo07.log                               100%   50MB  50.0MB/s   00:01

重启一下备库

[oracle@dgdb2 DGDB]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on 星期四 109 07:45:23 2014

Copyright (c) 1982, 2013, Oracle.  All rights reserved.


连接到: 
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> archive log list
数据库日志模式            存档模式
自动存档             启用
存档终点            /arch
最早的联机日志序列     0
下一个存档日志序列   0
当前日志序列           0
SQL> shutdown immediate
ORA-01109: 数据库未打开


已经卸载数据库。ORACLE 例程已经关闭。

启动备库到 mount

SQL> startup mount
ORACLE 例程已经启动。Total System Global Area 1653518336 bytes
Fixed Size          2253784 bytes
Variable Size        1375734824 bytes
Database Buffers      268435456 bytes
Redo Buffers            7094272 bytes
数据库装载完毕。

将备库切换到 standby

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

数据库已更改。

4.4. 验证 DG 是否搭建成功

在备库上验证存在的归档日志。

SQL> SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;
SEQUENCE# FIRST_TIME      NEXT_TIME
---------- -------------- --------------
       101 12-10 月 -14     13-10 月 -14
       102 13-10 月 -14     13-10 月 -14
       103 13-10 月 -14     14-10 月 -14
       104 14-10 月 -14     14-10 月 -14
       105 14-10 月 -14     15-10 月 -14
       106 15-10 月 -14     15-10 月 -14
       107 15-10 月 -14     15-10 月 -14
       108 15-10 月 -14     16-10 月 -14
       109 16-10 月 -14     16-10 月 -14

在主库切换下日志

SQL> alter system switch logfile;

系统已更改。SQL> archive log list
数据库日志模式            存档模式
自动存档             启用
存档终点            /arch
最早的联机日志序列     109
下一个存档日志序列   111
当前日志序列           111

在备库下看归档的状态

SQL> archive log list
数据库日志模式            存档模式
自动存档             启用
存档终点            /arch
最早的联机日志序列     109
下一个存档日志序列   0
当前日志序列           111

查看主库传过来的归档是否被应用

SQL> SELECT SEQUENCE#,APPLIED FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;
SEQUENCE# APPLIED
---------- ---------
       101 YES
       102 YES
       103 YES
       104 YES
       105 YES
       106 YES
       107 YES
       108 YES
       109 YES
       110 IN-MEMORY

到此 DG 的搭建已经完成。

Oracle 11gR2 在 VMWare 虚拟机中安装步骤 http://www.linuxidc.com/Linux/2013-09/89579p2.htm

Debian 下 安装 Oracle 11g XE R2 http://www.linuxidc.com/Linux/2014-03/98881.htm

Oracle Data Guard 重要配置参数 http://www.linuxidc.com/Linux/2013-08/88784.htm

基于同一主机配置 Oracle 11g Data Guard http://www.linuxidc.com/Linux/2013-08/88848.htm

探索 Oracle 之 11g DataGuard http://www.linuxidc.com/Linux/2013-08/88692.htm

手把手教你搭建 Oracle 11g DataGuard  http://www.linuxidc.com/Linux/2016-06/132128.htm

Oracle Data Guard(RAC+DG) 归档删除策略及脚本 http://www.linuxidc.com/Linux/2013-07/87782.htm

Oracle Data Guard 的角色转换 http://www.linuxidc.com/Linux/2013-06/86190.htm

Oracle Data Guard 的日志 FAL gap 问题 http://www.linuxidc.com/Linux/2013-04/82561.htm

Oracle 11g Data Guard Error 16143 Heartbeat failed to connect to standby 处理方法 http://www.linuxidc.com/Linux/2013-03/82009.htm

更多 Oracle 相关信息见 Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-11/137440.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计8922字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19348
评论数
4
阅读量
7798188
文章搜索
热门文章
开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南 大家好,我是星哥。之前介绍了腾讯云的 Code...
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板 1Panel:小白轻松构建 Web 服务与面板加固指南 哈喽,我是星哥,经常有人问我不...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
星哥带你玩飞牛NAS-2:飞牛配置RAID磁盘阵列

星哥带你玩飞牛NAS-2:飞牛配置RAID磁盘阵列

星哥带你玩飞牛 NAS-2:飞牛配置 RAID 磁盘阵列 前言 大家好,我是星哥之前星哥写了《星哥带你玩飞牛 ...
安装并使用谷歌AI编程工具Antigravity(亲测有效)

安装并使用谷歌AI编程工具Antigravity(亲测有效)

  安装并使用谷歌 AI 编程工具 Antigravity(亲测有效) 引言 Antigravity...
这个开源软件130k的star数!让电脑轻松管理安卓手机的神器

这个开源软件130k的star数!让电脑轻松管理安卓手机的神器

这个开源软件 130k 的 star 数!让电脑轻松管理安卓手机的神器 大家好,我是星哥。今天给大家安利一款宝...
星哥带你玩飞牛NAS-8:有了NAS你可以干什么?软件汇总篇

星哥带你玩飞牛NAS-8:有了NAS你可以干什么?软件汇总篇

星哥带你玩飞牛 NAS-8:有了 NAS 你可以干什么?软件汇总篇 前言 哈喽各位玩友!我是是星哥,不少朋友私...
星哥带你玩飞牛NAS-5:飞牛NAS中的Docker功能介绍

星哥带你玩飞牛NAS-5:飞牛NAS中的Docker功能介绍

星哥带你玩飞牛 NAS-5:飞牛 NAS 中的 Docker 功能介绍 大家好,我是星哥,今天给大家带来如何在...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的NAS中!

星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的NAS中!

星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的 NAS 中! 大家对「数据安全感」的需求越来越高 ...
Prometheus:监控系统的部署与指标收集

Prometheus:监控系统的部署与指标收集

Prometheus:监控系统的部署与指标收集 在云原生体系中,Prometheus 已成为最主流的监控与报警...
星哥带你玩飞牛NAS-5:飞牛NAS中的Docker功能介绍

星哥带你玩飞牛NAS-5:飞牛NAS中的Docker功能介绍

星哥带你玩飞牛 NAS-5:飞牛 NAS 中的 Docker 功能介绍 大家好,我是星哥,今天给大家带来如何在...
恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击

恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击

恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击 PHP-FPM(FastCGl Process M...
让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级 大家好,我是星哥,之前写了一篇文章 自己手撸一...