首页 > Linux操作系统 > Linux操作系统 > 学习piner前辈的dg后的笔记
Oracle 9i备用数据库配置使用
ALTER DATABASE FORCE LOGGING;
*.log_archive_dest_2='service=dbstandby'
*.standby_file_management=AUTO
*.remote_archive_enable=TRUE
*.standby_archive_dest='/u01/oradata/pretty/archive'
*.fal_server='DBPRIMARY'
*.fal_client='DBSTANDBY'
mkdir -p $ORACLE_BASE/admin/pretty/adump
mkdir -p $ORACLE_BASE/admin/pretty/cdump
mkdir -p $ORACLE_BASE/admin/pretty/bdump
mkdir -p $ORACLE_BASE/admin/pretty/udump
backup database format='/rmanback/database_%U_%s.bak';
sql "Alter System Archive Log Current";
backup filesperset 10 ArchiveLog all format='/rmanback/archive_%U_%s.bak';
$scp *.bak 192.168.0.100:/rmanback
alter database create standby controlfile as '/rmanback/ctontrl01.ctl
scp control01.ctl 192.168.0.100:/u01/oradata/pretty/control01.ctl
startup nomount
alter database mount standby database;
restore database;
restore archivelog all;
recover automatic standby database;
alter database recover managed standby database disconnect from session;
alter database recover managed standby database cancel;
采用Arch 进程传送归档日志的最大性能模式
在默认情况下,Data guard就是最大性能模式,所以不需要采用其它额外的配置,我们只需
要修改主数据库的第二个归档路径即可。
SQL>alter system set log_archive_dest_2='SERVICE=dbstandby REOPEN=300' scope=both;
SQL>alter system set log_archive_dest_state_2=enable scope=both;
SQL>alter system archive log current;
其中reopen表示了如果发生归档失败后,第二次重复的时间间隔(秒),这种方式是从8i以
来一直采用的一种方式,具有比较稳定,不影响数据库的性能,如果发生网络失败等原因,
主数据库不会因为远程归档不成功而停下来。
采用Lgwr进程传递联日志机的最大性能模式
关于LGWR传递Redo和Standby Redo Log
Data Guard除了以上传统的Arch日志传送过程外,还可以采用联机日志的传送,在备用端
建议创建一组备用日志,并保持与主数据库备用日志相同大小,而且最好比主数据库的联
机日志多一组以上。如果采用联机日志传送,但是不在备用端创建备用日志的话,联机日志将自动写到备用端的归档日志中。
在备用日志或者当前正在归档的日志中的内容是不能马上被应用的,必须当归档完成后才
由MRPn进程应用到备用数据库,所以说,恢复不是连续的,但是,传送过程可以是连续
的,在备用日志或当前归档日志中的内容,如果有需要,可以最终被指定应用到备用数据
库。如果在Rac 环境下,Standby 上的redo 被所有instances 的LGWR 一起使用. 而没有按
instances 分开。如果在创建数据库或者控制文件的时候,MAXLOGFILES参数指定过小,将影响到备用日志的创建,这种情况下,必须重新创建控制文件才能解决相应问题。
创建Standby Redo Log
在决定采用redo日志传送之前,先在备用数据库上创建备用日志
SQL>alter database add standby logfile
'/u01/oracle/oradata/tbdb/stdy_redo01.log' size 100m; 或者
SQL>alter database add standby LOGFILE
GROUP 4 ('/u01/oracle/oradata/tbdb/stdy_redo04.log') SIZE 102400K,
SQL>alter database add standby LOGFILE
GROUP 5 ('/u01/oracle/oradata/tbdb/stdy_redo05.log') SIZE 102400K,
SQL>alter database add standby LOGFILE
GROUP 6 ('/u01/oracle/oradata/tbdb/stdy_redo06.log') SIZE 102400K,
SQL>alter database add standby LOGFILE
GROUP 7 ('/u01/oracle/oradata/tbdb/stdy_redo07.log') SIZE 102400K,
修改主库的归档路径
同前面介绍的用ARCH 进程传递archived log相比,只面作以下更改:
SQL>alter system set LOG_ARCHIVE_DEST_2=’SERVICE=dbstandby LGWR’ cope=both
备用日志的信息可以通过视图
V$STANDBY_LOG 与V$LOGFILE 获得
LGWR 直接将log buffer 中的事务数据异步(async 缺省)通过net8 传递给从库,从库的RFS
进程接收Redo data, 并写到Standby Redo Log中, 然后,当主库发生log switch时,从库的ARC0,ARC1进程将redo log写到archived log file 中,一旦archived log 可用,MRP0 马
上将归档日志应用到数据文件及控制文件中。如果想最终应用备用日志中的日志,可以用命令(见失败切换过程)
alter database recover managed standby database finish;
决定归档的一些参数说明
ARCH与LGWR
采用归档日志传送还是联机日志传送,默认是归档进程
是否采用ARCH进程还是LGWR进程,很多时候依赖于保护的方式,下表可以看到在不同的
保护模式下,采用归档进程还是联机日志进程的情况。
SYNC与ASYNC 和AFFIRM 与NOAFFIRM
SYNC与ASYNC决定了网络传输的同步与异步操作,默认ASYNC
AFFIRM与NOAFFIRM决定了归档日志磁盘写的同步与异步操作,默认NOAFFIRM。
这两个参数用来决定不同的保护模式。
DELAY 与NODELAY
是否延迟同步,默认不延迟,如果选择DELAY,默认30 分钟 如
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE NODELAY;
还可以设置在主数据库上
LOG_ARCHIVE_DEST_3=’SERVICE=stby1 DELAY=240’
LOG_ARCHIVE_DEST_STATE_3=ENABLE
延迟参数并不影响日志的传送
MANDATORY 与OPTIONAL
默认是OPTIONAL,如果设置MANDATORY,表示一定要归档成功,否则将引发主数据库
的归档等待。Oracle建议采用OPTIONAL方式来传送日志.
REOPEN 与NOREOPEN 和MAX_FAILURE 与 NOMAX_FAILURE
REOPEN 与NOREOPEN 决定是否重试操作,默认是REOPEN,300 秒,表示如果失败后,
最小的重试的时间间隔 Noreopen表示不重试失败操作
MAX_FAILURE 与NOMAX_FAILURE 表示最大重试次数,默认是NOMAX_FAILURE,表
示一直重试,如果是MAX_FAILURE,则采用MAX_FAILURE=count 来决定重试的次数,
如果是MAX_FAILURE,则一定需要在REOPEN模式下
ALTERNATE 与NOALTERNATE
表示如果归档失败,是否转向新的归档路径,默认是的NO ALTERNATE 如采用如下配置
LOG_ARCHIVE_DEST_2=’LOCATION=/disk1 MANDATORY
ALTERNATE=LOG_ARCHIVE_DEST_3’
LOG_ARCHIVE_DEST_STATE_2=ENABLE
LOG_ARCHIVE_DEST_3=’LOCATION=/disk2 MANDATORY’
LOG_ARCHIVE_DEST_STATE_3=ALTERNATE
那么就是说,如果路径2 上归档失败的话,将切换到路径3 继续归档
验证备用服务器是否工作
SQL> SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME, APPLIED
FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;
或者查看alert日志文件,如有如下内容表示正在恢复,而且在等待下一个日志
其它的备用数据库相关视图还有 V$MANAGED_STANDBY
(Physical Standby Databases Only) 会纪录当前从库的一些进程情况和进程的process id,如
rfs,mrp等
V$ARCHIVE_GAP 这里面会纪录当前从库
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/11364208/viewspace-310410/
,如需转载,请注明出处,否则将追究法律责任。