Dataguard配置
环境描述
主服务器
操作系统:win2003
计算机名称:primary
IP地址:192.168.1.1
Oracle版本9i
数据库实例:wbi
备服务器
操作系统:win2003
计算机名称:standby
IP地址:192.168.1.2
Oracle版本:9i
数据库实例:wbi
配置过程
1、在主备服务器安装oracle,只安装程序不安装数据库。
2、在主库使用DCA工具创建数据库,实例名称wbi,除字符集使用ZHS16GBK外,其他使用默认参数。
3、在从库C:\oracle\admin\wbi下创建文件夹:bdump、cdump、create、pfile、udump
在从库C:\oracle\oradata创建文件夹wbi
4、在主库
SQL> select file_name from dba_data_files; 查询数据文件
SQL> select member from v$logfile; 查询联机日志文件
SQL> shutdown immediate; 关闭数据库
拷贝数据文件、联机日志文件以及C:\oracle\ora92\database\PWDwbi.ora到备库相应位置
5、在主库
SQL> startup mount; 启动实例但不打开数据库
SQL> alter database archivelog; 配置为归档模式
SQL> alter database open; 打开数据库
SQL>alter system set log_archive_dest_1='location=c:\oracle\ora92\database\arch
ive' scope=both; 修改归档路径
SQL> alter system set log_archive_start=true scope=spfile; 开启自动归档
SQL> shutdown immedicate; 重启数据库
SQL> startup;
6、在主库创建从库控制文件
SQL> alter database create standby controlfile as 'c:\control01.ctl';拷贝该文件到从库C:\oracle\oradata\wbi目录下
7、在主从库使用NCA工具配置监听程序以及本地NET服务名
主库tnsnames.ora文件
# TNSNAMES.ORA Network Configuration File: C:\oracle\ora92\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
STANDBY =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.2)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = wbi)
)
)
PRIMARY =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = wbi)
)
)
从库tnsnames.ora
# TNSNAMES.ORA Network Configuration File: C:\oracle\ora92\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
STANDBY =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.2)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = wbi)
)
)
PRIMARY =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = wbi)
)
)
8、启动主从库OracleOraHome92TNSListener监听服务
9、在主库创建spfile
SQL> create pfile='c:\initwbi.ora' from spfile;
添加如下内容
*.STANDBY_ARCHIVE_DEST='C:\oracle\ora92\database\archive'
*.FAL_SERVER='PRIMARY'
*.FAL_CLIENT='STANDBY'
*.standby_file_management='AUTO'
SQL> shutdown immediate;
SQL> create spfile from pfile='c:\initwbi.ora';(用于主库切换成从库后使用)
SQL> startup;
修改initwbi.ora中的控制文件路径
*.control_files='C:\oracle\oradata\wbi\CONTROL01.CTL'
把该文件复制到从库C:\oracle\ora92\database目录下
复制主库C:\oracle\ora92\database中的密钥文件PWDwbi.ora到从库该目录
10、创建从库实例名
C:\Documents and Settings\Administrator>oradim -new -sid wbi -pfile c:\oracle\ora92\database\initwbi.ora
建立注册表
路径:HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0
新建字符串值 数值名称:oracle_sid 数值数据:wbi
重启从库。
11、在从库
SQL> startup nomount;启动实例
SQL> alter database mount standby database;设置备库为standby模式
SQL> alter database recover managed standby database disconnect from session;开启日志应用服务
12、在主库
SQL> alter system set log_archive_dest_2='service=standby mandatory reopen=60';在主库设置到备库的归档
13、验证dataguard
在主库
SQL> alter system switch logfile;手动归档
在从库
是否能正常接收归档日志
SQL> select sequence#,first_time,next_time from v$archived_log order by sequence#;
查看新的归档日志是否正常用于恢复
select sequence#,applied from v$archived_log order by sequence#;
14、在备库查询数据
SQL> alter database recover managed standby database cancel;
SQL> alter database open read only;
查询完毕后恢复为恢复模式。
SQL>alter database recover managed standby database disconnect from session ;