首页 > 数据库 > Oracle > 正文

Oracle 给rac创建单实例dg并做主从切换功能

2020-07-28 13:44:19
字体:
来源:转载
供稿:网友

一、概述

本文将介绍如何给rac搭建单节点的dg,以及如何对其进行角色转换。预先具备的知识(rac搭建,单实例-单实例dg搭建)

二、实验环境介绍

主库rac(已安装rac,并已有数据库orcl)

rac1:192.168.56.11,sid1:orcl1,version:11.2.0.4rac2:192.168.56.12,sid2:orcl2,version:11.2.0.4

从库(已安装单实例数据库软件,无数据库实例)

oradg:192.168.56.102,sid:orcldg,version:11.2.0.4

三、搭建dg

** 以下所有主库操作都在节点1上做,如果需要在节点2上做的,我会标明

1. 主库打开归档模式,并强制写日志

先查看数据库的归档状态以及是否开启强制写日志,从下图可以看到目前数据库并没有打开归档,也没有开启强制写日志

SQL> select log_mode, force_logging from v$database;

数据库在mount状态下打开归档

SQL> alter system set log_archive_dest_1='location=+data' sid='*' scope=spfile;SQL> shutdown immediate; # 两节点都关闭SQL> startup mount; # 只开启节点1SQL> alter database archivelog;SQL> alter database open;

强制日志写,数据库在open状态就能修改

SQL> alter database force logging;SQL> startup; # 当节点1open完毕后,在节点2上打开数据库

再来查看数据库的归档状态以及是否开启强制写日志

SQL> select log_mode, force_logging from v$database;

2. 主库打开dataguard开关

SQL> alter system set log_archive_config='dg_config=(orcl,orcldg)' sid='*'; # orcl是主库的db_unique_name,orcldg是从库的db_unique_name

3. 主库设置远程归档

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

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

[oracle@rac1 ~]$ scp $ORACLE_HOME/dbs/orapw$ORACLE_SID 192.168.56.102:$ORACLE_HOME/dbs/orapworcldg

5. 从库准备参数文件

这里参数文件跟给单实例搭建单实例dg没什么区别,所以不做具体介绍

[root@oradg ~]# vi $ORACLE_HOME/dbs/initorcldg.ora*.audit_file_dest='/u01/app/oracle/admin/orcldg/adump'*.audit_trail='db'*.compatible='11.2.0.4.0'*.control_files='/u01/app/oracle/oradata/orcldg/controlfile/control01.ctl'*.db_block_size=8192*.db_domain=''*.db_name='orcl'*.diagnostic_dest='/u01/app/oracle'*.log_archive_config='dg_config=(orcl,orcldg)'*.log_archive_dest_2='location=/u01/app/oracle/oradata/orcldg/archstdlog/ valid_for=(standby_logfiles,standby_role) db_unique_name=orcldg'*.memory_target=838860800*.open_cursors=300*.processes=150*.remote_login_passwordfile='exclusive'*.undo_tablespace='UNDOTBS1'standby_file_management=auto # 该参数默认值是manual,需要将其改为auto,表示主库的数据文件发生修改(如新建,重命名等),相应地从库也做相应修改db_unique_name='orcldg'db_file_name_convert='+DATA/orcl/datafile/','/u01/app/oracle/oradata/orcldg/datafile/','+DATA/orcl/tempfile/','/u01/app/oracle/oradata/orcldg/tempfile/'log_file_name_convert='+DATA/orcl/onlinelog/','/u01/app/oracle/oradata/orcldg/onlinelog/'
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表