ORACLE之DataGuard部署分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Oracle 之Data Guard 部署
序言
Oracle 灾备计划分为三种:集群服务冷备、RAC 热备和Data Guard 主备服务。前两种都需要共享磁盘阵列,是适合于本地灾备,而Data Guard 没有地域限制,甚至可以主服务器放在上海,备服务器放在北京。
如上图DataGuard 是通过重做日志来实现的,主服务器的任何数据变化都会在重做日志里留下记录(便于数据恢复,通常有两组日志,一组满就切换到另一组),主服务器必须工主服务器 备服务器 磁盘阵列 集群方式:磁盘为两台服务器都能看到,通常主服务器工作,使用磁盘中的数据文件,集群软件(第三方软件,Windows2003就带)检测主服务器上的ORACLE 进程,一旦异常,它就停主服务器并启动备用服务器上ORACLE 实例,由它接管数据文件。
服务器一 服务器二 磁盘阵列 RAC 方式:磁盘为两台服务器都能看到,服务器同时工作,服务器之间通过某种机制来管理锁,保证不会同时访问文件冲突和事务的一致性。可以是多台,每台都在工作状态,有载荷。一台服务器损坏退出,不影响服务器组中的其他服务器
作在归档模式下,因为重做日志在切换后就把以前的日志覆盖了,如果在归档模式下,发生切换时会把重做日志保存到文件,通常由物理备份文件+归档重做日志+重做日志可以将数据库恢复到物理备份后的任一时间点状态。归档日志会通过TNS网络传递到备用服务器,备用服务器应用这些归档的重做日志,就使备用服务器模拟主用服务器发生同样的变化,使备用服务器上的数据和主用服务器完全一致。主备用服务器只要打一条命令就可以方便的进行角色转换,主变备,备变主。
DataGuard的准备
1.主库和备库oracle版本一致,运行在相同平台如linux,服务器硬件可以不一样。
2.Primary 数据库必须运行于归档模式,并且务必确保在primary 数据库上打开FORCE LOGGING,以避免用户通过nologging 等方式不写redo 造成对应的操作无法传输到standby 数据库。
3.Primary 和standby 数据库均可应用于单实例或RAC 架构下,并且同一个data guard 配置可以混合使用逻辑standby 和物理standby。
4.建议数据库必须采用相同的存储架构。比如存储采用ASM/OMF 的话,那不分primarty 或是standby也都需要采用ASM/OMF。
5.standby库的环境和primary一致。
二、调整主库
1. 确保数据库运行在archivelog模式下
SQL> archive log list;
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 2
Current log sequence 4
把数据库调整为archivelog模式下
SQL> shutdown immediate
SQL> startup mount
SQL> alter database archivelog ;
SQL> alter database open;
2.将主数据库改为强制产生日志模式
alter database force logging;
3.查看当前日志文件组
SQL>select group#,member from v$logfile order by group#;
GROUP# STATUS TYPE MEMBER IS_
---------- ------- ------- -------------------- ---
1 ONLINE D:\APP\ADMINISTRATOR\ORADATA\JRWX\REDO01.LOG NO
2 ONLINE D:\APP\ADMINISTRATOR\ORADATA\JRWX\REDO02.LOG NO
3 ONLINE D:\APP\ADMINISTRATOR\ORADATA\JRWX\REDO03.LOG NO
4.在主库上创建备用日志(为切换而用)
SQL>alter database recover managed standby database cancel;#未执行
SQL>ALTER DATABASE ADD STANDBY LOGFILE GROUP 4 ('D:\APP\ADMINISTRATOR\ORADATA\JRWX\STAN04.LOG') SIZE 50M;
SQL>ALTER DATABASE ADD STANDBY LOGFILE GROUP 5 ('D:\APP\ADMINISTRATOR\ORADATA\JRWX\STAN05.LOG') SIZE 50M;
SQL>ALTER DATABASE ADD STANDBY LOGFILE GROUP 6 ('D:\APP\ADMINISTRATOR\ORADATA\JRWX\STAN06.LOG') SIZE 50M;
SQL>alter database recover managed standby database disconnect from session;#未执行
5.创建standby控制文件:
SQL>alter database create standby controlfile as 'd:\standby.ctl';
6. 创建密码
密码文件存放于D:\app\Administrator\product\11.1.0\db_1\database目录,文件名为PWDjrwx.ora(jrwx为实例名),如果目录下找不到,则手动创建,创建命令为:orapwd file=D:\app\Administrator\product\11.1.0\db_1\database\PWDjrwx.ora password=oracle entries=10
7. 修改主库的初始化参数
SQL>create pfile='d:\initora.ora' from spfile; #创建参数文件
编辑以上创建的参数文件,添加以下内容
…………………………
*.db_unique_name ='primary' #tns中的名称
*.archive_lag_target = 1830
*.log_archive_config='DG_CONFIG=(primary,standby)'
*.log_archive_dest_1='location=d:\app\administrator\oradata\jrwx
VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=primary'
*.log_archive_dest_2='SERVICE=standby LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=standby' *.log_archive_dest_state_1= 'enable' #默认就是enable
*.log_archive_dest_state_2= 'enable'
*.log_archive_format='%t_%s_%r.dbf'