Linux下搭建Oracle物理Data guard
一、引言
近期利用手头的空余机器搭建了Oracle物理Data guard用于学习,现将过程与大家分享。
二、环境准备
u 硬件
两台主机,当然如果只有一台主机也可以,就是在恢复数据库时需要路径转换,正好手头有两台闲置的主机,所以就省去了许多麻烦。
另,实际环境中也应是不同的主机搭建Data guard环境,不然也就失去意义。
u 软件环境
操作系统:Redhat4u8 x86_64
数据库版本:Oracle10g(10.2.04) for linux64
u 数据库
主库(Primary)
安装数据库软件,并创建数据库,并使之运行在归档模式下。
备库(Standby)
仅安装数据库软件,配置并启动监听。
三、具体配置过程
1. 确认主库的归档模式,修改主库Force logging
SQL> archive log list Database log mode Archive Mode Automatic archival Enabled Archive destination /oracle/archive_logs/testdb Oldest online log sequence 160 Next log sequence to archive 162 Current log sequence 162 |
SQL> alter database force logging; |
2. 主库:使用RMAN全库备份
3. 主库创建备用controlfile
将创建的controlfile复制到备用数据库。
4. 创建pfile,并修改其中备用数据库参数
pfile中增加如下内容
*.standby_file_management=AUTO *.fal_server='DBPRIMARY' *.fal_client='DBSTANDBY' *.db_unique_name='testdbstd' |
并将其复制到备用库的$ORACLE_HOME/dbs下。
5. 配置主库和备用库的tnsnames.ora,添加如下内容
6. 备用库,恢复数据库文件。
备用库创建密码文件,注意这里的密码必须和主库一致。
在备用库创建相应目录(如bdump等)。
在备用库上使用pfile启动数据库到mount状态(注意步骤3创建的控制文件已经复制到备用数据库的相应文件夹下)
将备份集复制到备用数据库的同样目录下,如果没有空间可以使用link解决。
|
启动数据库
恢复数据文件
|
7. 主库,修改归档参数
|
注意testdbstd是备库的db_unique_name。
8. 备库,应用日志
注意:这里一定要更改service_names,否则主库将无法连接备库。
|
观察日志
|
|
日志正常传输、应用。
四、结语
配置过程中遇到了一些问题,如修改备用库的db_unique_name后,监听程序中的Service 名变成和db_unique_name一样,导致主库通过tnsnames.ora的配置连接备用库时无法连接,解决的方法是修改备用库的service_names,使之和tnsnames.ora中的配置匹配(这里的情况就是使其等于db_name)。
有一个验证方法,就是在修改完tnsnames.ora后,主、备库都用sqlplus互相连接一下,以确保正常连接。
最后就是不要忘记将备用库的pfile换成spfile。(create spfile from pfile,and restart database)。