如果搭建dg 先安装主库database 并建库,同时建备库database 软件,不需要建库。
1 主库打开归档功能
启动到mount状态下,打开归档功能
alter database archivelog;
SQL> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     17
Next log sequence to archive   19
Current log sequence           19
# 检查已经打开归档功能
2 配置主库监听和tnsnames文件
# listener.ora Network Configuration File: /u01/oracle/11g/network/admin/listene
r.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = orcl)
      (ORACLE_HOME = /u01/oracle/11g)
      (SID_NAME = orcl)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = porcl)    
      (ORACLE_HOME = /u01/oracle/11g)
      (SID_NAME = orcl)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = porcl_DGMGRL)
      (ORACLE_HOME = /u01/oracle/11g)
      (SID_NAME = orcl)
    )
  )
LISTENER =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = dghost)(PORT = 1521))
  )
ADR_BASE_LISTENER = /u01/oracle
[oracle@dghost root]$ cat /u01/oracle/11g/network/admin/tnsnames.ora
# tnsnames.ora Network Configuration File: /u01/oracle/11g/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
SORCL =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = dgstandby)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = sorcl)
    )
  )
PORCL =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = dghost)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = porcl)
    )
  )
ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = dghost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl.dghost)
    )
  )
备库也配置监听
注意主库和备库配置完监听要用tnsping测试都能ping通
[oracle@dghost root]$ tnsping porcl
TNS Ping Utility for Linux: Version 11.2.0.3.0 - Production on 17-JAN-2017 00:19:12
Copyright (c) 1997, 2011, Oracle.  All rights reserved.
Used parameter files:
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = dghost)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = porcl)))
OK (10 msec)
#主库tnsping自己成功
[oracle@dghost root]$ tnsping sorcl
TNS Ping Utility for Linux: Version 11.2.0.3.0 - Production on 17-JAN-2017 00:19:42
Copyright (c) 1997, 2011, Oracle.  All rights reserved.
Used parameter files:
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = dgstandby)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = sorcl)))
OK (20 msec)
#主库tnsping备库成功
# 下面同样需要在备库中tnsping自己和主库,这里就不一一举例
3 主库修改db_unique_name
SQL> show parameter db_un
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_unique_name                       string      PORCL  #db_unique_name 需要配置成tnsname里面能解析的域名
db_unrecoverable_scn_tracking        boolean     TRUE
# alter system set db_unique_name='porcl' scope=spfile;
4 主库修改standby_file_management
SQL> show parameter standby_f
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
standby_file_management              string      AUTO #修改为auto
5 主库打开强制日志和dg_broker
alter database force logging;
SQL> show parameter dg_b
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
dg_broker_config_file1               string      /u01/oracle/11g/dbs/dr1PORCL.d
                                                 at
dg_broker_config_file2               string      /u01/oracle/11g/dbs/dr2PORCL.d
                                                 at
dg_broker_start                      boolean     TRUE #设置为true 打开
6 增加备库日志
alter database add standby logfile;
多增加几个
7 切换日志
alter system switch logfile;
多切换几次
8 主库参数文件拷贝到备库中
[oracle@dgstandby dbs]$ strings spfileorcl.ora
orcl.__db_cache_size=218103808
orcl.__java_pool_size=4194304
orcl.__large_pool_size=4194304
orcl.__oracle_base='/u01/oracle'#ORACLE_BASE set from environment
orcl.__pga_aggregate_target=205520896
orcl.__sga_target=381681664
orcl.__shared_io_pool_size=0
orcl.__shared_pool_size=142606336
orcl.__streams_pool_size=4194304
*.archive_lag_target=0
*.audit_file_dest='/u01/oracle/admin/orcl/adump' #备库需要创建这个目录 
*.audit_trail='db'
*.compatible='11.2.0.0.0'
*.control_files='/u01/oracle/oradata/orcl/control01 #备库需要创建这个目录
.ctl','/u01/oracle/fast_recovery_area/orcl/control02.ctl' #备库需要创建这个目录
*.db_block_size=8192
*.db_domain='dghost'
*.db_name='orcl'
*.db_recovery_file_dest='/u01/oracle/fast_recovery_area' #备库需要创建这个目录
*.db_recovery_file_dest_size=4322230272
*.db_unique_name='SORCL'
*.dg_broker_start=TRUE
*.diagnostic_dest='/u01/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
*.fal_server='porcl'
*.log_archive_config='dg_config=(SORCL,porcl)'
*.log_archive_dest_1='location=USE_DB_RECOVERY_FILE_DEST','valid_for=(ALL_LOG
FILES, ALL_ROLES)'
orcl.log_archive_format='%t_%s_%r.dbf'
*.log_archive_max_processes=4
*.log_archive_min_succeed_dest=1
orcl.log_archive_trace=0
*.memory_target=585105408
*.open_cursors=300
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.standby_file_management='AUTO'
*.undo_tablespace='UNDOTBS1'
备库启动到nomount状态下,如果能正常启动到nomount 状态下说明参数文件没有问题
9 主库密码文件拷贝到备库
10 在备库中克隆
[oracle@dgstandby dbs]$ rman target sys/oracle@porcl auxiliary sys/oracle@sorcl nocatalog;
Recovery Manager: Release 11.2.0.3.0 - Production on Tue Jan 17 00:31:46 2017
Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.
connected to target database: ORCL (DBID=1461163151)
using target database control file instead of recovery catalog
connected to auxiliary database: ORCL (DBID=1461163151)
# 通过rman链接了主库和备库
RMAN> duplicate target database for standby nofilenamecheck from active database;
# 用这个进行克隆,不能有任何错误
11 dgbroker 创建主库和备库
DGMGRL for Linux: Version 11.2.0.3.0 - 64bit Production
Copyright (c) 2000, 2009, Oracle. All rights reserved.
Welcome to DGMGRL, type "help" for information.
Connected.
#进入 dgbroker 环境
DGMGRL> help create
Creates a broker configuration
Syntax:
  CREATE CONFIGURATION <configuration name> AS
    PRIMARY DATABASE IS <database name>
    CONNECT IDENTIFIER IS <connect identifier>;
# 使用帮助查看创建dgbroker的语法
DGMGRL> CREATE CONFIGURATION dgc as PRIMARY DATABASE IS porcl CONNECT IDENTIFIER IS porcl;
# 创建主库dgbroker
DGMGRL> help add
Adds a standby database to the broker configuration
Syntax:
  ADD DATABASE <database name>
    [AS CONNECT IDENTIFIER IS <connect identifier>]
    [MAINTAINED AS {PHYSICAL|LOGICAL}];
#使用帮助文档查看添加备库dgbroker的语法
DGMGRL> ADD DATABASE sorcl as CONNECT IDENTIFIER  IS sorcl;
12 激活dgbroker
DGMGRL> enable configuration;
13 启动备库到open 中测试主库和备库是否实时同步。
14 主备切换
switchover to sorcl;
 
 
 
 
 
 