早上有个同学和我要以前的ORACLE DG文档,这里粘贴出来分享下,好久没用ORACLE都忘记了,这里指的是10G的搭建方式



2.1 ORACLE DATAGUARD 介绍

DG环境中,至少会有两个数据库,一个数据库处于Open状态,对外提供服务,这个数据库primary Database。第二个数据库处于恢复状态,Standby Database

运行时Primay Database对外提供服务,用户在Primary Database上进行操作,操作被记录在日志文件中。这些日志通过网络传送到Standby Database。这些日志会在Standby Database上重演,从而实现了数据的同步。

Oracle DG对这个过程进一步的优化设计,使得日志的传送、恢复工作更加自动化、智能化。

ORACLE DATAGUARD搭建及切换_java

2.2 DATAGUARD 容灾

如果是可预见因素需要关闭Primay Database,例如软硬件的升级,可以把Standby Database切换为Primary Database继续对外提供服务,并且数据不会丢失。

如果是因为异常原因导致Primary Database不可用,也可以把Standby Database强制切换为Primary Database继续对外提供服务,这时数据损失程度和配置的数据保护级别有关系


2.3 DATAGUARD数据保护模式

数据保护模式是指在Standby Database和Primary Database之间数据同步的程度Data Guard允许定义三种数据保护模式,分别是最大保护(maxmium protection)、最大可用(maxmium availability)、最大性能(maxmium performance)。

这三种模式的区别在于,当Primary Database发生故障时,Standby Database的数据会和Primary Database有多少差别?


最大保护模式(maxmium Production)

这个级别保证Standby Database和Primary Database的数据是完全同步的,即使Primary Database突然宕机,在Standby Database上不会有任何数据丢失。

这种模式下,Primary Database上的每个事务的Redo日志必须在本地和Standby Database上都写入日志文件后才能提交,如果不能写入到Standby Database,Primary Database就会自动关闭以防止数据丢失。


这种方式要求Standby Database必须配置Standby Redo log,而Primary Database必须使用LGWR、SYNC、AFFIRM方式归档到Standby Database。


最大可用性(Maxmium Availability

这种模式会尽量避免数据丢失,Primary Database每个事务的Redo日志要写到本地和Standby Database中才能提交。

这个和最大保护模式不同的是,如果写入到Standby Database失败,Primary Database不会自动关闭。这时Primary Database会自动转换为Maxmium Performance模式,等待问题解决并且Standby Database再次和Primary Database同步之后,Primary Database会自动的转换为Maxmium Availability

这种模式会尽量的避免数据丢失,但不能绝对保证数据完全一致。

这种模式要求Standby Database必须配置Standby Redo log,而Primary Database必须配置为LGWRSYNCAFFIRM方式归档。


最大性能(Maxmium Performance)

这个模式是缺省模式,他更加侧重对Primary Database的可用性不造成任何影响。

Primary Database上的事务的Redo日志只要写到本地日志文件就可以提交,不必等待到Standby Database的传递完成。

Primary Database的Redo流可以异步的发送到Standby Database。


这种模式通过LGWR ASYNC或者ARCH实现,Standby Database也不要求使用Standby Redo Log。

2.3.1 DATAGUARD搭建

2.3.1.1环境要求

  主从数据库的CPU,系统位数,版本必须一致

  数据库版本必须为企业版,且版本必须大于10g

  数据库必须开启归档模式

  数据库的dbname (physical standby要求必须一致,logical standby要求必须不一致)

  主从数据库的db_unique_name必须设置成不一样

  需要开启force logging属性,logical standby还要求开启附加日志

  配置监听器静态注册(可选)

   

主库

IP地址:10.1.101.36/24

操作系统版本:Linux version 2.6.32-504.el6.x86_64

数据库版本:Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

数据库sid名:orcl

数据库名:orcl

数据库db_unique_name:primar


备库  物理备库 (只安装oracle数据库软件,路径必须保持一致,无需使用dbca建库)

IP地址:10.1.101.40

操作系统版本:Linux version 2.6.32-504.el6.x86_64

数据库版本:Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

数据库sid名:orcl

数据库名:orcl

数据库db_unique_name:standby


2.3.1.2修改主备库listener.ora,tnsnames.ora文件如下,备库根据自身情况修改

主库:listener.ora

primary =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.101.36)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = orcl)

    )

  )


