测试环境:
操作系统: vm虚拟机的win2003
Primary数据库:
IP地址:192.168.94.198
数据库SID:dgdb1
机器名:oracle1
DB_UNIQUE_NAME:dgdb1
数据库版本:10.2.0.4
Standby数据库:
IP地址:192.168.94.199
数据库SID:dgdb1
机器名:oracle2
DB_UNIQUE_NAME:dgdb1_s
数据库版本:10.2.0.4
一:搭建前的准备工作
1:强制数据库logging和开启archivelog是必须的
只有达到这个条件的数据库才能实现不停机的搭建dg,如果说没有开启archivelog,那就是扯淡了,必须重启了。
SQL> alter database force logging;
SQL> archive log list;
SQL> shutdown immediate
SQL> startup mount
SQL> alter database archivelog;
SQL> archive log list;
2:相应的目录建好
standby端
mkdir C:/oracle/product/10.2.0/oradata/dgdb1
mkdir C:/oracle/product/10.2.0/admin/dgdb1/adump
mkdir C:/oracle/product/10.2.0/admin/dgdb1/bdump
mkdir C:/oracle/product/10.2.0/admin/dgdb1/cdump
mkdir C:/oracle/product/10.2.0/admin/dgdb1/udump
mkdir C:/oracle/product/10.2.0/admin/dgdb1/dpdump
mkdir C:/oracle/product/10.2.0/admin/dgdb1/pfile
mkdir C:/oracle/archive
primary端
mkdir C:/oracle/archive
3:修改或新增listener.ora 和tnsnames.ora 文件
这里最好注意一点的就是listener.ora 中新增的部分是在括号内不是在括号外的
primary端:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = C:/oracle/product/10.2.0/db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = dgdb1)
(ORACLE_HOME = C:/oracle/product/10.2.0/db_1)
(SID_NAME = dgdb1)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle1)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)
---------------------------------------------------------------------------------------------------------------------
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端:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = C:/oracle/product/10.2.0/db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = dgdb1)
(ORACLE_HOME = C:/oracle/product/10.2.0/db_1)
(SID_NAME = dgdb1)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle2)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)
----------------------------------------------------------------------------------------------------------------
dgdb1 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.94.198)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = dgdb1)
)
)
dgdb1_s =
(DESCRIPTION =