oracle dataguard物理配置

第一大类:配置物理备用数据库
一,前期准备工作
总体方案选择:
采用物理备用数据库的方式,保护模式采用最大性能模式,日志传输采用
LGWR进程控制,ASYNC异步方式。在优先保证主库最大可用性能的情况下,最大化保护数据。

a)操作系统,Oracle的版本一致。操作系统的sp号可以有略微差别
b)确认主数据库启用了归档模式
Shutdown immediate;
Startup mount;
Alter database archivelog;
Alter database open;
Archive log list; ------检查归档情况

c)配置命名表
Host Ip地址 Database type Db_unique_name Tnsnames_alias
Open1/open2 10.16.96.7 Primary Primaryora10g Primaryora10g
standby 10.16.96.14 Physical standby Standbyora10g Standbyora10g
DB_NAME和SERVER_NAMEl两边保持一样,都是ora10g
建议主备库的文件存放结构保持一样

二,创建密码文件
由于新的日志传输安全和认证的需要,要求Data guard配置中每个数据库都必须使用密码文件。而且,主备库的密码必须相同。
$ orapwd file=orapwsid password=sys
修改Spfile里面的参数:
Alter system set remote_login_passwordfile=exclusive scope=spfile;

三,启用强制日志记录(可选)
为了保证主数据库的变化都会通过redo反应到备用库上面,我们强烈建议将主数据库置为强制日志模式
Alter database force logging;

四,配置主数据库的初始化参数
### Primary Role ###
DB_UNIQUE_NAME= Primaryora10g
SERVICE_NAME= ora10g
LOG_ARCHIVE_CONFIG=’DG_CONFIG=( Primaryora10g, Standbyora10g)’
LOG_ARCHIVE_DEST_1=’location=根据实际路径填写本地归档路径,
VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=Primaryora10g’
LOG_ARCHIVE_DEST_2=’SERVICE=Standbyora10g LGWR ASYNC=40960 NET_TIMEOUT=15 MAX_FAILURE=2 REOPEN=10
---LGWR表示用lgwr进程传日志,这样可以做实时同步.ASYNC表示采用异步io,这样减小对主库的影响
VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE
DB_UNIQUE_NAME=Standbyora10g)’
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHVIE_DEST_STATE_2=DEFER――现在先作为defer延迟生效,等备用库建--好后再enable生效
### Standby Role ###
STANDBY_FILE_MANAGEMENT=AUTO
FAL_SERVER= Standbyora10g
FAL_CLIENT= Primaryora10g


五,创建备用数据库的控制文件
Alter database create standby controlfile as ‘/u01/control_standby.ctl’;

六,创建主库的备份
将主库shutdown immediate,备份数据文件。

七,为备用库创建一个初始化参数文件
在主库中创建一个init文件,修改为备用库的init文件
Create pfile=’/u01/initstandbyora10g.ora’ from spfile;
一旦完成了备用数据库init文件的创建,我们需要做一些参数调整:
### standby role ###
CONTROL_FILES=(“/U01/ CONTROL_STANDBY.CTL”)—根据实际位置填写
DB_UNIQUE_NAME=STANDBYORA10G
SERVICE_NAME=ORA10G
LOG_ARCHIVE_CONFIG=’DG_CONFIG=( Primaryora10g, Standbyora10g)’
LOG_ARCHIVE_DEST_1=’location=根据实际路径填写本地归档路径,
VALID_FOR=(ALL_LOGFILES,ALL_ROLES)DB_UNIQUE_NAME=Standbyora10g’
LOG_ARCHIVE_DEST_2=’SERVICE=Primaryora10g LGWR ASYNC=40960
NET_TIMEOUT=15 MAX_FAILURE=2 REOPEN=10
VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE
DB_UNIQUE_NAME= Primaryora10g)’
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHVIE_DEST_STATE_2=ENABLE

### Standby Role ###
STANDBY_FILE_MANAGEMENT=AUTO
FAL_SERVER= Primaryora10g
FAL_CLIENT= Standbyora10g