LOCALORCL =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.101.36)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = localorcl)

    )

  )


LISTENER_ORCL =

  (ADDRESS = (PROTOCOL = TCP)(HOST = CentOs66)(PORT = 1521))



standby =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.101.40)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = orcl)

    )

  )


主库tns:

standby =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.101.40)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = orcl)

    )

  )


primary =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = CentOs66)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = orcl)

    )

  )



LOCALORCL =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.101.36)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = localorcl)

    )

  )


LISTENER_ORCL =

  (ADDRESS = (PROTOCOL = TCP)(HOST = CentOs66)(PORT = 1521))

2.3.1.3在主库上修改dataguard配置相关参数

alter database force logging;  开启强制归档

alter system set db_unique_name='primary' scope=spfile;  设置db_unique_name 主库和备库必须不一致

alter system set log_archive_config='DG_CONFIG=(primary,standby)';

alter system set log_archive_dest_1='location=use_db_recovery_file_dest valid_for=(online_logfile,all_roles) db_unique_name=primary' scope=spfile;

alter system set log_archive_dest_2='service=standby lgwr sync valid_for=(online_logfile,primary_role) db_unique_name=standby' scope=spfile;

host mkdir -p /home/data/oracle/standbylog  设置备库同步主库归档日志地址

alter system set log_archive_dest_3='location=/home/data/oracle/standbylog valid_for=(standby_logfile,standby_role) db_unique_name=primary' scope=spfile; 

alter system set fal_client='primary';  

alter system set fal_server='standby'; 

alter system set standby_file_management=auto;

alter database add standby logfile  group 4 size 50M,group 5 size 50M,group 6 size 50M,group 7 size 50M;

alter system set local_listener='LISTENER_ORCL';

shutdown immediate

startup

此处操作需要重启数据库,后续如果采用此方案,因为生产看各个物理路径,以及参数不一致,需要在生产库验证脚本,各参数的具体含义可以参考oracle在线文档。


2.3.1.4主库生成pfile并拷贝到从库

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

2.Scp primary.ora root@10.1.101.40:/home/data/oracle

2.3.1.5修改备库pfile文件内容

orcl.__db_cache_size=1644167168

orcl.__java_pool_size=16777216

orcl.__large_pool_size=33554432

orcl.__oracle_base='/home/data/oracle'#ORACLE_BASE set from environment

orcl.__pga_aggregate_target=4529848320

orcl.__sga_target=2147483648

orcl.__shared_io_pool_size=0

orcl.__shared_pool_size=436207616

orcl.__streams_pool_size=0

*.audit_file_dest='/home/data/oracle/admin/orcl/adump'

*.audit_trail='db'

*.compatible='11.2.0.4.0'

*.control_files='/home/data/oracle/oradata/orcl/control01.ctl','/home/data/oracle/fast_recovery_area/orcl/control02.ctl'

*.db_block_size=8192

*.db_create_file_dest='/home/data/oracle/oradata/orcl'

*.db_domain=''

*.db_name='orcl'

*.db_recovery_file_dest='/home/data/oracle/fast_recovery_area'

*.db_recovery_file_dest_size=4385144832

*.db_unique_name='standby' 修改为从库db_unique_name

*.diagnostic_dest='/home/data/oracle'

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

*.fal_client='standby'   对应修改为从库

*.fal_server='primary'  server对应修改为主库

*.local_listener='LISTENER_ORCL'  本地监听名对应修改

*.log_archive_config='DG_CONFIG=(primary,standby)'

*.log_archive_dest_1='location=use_db_recovery_file_dest valid_for=(online_logfile,all_roles) db_unique_name=standby'对应修改为从库

*.log_archive_dest_2='service=primary lgwr sync valid_for=(online_logfile,primary_role) db_unique_name=primary' 对应修改为主库

*.log_archive_dest_3='location=/home/data/oracle/standbylog valid_for=(standby_logfile,standby_role) db_unique_name=standby'

*.nls_language='SIMPLIFIED CHINESE'

*.nls_territory='CHINA'

*.open_cursors=300

*.pga_aggregate_target=4524605440

*.processes=300

*.remote_login_passwordfile='EXCLUSIVE'

*.sessions=335

*.sga_target=2147483648

