### DAVE Oracle DG 学习笔记 #### DataGuard架构与背景 Oracle Data Guard(简称DG)是一种用于构建高可用性和灾难恢复解决方案的技术。它通过在主数据库(Primary Database)和辅助数据库(Standby Database)之间复制事务重做日志来确保数据的冗余存储和连续可用性。 ##### DataGuard背景 Data Guard 的主要应用场景之一是实现主备库之间的读写分离,即主库负责写操作,而备库则主要用于读取操作。例如,对于那些执行复杂查询的报表任务,可以利用备库进行处理,从而减轻主库的压力,提高整体系统的性能和稳定性。 #### DataGuard架构 ##### Primary Database 主数据库是日常业务操作的核心,负责处理所有的写入请求。它会生成重做日志记录,并将其同步或异步地发送到一个或多个备用数据库。 ##### Standby Database 辅助数据库可以从主数据库接收并应用重做日志,以保持其数据与主数据库的一致性。根据不同的需求,可以配置不同类型的辅助数据库: 1. **物理standby**:这是最常见的类型,它可以自动应用从主数据库接收到的重做日志,以维持与主数据库的同步。此外,物理standby还可以设置为只读状态或者快照standby,以支持某些读写操作。 - **逻辑standby**:逻辑standby 不仅接收重做日志,还通过 SQL Apply 过程转换重做日志中的更改,从而更新其数据。不过,由于存在某些数据类型不支持的问题(如通过 `dba_logstdby_unsupported` 视图列出的类型),逻辑standby 的适用范围受到了限制。 - **快照standby**:这是一种特殊的物理standby,在特定时刻可以被置于可读写状态,以执行维护操作或查询。快照standby 可以通过如下命令进行转换: ``` alter database convert to snapshot standby; ``` 而从快照standby 恢复到物理standby,则使用: ``` alter database convert to physical standby; ``` 转换后,系统会自动应用redo 日志。 #### DataGuard Services Data Guard 提供的服务主要包括 Redo Transport Services 和 Apply Services。 1. **Redo Transport Services**:该服务负责将重做日志从主数据库传输到一个或多个辅助数据库。 - **安全性**:可以通过 SSL 认证或口令文件认证的方式增强 Redo Transport 的安全性。 - 使用 SSL 认证可以在传输过程中加密重做日志,增加安全性。 - 使用口令文件认证,需要先设置远程登录口令文件: ``` alter system set remote_login_passwordfile=exclusive scope=spfile; ``` - **配置数据库发送 redo 数据**:通过 `log_archive_dest_n` 参数来指定重做日志的传输目的地及相关属性。 - 参数解释: - `service`: 指定目标服务名。 - `sync`: 同步发送重做日志。 - `async`: 异步发送重做日志。 - `net_timeout`: 设置网络超时时间。 - `affirm`: 确认模式,确保数据正确传输。 - `noaffirm`: 非确认模式,不保证数据正确传输。 - `db_unique_name`: 目标数据库的唯一名称。 - `valid_for`: 可选参数,指定传输目标的有效条件。 2. **Apply Services**:此服务负责在辅助数据库上应用来自主数据库的重做日志。 - 物理standby 使用 `Redo Apply` 进行数据同步。 - 逻辑standby 使用 `SQL Apply` 将重做日志转换为SQL语句来更新数据。 #### DG的保护模式 Data Guard 支持三种不同的保护模式,用于控制数据的一致性和可用性: 1. **最大保护模式(Maximum Protection)**:此模式下,Data Guard 会尽可能确保数据的一致性,即使发生故障也能最大限度地减少数据丢失的风险。 2. **最高可用模式(Maximum Availability)**:在保证数据一致性的前提下,最大化系统的可用性。如果备库出现问题,系统会自动切换到最高性能模式。 3. **最高性能模式(Maximum Performance)**:此模式下,Data Guard 更注重系统的性能,可能会牺牲部分数据的一致性。 ##### 修改数据保护模式步骤 1. **关闭主数据库**:如果是 RAC 集群环境,需要关闭所有实例,然后仅启动一个实例至 MOUNT 状态。 2. **修改模式**: - 最大保护模式: ``` alter database set standby database to maximize protection; ``` - 最高可用模式: ``` alter database set standby database to maximize availability; ``` - 最高性能模式: ``` alter database set standby database to maximize performance; ``` 3. **打开数据库**: ``` alter database open; ``` 4. **确认修改数据保护模式**: ``` select protection_mode, protection_level from v$database; ``` #### DG Service详解—Redo Transport Services - **Redo Transport Services** 是 Data Guard 中的关键组成部分之一,负责重做日志的高效安全传输,以确保主数据库和辅助数据库之间数据的一致性。 通过深入理解 Oracle Data Guard 的架构、配置和服务,可以有效提高数据库系统的可靠性和可用性,为企业提供强大的数据保护和支持。
剩余60页未读,继续阅读
- 粉丝: 509
- 资源: 1984
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 人物检测26-YOLO(v5至v11)、COCO、CreateML、Paligemma、TFRecord、VOC数据集合集.rar
- 人和箱子检测2-YOLO(v5至v11)、COCO、CreateML、Paligemma、TFRecord、VOC数据集合集.rar
- 清华大学2022年秋季学期 高等数值分析课程报告
- GEE错误集-Cannot add an object of type <Element> to the map. Might be fixable with an explicit .pdf
- 清华大学2022年秋季学期 高等数值分析课程报告
- 矩阵与线程的对应关系图
- 人体人员检测46-YOLO(v5至v9)、COCO、Darknet、TFRecord数据集合集.rar
- GEMM优化代码实现1
- java实现的堆排序 含代码说明和示例.docx
- 资料阅读器(先下载解压) 5.0.zip