Oracle 10g物理DG详细配置方法及步骤

--测试环境:
    OS:RedHat linux(64)
    Primary:
    IP:192.168.94.198
    SID:dgdb1
    Hostname:dg1
    DB_UNIQUE_NAME:dgdb1
    Database:10.2.0.1(64)
 
    Standby:
    IP:192.168.94.199
    SID:dgdb1
    Hostname:dg2
    DB_UNIQUE_NAME:dgdb1_s
    Database:10.2.0.1(64)
 

--实施DG前的准备工作
    --开启数据库logging及数据库archivelog
        --开启数据库logging
          SQL> alter database force logging;
 --检查数据库是否开启archivelog
 SQL> archive log list;
 --如果数据库未开启archivelog,则要开启archivelog
 SQL> shutdown immediate;
 SQL> startup mount;
 SQL> alter database archivelog;
 --检查数据库是否开启archivelog
 SQL> archive log list;
 

  --创建相应目录(根据具体情况,primary和standby端要一致)
        --Standby:
          mkdir –p /export/home/Oracle/product/10.2.0/oradata/dgdb1
          mkdir –p /export/home/oracle/product/10.2.0/admin/dgdb1/adump
          mkdir –p /export/home/oracle/product/10.2.0/admin/dgdb1/bdump
          mkdir –p /export/home/oracle/product/10.2.0/admin/dgdb1/cdump
          mkdir –p /export/home/oracle/product/10.2.0/admin/dgdb1/udump
          mkdir –p /export/home/oracle/product/10.2.0/admin/dgdb1/dpdump
          mkdir –p /export/home/oracle/product/10.2.0/admin/dgdb1/pfile
          mkdir –p /export/home/oracle/archive
          mkdir -p /export/home/oracle/bak
        --primary:
          mkdir –p /export/home/oracle/archive
          mkdir -p /export/home/oracle/bak
 

--修改或新增listener.ora 和tnsnames.ora(或者用GUI工具配置)
    --注意:listener.ora 中新增的部分在括号内而非括号外
    --primary端:
 --listener.ora:
 SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = /export/home/oracle/product/10.2.0)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = dgdb1)
      (ORACLE_HOME = /export/home/oracle/product/10.2.0)
      (SID_NAME = dgdb1) 
    )
  )
 LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = dg1)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
    )
  )
 

--tnsnames.ora
 dgdb1 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.94.198)(PORT = 1521))
    )
    (CONNECT_DATA =
 (SERVER = DEDICATED)
        (SERVICE_NAME = dgdb1)
    )
  )
 
 dgdb1_s =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.94.199)(PORT = 1521))
    )
    (CONNECT_DATA =
          (SERVER = DEDICATED)
        (SERVICE_NAME = dgdb1)
    )
  )
 

  --standby端:
      --listener.ora:
    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
        (SID_NAME = PLSExtProc)
        (ORACLE_HOME = /export/home/oracle/product/10.2.0)
        (PROGRAM = extproc)
        )
        (SID_DESC =
        (GLOBAL_DBNAME = dgdb1)
        (ORACLE_HOME = /export/home/oracle/product/10.2.0)
        (SID_NAME = dgdb1) 
        )
        )
      LISTENER =
      (DESCRIPTION_LIST =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = dg2)(PORT = 1521))
        (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
      )
      )
    --tnsnames.ora
    dgdb1 =
    (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.94.198)(PORT = 1521))
      )
      (CONNECT_DATA =
        (SERVER = DEDICATED)
        (SERVICE_NAME = dgdb1)
      )
      )
  dgdb1_s =
    (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.94.199)(PORT = 1521))
    )
    (CONNECT_DATA =
        (SERVER = DEDICATED)
        (SERVICE_NAME = dgdb1)
      )
    )
 

--具体实施DG的步骤:
    --在primary上生成pfile,并修改添加相应参数,生成standby需要的pfile
        --primary端:
          oracle$>sqlplus / as sysdba
          SQL> CREATE PFILE='/export/home/oracle/standby.ora' FROM SPFILE;
        --编辑生成的pfile文件('/export/home/oracle/standby.ora'),添加如下参数:
          *.db_unique_name='dgdb_s'
          *.fal_server='dgdb1'   
          *.fal_client='dgdb_s'
          *.LOG_ARCHIVE_CONFIG='DG_CONFIG=(dgdb1,dgdb_s)'
          *.log_archive_dest_1='LOCATION=/export/home/oracle/archive VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=dgdb_s'
          *.LOG_ARCHIVE_DEST_2='SERVICE=dgdb1 LGWR ASYNC=40960 VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=dgdb1'
          *.LOG_ARCHIVE_DEST_STATE_1='ENABLE'
          *.LOG_ARCHIVE_DEST_STATE_2='ENABLE'
          *.standby_archive_dest='/export/home/oracle/archive'
          *.standby_file_management='AUTO'
    --修改完后拷贝到standby端
      Oracle$Scp /export/home/oracle/standby.ora  [email protected]:/export/home/oracle/
    --在standby端使用pfile启动实例
 --在primary端用命令创建数据库密码文件,并接拷贝至standby端相同路径下(如已存在,可直接拷贝)
  --primary端手工创建数据库密码文件
  Oracle$orapwd file=... password=...
  --primary端拷贝数据库密码文件至standby端
  Oracle$Scp /export/home/oracle/product/10.2.0/database/PWDdgdb1.ora [email protected]:/export/home/oracle/product/10.2.0/database
 --standby端:
 Oracle$set oracle_sid=dgdb1
 Oracle$sqlplus / as sysdba
 SQL> startup nomount pfile=’/export/home/oracle/standby.ora’
 SQL> CREATE SPFILE FROM PFILE='/export/home/oracle/standby.ora';
    --在primary端修改相应参数
      --primary端:
        Oracle$sqlplus / as sysdba
        SQL> ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT = AUTO scope=both;
        SQL> ALTER SYSTEM SET fal_server='dgdb1_s' scope=both;
        SQL> ALTER SYSTEM SET fal_client='dgdb1' scope=both;
        SQL> ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(dgdb1_s,dgdb1)' scope=both;
        SQL> ALTER SYSTEM SET log_archive_dest_1='LOCATION=/export/home/oracle/archive VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=dgdb1' scope=both;
        SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=dgdb1_s LGWR ASYNC=40960 VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=dgdb1_s' scope=both;
        SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_1='ENABLE' scope=both;
        SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2='ENABLE' scope=both;
        SQL> ALTER SYSTEM SET standby_archive_dest='/export/home/oracle/archive' scope=both;

相关推荐