1.机器环境
Primary Hostname Public Vip SCAN instance Db_name Service_names Db_unique_name Storage mode Standby Hostname IP Db_name Service_names Db_unique_name Storage_mode 注意: 1. 由于DG是以DB_UNIQUE_NAME作为区分数据库标识的,因此主从库的该参
数一定要不同以做区分。但是数据库名db_name必须一致以便主从切换时方便
2. Standby库只需要安装数据库软件,不必创建数据库
3. 主从库的数据库软件大版本必须一致,且必须是企业版数据库EE
Node1 Node2 Rac1 Rac2 10.10.77.24 10.10.77.35 10.10.77.37 10.10.77.39 Scan-vip 10.10.77.45 Racheren1 Racheren2 racheren racheren racheren ASM Node Dataguard 10.10.77.47 racheren racheren Racheren_standby Local disk 2.启动主库归档模式
建议不要将归档路径设置到flash_recovery_area,而设置到普通目录
SQL>alter system set
log_archive_dest_1='LOCATION=/dats/app/oracle/product/11g/oradata' scope=spfile; SQL> archive log list
Database log mode Archive Mode Automatic archival Archive destination
Enabled
USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 126 Next log sequence to archive 127 Current log sequence 127
SQL> show parameter recover
NAME
TYPE
VALUE
------------------------------------ ----------- ------------------------------ db_recovery_file_dest
string
+ORAFLASH
db_recovery_file_dest_size big integer 3882M recovery_parallelism
integer
0
如果数据库未开启归档,则需开启归档模式(mount状态下)
SQL>alter database archivelog
启动主库force_logging模式
SQL> alter database FORCE LOGGING;
Database altered.
SQL> select FORCE_LOGGING from v$database;
FOR --- YES
3. 配置主库和从库的tnsnames.ora
增加以下配置
racheren1 = (DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac1-vip)(PORT = 1521))
(CONNECT_DATA = (SERVER = DEDICATED)
(SERVICE_NAME = racheren) (INSTANCE_NAME = racheren1) ) )
racheren2 = (DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac2-vip)(PORT = 1521))
(CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = racheren) (INSTANCE_NAME = racheren2) ) )
RACHEREN = (DESCRIPTION = (ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.77.37)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.77.39)(PORT = 1521)) )
(CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = racheren) )
)
RACHEREN_STANDBY = (DESCRIPTION = (ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.77.47)(PORT = 1521)) )
(CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = racheren) ) )
4. 配置主从库的listener.ora
按照以下内容配置从库的监听文件,然后启动监听程序。由于dg主从库是以GLOBAL_NAME作为区分,因此配置主从库GLOBAL_NAME不同,以做区分,在后面的SPFILE中有说明.务必严格按照此listenser配置:
$ORACLE> lsnrctl start SID_LIST_LISTENER = (SID_LIST = (SID_DESC =
(GLOBAL_DBNAME = dg_standby)
(ORACLE_HOME = /dats/app/oracle/product/11g/db) (SID_NAME = ogg1) )
(SID_DESC =
(GLOBAL_DBNAME = PLSExtProc)
(ORACLE_HOME = /dats/app/oracle/product/11g/db) (SID_NAME = PLSExtProc) )
(SID_DESC= (SID_NAME=ogg1)
(ORACLE_HOME=/dats/app/oracle/product/11g/db) ) )
LISTENER =
(DESCRIPTION_LIST = (DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.77.47)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0)) ) )
5.准备主库的参数文件
RAC环境的参数文件配置如下(注意使用ASM的时候,不要改变db_unique_name参数,否则新建的asm文件会放入新的db_unique_name目录下面,导致
db_file_name_convert失效),这里我们保持主RAC库的db_unique_name与数据库名一致
#add below parameter for standy database这个分隔符以上的参数为数据库本身的参数取自rac数据库本身而不做改变,只增加分隔符以下的DG参数
注意:在DG的配置中,主从的概念是相对的。比如A和B,那么配置A时, A是从机client,B就是主机server;配置B时,B是从机client,A就是主机server DB_UNIQUE_NAME 指定实例的唯一标识,与rac的db_name保持一致