今天需要对一个24*7的生产库创建一个DG的物理备库,要求主库不能停机,一开始以为不可能,后来查了下文档,原来通过rman的duplicate命令可以实现在线创建物理备库。
主备库的信息如下:
角色 db_name db_unique_name 主机 网络连接字符串
主库 jkka jkka lx32 jkkapri
备库 jkka jkka2 lx201 jkkasta
1.主库的准备工作
1)确认主库已开启归档和force logging
DG要求主库一定要开启归档和force logging,可以通过以下语句查询:
SYS@JKKA>select log_mode,force_logging from v$database;
LOG_MODE FOR
------------ ---
ARCHIVELOG NO
从上面我们发现主库已经开启了归档,但没有开启force logging,可以通过以下语句开启:
SYS@JKKA>alter database force logging;
Database altered.
主备库间需要通过密码文件互相通讯,我们先在主库端创建密码文件,之后再把它同步到备库中:
$ orapwd file=$ORACLE_HOME/dbs/orapwjkka
确认参数remote_login_passwordfile为EXCLUSIVE(默认值):
SYS@JKKA>show parameter remote_login_passwordfile
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
remote_login_passwordfile string EXCLUSIVE
通过v$pwfile_users再次确认sys用户在密码文件中:
SYS@JKKA>select * from v$pwfile_users;
USERNAME SYSDB SYSOP SYSAS
------------------------------ ----- ----- -----
SYS TRUE TRUE FALSE
3)配置主库参数
首先,查看主库的db_name和db_unique_name:
SYS@JKKA>show parameter db_name
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_name string jkka
SYS@JKKA>show parameter db_unique_name
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_unique_name string jkka
接着,修改log_acchive_config参数,在dg_config属性分别写上主备库的db_unique_name: