当前位置:  数据库>oracle

Oracle Dataguard搭建-单机到单机

    来源: 互联网  发布时间:2017-06-25

    本文导语: 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 ...

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 星期四 10月 9 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 星期四 10月 9 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 星期四 10月 9 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 星期四 10月 9 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 星期四 10月 9 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虚拟机中安装步骤

Debian 下 安装 Oracle 11g XE R2

Oracle Data Guard 重要配置参数

基于同一主机配置 Oracle 11g Data Guard

探索Oracle之11g DataGuard

手把手教你搭建Oracle 11g DataGuard 

Oracle Data Guard (RAC+DG) 归档删除策略及脚本

Oracle Data Guard 的角色转换

Oracle Data Guard的日志FAL gap问题

Oracle 11g Data Guard Error 16143 Heartbeat failed to connect to standby 处理方法


    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • ORACLE DATAGUARD中手工处理日志v$archive_GAP的方法
  • Oracle Dataguard备库失败与主库响应测试
  • Linux下Oracle10_Dataguard配置与应用
  • Oracle 11g Dataguard参数详解
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • Oracle 12c发布简单介绍及官方下载地址 iis7站长之家
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • Oracle 数据库开发工具 Oracle SQL Developer
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • Oracle EBS R12 支持 Oracle Database 11g
  • Oracle 10g和Oracle 11g网格技术介绍
  • SCO unix下安装oracle,但没有光盘,请大家推荐一个oracle下载站点(unix版本的)。谢谢!!!!
  • oracle中如何把表中具有相同值列的多行数据合并成一行
  • 请问大家用oracle数据库, 用import oracle.*;下的东西么? 还是用标准库?
  • Oracle 数据库(oracle Database)性能调优技术详解
  • Linux /$ORACLE_HOME $ORACLE_HOME
  • ORACLE日期相关操作
  • Linux系统下Oracle的启动与Oracle监听的启动
  • ORACLE数据库常用字段数据类型介绍
  • 请问在solaris下安装ORACLE,用root用户和用oracle用户安装有什么区别么?
  • Oracle 12c的九大最新技术特性介绍
  • 网间Oracle的连接,远程连接Oracle服务器??


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3