小坑不断:
Oracle 11g Active DataGuard配置过程,很经典
1,redhat linux 4,安装介质 oracle 10.2.0.1 x86_64
在link阶段开始报错client_sharedlib之类的,后来发现操作系统是32bit。
后边换成64位Oracle Linux 5.7
2,没有创建audit目录,启动数据库时报错,无法创建audit
3,standby没有指定db_unique_name参数,
因为主库已经启动,那么备库启动时报错,无法报错
ORA-01102: cannot mount database in EXCLUSIVE mode
4,指定参数错误
db_file_name_convert/log_file_name_convert 指的是从对端向本地端的映射,
我指定反了,结果主库prod把联机日志传递到备库,备库由于参数搞反,直接写回主库,
导致主库的联机日志损坏,数据库崩溃。
下述为正确的参数:
主库
alter system set db_file_name_convert='/u01/app/oracle/oradata/stby1','/u01/app/oracle/oradata/prod' scope=spfile;
alter system set log_file_name_convert='/u01/app/oracle/oradata/stby1','/u01/app/oracle/oradata/prod' scope=spfile;
备库:
alter system set db_file_name_convert='/u01/app/oracle/oradata/prod','/u01/app/oracle/oradata/stby1' scope=spfile;
alter system set log_file_name_convert='/u01/app/oracle/oradata/prod','/u01/app/oracle/oradata/stby1' scope=spfile;
后边是正式的实施过程:
参考文档:
http://blog.itpub.net/17203031/viewspace-1171195/
http://blog.chinaunix.net/uid-23177306-id-2531136.html
http://www.itpub.net/thread-1591214-1-1.html
主要看官方文档,dataguard how to creat Physical standby database.
主要步骤,简略版
一、前期准备
listener/tnsnames
密码文件
二、主库:
启用归档、强制日志、闪回数据库等功能;
准备参数文件;
准备standby controlfile
三、备库:
准备参数文件;
创建对应的文件系统目录;
四、主备库:
rman/cp/ftp/scp复制数据文件;
以standby controlfile启动数据库至mount状态;
restore data file/ cp data file;
startup nomount;
alter database mount standby database;
alter database open (read only);
recover managed standby database using current logfile disconnect from session;
alter database add standby logfile size 200m;
五、启动主备平滑切换
alter system set log_archive_dest_state_2='defer';
alter system set log_archive_dest_state_2='enable';
主库:
ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY with session shutdown;
SHUTDOWN IMMEDIATE;
STARTUP;
RECOVER MANAGED STANDBY DATABASE DISCONNECT USING CURRENT LOGFILE;
SELECT SWITCHOVER_STATUS,PROTECTION_MODE,PROTECTION_LEVEL,DATABASE_ROLE,open_mode FROM V$DATABASE;
原来的备库:
ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY with session shutdown;
ALTER DATABASE OPEN;
SELECT SWITCHOVER_STATUS,PROTECTION_MODE,PROTECTION_LEVEL,DATABASE_ROLE,open_mode FROM V$DATABASE;
原来配置都是一次通过,这次弄了半天,遇到很多错误,对参数的理解也更深了。
alter system set log_archive_dest_2='service=prod lgwr sync affirm valid_for=(online_logfiles,primary_role) db_unique_name=prod';
Oracle 11g Active DataGuard配置过程,很经典
1,redhat linux 4,安装介质 oracle 10.2.0.1 x86_64
在link阶段开始报错client_sharedlib之类的,后来发现操作系统是32bit。
后边换成64位Oracle Linux 5.7
2,没有创建audit目录,启动数据库时报错,无法创建audit
3,standby没有指定db_unique_name参数,
因为主库已经启动,那么备库启动时报错,无法报错
ORA-01102: cannot mount database in EXCLUSIVE mode
4,指定参数错误
db_file_name_convert/log_file_name_convert 指的是从对端向本地端的映射,
我指定反了,结果主库prod把联机日志传递到备库,备库由于参数搞反,直接写回主库,
导致主库的联机日志损坏,数据库崩溃。
下述为正确的参数:
主库
alter system set db_file_name_convert='/u01/app/oracle/oradata/stby1','/u01/app/oracle/oradata/prod' scope=spfile;
alter system set log_file_name_convert='/u01/app/oracle/oradata/stby1','/u01/app/oracle/oradata/prod' scope=spfile;
备库:
alter system set db_file_name_convert='/u01/app/oracle/oradata/prod','/u01/app/oracle/oradata/stby1' scope=spfile;
alter system set log_file_name_convert='/u01/app/oracle/oradata/prod','/u01/app/oracle/oradata/stby1' scope=spfile;
后边是正式的实施过程:
参考文档:
http://blog.itpub.net/17203031/viewspace-1171195/
http://blog.chinaunix.net/uid-23177306-id-2531136.html
http://www.itpub.net/thread-1591214-1-1.html
主要看官方文档,dataguard how to creat Physical standby database.
主要步骤,简略版
一、前期准备
listener/tnsnames
密码文件
二、主库:
启用归档、强制日志、闪回数据库等功能;
准备参数文件;
准备standby controlfile
三、备库:
准备参数文件;
创建对应的文件系统目录;
四、主备库:
rman/cp/ftp/scp复制数据文件;
以standby controlfile启动数据库至mount状态;
restore data file/ cp data file;
startup nomount;
alter database mount standby database;
alter database open (read only);
recover managed standby database using current logfile disconnect from session;
alter database add standby logfile size 200m;
五、启动主备平滑切换
alter system set log_archive_dest_state_2='defer';
alter system set log_archive_dest_state_2='enable';
主库:
ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY with session shutdown;
SHUTDOWN IMMEDIATE;
STARTUP;
RECOVER MANAGED STANDBY DATABASE DISCONNECT USING CURRENT LOGFILE;
SELECT SWITCHOVER_STATUS,PROTECTION_MODE,PROTECTION_LEVEL,DATABASE_ROLE,open_mode FROM V$DATABASE;
原来的备库:
ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY with session shutdown;
ALTER DATABASE OPEN;
SELECT SWITCHOVER_STATUS,PROTECTION_MODE,PROTECTION_LEVEL,DATABASE_ROLE,open_mode FROM V$DATABASE;
原来配置都是一次通过,这次弄了半天,遇到很多错误,对参数的理解也更深了。
alter system set log_archive_dest_2='service=prod lgwr sync affirm valid_for=(online_logfiles,primary_role) db_unique_name=prod';
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/89196/viewspace-1460745/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/89196/viewspace-1460745/