您的位置:首页 > 数据库 > Oracle

Oracle DataGuard

2020-04-29 15:51 936 查看

```1、文档介绍
本实施方案主要对Oracle DataGuard实施部署作相应的说明。以便实施人员能根据当前业务特点,规划、建设符合高可用、高可靠的数据库集群系统。具体由Oracle DG环境拓扑、Oracle单机数据库规划部分构成!
2 、Oracle Data Guard 介绍
2.1 Data Guard环境拓展
2.2 Data Guard特点
数据库服务器采用DATAGUARD灾备模式,可以满足对可用性有特殊需求的应
用,具备以下特点:
1、 需要冗余的服务器设备。该模式需要有冗余的服务器硬件。硬件成本较高。
2、 需要冗余的存储设备。主机和备机都需要同样的存储空间,成本较高。
3、 安装配置比较复杂。该模式比单节点、单实例的模式配置复杂一些,需要
更多的配置步骤。
4、 管理维护成本高。该模式对维护人员的要求较高,维护成本高。
5、 具备一定的容灾特性。当主机整个数据库系统不可用并短期内无法恢复
时,可以把数据库系统切换到备机上,具备容灾的功能。
6、 备机可以用作只读查询。备机可以切换到只读状态供报表之类的查询操
作,减轻主机的压力。
3、Oracle DataGurad单实例部署
3.1安装环境
在主机1上安装数据库软件,并建监听和实例,
在主机2上安装数据库软件,并建监听,但不建实例。
主机1(主库) 主机2(备库)
操作系统 Centos6.5 64位 Centos6.5 64位
主机名 orcl orclstd
IP 192.168.168.186 192.168.168.187
数据库软件版本 11.2.0.4 11.2.0.4
ORACLE_BASE /u01/app/oracle /u01/app/oracle
ORACLE_HOME /u01/app/oracle/product/11.2/db_1 /u01/app/oracle/product/11.2/db_1
ORACLE_SID orcl
闪回区 开启
归档 开启

3.2主数据库配置
3.2.1 设置数据库归档
查看数据库是否运行在归档模式:
SQL> archive log list;
Database log mode No Archive Mode
Automatic archival Disabled #未开启归档
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 117
Current log sequence 119
SQL>
备注:如果数据库已经开启归档,下面的操纵可以忽略。
如上所示未开启归档,可按下面方法开启数据库归档
SQL> shutdown immediate #关闭数据库
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount; #启动到mount状态
ORACLE instance started.
Total System Global Area 688959488 bytes
Fixed Size 2256432 bytes
Variable Size 566231504 bytes
Database Buffers 117440512 bytes
Redo Buffers 3031040 bytes
Database mounted.
SQL> alter database archivelog; #开启归档
Database altered.
SQL> alter database open; #open数据库
Database altered.
SQL> alter system set log_archive_dest_1='location=/data/ORCL/archivelog VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcl'; #设置归档路径,此处DB_UNIQUE_NAME要与此实例中指定的DB_UNIQUE_NAME保持一致
System altered.
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /data/ORCL/archivelog
Oldest online log sequence 119
Next log sequence to archive 121
Current log sequence 121
SQL>
3.2.2 设置数据库闪回
验证是否开启闪回
SQL> select flashback_on from v$database;
FLASHBACK_ON

NO
SQL>
备注:如果数据库已经开启flashback,那么下面步骤可忽略。
如上显示,该数据库未开启flashback,可按下面方法开启。
SQL> alter system set db_recovery_file_dest='/home/oracle/flashdata'; #设置闪回去路径 (忽略)
-----------此处就是归档路径
System altered.
SQL> altersystem set db_recovery_file_dest_size='15G'; #设置闪回区大小 (忽略)
System altered.
SQL> shutdown immediate; #关闭数据库
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.
Total System Global Area 688959488 bytes
Fixed Size 2256432 bytes
Variable Size 566231504 bytes
Database Buffers 117440512 bytes
Redo Buffers 3031040 bytes
Database mounted.
SQL> alter database flashback on; #开启闪回
Database altered.
SQL> alter database open; #open数据库
Database altered.
SQL> select flashback_on from v$database; #验证是否开启
FLASHBACK_ON

YES
SQL>
3.2.3 设置数据库强制归档
验证是否开启focelogging
SQL>select force_logging from v$database;
FOR

NO
如果数据库已经开启force logging,那么下面步骤可忽略。
如上可以看出数据库未开启,则按下面步骤执行:
SQL>alter database force logging; #开启force logging
Database altered.
SQL>select force_logging from v$database; #验证
FOR

YES
SQL>
3.2.4 添加STANDBY 日志文件
在备库,当RFS进程接受到日志后,就将其写入Standby日志文件里,备库的Standby日志文件可以看做是主库在线日志文件的一个镜像,当主库做日志切换时,备库的Standby日志也做相应的切换,切换后的Standby日志由备库的ARCH进程归档。
Oracle规定备库的Standby日志文件大小不能小于主库在线日志文件最大的一个,一般情况下,为了管理方便,最好把所有的在线日志和Standby日志大小设为一样。
通过下面语句可以查询主库在线日志的大小和组数:
SQL> select group#,bytes/1024/1024 from v$log;
GROUP# BYTES/1024/1024

1      50
2      50
3      50

SQL>
通过下面的语句可以查询备库Standby日志的大小和组数:
SQL> select group#,bytes/1024/1024 from v$standby_log;
no rows selected
创建standby logfile
创建原则
1、 确保standby redo log 的大小与主库online redo log 的大小保持一致
2、 如主库为单实例数据库:standby redo log组数=主库日志组总数
3、 如果主库是RAC数据库:standby redo log组数=(每线程的日志组数+1)*最大线程数
4、 不建议复用standby redo log,避免增加额外的I/O以及延缓重做传输
SQL> alter database add standby logfile group 11 ' /u01/app/oracle/flash_recovery_area/redo11_stb01.log' size 50M;
Database altered.
SQL> alter database add standby logfile group 12 '/u01/app/oracle/flash_recovery_area/redo12_stb01.log'size 50M;
Database altered.
SQL> alter database add standby logfile group 13 ' /u01/app/oracle/flash_recovery_area/redo13_stb01.log'size 50M;
Database altered.
SQL> alter database add standby logfile group 14 '/u01/app/oracle/flash_recovery_area/redo14_stb01.log' size 50M;
Database altered.
SQL> select group#,bytes/1024/1024 from v$standby_log;
GROUP# BYTES/1024/1024

11      50
12      50
13      50
14      50

SQL>
3.2.5 修改参数文件
SQL> alter system set log_archive_config='DG_CONFIG=(orcl,orclstd)'; ---主备库唯一名,无先后顺序
System altered.
SQL> alter system set log_archive_dest_2='SERVICE=orclstd LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=orclstd' scope=spfile;
------此处的SERVICE是指到从库的TNS名
--如果搭建延迟DG,加上DELAY=minutes,默认30分钟,启动方式也不同
alter database recover managed standby database delay 1440 disconnect from session;
System altered.
SQL> alter system set log_archive_dest_state_1='enable';
System altered.
SQL> alter system set log_archive_dest_state_2='enable';
System altered.
SQL> alter system set db_file_name_convert='/u01/app/oracle/oradata/orcl','/u01/app/oracle/oradata/orcl' scope=spfile;
------- db_file_name_convert是指数据文件路径,此处设置了一样的路径,路径名最后必须加上/
----------如果是集群的磁盘组就不用,例:+DATA

System altered.
SQL> alter system set log_file_name_convert='/u01/app/oracle/oradata/orcl/','/u01/app/oracle/oradata/orcl/' scope=spfile;
---------日志路径也设置成一致,路径名最后必须加上/
----------如果是集群的磁盘组就不用,例:+DATA
System altered.
SQL> alter system set fal_server='orclstd'; --备库tns
-------与备库设置相反
System altered.
SQL> alter system set fal_client='orcl'; --主库tns
-------与备库设置相反
System altered.
SQL> alter system set standby_file_management='AUTO';
System altered.
注意:上面修改的参数有的需要重启数据库才能生效,下面为重启数据库步骤
SQL> shutdown immediate
Databaseclosed.
Databasedismounted.
ORACLEinstance shut down.
SQL> startup
ORACLEinstance started.

TotalSystem Global Area 688959488 bytes
Fixed Size 2256432 bytes
VariableSize 566231504 bytes
DatabaseBuffers 117440512 bytes
RedoBuffers 3031040 bytes
Databasemounted.
Databaseopened.
SQL>

[p]3.2.6 修改监听配置文件[url=mailto:br/>orcl:/home/oracle@orcl>vi/u01/app/oracle/product/11.2.0/db_1/network/admin/listener.oraorcl:/home/oracle@orcl>vi/u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: