热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Oracle11gDataGuard物理备库快速配置指南-mysql教程

最近做了Oracle10g和11g的物理备库配置实验,发现DataGuard其实很容易,但是缺少好文档。我是参考官方文档做的实验,觉得它

最近做了Oracle 10g和11g的物理备库配置实验,发现 Data Guard 其实很容易,但是缺少好文档。我是参考官方文档做的实验,觉得它

缘起
最近做了Oracle 10g和11g的物理备库配置实验,发现 Data Guard 其实很容易,但是缺少好文档。我是参考官方文档做的实验,觉得它写的不是很清楚的。

Google 出来两个pdf文档,读了觉得比官方文档强很多。翻译下,也许会对某些朋友有用。翻译的同时我也好更熟悉下这两个文档。好久没翻译过英文了,可以顺便练练手。

原文档下载地址(墙外):

Configure Dataguard 11gR2 Physical Standby Part 1
Configure Dataguard 11gR2 Physical Standby Part 2

第一部分
简介
Data Guard 是 Oracle 数据库的一个功能,能够提供数据库的冗余。冗余是通过创建一个备用(物理复制)数据库实现,备库最好是在不同的地理位置或者在不同的磁盘上。备库通过应用主库上的变化来保持数据同步。备库可以使用重做日志应用(物理备库)或SQL应用同步(逻辑备库)。

本文旨在说明 Data Guard 的配置并不复杂,不需要特殊的技能或者培训才能学会搭建。它将快速展示给读者搭建一个物理备库的过程。我的目标是,即使你第一次接触 Data Guard,刚考虑要使用它或担心它会不会很难配置,本文将帮助你快速搭建起一个正常运行起来的物理备库。

为什么使用 Data Guard
每种 Oracle 高可用性工具都有其目的。使用 Data Guard 的理由有:

整个数据库的冗余
故障时的快速恢复
故障后客户端能自动重连
在备库运行备份
较好的故障平均修复时间
并不复杂
系统环境
在写完本文后,我使用 DBCA 创建了一个新数据库 JED,然后重新运行了文中的配置步骤,确认其对一个基本的 Oracle 11g 数据库适用。主库叫 JED,运行在一台叫 dev-db1的服务器上。备库叫JED2,运行在一台叫 dev-db2 的服务器上。

不需要提的基本前提
有一些任何生产库都应该有的基本的设置。其中一个就是归档模式。对于生产库,这应该是一个明显的必须配置。如果你的生产库没有适用归档模式,你要么需要马上开始读点书,要么你得有一个非常非常好的理由。我不大确定谁真能找出一个理由,但任何准则都有例外。

如何修改你的数据库为归档模式:

SQL> shutdown immediate
SQL> startup mount
SQL> alter database archivelog;
SQL> alter database open;
SQL> archive log list;

主库准备
首先,备库要成为主库的完全相同的复制,它必须接收来自主库的重做日志。Oracle 数据库中,一个用户可以用指定某操作不产生日志(比如使用 NOLOGGING 语句)。对于备库来说,这是个问题。你必须确认用户无法指示数据库不产生重做日志,这需要启用数据库的强制日志功能。启用方法如下:

SQL> alter database force logging;
SQL> select name, force_logging from v$database;

你应该看到 force_logging 列为 YES。

其次,你要确认当主库添加或删除数据文件时,这些文件也会在备库添加或删除。启用此功能的方法如下:

SQL> alter system set standby_file_management = 'AUTO';

再次,我们要确认书库有备用日志文件(Standby Log Files)。备库使用备用日志文件来来保存从主库接收到的重做日志。主库上也建立备用日志文件有两个原因,一是主库可能转换成备库,备库需要备用日志,二是如果主库建了备用日志,备库会自动建。备用日志应该跟在线日志一样大,组数应该至少跟在线日志一样多,或者更多。我喜欢给备用日志一个跟在线日志不同范围的编号,,比如在线日志组是1到6,备用日志就是11到16。创建备用日志的方法如下:

SQL> alter database add standby logfile group 11 ('/oradata/JED/g11m01.sdo','/oradata/JED/g11m02.sdo') size 50M;

如果你不是使用 SSL 做重做日志传输验证(一般来说不会),那么你需要使用密码文件做验证。你必须创建密码文件,并且设置参数 REMOTE_LOGIN_PASSWORDFILE 为 EXCLUSIVE 或 SHARED。一般数据库默认就有密码文件,并且此参数默认为 EXECUSIVE。先检查下这两项,如果不是默认,设置方法如下:

SQL> alter system set remote_login_passwordfile=exclusive scope=spfile;
OS> orapwd password=

最后,检查数据库的 db_unique_name 参数是否设置。如果没有,使用 alter system 进行设置:

SQL> show paramter db_unique_name;
SQL> alter system set db_unique_name=some_name scope=spfile;

闪回数据库
我强烈建议开启数据库闪回功能。闪回允许你将数据库还原到以前的某一时间点。当发生故障转移时,这个功能非常有用,它能让你将老的主库闪回到故障前,然后将其转换为备库。如果没有启用闪回功能,你就必须重建备库,意味着要再复制一次数据文件。除了这个好处,闪回还能在某些情况下让你避免从备份恢复数据。

