`
gaoyuntao2005
  • 浏览: 311158 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Oracle 10G R2版的Data Guard搭建

阅读更多


搭建环境:
OS :RHEL 5.4              Oracle版本:10g R2             ORACLE_HOME=/u01/app/oracle
虚拟机1    hostname :dg1            IP:192.168.0.103
虚拟机2    hostname :dg2            IP:192.168.0.104

参数规划
数据库       db_name      sid      instance_name      service_names       db_unique_name     fal_server      fal_client   
主 库              dg1            dg1           dg1                      dg1                           dg1                        dg2                 dg1
备库              dg1            dg1           dg1                      dg2                           dg2                        dg1                  dg2

主库上的操作 
将主库至于foce logging状态
[oracle@dg1 ~]$ sqlplus / as sysdba;
SQL*Plus: Release 10.2.0.1.0 - Production on Tue Jan 25 19:56:11 2011
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
Connected to an idle instance.

SQL> startup nomount;
ORA-32004: obsolete and/or deprecated parameter(s) specified
ORACLE instance started.

Total System Global Area  402653184 bytes
Fixed Size                  1219664 bytes
Variable Size             113247152 bytes
Database Buffers          285212672 bytes
Redo Buffers                2973696 bytes
SQL> alter database force logging;
alter database force logging
*
ERROR at line 1:
ORA-01507: database not mounted

SQL> alter database mount;
Database altered.

SQL> alter database force logging;
alter database force logging
*
ERROR at line 1:
ORA-12920: database is already in force logging mode
 

并处于归档模式
SQL> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            /u01/app/oradata/archive
Oldest online log sequence     40
Next log sequence to archive   42
Current log sequence           42
 

查看需要拷贝的数据文件
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
/u01/app/oradata/dg1/system01.dbf
/u01/app/oradata/dg1/undotbs01.dbf
/u01/app/oradata/dg1/sysaux01.dbf
/u01/app/oradata/dg1/users01.dbf
/u01/app/oradata/dg1/example01.dbf
 

查看需要拷贝的临时文件
SQL> select * from v$tempfile;
     FILE# CREATION_CHANGE# CREATION_TIME             TS#     RFILE#
---------- ---------------- ------------------ ---------- ----------
STATUS                ENABLED                             BYTES     BLOCKS
--------------------- ------------------------------ ---------- ----------
CREATE_BYTES BLOCK_SIZE
------------ ----------
NAME
--------------------------------------------------------------------------------
         1           446136 23-JAN-11                   3          1
ONLINE                READ WRITE                       20971520       2560
    20971520       8192
/u01/app/oradata/dg1/temp01.dbf
 

利用主库的控制文件创建备库的控制文件
SQL> alter database create standby controlfile as '/u01/app/oracle/dbs/standby.ctl';

Database altered.
 

利用主库的spfile创建pfile,主要是为了便于参数的修改
SQL> create pfile from spfile;

File created.

关闭主库

SQL> shutdown immediate;
ORA-01109: database not open
Database dismounted.
ORACLE instance shut down.
 

在主库的pfile增加如下几行,其中红色的需要特别注意
*.log_archive_dest_1='LOCATION=/u01/app/oradata/archive VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=dg1 '
*.log_archive_dest_2='SERVICE=dg2 LGWR ASYNC=40960 VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=dg2 '
*.log_archive_dest_state_1='enable'
*.log_archive_dest_state_2='enable'
*.log_archive_format='%t_%s_%r.arc'
*.log_archive_max_processes=2
*.log_archive_start=true
*.service_names='dg1 '
 
*.db_name='dg1 '
*.db_unique_name='dg1 '
*.dispatchers='(PROTOCOL=TCP) (SERVICE=dg1XDB )'
*.fal_client='dg1 ' 
*.fal_server='dg2 '
 

将所需文件拷贝到dg2上,注意这里数据库一定要处于关闭状态
[oracle@dg1 dbs]$ more /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1               dg1 localhost.localdomain localhost
192.168.0.104   dg2
192.168.0.103   dg1
 

拷贝数据文件和日志文件 
[oracle@dg1 oradata]$ pwd
/u01/app/oradata
[oracle@dg1 oradata]$ ls
archive  dg1
 
[oracle@dg1 oradata]$ scp -r dg1/ dg2:/u01/app/oradata/ 

拷贝admin下的文件,主要是为了拷贝这个目录的目录结构
[oracle@dg1 app]$ pwd
/u01/app
[oracle@dg1 app]$ ls
admin  flash_recovery_area  oracle  oradata  oraInventory
[oracle@dg1 app]$ scp -r admin/ dg2:/u01/app/
 

在主库上创建口令文件
[oracle@dg1 app]$ orapwd file=/u01/app/oracle/dbs/orapw password=oracle entries=5 

拷贝口令文件,参数文件到备库上 
[oracle@dg1 oracle]$ scp orapw initdg1 dg2:/u01/app/oracle/dbs
 

配置主库的listener.ora和tnsname.ora如下
listener.ora
[oracle@dg1 admin]$ pwd
/u01/app/oracle/network/admin
[oracle@dg1 admin]$ cat listener.ora 

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = dg1 )
      (ORACLE_HOME = /u01/app/oracle )
#      (PROGRAM = extproc)
      (GLOBAL_DBNAME=dg1 )
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
      (ADDRESS = (PROTOCOL = TCP)(HOST = dg1 )(PORT = 1521))
    )
  )

tnsname.ora

DG1 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.103 )(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = dg1 )
      (INSTANCE_NAME = dg1 )
    )
  )

DG2 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.104 )(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SID = dg1 )
    )
  )

EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )
 

重启监听程序
[oracle@dg1 admin]$ lsnrctl stop
[oracle@dg1 admin]$ lsnrctl start
 

利用pfile创建spfile
[oracle@dg1 ~]$ sqlplus / as sysdba;
SQL*Plus: Release 10.2.0.1.0 - Production on Tue Jan 25 19:56:11 2011
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
Connected to an idle instance.
 

SQL>  create spfile from pfile;
File created.
 

至此在主库上的操作告一段落

备库操作如下 
修改pfile
*.control_files='/u01/app/oradata/dg1/standby.ctl'         ##确保控制文件置于该目录下
*.log_archive_dest_1='LOCATION=/u01/app/oradata/archive VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=dg2 '                                           ##确保 /u01/app/oradata/archive该路径存在 
*.log_archive_dest_2='SERVICE=dg2 LGWR ASYNC=40960 VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=dg1 '
*.log_archive_dest_state_1='enable'
*.log_archive_dest_state_2='enable'
*.log_archive_format='%t_%s_%r.arc'
*.log_archive_max_processes=2
*.log_archive_start=true
*.service_names='dg2 '
 
*.db_name='dg1 '
*.db_unique_name='dg2 '
*.dispatchers='(PROTOCOL=TCP) (SERVICE=dg1XDB )'
*.fal_client='dg2 ' 
*.fal_server='dg1 '
 

配置备库上的listener.ora和tnsname.ora
lstener.ora
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = dg1 )
      (GLOBAL_DBNAME= dg1 )
      (ORACLE_HOME = /u01/app/oracle )
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.104 )(PORT = 1521))
    )
  )

tnsname.ora和主库上的一模一样,建议直接从主库上拷贝避免出错

重启监听程序
[oracle@dg1 admin]$ lsnrctl stop
[oracle@dg1 admin]$ lsnrctl start
至此备库上的操作完成 

测试主库产生的归档日志是否能正常传送到归档日志 
依次打开主库和备库
 主库:
SQL> STARTUP MOUNT;
SQL> ALTER DATABASE ARCHIVELOG;
SQL> ALTER DATABASE OPEN;
 

备库:
SQL> STARTUP MOUNT;
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT
FROM SESSION;
 


在主库上
SQL>archive log list;
SQL>alter system archive log current;
SQL>archive log list;
 
主库进行日志切换:
SQL>Alter system switch logfile; 

然后分别查看主库和备库的 目录下是否产生了同样的归档日志文件。
执行如下SQL
select max(sequence#) from v$archived_log;
select max(sequence#) from v$log_history;
select group#,sequence#,archived,status from v$log;
select name,sequence#,applied from v$archived_log;
select sequence#,applied from v$archived_log;
亦可在主库进行一些DML操作然后在备库上进行验证,具体操作如下
主库
SQL> select * from dg; 
        ID NAME
---------- ---------------------------------------------------------------------
         1 czm
         2 czm
         3 czm
         4 czm
 

SQL> insert into dg values(5,'czm');
1 row created.

SQL> commit;
Commit complete.

SQL> select * from dg;
        ID NAME
---------- ---------------------------------------------------------------------
         1 czm
         2 czm
         3 czm
         4 czm
         5 czm
 

SQL> alter system switch logfile;
System altered.

SQL> /
System altered.

SQL> /
System altered.
 

备库上
SQL> alter database recover managed standby database cancel; 
SQL> select * from dg;
        ID NAME
---------- ---------------------------------------------------------------------
         1 czm
         2 czm
         3 czm
         4 czm
         5 czm
 
至此DG顺利搭建成功


分享到:
评论

相关推荐

    Oracle 11g R2 Data Guard -- Howto

    ### Oracle 11g R2 Data Guard -- Howto #### 数据守护(Data Guard)概念与管理 Oracle Data Guard 是一种全面的数据保护解决方案,为 Oracle 数据库提供了强大的容灾能力。它能够确保数据的高可用性和灾难恢复,...

    Oracle 11g Data Guard搭建

    本文档详细描述了Oracle11g 搭建Data Guard的每一步骤,绝对详细的不能在详细,每一步骤都有演示

    Windows环境下配置oracle-11gR2-Data-Guard详细

    在Windows环境下配置Oracle 11g R2 Data Guard涉及多个步骤,包括环境准备、数据库配置、redo log文件设置、保护模式选择以及网络配置等。以下是对这些关键环节的详细解释: 1. **环境准备**:首先,你需要在...

    Oracle 11.2.0.3 使用 ADG 搭建Data Guard 案例

    Oracle 11.2.0.3 数据保护技术在企业级数据库管理中扮演着至关重要的角色,其中Active Data Guard(ADG)是Oracle提供的一种高级数据保护解决方案,用于构建高可用性和灾难恢复策略。本案例将详细介绍如何使用ADG来...

    Oracle 11.2.0.3 RAC 与 RAC 之间搭建Data Guard 案例 -- Aative Data Guard 案例

    Oracle 11.2.0.3 RAC (Real Application Clusters) 和 Data Guard 是两种在企业级数据库环境中广泛使用的高级技术。RAC允许多台服务器共享同一个数据库实例,提供高可用性和负载均衡,而Data Guard则是一种灾难恢复...

    oracle.Data.Guard.11g完全参考手册

    2. 创建Data Guard配置:具体指导如何在Oracle 11g环境下建立Data Guard配置,包括物理备库和逻辑备库的搭建。 3. 数据保护模式:介绍Data Guard提供的不同数据保护模式,如最大保护(Maximum Protection)、最大...

    Oracle 11gR2使用Active Data Guard 搭建物理 Data Guard.

    大牛出手,全是干货,Oracle 11gR2使用Active Data Guard 搭建物理 Data Guard。 注:文档打开密码见压缩包注释 看不到注释的 文档打开密码 tianlesoftware

    Oracle Data Guard RAC TO RAC迁移方案(基于rman备份)V1.1.pdf

    Oracle Data Guard RAC TO RAC 迁移方案 本文档旨在提供一个基于 RMAN 备份的 Oracle Data Guard RAC TO RAC 迁移方案,以便帮助 DBA schnell 和可靠地完成数据库迁移任务。该方案适用 Oracle 11g 版本,文档版本为...

    Oracle Data Guard 部署

    Oracle Data Guard 是 Oracle 11g 的一个重要功能,主要用于实现数据库的高可用性和灾难恢复。Data Guard 的主要组件包括 primary 数据库和一个或多个 standby 数据库。primary 数据库是生产数据库,而 standby ...

    windows oracle92 data guard

    本篇文章将详细介绍如何在 Windows 环境下搭建 Oracle 9i 的 Data Guard 集群,包括主库和从库的安装配置、归档日志管理、控制文件及参数文件的创建等关键步骤。 #### 二、环境准备 - **操作系统**:Windows Server...

    Linux 7.7 平台 Oracle 19.3 物理Data Guard 搭建手册.pdf

    Linux 7.7 平台 Oracle 19.3 物理Data Guard 搭建手册 Dave From CNDBA 社区

    一步一步学习DATAGUARD搭建(oracle 10g)

    在本教程中,我们将逐步学习如何在Oracle 10g环境下搭建物理Standby数据库。 1. **前期准备**: - 硬件一致性:确保两台服务器的硬盘分区、内存配置相同,这有助于避免由于硬件差异导致的问题。 - 时间同步:保持...

    Oracle 11g R2 RAC + DG高端实战

    **Oracle 11g R2 RAC + DG**(Real Application Clusters + Data Guard)是一种高级的企业级数据库解决方案,旨在提供高可用性和灾难恢复能力。此文档详细记录了如何在Oracle Enterprise Linux (OEL) 5.5 x86_64系统...

    oracle 11g DG搭建

    #### 三、Oracle 11g Data Guard搭建流程 ##### 1. 安装环境 - **主机1**:在主机1上安装数据库软件,并建立监听和实例。 - **主机2**:在主机2上安装数据库软件,并建立监听,但暂时不建立实例。 ##### 2. 主...

    Oracle 11gR2 使用RMAN 复制搭建物理Data Guard

    至于提供的第二个文件"MySQL主从复制、搭建、状态检查、中断排查及备库重做 实战手册.pdf",虽然与Oracle 11gR2的RMAN和Data Guard不直接相关,但它讲述了MySQL的主从复制,这是另一种数据库高可用性方案,适用于对...

    利用Oracle11g Data Guard实现HIS系统高可用性.pdf

    【Oracle 11g Data Guard实现HIS系统高可用性】 Oracle 11g Data Guard是一种高级数据库保护技术,用于确保医院信息系统(HIS)的数据安全性及业务连续性。在医疗行业中,HIS系统是至关重要的,因为它承载着医院...

Global site tag (gtag.js) - Google Analytics