创建Logical Standby

联系:手机/微信(+86 17813235971) QQ(107644445)

标题:创建Logical Standby

作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]

1、Create a Physical Standby Database
具体见linux下使用rman配置standby data guard(11gR2版)
2、Stop Redo Apply on the Physical Standby Database
在primary database上执行ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
3、修改primary上的参数文件并建立LogMiner字典

LOG_ARCHIVE_DEST_1=
'LOCATION=/archive/orcl/
VALID_FOR=(ONLINE_LOGFILES,ALL_ROLES)
DB_UNIQUE_NAME=orcl'
LOG_ARCHIVE_DEST_3=
'LOCATION=/archive/standby/orcl/
VALID_FOR=(STANDBY_LOGFILES,STANDBY_ROLE)
DB_UNIQUE_NAME=orcl'
LOG_ARCHIVE_DEST_STATE_3=ENABLE
--LOG_ARCHIVE_DEST_2未作修改没有列出

执行EXECUTE DBMS_LOGSTDBY.BUILD;
4、Physical Standby Database Convert to a Logical Standby Database(standby上执行)
ALTER DATABASE RECOVER TO LOGICAL STANDBY db_name;
5、修改Logical standby database参数

LOG_ARCHIVE_DEST_1=
'LOCATION=/archive/orcl/
VALID_FOR=(ONLINE_LOGFILES,ALL_ROLES)
DB_UNIQUE_NAME=boston'
LOG_ARCHIVE_DEST_2=
'SERVICE=orcl ASYNC
VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)
DB_UNIQUE_NAME=orcl'
LOG_ARCHIVE_DEST_3=
'LOCATION=/archive/standby/xff/
VALID_FOR=(STANDBY_LOGFILES,STANDBY_ROLE)
DB_UNIQUE_NAME=xff'
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
LOG_ARCHIVE_DEST_STATE_3=ENABLE

6、重启logical standby database
STARTUP MOUNT;
ALTER DATABASE OPEN RESETLOGS;
7、添加standby logfile文件
具体见oracle之data guard(2)——物理standby和primary切换中的添加standby redo部分
8、开启和关闭应用
alter database start logical standby apply immediate;–开启
alter database recover managed standby database cancel;–关闭
9、相关事宜说明
主要参考oracle 的online documentation 11g release 2文档中的data guard部分
注意11g这部分中和10g的不同,多了些新特新,不用新建密码文件

oracle之data guard(1)——物理standby建立

联系:手机/微信(+86 17813235971) QQ(107644445)

标题:oracle之data guard(1)——物理standby建立

作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]

一、primary数据库配置及相关操作
1、数据库启动强制归档模式
alter database force logging;
2、确保数据库是archivelog模式

--archive log list查看是否已经归档
--如果不是使用下面语句进行设置
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;

3、创建standby 数据库控制文件
alter database create standby controlfile as ‘c:\orcl.ctl’;
4、修改初始化参数文件,并重新创建spfile

*.db_name='orcl'
db_unique_name='orcl'
log_archive_config='dg_config=(orcl,xff)'
*.log_archive_dest_1='location=C:\archive\orcl\ valid_for=(all_logfiles,all_roles) db_unique_name=orcl'
*.log_archive_dest_2='service=xff lgwr async valid_for=(online_logfiles,primary_role) db_unique_name=xff'
*.log_archive_dest_state_1=enable
*.log_archive_dest_state_2=enable
fal_server=xff
fal_client=orcl
db_file_name_convert='c:\xff\data\','C:\oracle\product\10.2.0\oradata\orcl'
log_file_name_convert='c:\xff\data\','C:\oracle\product\10.2.0\oradata\orcl'
standby_file_management=auto

5、配置listener 及net service names(我建议使用net manager)
最好 执行lsnrctl stop lsnrctl start重新启动监听程序
6、关闭数据库并备份。
二、Standby数据库配置及相关操作
1、创建进程和密码文件(注意密码要和primary中的sys的密码一致)
oradim -new -sid xff -intpwd oracle(密码为oracle)(当然也可以把primar中的密码文件改名拷贝过来)
2、创建文件夹,并拷贝备份的归档文件和数据库文件
3、修改初始化参数文件(使用刚刚修改的primary中的参数文件进行修改)

*.control_files='c:\xff\data\xff.ctl'
*.db_name='orcl'
db_unique_name='xff'
log_archive_config='dg_config=(orcl,xff)'
*.log_archive_dest_1='location=C:\archive\xff\ valid_for=(all_logfiles,all_roles) db_unique_name=xff'
*.log_archive_dest_2='service=orcl lgwr async valid_for=(online_logfiles,primary_role) db_unique_name=orcl'
*.log_archive_dest_state_1=enable
*.log_archive_dest_state_2=enable
fal_server=orcl
fal_client=xff
db_file_name_convert='C:\oracle\product\10.2.0\oradata\orcl','c:\xff\data\'
log_file_name_convert='C:\oracle\product\10.2.0\oradata\orcl','c:\xff\data\'
standby_file_management=auto
--注意修改一些dump文件路径

4、启动数据库到mount状态
startup mount;
5、启动redo 应用
alter database recover managed standby database disconnect from session;(redo apply)
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE;(real-time apply)
三、检查配置结果
1、首先连接到primary 数据库
alter system switch logfile;
select name from v$archived_log;
2、连接到standby数据库
select name from v$archived_log;
如果和primary一致,再重复1、2操作,并且还是保持一致,说明配置成功
3、暂停redo应用
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
4、执行read only状态
执行3只是暂时redo 应用,并不是停止Standby 数据库,standby 仍会保持接收只不过不会再应用
接收到的归档,直到你再次启动redo 应用为。
在暂停redo应用的状态中可以把数据库至于read only状态用于查询
alter database open read only;(在11g中没有这个限制)
5、解决redo 不能被读取或者不能正常open
把standby数据库至于mount状态,执行
recover standby database until cancel;
选择cancel
再alter database open确保数据库中的所有文件scn号一致
然后添加临时文件
alter tablespace temp add tempfile ‘c:\xff\data\tm.dbf’ size 5m reuse;
确保数据库可以进行一般正常的操作
虚拟机中的pfile配置文件