千家信息网

Oracle 11.2.0.4 RAC Standby实施手册

发表于:2024-11-23 作者:千家信息网编辑
千家信息网最后更新 2024年11月23日,Oracle RAC Standby实施手册目录1 实施环境规划 31.1 IP地址规划 31.2 归档配置相关参数 31.3 主库软件环境信息 41.4 备库软件环境信息 42 Active Dat
千家信息网最后更新 2024年11月23日Oracle 11.2.0.4 RAC Standby实施手册


Oracle RAC Standby实施手册

目录

1 实施环境规划 3

1.1 IP地址规划 3

1.2 归档配置相关参数 3

1.3 主库软件环境信息 4

1.4 备库软件环境信息 4

2 Active DataGuard实施条件 6

3 Active DataGuard实施准备 8

3.1 配置DG专用监听 8

3.1.1 创建LISTENER_DG 8

3.1.2 将监听加入到crs资源 10

3.2 配置TNS别名 10

3.3 同步口令文件 11

3.4 测试TNS配置有效性 11

4 配置数据库参数 13

4.1 主库参数调整 13

4.2 主库创建STANDBY日志 14

4.3 备库参数调整 14

4.4 创建备库所需目录 15

5 备库初始化 16

5.1 设置备库ORACLE_SID环境变量 16

5.2 启动备库数据库实例到NOMOUNT状态 16

5.3 测试主/备库数据库连接状态 16

5.4 执行DUPLICATE操作复制数据库 16

5.5 创建备库参数文件 17

5.5.1 备库节点1完成参数文件调整工作 17

5.5.2 备库节点2完成pfile文件创建工作 18

5.6 将备库加入到crs资源 18

5.7 启动备库 18

5.8 启动Active DataGuard 18

6 备库测试 19

1 实施环境规划

DataGuard三种保护模式:最大化保护、最大有效性、最大性能。为了降低对主数据库的影响,以下采用最大性能模式进行DataGuard配置。

DataGuard配置中备数据库类型主要有三种:逻辑备数据库、物理备数据库和基于快照的备数据库,以下采用物理备数据库方式进行DataGuard配置。

DataGuard配置中的主数据库和备数据库之间数据同步是通过TCP/IP网络通信实现的,为了尽可能降低网络带宽的竞争和对现有应用程序性能问题,建议在主数据库主机和备数据库主机之间构建专属于DataGuard的网络,即需要添加新的网卡等硬件资源搭建专属于DataGuard的网络。

另外,建议在主数据库和备数据库上创建专属于DataGuard的数据库监听器,如listener_dg,监听端口为1525,如果主数据库和备数据库在不同网段上且存在防火墙,需要在防火墙上开通1525端口。

1.1 IP地址规划


主机名

IP地址

描述

主数据库环境

crmdb1

192.168.56.210

公网IP地址

192.168.56.216

DG专署IP地址

crmdb2

192.168.56.211

公网IP地址

192.168.56.217

DG专署IP地址

备数据库环境

crmdg1

192.168.56.220

公网IP地址

192.168.56.225

DG专署IP地址址

crmdg2

192.168.56.221

公网IP地址

192.168.56.226

DG专署IP地址

1.2 归档配置相关参数

数据库类型

主机名

DB_UNIQUE_NAME

INSTANCE_NAME

Net Service Name

主库

crmdb1

crmdb

crmdb1

CRMDB_DG

crmdb2

crmdb2

备库

crmdg1

crmdg

crmdb1

CRMDG_DG

crmdb2

crmdb2

1.3 主库软件环境信息

为便于管理,主备库软件环境信息配置一致。

主库软件环境信息

数据库sys用户密码

主数据库和备数据库密码必须一致,设置为oracle

Grid和数据库版本

11.2.0.4

ORACLE_SID环境变量

crmdb1和crmdb2

GRID软件ORACLE_BASE目录

/oracle/app/oracle

GRID软件ORACLE_HOME目录

/grid/app/11.2.0.4/grid

DB软件ORACLE_BASE目录

/oracle/app/oracle

DB软件ORACLE_HOME目录

/oracle/app/oracle/product/11.2.0.4/db_1

DG专署监听器

LISTENER_DG

DG专署监听器端口