八,将主库的备份文件传输到备用机,文件目录保持一样
需要传输的文件包括datafile数据文件,standby control文件,standbyinit参数文件文件。
Standby redolog等到后面第十二步手工创建。


九,配置备用数据库
配置好备用主机的系统环境,oracle用户和.profile环境变量

十,在主、备机上配置好各自的监听,Oracle Net服务名。
主库指向备库的net服务名:standbyora10g
备库指向主库的net服务名:primaryora10g
分别在主备库机上用tnsping检查net服务名是否配置正确。

十一,为备用库创建spfile文件
Create spfile from pfile;

十二,启动备用数据库到mount状态,添加standby redolog
Startup mount
Alter database add standby logfile group 1 ‘/u01/ora10g/std_redo01.log’ size 100m;
Alter database add standby logfile group 2 ‘/u01/ora10g/std_redo02.log’ size 100m;
Alter database add standby logfile group 3 ‘/u01/ora10g/std_redo03.log’ size 100m;
(添加备库的redo日志文件standby redolog,才能在后面启用应用实时日志传输服务)

十三,将主库的redo日志传输给备用库
在主库中,启动log_archive_dest_2服务
Alter system set log_archive_dest_state_2=enable scope=both;
在主库中,执行日志切换,查看日志是否成功传输到备用库
Alter system switch logfile;
Select status , error from v$archive_dest where dest_id=2;
如果status=valid,表示日志成功传输到备用库上。如果status=invalid,表示未成功传输,需要根据实际情况检查网络和配置问题。

十四,以实时的方式启动备用数据库的mrp进程,让mrp进程在收到日志的时候就开始应用变更,而不用等到日志切换的边界或者备用数据库redo log归档完成之后。
 Alter database recover managed standby database using current logfile;
 如果不需要实时日志传输方式,则用下面的命令
 Alter database recover managed standby database disconnect from session;
 查看v$archive_dest_status视图里面的recovery_mode列确认。如果是’managed real-time apply’,说明启动了实时应用







第二大类:以read only模式使用物理备用数据库
停止mrp服务
Alter DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
将数据库以read only模式打开
Alter DATABASE OPEN READ ONLY;





第三大类:故障切换
故障切换说明主数据库已经因为发生故障而不可使用,因此,不同保护模式或多或少都可能会造成数据的丢失。下面这些问题是需要考虑的:
首先,尝试将那些未应用的数据从主数据库中卸下并安装到备用数据库主机中去。这里还包括那些没有传送的归档日志。
确保备用数据库中的temp表空间是存储在临时文件里面。
如果是RAC数据库,保证除一个实例以外,其他的实例都关闭了。
将备用数据库的保护模式设置为最大性能保护模式。
 

切换步骤:
1,处理备用数据库中的所有缺失。通过在备用数据库中查询v$archive_gap视图,来定位备用数据库中的日志缺失。尝试通过从主库或者其他地方拷贝缺失的日志。将归档日志中所有序列号sequence大于最后一个到达备用数据库的归档日志复制到备用数据库所在的主机中去,这些被复制的归档日志为故障切换做准备。
2,在备用数据库的控制文件中注册那些缺失的归档日志。
Alter database register physical logfile ‘/u01/archive/1_217.arc’;――具体路径根据实际情况填写
3,在备用数据库上通过带finish关键字的管理恢复命令来执行最后的恢复。
如果有备用数据库redo log,使用下面的命令:
Alter database recover managed standby database finish;――本例使用该命令
如果没有备用数据库redo log,使用下面的命令:
Alter database recover managed standby database finish skip standby logfile;
4,在最后的恢复完成后,可以将备用数据库转换成主数据库了
Alter database commit to switchover to primary;
5,重新启动新的主数据库。
Shutdown immediate;
Startup;
(注意,在新的数据库中,主机的ip地址和监听地址要相应的改变到原来主机的地址,这样,客户端的配置才不用变化。)

你可能感兴趣的:(数据结构,oracle,.net,网络应用,配置管理)