DG
配置
DATAGUARD
创建主要是配置
primary
数据库和
standby
数据库的相关属性并进行数据库迁移。下面为具体创建步骤:
实验环境
:TEST ( 10.1.1 .231)
为主库
STANDBY ( 10.1.1 .203)
为备库
primary
数据库配置
1
、
确认主库处于归档模式,如果为非归档则必须改为归档模式
SQL> archive log list;
2
、
将
primary
数据库置为
FORCE LOGGING
模式
SQL> alter database force logging;
select FORCE_LOGGING from v$database
3
、
配置
netmgr
测试两个数据库可以互相连通
测试:在主库
TEST
上
在备库
STANDBY
上
4
、创建
TEST
数据库初始化参数文件便于参数修改
SQL> create pfile=
‘
/home/oracle/initdg.ora
’
from spfile;
修改生成的
initdg.ora
参数文件
二、
standby
数据库配置
SQL> create pfile=
‘
/home/oracle/initdg.ora
’
from spfile;
修改生成的
initdg.ora
参数文件
三、迁移
test
数据库的数据文件、控制文件到
standby
1
、启动
standby
到
nomount
状态
2
、主库上利用
RMAN
制作
test
数据库备份
(
所有
RMAN
操作都在主数据库上执行
)
RMAN > connect target /
RMAN >backup full database format=
‘
/home/oracle/backup/%U' include current controlfile for standby;
-
将
rman
的备份集拷贝至
standby
库相同的路径
,
并在主库连接
,
不要断开上面的连接
,
如果断开
,
那么重新连接主库
在备库上
mkdir �Cp /home/oracle/backup
建立与主库相同目录
Rman
备份的控制文件也要拷到相应的目录
RMAN > connect auxiliary sys/sys@standby
复制
standby
数据库
,
接着上面的连接在主库上执行
RMAN > duplicate target database for standby nofilenamecheck;
正常运行无错误后直接执行
说明
:
此命令结束后从库直接启动到
mount
修改
standby
数据库自动恢复状态
alter database recover managed standby database disconnect from session;
四、确认
DATAGUARD
环境状态是否正常
主库操作
:
select process from v$managed_standby;
-
确认主库没有
lns
进程
(
日志网络服务进程
-
负责把主库归档日志传输到备库
)
如果无此进程则执行下面命令
alter system set log_archive_dest_2='SERVICE=standby LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=standby';
alter system set log_archive_dest_state_2=ENABLE;
alter system switch logfile;
继续确认有无
lns
进程
,
如果还没有启动则查看相关错误信息
select error from v$archive_dest;
根据具体
ORACLE
错误码查找错误原因
.
备库操作
:
SQL> select process from v$managed_standby;
RFS --
远程文件服务
-
接收由主库
lns
进程传送过来的日志
MRP0 --
介质恢复进程
-
同步主库日志数据到从库
注意
:
如果没有
RFS
进程
,
则查看主库
lns
进程是否正常
.
如果没有
MRP
进程则执行
alter database recover managed standby database disconnect from session;
五、
READ ONLY
模式打开物理
STANDBY
1
、
mount
状态下首先取消
redo
应用:
SQL> alter database recover managed standby database cancel;
然后再打开数据库
SQL> alter database open ;
提示:
open
的时候不需要附加
read only
子句,
oracle
会根据控制文件判断是否是物理
Standby
,从而自动启动到
read only
模式,直接
startup
也是同理。
standby
数据库只读模式打开后不能再应用日志进行恢复,与
primary
存在数据延迟,在一定条件下可作为报表服务器使用减小主库压力。
2
、从
open
状态切回
redo
应用状态
(mount
状态
)
,并不需要
shutdown
,直接启用
redo
应用即可
SQL> alter database recover managed standby database disconnect from session;
使用下面查询查看修改后的状态是否正确
SQL> select status from v$instance;
六、验证
在切换后的主库上切换日志并查询主备库的归档日志最大序列号是否同时变化,
如果是则切换成功否则检查错误。
主库执行
Alter system switch logfile;
主备库执行下面语句查看日志最大序列号是否同时改变或查看归档日志目录文件数是否同步增加
select max(sequence#) from v$archived_log;
主库:
备库:日志切换前后分别查看
本文出自 “理想CTO” 博客,谢绝转载!