您的位置:首页 > 数据库

单实例到rac   数据库迁移方案之DG方式迁移

2014-04-11 14:39 274 查看
一:环境信息
1)主库(单实例)
主机平台:AIX6.1
数据库版本:11.2.0.3(psu5)
2)备库(部署了crs)
主机平台:AIX6.1
数据库版本:11.2.0.3(psu5)

二:方案背景
由于业务量增加,数据库需要由单实例,改成两节点rac。为了减少停机时间,采用DG方式迁移。

三迁移方案:

1.检查数据库是否支持Data Guard(只有企业版才支持DG)
2.修改主库为归档模式及force logging状态
1)
2)
SQL> archive log list;
如果未开归档,开启归档模式
3.创建备库pfile文件
在主库上创建pfile,修改,并添加DG备库所有参数,然后传至备库
1)备库需要添加的参数
DB_UNIQUE_NAME;LOG_ARCHIVE_DEST_1;FAL_SERVER;FAL_CLIENT; STANDBY_FILE_MANAGEMENT=AUTO;DB_FILE_NAME_CONVERT;LOG_FILE_NAME_CONVERT
2)根据pfile中涉及到路径需要提前在备库主机上建好(如果主备库路径不一致要修改)
如主库*.audit_file_dest='/apps/oracle/admin/egap/adump'
我们在备库需要建 mkdir -p /apps/oracle/admin/egap/adump
cd /apps/oracle/admin
chown -R oracle:oinstall egap
chmod -R 775 egap

改变前参数文件

改变后参数文件

###注意db_file_name_convert和log_file_name_convert参数指定的路径要存在
4)根据修改后的pfile创建备库spfile
--使用新生成的spfile检查是否能够成功启动实例

4.生成备库的密码文件
scp主库密码文件到备库,并改名
如果主库没有密码文件,需要新建
--主库密码文件传到备库以后要重启备库
5.配置主备库监听及net服务
1)listener
--主库
一般建库后都会配置监听我们无需再配置
--备库(因为安装了cluster,所以用的是cluster的监听)
lsnrctl status 查看监听文件位置,并在监听文件中加入如下类容

2)tns
主备库tnsnames.ora文件中加入如下部分
--DG搭建后要主备切换并添加实例

6. 测试网络连接
1)查看监听状态是否正常
lsnrctl status
2) 测试连接串是否能正常连接到指定数据库
7. 复制备库
有两种1:rman在线复制 2:rman备份异机恢复
方法1:rman在线复制(不需要备份主库)
此种方式仅适用于ORACLE 11G,可以自动备份datafile,control等文件到备库,在复制过程主库仍可正常运行,但复制过程时间较长,会占用一定的网络资源。
1)将备库启动到nomount状态
export ORACLE_SID=egapdb1
sqlplus / as sysdba
startup nomount;
2)在备库上执行如下命令
--如果主备库文件路径不变,要加nofilenamecheck。登陆时加nocatalog否则会报如下错误:
8. 添加standby log
--为了日后切换,建议为主库也添加standby log
--注意stnadby log的大小(同主库redolog相同大小)
--注意添加合适数量的standby log
SELECT GROUP#,THREAD#,SEQUENCE#,ARCHIVED,STATUS FROM V$STANDBY_LOG;
检查是否成功创建
standy log 的推荐数目为=(每个线程的日志文件的最大数目+1)×线程最大数目

9.配置主库DG参数
主库需要配置的参数为DB_UNIQUE_NAME;LOG_ARCHIVE_CONFIG;LOG_ARCHIVE_DEST_2;REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
--为了方便以后切主库也应该添加备库所需要的参数
10.在备库上启动恢复
启动恢复
--主库切换日志,观察DG能否正常应用日志
1)在备库查看 data guard 为哪种日志接受方式,以及当前被应用的日志
--rfs进程接受的是lgwr日志,说明主库用的是lgwr进程传输日志。mrp0进程存在说明此时已启动恢复管理
2)在备库查看新的归档日志有没有正常传输过来,并被应用
3)查看主备库的alert日志,是否正常
4)备库查看日志应用延时
11.添加实例
1.oracle DG主备切换(switchover)
--切换前检查主备库参数,及standbylog是否配置(如下参数在主备库都需配置)
1)主库
--查看是否可以切换为备库
2)备库
select database_role,switchover_status from v$database;
注:当SWITCHOVER_STATUS的值为TO PRIMARY or SESSIONS ACTIVE的时候表示备库可以支持SWITCHOVER(在主库执行完commit后会变成to primary
而在主库没有执行之前是not allowed状态)
alter database commit to switchover to primary;

12.配置cluster listener(主要是配置第二个节点的listener)
具体方法见DG实施方案的第五步

3.创建集群参数文件
1)create pfile from spfile;(在转换后的主库上)
修改pfile,并添加rac需要的参数
修改后参数文件如下:
--注意参数文件中定义的路径要在第二个节点提前建立

2).修改备库fal_server
alter system set fal_server='standby1','standby2';
--可以在一开始就配置,此处就不必修改

3)创建新的spfile(注意建在共享路径下)
4)在两个节点的写入如下信息(并删除$ORACLE_HOME/dbs目录下的spfile文件)
SPFILE='/data01/egapdb/spfileegap.ora'

13.生成第二个节点的密码文件
传第老库的密码文件到第二个节点,并改名
scp orapwegap oracle@egapdb2:$ORACLE_HOME/dbs
mv orapwegap orapwegapdb2

14.重启主库使修改的参数生效
1)停主库前,先停掉备库的日志应用
alter database recover managed standby database cancel;
2)停主库
shutdown immediate;
3)startup;
--查看rac相关参数是否生效,tail -f 主备库的alert日志,观察是否有报错,DG是否正常
show parameter cluster;

15.添加其他节点的redo及undo
1)redo
2)undo
16.在备库添加第二个实例的standby log(不建好像也可以)

17.在备库设置db_recovery_file_dest,db_recovery_file_dest_size参数
--如果不设该参数,备库会报错(主库添加第二个实例日志,在备库应用会报错)
OpenVMS: Error Creating Redo Logs In Standby Database ORA-01264: Unable to create logfile file name (Doc ID 1376892.1)

8.在第二个节点打开数据库
--tail -f 主备库alert日志,查看是否有报错,DG是否正常
export ORACLE_SID=egapdb2
sqlplus / as sysdba
startup

19.向crs中注册资源
1)查看注册前集群中资源
2)注册(在任意一个节点添加即可)
--如果用的是asm的话还需要添加数据库实例同asm实例的对应关系
3)查看注册后的集群资源
4)srctl start instance启动实例(添加资源后DB资源是offline状态)
--检验crs能否正常启停数据库
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息