*.standby_file_management='AUTO'

*.undo_tablespace='UNDOTBS1'

注意:红色内容均需要修改

2.3.1.6.在主库上创建密码文件,并拷贝文件到备库

 Primary库oracle用户下执行:需要提前删除密码文件(文件位于$ORACLE_HOME/dbs)

orapwd file=$ORACLE_HOME/dbs/orapworcl password=123456 entries=5 

Scp primary.ora root@10.1.101.40:/home/data/oracle/product/11.2.0/db_1/dbs

2.3.1.7.在备库使用pfile创建spfile

SQL> conn /as sysdba 

Connected to an idle instance. 

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

File created. 

         启动到nomout模式,nomout模式会加载spfile,不加载控制文件

SQL> startup nomount 

ORACLE instance started. 

2.3.1.8.使用rman从主库(primary)传输主库数据到备库(standby)

rman target sys/123456@primary auxiliary sys/123456@standby

传输数据到standby库

duplicate target database for standby nofilenamecheck from active database;

duplicate target database for standby nofilenamecheck from active database;


此处需注意,拷贝过程中会出现各种路径不存在的问题,需要去建立各种路径,生产对应的表空间路径、审计日志路径、在线日志路径等,需要按照它报错的内容去新建

注意:主库需要处于mount状态备库需要处于nomount状态,否则会报错,可以通过查询同步状态:

2.3.1.9.将备库置于active dataguard模式下

[oracle@CentOs66 admin]$ sqlplus /nolog 

SQL*Plus: Release 11.2.0.3.0 Production on Sun Apr 22 13:47:17 2012 

Copyright (c) 1982, 2011, Oracle.  All rights reserved. 

 

SQL> conn /as sysdba 

Connected. 

SQL> select open_mode,database_role,db_unique_name from v$database; 

 

OPEN_MODE            DATABASE_ROLE    DB_UNIQUE_NAME 

-------------------- ---------------- ------------------------------ 

MOUNTED              PHYSICAL STANDBY standby 

 

SQL> alter database open;

Database altered. 

 

SQL> alter database recover managed standby database using current logfile disconnect from session;

Database altered. 

 

SQL> select open_mode,database_role,db_unique_name from v$database; 

 

OPEN_MODE            DATABASE_ROLE    DB_UNIQUE_NAME 

-------------------- ---------------- ------------------------------ 

READ ONLY WITH APPLY PHYSICAL STANDBY standby 

 

SQL> select status from v$standby_log; 

 

STATUS 

---------- 

ACTIVE 

UNASSIGNED 

UNASSIGNED 

UNASSIGNED 

 

SQL> select member from v$logfile; 

 

MEMBER 

-------------------------------------------------------------------------------- 

/u01/app/oracle/fast_recovery_area/DG2/onlinelog/o1_mf_3_7s76qbhq_.log 

/u01/app/oracle/fast_recovery_area/DG2/onlinelog/o1_mf_2_7s76q94s_.log 

/u01/app/oracle/fast_recovery_area/DG2/onlinelog/o1_mf_1_7s76q5w1_.log 

/u01/app/oracle/fast_recovery_area/DG2/onlinelog/o1_mf_4_7s76qdpk_.log 

/u01/app/oracle/fast_recovery_area/DG2/onlinelog/o1_mf_5_7s76qhmy_.log 

/u01/app/oracle/fast_recovery_area/DG2/onlinelog/o1_mf_6_7s76qlhz_.log 

/u01/app/oracle/fast_recovery_area/DG2/onlinelog/o1_mf_7_7s76qp99_.log 

7rows selected.

2.3.1.10修改dataguard数据保护模式

需要将datagurad数据保护模式修改为最高可用性模式,采用如下语句查看dataguard数据保护模式:

select db_unique_name,protection_mode,protection_level from v$database;  

使用如下语句修改dataguard的数据保护模式

 alter database set standby database to maximize availability;

将备库shutdown后,主库的PROTECTION_LEVEL将变为RESYNCHRONIZATION

2.3.4.11测试数据同步情况

在主库执行新建表空间操作,同步后,查看备库情况

create tablespace JPZ_B2B_DATA

logging

datafile '/home/data/oracle/oradata/orcl/JPZB2B/JPZ_B2B_DATA.dbf'

size 50m

autoextend on

next 50m maxsize unlimited

extent management local;

create temporary tablespace TEMP_JPZ_B2B_DATA

tempfile '/home/data/oracle/oradata/orcl/JPZB2B/TEMP_JPZ_B2B_DATA.dbf'

size 50m

autoextend on

next 50m maxsize unlimited

extent management local;

create user JPZ_B2B identified by jpz_b2b

default tablespace JPZ_B2B_DATA

temporary tablespace TEMP_JPZ_B2B_DATA;

grant connect,RESOURCE to JPZ_B2B;

 

2.3.2主从手工切换

正常切换:数据同步完成之后需要相应的对换主从关系,以前的从库切换为主库,主库切换为从库,以前从库可以保留也可以切换为备库使用


 2.3.2.1:确认主库(primary)和备库日志应用状态

正常情况下主库的switchover_status应当为to_standby

使用如下语句查看主库select db_unique_name,open_mode,database_role,switchover_status from v$database;


查看备库日志应用状态



2.3.2.2主库执行切换switchover

使用如下语句执行主库切换到物理备库:

alter database commit to switchover to physical standby;  

注意:切换后,数据库会自动shutdown,需要手动重启到mount状态,并查看日志应用状态,此时primary已经变成standby


如果途中遇到报错,则需要查看alert_orcl.log


2.3.2.3备库执行切换switchover

首先查看备库状态 select db_unique_name,open_mode,database_role,switchover_status from v$database;


执行切换 alter database commit to switchover to primary;



如果提示有session连接,可用使用如下语句:

alter database commit to switchover to primary with session shutdown;

查看备库日志应用状态 select db_unique_name,open_mode,database_role,switchover_status from v$database;,发现备库已经切换为主库存

打开数据库

alter database open;

再次查看日志应用状态,完成切换

2.3.2.4将备库启动到read only with apply,并应用日志(启动mrp进程)

将备库start 到mount 状态,查看日志应用状态,为read only模式,完成切换


alter database recover managed standby database using current logfile disconnect from session;



2.3.3应急切换

1.备库:

由于是failover,所以理解主库这时候已经无法正常使用,只需备库切换至pridb

停止应用恢复模式

alter database recover managed standby database finish;

转换standbydb为primary db

alter database commit to switchover to primary;

重启数据库,恢复正常业务

shutdown immediate

startup


select open_mode,database_role from v$database;

OPEN_MODE       DATABASE_ROLE
----------             ----------------
OPEN                 PRIMARY


PS:failover将破坏dataguard模式,需要重新配置dataguard,听说可以不用重新配置


2.3.4 Data Guard Broker 自动切换

2.3.4.1Dataguard简介:

Data Guard Broker基于分布式的管理框架,可以用来集中创建,管理,配置和监控oracle data guard; Data Guard Broker的组件:
客户端:Oracle grid control和命令行工具DGMGRL
服务端:DMON进程和配置文件
DMON进程的作用: 响应用户的请求,更新broker的配置文件,和data guard配置中的其他服务器通信

Data Guard Broker配置要求:

数据库版本为:企业版10G R1以上,可以是单实例或者rac环境;
在主库和备库上的COMPATIBLE参数必须设定为9.2.0或更高;
必须有oracle网络支持,必须配置LOCAL_LISTENER静态监听器注册(非1521端口必须);
GLOBAL_DBNAME属性必须设定为db_uniquename_DGMGRL.db_domain;
DG_BROKER_START参数要设置为TRUE;
主库必须运行在归档模式;
使用spfile来保证broker的配置文件和服务器初始化参数文件的一致;
所有的数据库必须在mount(物理备库)或者open(主库和逻辑备库)状态;
在rac环境下还需要配置DB_BROKER_CONFIG_FILEn参数,将该参数指定共享存储上;
rac环境下,需要在OCR中要设定start_options参数为mount;

srvctl add database -d-o-s mount
或者
srvctl modify database -d-o-s mount


data guard broker体系结构示意图:

2.3.4.2 Data Guard Broker配置步骤

配置Data Guard Broker,开始之前应该配置好data guard,并保证日志同步和应用正常

1.演示环境:

主库

IP地址:10.1.101.36/24

操作系统版本:Linux version 2.6.32-504.el6.x86_64