1525

初始化参数

DB_NAME=crmdb

DB_UNIQUE_NAME=crmdb

COMPATIBLE主数据库和备数据库必须一致

归档模式

归档模式

归档目录

+CRMDBARCH

1.4 备库软件环境信息

备库软件环境信息

数据库sys用户密码

主数据库和备数据库密码必须一致,设置为oracle

Grid和数据库版本

11.2.0.4

ORACLE_SID环境变量

crmdb1和crmdb2

GRID软件ORACLE_BASE目录

/oracle/app/oracle

GRID软件ORACLE_HOME目录

/grid/app/11.2.0.4/grid

DB软件ORACLE_BASE目录

/oracle/app/oracle

DB软件ORACLE_HOME目录

/oracle/app/oracle/product/11.2.0.4/db_1

DG专署监听器

LISTENER_DG

DG专署监听器端口

1525

初始化参数

DB_NAME=crmdb

DB_UNIQUE_NAME=crmdg

COMPATIBLE主数据库和备数据库必须一致

归档模式

归档模式

归档目录

+CRMDGARCH

2 Active DataGuard实施条件

实施Active DataGuard的前提条件如下:

1. 主数据库主机和备数据库主机硬件平台一致,如都为Linux 主机

2. 主数据库和备数据库软件版本一致且都为11.2.0.4

3. 备数据库数据库存储空间大小不小于主数据库数据库存储空间大小

$ asmcmd

ASMCMD> lsdg

4. 主数据库数据库运行正常且工作在archivelog模式下

$ sqlplus / as sysdba

--1. 修改并检查归档参数

SQL> alter system set log_archive_dest_1='location=+CRMDBARCH';

SQL> show parameter log_archive_dest_1;

SQL> show parameter log_archive_format;

--2. 关闭主库两各节点

SQL> shutdown immediate;

--3. 启动一各节点进行启用归档操作

SQL> startup mount;

SQL> alter database ARCHIVELOG;

SQL> alter database open;

--4. 启动另外一各节点

SQL> startup;

--5. 测试归档配置结果

SQL> alter system archive log current;

5. 主数据库数据库需要启动force logging功能

$ sqlplus / as sysdba

SQL> select FORCE_LOGGING from v$database;

SQL> alter database force logging;

6. 主数据库和备数据库sys用户的密码一样,并且密码文件必须存在且主数据库初始化参数remote_login_passwordfile必须设置为EXCLUSIVE

3 Active DataGuard实施准备

为便于主备库切换时,应用可以进行快速切换,主备库数据库实例名名称相同。

3.1 配置DG专用监听

3.1.1 创建LISTENER_DG

通过grid登录主/备数据库各节点主机,创建LISTENER_DG监听器/备数据库主机清单见:IP地址规划

主库配置文件(crmdb1/crmdb2主机)

[grid@crmdb1 ~]$ cd $ORACLE_HOME/network/admin

[grid@crmdb1 admin]$ cp listener.ora listener.ora.`date +%Y%m%d`

[grid@crmdb1 admin]$ vi listener.ora

# ADD FOR DG

LISTENER_DG =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.216)(PORT = 1525))

)

)

SID_LIST_LISTENER_DG =

(SID_LIST =

(SID_DESC =

(GLOBAL_DBNAME = crmdb)

(ORACLE_HOME = /oracle/app/oracle/product/11.2.0.4/db_1)

(SID_NAME = crmdb1)

)

)

红色部分内容描述:

LISTENER_DGDG专用监听器名称

192.168.56.216crmdb1 节点DG专署监听IP地址

1525DG专署监听端口

crmdbDB_UNIQUE_NAME初始化参数值

crmdb1当前主机ORACLE_SIDINSTANCE_NAME

备库配置文件(crmdg1/crmdg2主机)

[grid@crmdg1 ~]$ cd $ORACLE_HOME/network/admin

[grid@crmdg1 admin]$ cp listener.ora listener.ora.`date +%Y%m%d`

[grid@crmdg1 admin]$ vi listener.ora

# ADD FOR DG

LISTENER_DG =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.225)(PORT = 1525))

)

)

SID_LIST_LISTENER_DG =