启用闪回功能,必须先配置快速恢复区(Flash/Fast Recovery Area). 方法如下:

SQL> alter system set db_recovery_file_dest='&快速恢复区目录或ASM磁盘组名';
SQL> alter system set db_recovery_file_dest_size=400G;

配置好快速恢复区后,就可以启用闪回日志功能:

SQL> alter database flashback on;
SQL> select flashback_on from v$database;

FLASHBACK_ON 这列的值应该是 YES。如果你碰到 ORA-01153 报错,那一定是在备库进行此操作。你需要先取消重做日志应用,启用闪回日志,然后重新启用日志应用。

在主库启用闪回日志,不会同步备库也启用。你必须手动在主库和备库上均启用闪回日志。如果不启用闪回日志,当出现故障转移时,你将需要完全重新开始创建一个备库。

SQL*NET 配置
在创建备库前,要确认两台服务器的数据库之间能通信,如果我们要用 RMAN 的 duplicate from active database 命令创建备库的话。我们需要配置监听和 TNS 名。你可以手动配置,也可以使用网络配置工具(netca)。我更喜欢手动配置,因为我比较老派,并且这些配置文件又不复杂,

首先需要配置主备库的监听。虽然数据库会自动注册监听,但如果要使用 RMAN 的 duplicate 命令创建备库,备库必须首先处于 NOMOUNT 状态。在 NOMOUNT 状态下,数据库实例不会自动注册监听,你必须配置静态监听。另外必须要注意的一点是,NOMOUNT 状态下的数据库必须使用专用模式(dedicated server)连接。

两台服务器上的 TNS 名字文件必须配置好,让主备库能用 LOG_ARCHIVE_DEST_N 和 FAL_SERVER 参数(稍后会介绍这些参数)中的服务名(Service Names)找到对方。具体配置应类似下例。

主库(dev-db1)的监听配置:

推荐阅读
  • MySQL缓存机制深度解析
    本文详细探讨了MySQL的缓存机制,包括主从复制、读写分离以及缓存同步策略等内容。通过理解这些概念和技术,读者可以更好地优化数据库性能。 ... [详细]
  • 本文详细介绍了IBM DB2数据库在大型应用系统中的应用,强调其卓越的可扩展性和多环境支持能力。文章深入分析了DB2在数据利用性、完整性、安全性和恢复性方面的优势,并提供了优化建议以提升其在不同规模应用程序中的表现。 ... [详细]
  • Windows服务与数据库交互问题解析
    本文探讨了在Windows 10(64位)环境下开发的Windows服务,旨在定期向本地MS SQL Server (v.11)插入记录。尽管服务已成功安装并运行,但记录并未正确插入。我们将详细分析可能的原因及解决方案。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 构建基于BERT的中文NL2SQL模型:一个简明的基准
    本文探讨了将自然语言转换为SQL语句(NL2SQL)的任务,这是人工智能领域中一项非常实用的研究方向。文章介绍了笔者在公司举办的首届中文NL2SQL挑战赛中的实践,该比赛提供了金融和通用领域的表格数据,并标注了对应的自然语言与SQL语句对,旨在训练准确的NL2SQL模型。 ... [详细]
  • DNN Community 和 Professional 版本的主要差异
    本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ... [详细]
  • 在当前众多持久层框架中,MyBatis(前身为iBatis)凭借其轻量级、易用性和对SQL的直接支持,成为许多开发者的首选。本文将详细探讨MyBatis的核心概念、设计理念及其优势。 ... [详细]
  • UNP 第9章:主机名与地址转换
    本章探讨了用于在主机名和数值地址之间进行转换的函数,如gethostbyname和gethostbyaddr。此外,还介绍了getservbyname和getservbyport函数,用于在服务器名和端口号之间进行转换。 ... [详细]
  • 360SRC安全应急响应:从漏洞提交到修复的全过程
    本文详细介绍了360SRC平台处理一起关键安全事件的过程,涵盖从漏洞提交、验证、排查到最终修复的各个环节。通过这一案例,展示了360在安全应急响应方面的专业能力和严谨态度。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • 本文详细分析了Hive在启动过程中遇到的权限拒绝错误,并提供了多种解决方案,包括调整文件权限、用户组设置以及环境变量配置等。 ... [详细]
  • 在现代网络环境中,两台计算机之间的文件传输需求日益增长。传统的FTP和SSH方式虽然有效,但其配置复杂、步骤繁琐,难以满足快速且安全的传输需求。本文将介绍一种基于Go语言开发的新一代文件传输工具——Croc,它不仅简化了操作流程,还提供了强大的加密和跨平台支持。 ... [详细]
  • 在即将迎来26岁生日之际,作者的人生陷入了低谷。经过近三年的硕士学习后,最终决定退学,并且面临没有工作经验的困境。尽管如此,作者依然坚定地选择为自己的人生负责。 ... [详细]
author-avatar
浮云
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有