早上有个同学和我要以前的ORACLE DG文档,这里粘贴出来分享下,好久没用ORACLE都忘记了,这里指的是10G的搭建方式
2.1 ORACLE DATAGUARD 介绍
在DG环境中,至少会有两个数据库,一个数据库处于Open状态,对外提供服务,这个数据库primary Database。第二个数据库处于恢复状态,Standby Database。
运行时Primay Database对外提供服务,用户在Primary Database上进行操作,操作被记录在日志文件中。这些日志通过网络传送到Standby Database。这些日志会在Standby Database上重演,从而实现了数据的同步。
Oracle 的DG对这个过程进一步的优化设计,使得日志的传送、恢复工作更加自动化、智能化。
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必须配置为LGWR、SYNC、AFFIRM方式归档。
最大性能(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;
Satandby
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>
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
报错原因:
需要修改主库和备库tns.ora文件
Primary:
Standby:
再次切换尝试切换
查看主备库状态
Primary:
Standby:
目前公司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备用机,还原备用机数据到某个时间点,如果操作过程中主库损坏或者主库数据丢失等原因,业务全部切换到备用机子。
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'; --此处需要设置,不设置可能会出问题