(SID_LIST =

(SID_DESC =

(GLOBAL_DBNAME = crmdg)

(ORACLE_HOME = /oracle/app/oracle/product/11.2.0.4/db_1)

(SID_NAME = crmdb1)

)

)

红色部分内容描述:

LISTENER_DGDG专用监听器名称

192.168.56.225crmdg1 节点DG专署监听IP地址,该参数各主机不同

1525DG专署监听端口

crmdgDB_UNIQUE_NAME初始化参数值,该参数主备库不同

crmdb1当前主机ORACLE_SIDINSTANCE_NAME该参数集群中各节点不同

3.1.2 将监听加入到crs资源

主库:

[grid@crmdb1 ~]$ srvctl add listener -l LISTENER_DG -p TCP:1525

[grid@crmdb1 ~]$ srvctl start listener -l LISTENER_DG -n crmdb1

[grid@crmdb2 ~]$ srvctl start listener -l LISTENER_DG -n crmdb2

备库:

[grid@crmdg1 ~]$ srvctl add listener -l LISTENER_DG -p TCP:1525

[grid@crmdg1 ~]$ srvctl start listener -l LISTENER_DG -n crmdg1

[grid@crmdg2 ~]$ srvctl start listener -l LISTENER_DG -n crmdg2

3.2 配置TNS别名

该配置主备库相同。

[oracle@crmdb1 ~]$ cd $ORACLE_HOME/network/admin

[oracle@crmdb1 admin]$ cp tnsnames.ora tnsnames.ora.`date +%Y%m%d`

[oracle@crmdb1 admin]$ vi tnsnames.ora

CRMDB_DG =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.216)(PORT = 1525))

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.217)(PORT = 1525))

(CONNECT_DATA =

(SERVICE_NAME = CRMDB)

)

)

CRMDG_DG =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.225)(PORT = 1525))

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.226)(PORT = 1525))

(CONNECT_DATA =

(SERVICE_NAME = CRMDG)

)

)

注意:

备库的SERVICE_NAMECRMDG,但ORACLE_SID中配置为crmdb1/crmdb2

3.3 同步口令文件

如果需要修改sys用户的密码,则在节点crmdb1执行以下命令后再将数据库密码文件ftp到其他crmdb2crmdg1crmdg2节点上。

[oracle@crmdb1 ~]$ cd $ORACLE_HOME/dbs

--1. ftp到各节点,使用主机名便于整理脚本,实际操作需要主机ip地址

[oracle@crmdb1 dbs]$ scp orapwcrmdb1 crmdb2:`pwd` #复制口令文件到crmdb2

[oracle@crmdb1 dbs]$ scp orapwcrmdb1 crmdg1:`pwd` #复制口令文件到crmdg1

[oracle@crmdb1 dbs]$ scp orapwcrmdb1 crmdg2:`pwd` #复制口令文件到crmdg2

--2. 修改口令文件名称

[oracle@crmdb2 dbs]$ mv orapwcrmdb1 orapwcrmdb2 #在节点crmdb2操作

[oracle@crmdg2 dbs]$ mv orapwcrmdb1 orapwcrmdb2 #在节点crmdg2操作

--3. 修改口令文件权限(实际通过oracle用户进行ftp不需要进行该操作)

[oracle@crmdb2 dbs]$ chown oracle:oinstall orapwcrmdb2 #在节点crmdb1操作

[oracle@crmdg1 dbs]$ chown oracle:oinstall orapwcrmdb1 #在节点crmdg1操作

[oracle@crmdg2 dbs]$ chown oracle:oinstall orapwcrmdb2 #在节点crmdg2操作

3.4 测试TNS配置有效性

所有主机进行连通性测试。

[oracle@crmdb1 ~]$ tnsping CRMDB_DG

[oracle@crmdb1 ~]$ tnsping CRMDG_DG

[oracle@crmdb1 ~]$ sqlplus sys/oracle@CRMDB_DG as sysdba

[oracle@crmdb1 ~]$ sqlplus sys/oracle@CRMDG_DG as sysdba

4 配置数据库参数

DB_UNIQUE_NAMEINSTANCE_NAMENet Service Name相关参数配置,参考归档配置相关参数

4.1 主库参数调整

SQL> show parameter spfile;

