Oracle - 通过dg,完成单实例到rac的迁移

本文将介绍如何给单实例搭建一个rac dg,以及如何对其进行角色转换,完成从单实例到rac的迁移。预先具备的知识(rac搭建,单实例-单实例dg搭建)

 

二、实验环境介绍

主库(已有数据库实例prod)
prod:192.168.56.102,sid:prod,version:11.2.0.4

从库rac(已安装rac软件,无数据库实例)
rac1:192.168.56.11,version:11.2.0.4
rac2:192.168.56.12,version:11.2.0.4

Snipaste_2019-12-17_13-20-34

 

三、搭建dg 1. 主库打开归档模式,并强制写日志

先查看数据库的归档状态以及是否开启强制写日志,从下图可以看到目前数据库并没有打开归档,也没有开启强制写日志
SQL> select log_mode, force_logging from v$database;

3

数据库在mount状态下打开归档
[oracle@prod ~]$ mkdir -p /u01/app/oracle/oradata/prod/archivelog
SQL> alter system set log_archive_dest_1='location=http://www.likecs.com/u01/app/oracle/oradata/prod/archivelog/' scope=spfile;
SQL> shutdown immediate;
SQL> startup mount; 
SQL> alter database archivelog;
SQL> alter database open;

强制日志写,数据库在open状态就能修改
SQL> alter database force logging;

再来查看数据库的归档状态以及是否开启强制写日志
SQL> select log_mode, force_logging from v$database;

4

 

2. 主库打开dataguard开关

SQL> alter system set log_archive_config='dg_config=(prod,proddg)';  # prod是主库的db_unique_name,proddg是从库的db_unique_name,这里只需要把主从环境中所有db_unique_name列出来就行,谁先谁后并不影响。

 

3. 主库设置远程归档

SQL> alter system set log_archive_dest_3='service=proddg valid_for=(online_logfiles,primary_role) db_unique_name=proddg';

 

4. 将主库的口令文件传送给从库

[oracle@prod ~]$ scp $ORACLE_HOME/dbs/orapw$ORACLE_SID 192.168.56.11:$ORACLE_HOME/dbs/orapwproddg1
[oracle@prod ~]$ scp $ORACLE_HOME/dbs/orapw$ORACLE_SID 192.168.56.12:$ORACLE_HOME/dbs/orapwproddg2
 

5. 从库准备参数文件

[oracle@rac1 ~]$ vi /home/oracle/pfile_initproddg1.ora  # 只在从库节点1上创建

*.audit_file_dest='/u01/app/oracle/admin/proddg/adump' *.audit_trail='db' *.compatible='11.2.0.4.0' *.control_files='+DATA/PRODDG/CONTROLFILE/control01.ctl' *.db_block_size=8192 *.db_domain='' *.db_name='prod' *.diagnostic_dest='/u01/app/oracle' *.log_archive_config='dg_config=(prod,proddg)' *.log_archive_dest_2='location=+DATA/PRODDG/ARCHSTDLOG/ valid_for=(standby_logfiles,standby_role) db_unique_name=proddg' *.memory_target=838860800 *.open_cursors=300 *.processes=150 *.remote_login_passwordfile='exclusive' *.standby_file_management=auto *.db_unique_name='proddg' *.db_file_name_convert='/u01/app/oracle/oradata/prod/','+DATA/proddg/datafile/','/u01/app/oracle/oradata/prod/','+DATA/proddg/tempfile/' *.log_file_name_convert='/u01/app/oracle/oradata/prod/','+DATA/proddg/onlinelog/' *.cluster_database=false proddg1.undo_tablespace='UNDOTBS1' proddg2.undo_tablespace='UNDOTBS2' proddg1.instance_number=1 proddg2.instance_number=2 proddg1.thread=1 proddg2.thread=2

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpzfzs.html