数据库版本:Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

数据库sid名:orcl

数据库名:orcl

数据库db_unique_name:primary


备库  物理备库

IP地址:10.1.101.40

操作系统版本:Linux version 2.6.32-504.el6.x86_64

数据库版本:Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

数据库sid名:orcl

数据库名:orcl

数据库db_unique_name:standby

2.配置listener.ora文件和tnsnames.ora文件

注意:需要添加GLOBAL_DBNAME参数,重启监听器,GLOBAL_DBNAME对应参数为db_unique_name_DGMGRL

10.1.101.36

SID_LIST_LISTENER =

  (SID_LIST =

    (SID_DESC =

      (GLOBAL_DBNAME = orcl)

      (ORACLE_HOME = /home/data/oracle/product/11.2.0/db_1)

      (SID_NAME = orcl)

    )

   (SID_DESC =

      (GLOBAL_DBNAME = orcl2)

      (ORACLE_HOME = /home/data/oracle/product/11.2.0/db_1)

      (SID_NAME = orcl2)

    )

    (SID_DESC =

      (GLOBAL_DBNAME = primary_DGMGRL)

      (ORACLE_HOME = /home/data/oracle/product/11.2.0/db_1)

      (SID_NAME = orcl)

    )

  )

10.1.101.40

SID_LIST_LISTENER =

  (SID_LIST =

    (SID_DESC =

      (GLOBAL_DBNAME = orcl)

      (ORACLE_HOME = /home/data/oracle/product/11.2.0/db_1)

      (SID_NAME = orcl)

    )

    (SID_DESC =

      (GLOBAL_DBNAME = orcl2)

      (ORACLE_HOME = /home/data/oracle/product/11.2.0/db_1)

      (SID_NAME = orcl2)

    )

    (SID_DESC =

      (GLOBAL_DBNAME = showdb)

      (ORACLE_HOME = /home/data/oracle/product/11.2.0/db_1)

      (SID_NAME = showdb)

    )

     (SID_DESC =

      (GLOBAL_DBNAME = standby_DGMGRL)

      (ORACLE_HOME = /home/data/oracle/product/11.2.0/db_1)

      (SID_NAME = orcl)

    )

)


3.设置DG_BROKER_START参数,所有的节点都需要配置


Primary :查看dg_broker_start参数,如果未开启,需要通过alter system set dg_broker_start=TRUE;  开启

SQL> show parameter dg_broker_start;  

ORACLE DATAGUARD搭建及切换_java_02


Satandby

ORACLE DATAGUARD搭建及切换_java_03

4.创建并启用配置文件

此步骤在主库备库操作均可以

首先进入到dgmgrl 然后具体连接到主库

[oracle@CentOs66 admin]$ dgmgrl

DGMGRL for Linux: Version 11.2.0.4.0 - 64bit Production


Copyright (c) 2000, 2009, Oracle. All rights reserved.


Welcome to DGMGRL, type "help" for information.

DGMGRL> connect target sys/123456

Invalid option.

Syntax:

  CONNECT /[@]

DGMGRL> connect sys/123456@primary

Connected.

DGMGRL>

ORACLE DATAGUARD搭建及切换_java_04

5.设置参数

DGMGRL>help create //help是帮助命令

DGMGRL>create configuration dg as primary database is primary connect identifier is primary;

// 注意database is db_unique_name 

        //注意 identifier is tnsname


6.启动配置

enable configuration


7.加入从库,同样启动配置

DGMGRL>help add

DGMGRL>add database standby as connect identifier is standby;

        //   注意database is db_unique_name 

        //   注意 identifier is tnsname


8.查看配置

show configuration

DGMGRL>show database verbose primaryDGMGRL>show database verbose standby

修改参数:LogXptMode

edit database primary set property LogXptMode='SYNC'

edit database standby set property LogXptMode='SYNC'


修改参数DelayMins

edit database standby set property DelayMins=0;

edit database primary set property DelayMins=0;




9.broker切换

broker切换非常简单,只需要一句指令就能切换,但是切换过程中往往会报连接库失败

DGMGRL>  switchover to standby


ORACLE DATAGUARD搭建及切换_java_05

报错原因:

需要修改主库和备库tns.ora文件

Primary:

ORACLE DATAGUARD搭建及切换_java_06

Standby:

ORACLE DATAGUARD搭建及切换_java_07

再次切换尝试切换

ORACLE DATAGUARD搭建及切换_java_08

查看主备库状态

Primary:

ORACLE DATAGUARD搭建及切换_java_09


Standby:

ORACLE DATAGUARD搭建及切换_java_10


3 生产直接搭建dataguard 风险分析3.1风险描述

目前公司ORACLE数据库均为单节点,并且数据库运行了三年,搭建ORACLE主从主要存在如下风险:

1需要修改生产监听和客户端文件,可能导致监听启动失败(此操作不会影响数据,可能造成短暂数据库无法连接)

2主库需要修改参数,需要重启数据库,重启可能存在问题 (之前测试重启之后有出现报错,不能启动数据库,ORA-01102: cannot mount database in EXCLUSIVE mode,无法启动到mount  删除$ORACLE_HOME/dbs/lk* lk开头文件即可重新启动)

3主库RMAN拷贝文件到备库时间比较长,主库可能需要在mount模式下拷贝,之前测试过在open模式下拷贝可能会出问题,备份库日志和主库不同步,备份库无法open

4主库拷贝文件到备库可能需要5个小时左右时间,拷贝时间相对较较长

5拷贝完成后可能遇到各种问题,如归档日志不同步、主库无法写入备库重做日志等各种问题

3.2处理策略

正常情况下,配置DG不会影响生产数据库数据,为安全起见,修改数据库参数操作做都尽量改在下班时间或者夜间时候。


应急处理:

ORACLE DG采用夜间停机模式,新增一台ORACLE备用机,还原备用机数据到某个时间点,如果操作过程中主库损坏或者主库数据丢失等原因,业务全部切换到备用机子。

ORACLE DATAGUARD搭建及切换_java_11

3.3参数附录

--248修改参数

alter database force logging;                                   --强制归档模式

alter system set db_unique_name='primary_248' scope=spfile;       --设置db_unique_name

alter system set log_archive_config='DG_CONFIG=(primary_248,standby)'; --设置多路归档

alter system set log_archive_dest_1='location=use_db_recovery_file_dest valid_for=(online_logfile,all_roles) db_unique_name=primary_248' scope=spfile;

alter system set log_archive_dest_2='service=standby lgwr sync valid_for=(online_logfile,primary_role) db_unique_name=standby' scope=spfile;

host mkdir -p /home/oracle/app/standbylog                       --主从切换时候使用

alter system set log_archive_dest_3='location=/home/oracle/app/standbylog valid_for=(standby_logfile,standby_role) db_unique_name=primary_248' scope=spfile; 

alter system set fal_client='primary_248';  设置fetch archive log client 

alter system set fal_server='standby';  设置fetch archive log server

alter system set standby_file_management=auto;   --推荐设置为auto

alter database add standby logfile  group 4 size 50M,group 5 size 50M,group 6 size 50M,group 7 size 50M; --添加四个日志组,oracle默认安装完成有三个日志组

alter system set local_listener='for_db'; --此处需要设置,不设置可能会出问题



--249修改参数

alter database force logging;       --强制归档模式

alter system set db_unique_name='primary_249' scope=spfile;                               

alter system set log_archive_config='DG_CONFIG=(primary_249,standby)'; --设置多路归档

alter system set log_archive_dest_1='location=use_db_recovery_file_dest valid_for=(online_logfile,all_roles) db_unique_name=primary_249' scope=spfile;

alter system set log_archive_dest_2='service=standby lgwr sync valid_for=(online_logfile,primary_role) db_unique_name=standby' scope=spfile;

host mkdir -p /oracle/app/standbylog                       --主从切换时候使用

alter system set log_archive_dest_3='location=/oracle/app/standbylog valid_for=(standby_logfile,standby_role) db_unique_name=primary_249' scope=spfile; 

alter system set fal_client='primary_249';  设置fetch archive log client 

alter system set fal_server='standby';  设置fetch archive log server

alter system set standby_file_management=auto;   --推荐设置为auto

alter database add standby logfile  group 4 size 50M,group 5 size 50M,group 6 size 50M,group 7 size 50M; --添加四个日志组,oracle默认安装完成有三个日志组

alter system set local_listener='for_db'; --此处需要设置,不设置可能会出问题