学无止境
分类: Oracle
2013-12-12 15:44:01
配置DataGuard,可以使用图形界面的Data Guard Manager,或者命令行手动创建DG。
一、图形界面
1.先确认standby HOST上是否有与primary一样的ORACLE软件
2.查看到ocm2上也安装有10.2.0.2版本的ORACLE数据库软件
3.点击Database -> db1,选择Maintenance
4.找到DataGuard,点击
5.点击增加一个standby数据库
6.创建一个新的物理standby数据库
7.选择备份类型,选择第一个执行一个在线备份
8.指定备份目录
9.输入standby数据库实例名,可以输入和primary数据库一致的db1,也可以输入其他名称。指定standby数据库所在的位置,只有安装了与primary相同版本数据库软件的主机才会列出。
10.指定standby主机备份文件的存放位置。
11.指定standby数据库文件的位置,默认使用OFA,自动进行转换。
12.指定数据库网络配置文件的位置
13.如果有警告,可以点击继续。
14.指定standby数据库唯一名,不能和primary数据库名一样。指定standby数据库归档目录。
15.回顾一下配置情况,没有问题就点OK。
16.等待一段时间处理。
17.没有报错的话,就能正确配置为以下情况。注意查看到Data Guard Status为Normal,才正常。
二、命令行
使用DGMGRL可以将创建好的物理standby数据库通过DG_broker进行管理。
primary数据库已经手动建好,并开启了归档以及force logging
startup mount;
alter system set log_archive_dest_1='location=/oracle/arch/db1 valid_for=(all_roles,online_logfiles)';
alter database archivelog;
alter database open;
alter system set standby_file_management=AUTO;
alter database force logging;
2个数据库的db_name参数相同
db_unique_name不同
primary数据库上就先配置1个参数:
alter system set log_archive_config='dg_config=(db1,dg1)';
创建standby数据库的密码文件
orapwd file=$ORACLE_HOME/dbs/orapwdg1 password=oracle entries=10
standby数据库参数文件修改以下4个参数:
db_unique_name='dg1'
log_archive_dest_1='location=/oracle/arch/dg1 valid_for=(all_roles,online_logfiles)'
db_file_name_convert='/oracle/oradata/db1','/oracle/oradata/dg1'
log_file_name_convert='/oracle/oradata/db1','/oracle/oradata/dg1'
监听文件中增加2个GLOBAL_DBNAME
(SID_DESC =
(GLOBAL_DBNAME = db1_DGMGRL)
(ORACLE_HOME=/oracle/ora10g)
(SID_NAME = db1)
)
(SID_DESC =
(GLOBAL_DBNAME = dg2_DGMGRL)
(ORACLE_HOME=/oracle/ora10g)
(SID_NAME = dg2)
)
分别启动监听
各自配置tnsname
将standby数据库启动到nomount状态
使用rman创建standby数据库:
rman target auxiliary
backup current controlfile for standby database;
将备份文件传输到standby端相同位置
duplicate target database for standby;
如果文件位置完全相同,加上nofilenamecheck,不检查文件名转换。
duplicate target database for standby nofilenamecheck;
创建standby logfile。注意,standby log最好大于online redo log数量:
alter database add standby logfile group 4 ('/oracle/oradata/db1/std01.log') size 50m;
alter database add standby logfile group 5 ('/oracle/oradata/db1/std02.log') size 50m;
alter database add standby logfile group 6 ('/oracle/oradata/db1/std03.log') size 50m;
alter database add standby logfile group 7 ('/oracle/oradata/db1/std05.log') size 50m;
standby数据库上:
alter database add standby logfile group 4 ('/oracle/oradata/dg1/std01.log') size 50m;
alter database add standby logfile group 5 ('/oracle/oradata/dg1/std02.log') size 50m;
alter database add standby logfile group 6 ('/oracle/oradata/dg1/std03.log') size 50m;
alter database add standby logfile group 7 ('/oracle/oradata/dg1/std04.log') size 50m;
修改2个库的dg_broker_start参数:
alter system set dg_broker_start=true;
如有需要修改以下2个文件的路径:
ALTER SYSTEM SET dg_broker_config_file1 = '/oracle/oradata/db1/dr1mfg.dat' scope=both;
ALTER SYSTEM SET dg_broker_config_file2 = '/oracle/oradata/db1/dr2mfg.dat' scope=both;
配置DG broker:
create configuration DGCONF as primary database is DB1 connect identifier is db1;
add database DG1 as connect identifier is dg1 maintained as physical;
enable configuration;
show configuration verbose;
修改保护级别为最大可用:
edit database db1 set property LogXptMode=sync;
edit database dg1 set property LogXptMode=sync;
show database verbose db1;
edit configuration set protection mode as maxavailability;
切换DG:
switchover to dg1;