OS:Windows 2008 R2 DataCenter
Database:10.2.0.4
Primary Database DB_UNIQUE_NAME:ora10gpd
IP:192.168.17.10
Standby Database DB_UNIQUE_NAME:ora10gst
IP:192.168.17.11
SID:ora10g
INSTANCE_NAME:ora10g
SERVICE_NAME:ora10g
GLOBAL_DBNAME:ora10g
DBNAME:ora10g
Net Service Name:ORA10GPD,ORA10GST
安装数据库软件选择介质要注意,需直接安装10.2.0.4的版本,Window 2008 R2已不再支持Win_64的10.2.0.1的包,而不是像Windows 2003 Etnerprise那样,先装完10.2.0.1再升级到10.2.0.4
另外要注意,如果执行setup没有通过检查,需要修改安装的参数文件oraparam,这个文件位于安装介质database\install\oraparam,把不符合要求的数值添加一下即可通过,在OUI界面出来后正式安装前,选用户已验证,忽略操作系统的检查就可以顺利安装了
主库安装完软件以后用dbca创建数据库实例ora10g,备库只需要安装数据库软件即可
Primary Database Configuration:
1.设置主数据库为force logging模式
SQL> conn /as sysdba
SQL> select force_logging from v$database;
SQL> alter database force logging;
2. 设置主数据库为归档模式
先查看一下是否为归档模式,有两种方法:
方法一:
SQL> archive log list
方法二:
SQL> select log_mode from v$database;
修改为归档模式
SQL> shutdown immediate
SQL> startup mount
SQL> alter database archivelog;
3. 主库添加standby redo logfile
SQL> alter database add standby logfile group 4 ('C:\ORACLE\PRODUCT\10.2.0\ORADATA\ora10g\stdredo04.log') size 50m;
SQL> alter database add standby logfile group 5 ('C:\ORACLE\PRODUCT\10.2.0\ORADATA\ora10g\stdredo05.log') size 50m;
SQL> alter database add standby logfile group 6 ('C:\ORACLE\PRODUCT\10.2.0\ORADATA\ora10g\stdredo06.log') size 50m;
SQL> alter database add standby logfile group 7 ('C:\ORACLE\PRODUCT\10.2.0\ORADATA\ora10g\stdredo07.log') size 50m;
SQL> set lin 80 pages 120
SQL> col member for a60
SQL> select group#,member from v$logfile;
GROUP# MEMBER
---------- ------------------------------------------------------------
3 C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA10G\REDO03.LOG
2 C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA10G\REDO02.LOG
1 C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA10G\REDO01.LOG
4 C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA10G\STDREDO4.LOG
5 C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA10G\STDREDO5.LOG
6 C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA10G\STDREDO6.LOG
7 C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA10G\STDREDO7.LOG
SQL> select group#,status from v$standby_log;
GROUP# STATUS
---------- ----------
4 UNASSIGNED
5 UNASSIGNED
6 UNASSIGNED
7 UNASSIGNED
此时主库还未切换成备库,所以备库日志文件状态皆为“UNASSIGNED”
4. 创建主库的初始化参数给备库用
SQL> create pfile from spfile;
存放目录默认为:%ORACLE_HOME%\database\INITora10g.ora
创建完参数后,写回到spfile并用修改好参数的spifle启动
SQL> shutdown immeidate
SQL> startup pfile=%ORACLE_HOME%/database/INITora10g.ora;
SQL> create spfile from pfile;
SQL> shutdown immeidate
SQL> startup
5. 在主库创建备库的控制文件和密码文件
SQL> alter database create standby controlfile as 'C:\control01.ctl';
C:\Users\Administrator>orapwd file=C:\PWDora10g.ora password=oracle entries=5;
注意:windows下口令文件的格式是pwdsid.ora,unix下的格式是orapwSID(大小写敏感)
6. 在主库创建LISTENER.ora和tnsnames.ora
用netca创建动态监听和tnsnames.ora,用net manager创建静态监听
配置好的LISTENER.ora显示如下:
# listener.ora Network Configuration File: C:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\listener.ora
# Generated by Oracle configuration tools.
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 = ora10g)
(ORACLE_HOME = C:\oracle\product\10.2.0\db_1)
(SID_NAME = ora10g)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = ora10gpd)(PORT = 1521))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)
配置好的tnsnames.ora显示如下:
# tnsnames.ora Network Configuration File: C:\oracle\product\10.2.0\db_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
ORA10GPD =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ora10gpd)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ora10g)
)
)
ORA10GST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ora10gst)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ora10g)
)
)
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
7. 配置主库pfile,添加DG参数
由于主备库采用路径一致,实例名也一致,所以没有添加db_file_name_convert和log_file_name_convert这2个参数
主库部分:
DB_UNIQUE_NAME=ora10gpd
LOG_ARCHIVE_CONFIG='DG_CONFIG=(ora10gpd,ora10gst)'
LOG_ARCHIVE_DEST_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES)DB_UNIQUE_NAME=ora10gpd'
LOG_ARCHIVE_DEST_2='SERVICE=ora10gst lgwr VALID_FOR=(ONLINE_LOGFILES,PRIMARY_