oracle DG 简介
Oracle DataGuard;简称DG。是由一个Primary Database(主库)和一个或者多个Standby Database(备库)组成。对Oracle来说;本身不能提高性能。通过数据冗余来保护数据。由Primary Database对外提供服务;用户操作在Primary Database上操作;其操作的数据库Redo Log或者Archive log通过网络传输到Standby Database。Standby Database在重做这些日志。从而实现Primary Database和Standby Database数据同步。
架构图如下:
Oracle DataGuard中的Standby库有两种:物理Standby和逻辑Standby。
- 逻辑Standby接收后将其转换成SQL语句,在Standby数据库上执行SQL语句实现同步,这种方式叫SQL Apply。
- 物理Standby接收完Primary数据库生成的REDO数据后,以介质恢复的方式实现同步,这种方式也叫Redo Apply。
2|0二. Oracle DataGuard搭建
安装规划:
IP | ROLE |
192.168.1.235 | Primary |
192.168.1.221 | Standby |
2|12.1. 主库设置归档模式
2|22.2. 主库设置Force Logging模式
2|32.3. 备库创建相应的dump文件夹
2|42.4. 配置Standby Redologs
对于模式中最大保护和最高可用性;采用是 LGWR 模式传送 Redo 日志;需要为 Standby库配置 Standby Redologs。Standby Redologs 和 ONline Redologs 文件大小是相同的。比 ONline Redologs 个数要 +1 。
2|52.5. 创建实例密钥文件
- 主库生成密钥文件
- 将密钥文件传输到备库
2|62.6. 创建参数文件
本文采用 Primary 库和 Standby 库采用相同路径;所以仅设置必要的参数。
- 主库通过spfile生成pfile文件
- 添加Primary端的pfile内容如下
- Primary重新启动
- 复制参数文件到Standby库
- 添加Standby端的pfile内容如下
- 将Standby端启动到nomount状态
2|72.7 配置主备库的监听文件和网络文件
- 设置Primary库和Standby库的service_name
- 备库的service_name设置为db_standby;需要到参数文件修改。
- Primary库配置listener.ora
- Standby库配置listener.ora
- Primary库和Standby库设置tnsname.ora
重启监听lsnrctl restart
2|82.8. 克隆Standby库
在Primary库执行
2|92.9. 启用日志传送
在 Primary 端启动日志传送
2|102.10. 启用实时应用redo
在 Primary Database 产生的 Redo 日志;传送到 Standby Database;是通过 LGWR 或者 ARCH 进程完成。这个很好理解。默认情况下是由 ARCH 进程。有参数 *.LOG_ARCHIVE_DEST_2 控制的。使用 ARCH 进程; Primary Database 和 Standby Database 存在数据延迟。若 Primary Database 出现异常;容易造成部分数据丢失。为了避免数据丢失,必须要使用 LGWR 进程,需要用到 Standby Redolog。而LGWR 又分SYNC(同步)和ASYNC(异步)两种方式。
- SYNC方式:对网络要求比较高;必须等待写入本地日志文件操作和通过LNSn进程的网络传送都成功,Primary Database 上的事务才能提交成功。使用LGWR SYNC方式时,可以同时使用NET_TIMEOUT参数,这个参数单位是秒,代表如果多长时间内网络发送没有响应,LGWR 进程会抛出错误。因此对 Primary Database 性能有影响。
- ASYNC方式:采用异步方式;Primary Database 上的事务提交跟日志是否已经传送没有影响。
1. 在 Primary Database上执行;
2. 在Standby Database上执行;
3. Standby Database启动实时应用redo
4. 验证结果
原文:https://www.cnblogs.com/lottu/p/9542053.html
__EOF__