--1. 备份主库参数文件

SQL> create pfile='/home/oracle/crmdb.pfile' from spfile;

--2. 修改主库参数文件

alter system set LOG_ARCHIVE_CONFIG='DG_CONFIG=(crmdb,crmdg)';

alter system set LOG_ARCHIVE_DEST_1='LOCATION=+CRMDBARCH VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=crmdb';

alter system set LOG_ARCHIVE_DEST_2='SERVICE=CRMDG_DG LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=crmdg';

alter system set FAL_SERVER=CRMDG_DG;

alter system set STANDBY_FILE_MANAGEMENT=AUTO;

alter system set LOG_ARCHIVE_MAX_PROCESSES=4;

alter system set DB_FILE_NAME_CONVERT='+CRMDGDATA/crmdg/','+CRMDBDATA/crmdb/' scope=spfile;

alter system set LOG_FILE_NAME_CONVERT='+CRMDGDATA/crmdg/','+CRMDBDATA/crmdb/' scope=spfile;

--3. 重启主库进行验证

SQL> shutdown immediate;

SQL> startup;

--4. 生成当前主库参数文件,用于备库参数文件模版

SQL> create pfile='/home/oracle/crmdb.primary' from spfile;

参数文件模版:

*.audit_file_dest='/oracle/app/oracle/admin/crmdb/adump'

*.audit_trail='db'

*.cluster_database=true

*.compatible='11.2.0.4.0'

*.control_files='+CRMDBDATA/crmdb/controlfile/current.256.960630751'

*.db_block_size=8192

*.db_create_file_dest='+CRMDBDATA'

*.db_domain=''

*.db_name='crmdb'

*.diagnostic_dest='/oracle/app/oracle'

*.dispatchers='(PROTOCOL=TCP) (SERVICE=crmdbXDB)'

*.open_cursors=300

*.pga_aggregate_target=1073741824

*.processes=1500

*.remote_listener='crmdb-scan:1521'

*.remote_login_passwordfile='exclusive'

*.sessions=1655

*.sga_target=4294967296

crmdb1.instance_number=1

crmdb2.instance_number=2

crmdb1.thread=1

crmdb2.thread=2

crmdb1.undo_tablespace='UNDOTBS1'

crmdb2.undo_tablespace='UNDOTBS2'

*.fal_server='CRMDG_DG'

*.log_archive_config='DG_CONFIG=(crmdb,crmdg)'

*.log_archive_dest_1='LOCATION=+CRMDBARCH VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=crmdb'

*.log_archive_dest_2='SERVICE=CRMDG_DG LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=crmdg'

*.db_file_name_convert='+CRMDGDATA/crmdg/','+CRMDBDATA/crmdb/'

*.log_file_name_convert='+CRMDGDATA/crmdg/','+CRMDBDATA/crmdb/'

*.standby_file_management='AUTO'

4.2 主库创建STANDBY日志

ALTER DATABASE ADD STANDBY LOGFILE thread 1 group 5 ('+CRMDBDATA') SIZE 52428800;

ALTER DATABASE ADD STANDBY LOGFILE thread 1 group 6 ('+CRMDBDATA') SIZE 52428800;

ALTER DATABASE ADD STANDBY LOGFILE thread 1 group 7 ('+CRMDBDATA') SIZE 52428800;

ALTER DATABASE ADD STANDBY LOGFILE thread 2 group 8 ('+CRMDBDATA') SIZE 52428800;

ALTER DATABASE ADD STANDBY LOGFILE thread 2 group 9 ('+CRMDBDATA') SIZE 52428800;

ALTER DATABASE ADD STANDBY LOGFILE thread 2 group 10 ('+CRMDBDATA') SIZE 52428800;

STANDBY 日志文件创建原则:

1. 每个实例的STANDBY日志文件组大于联机日志文件组数;

2. 每个STANDBY日志文件大小与联机日志文件大小一致;

4.3 备库参数调整

将主库生成的参数文件复制一份,作为备库参数文件的模版进行修改。

[oracle@crmdb1 ~]$ cp crmdb.primary crmdg.standby

--1. DG无关的参数

*.cluster_database=true

*.compatible='11.2.0.4.0'

*.db_block_size=8192

*.db_name='crmdb'

*.diagnostic_dest='/oracle/app/oracle'

*.open_cursors=300

*.pga_aggregate_target=809500672

*.processes=1500

*.sessions=1655

*.sga_target=2428502016

*.log_archive_max_processes=4

*.remote_login_passwordfile='exclusive'

crmdb1.undo_tablespace='UNDOTBS1'

crmdb2.undo_tablespace='UNDOTBS2'

crmdb1.instance_number=1

crmdb2.instance_number=2

*.standby_file_management='AUTO'

--2. 目录相关参数

*.audit_file_dest='/oracle/app/oracle/admin/crmdg/adump'

*.control_files='+CRMDGDATA/crmdg/controlfile/current.260.958853369'

*.db_create_file_dest='+CRMDGDATA'

--3. 网络服务相关参数

*.db_unique_name='crmdg'

*.log_archive_config='DG_CONFIG=(crmdg,crmdb)'

*.fal_server='CRMDB_DG'

*.log_archive_dest_1='LOCATION=+CRMDGARCH VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=crmdg'

*.log_archive_dest_2='SERVICE=CRMDB_DG LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=crmdb'

*.remote_listener='crmdg-cluster01-scan:1521'

*.db_file_name_convert='+CRMDBDATA/crmdb/','+CRMDGDATA/crmdg/'

*.log_file_name_convert='+CRMDBDATA/crmdb/','+CRMDGDATA/crmdg/'

备库参数文件模版:

*.audit_file_dest='/oracle/app/oracle/admin/crmdg/adump'

*.cluster_database=true

*.compatible='11.2.0.4.0'

*.db_block_size=8192

*.db_create_file_dest='+CRMDGDATA'

*.db_name='crmdb'

*.diagnostic_dest='/oracle/app/oracle'

*.open_cursors=300

*.pga_aggregate_target=809500672

*.processes=1500

*.remote_login_passwordfile='exclusive'

*.sessions=1655

*.sga_target=4294967296

*.pga_aggregate_target=1073741824

crmdb1.thread=1

crmdb2.thread=2

crmdb1.instance_number=1

crmdb2.instance_number=2

crmdb1.undo_tablespace='UNDOTBS1'

crmdb2.undo_tablespace='UNDOTBS2'

*.db_unique_name='crmdg'

*.control_files='+CRMDGDATA/crmdg/controlfile/current.260.958853369'

*.log_archive_config='DG_CONFIG=(crmdg,crmdb)'

*.log_archive_dest_1='LOCATION=+CRMDGARCH VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=crmdg'

*.log_archive_dest_2='SERVICE=CRMDB_DG LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=crmdb'

*.remote_listener='crmdg-cluster01-scan:1521'

*.fal_server='CRMDB_DG'

*.standby_file_management='AUTO'

*.db_file_name_convert='+CRMDBDATA/crmdb/','+CRMDGDATA/crmdg/'

*.log_file_name_convert='+CRMDBDATA/crmdb/','+CRMDGDATA/crmdg/'

注意:

问题:control_files 在进行RMAN DUPLICATE完成后,会发生变化,而且DUPLICATE完成后,备库使用的spfile文件包含内存信息,因此无法作为生产spfile文件使用。

建议:将DUPLICATE后的control_files参数替换创建备库时的pfile文件中的control_files参数,并通过该pfile文件,重新创建一个新的spfile文件。

4.4 创建备库所需目录

实例启动时,需要有审计日志目录,该目录需要手工在备库的2个节点(crmdg1/crmdg2)上进行创建。

[oracle@crmdg1 ~]$ mkdir -p /oracle/app/oracle/admin/crmdg/adump

4.5 DG参数检查脚本

SET LINESIZE 160;

COL NAME FOR A30;

COL VALUE FOR A80;

SELECT INST_ID, NAME, VALUE

FROM GV$PARAMETER

WHERE (NAME IN ('cluster_database',

'db_name',

'db_unique_name',

'dg_broker_start',

'dg_broker_config_file1',

'dg_broker_config_file2',

'fal_client',

'fal_server',

'archive_lag_target',

'log_archive_max_processes',

'log_archive_config',

'log_archive_trace',

'db_file_name_convert',

'log_file_name_convert',

'remote_login_password_file',

'standby_file_management',

'redo_transport_user'))

