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