OR (NAME LIKE 'log_archive_dest%' AND UPPER(VALUE) != UPPER('ENABLE'))

ORDER BY NAME, INST_ID;

5 备库初始化

5.1 设置备库ORACLE_SID环境变量

设置备库各节点环境变量参数ORACLE_SID与主库各节点一致。

[oracle@crmdg1 ~]$ cat /home/oracle/.bash_profile | grep ORACLE_SID

5.2 启动备库数据库实例到NOMOUNT状态

将前面编辑的crmdg.standby文件,传输到备库各节点。启动备库实例到NOMOUNT状态。

[oracle@crmdg1 ~]$ sqlplus / as sysdba

SQL> startup nomount pfile='/home/oracle/crmdg.standby';

[oracle@crmdg2 ~]$ sqlplus / as sysdba

SQL> startup nomount pfile='/home/oracle/crmdg.standby';

5.3 测试主/备库数据库连接状态

主备库所有节点都进行测试操作。

[oracle@crmdb1 ~]$ sqlplus sys/oracle@CRMDG_DG as sysdba

[oracle@crmdb1 ~]$ sqlplus sys/oracle@CRMDB_DG as sysdba

5.4 执行DUPLICATE操作复制数据库

rman target sys/oracle@crmdb_dg auxiliary sys/oracle@crmdg_dg << !

run {

allocate channel ch001 type disk;

allocate channel ch002 type disk;

allocate channel ch003 type disk;

allocate channel ch004 type disk;

allocate auxiliary channel ch005 type disk;

duplicate target database for standby from active database;

release channel ch001;

release channel ch002;

release channel ch003;

release channel ch004;

release channel ch005;

}

!

5.5 创建备库参数文件

5.5.1 备库节点1完成参数文件调整工作

[oracle@crmdg1 ~]$ sqlplus / as sysdba

--1. 查看当前的控制文件参数

SQL> show parameter control_files;

SQL> shutdown immediate;

--2. 编辑创建备库参数文件,用新的控制文件替换旧的控制文件信息

[oracle@crmdg1 ~]$ vi crmdg.standby

*.control_files='+CRMDGDATA/crmdg/controlfile/current.256.958853369'

--3. 创建新spfile文件

SQL> create spfile='+CRMDGDATA/crmdg/spfilecrmdb.ora' from pfile='/home/oracle/crmdg.standby';

--4. 创建pfile文件,连接到新的参数文件

[oracle@crmdg1 ~]$ cd $ORACLE_HOME/dbs

[oracle@crmdg1 dbs]$ rm spfilecrmdb1.ora

[oracle@crmdg1 dbs]$ vi initcrmdb1.ora

spfile='+CRMDGDATA/crmdg/spfilecrmdb.ora'

5.5.2 备库节点2完成pfile文件创建工作

[oracle@crmdg2 ~]$ cd $ORACLE_HOME/dbs

[oracle@crmdg2 dbs]$ vi initcrmdb2.ora

spfile='+CRMDGDATA/crmdg/spfilecrmdb.ora'

5.6 将备库加入到crs资源

[oracle@crmdg1 ~]$ srvctl add database -d crmdg -n crmdb -o $ORACLE_HOME

[oracle@crmdg1 ~]$ srvctl add instance -d crmdg -i crmdb1 -n crmdg1

[oracle@crmdg1 ~]$ srvctl add instance -d crmdg -i crmdb2 -n crmdg2

5.7 启动备库

[oracle@crmdg1 ~]$ srvctl start database -d crmdg

5.8 启动Active DataGuard

1. 用户oracle登陆crmdg1主机取消归档日志文件追加

SQL> alter database recover managed standby database cancel;

2. 用户oracle登陆crmdg1主机以real-time方式同步主数据库

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE PARALLEL 8 USING CURRENT LOGFILE DISCONNECT FROM SESSION;

SQL> SELECT OPEN_MODE FROM GV$DATABASE;

3. 观察日志追加状态

SQL> SELECT thread#,max(sequence#) from v$archived_log where applied='YES' GROUP BY THREAD#;

SQL> select * from v$archive_gap;

6 备库测试


0