在虚拟机里安装dgm并不复杂,核心是把共享存储、时钟同步和网络心跳这三个前提准备扎实,再按dgmgrl的标准流程配置,整个过程两小时内就能跑通。
很多人第一次在虚拟化环境里折腾Data Guard Manager(dgm),容易卡在存储识别和备库启动上,这篇文章结合近两年虚拟化部署的实际情况,把思路理清楚,顺手解决几个常见疑问。
虚拟机上装dgm,先把环境拆明白
这里说的dgm,指的是Oracle Data Guard Manager,它本身不是一个大件,而是配合Data Guard的一套管理工具,在虚拟机上装dgm,最忌讳的思路是“先装工具再配环境”步骤倒了,后面全是坑。
网络规划是第一步,不是存储
行业共识认为,虚拟机环境里90%的dgm同步问题出在网络层,主备两台虚拟机之间的redo传输走的是Oracle Net,这个链路对延迟的容忍度极低。
- 主库和备库的虚拟网卡建议用同一台物理宿主机内的VM Network,避免跨物理交换机
- 心跳网段和生产网段分开,dgm只用心跳网段做redo传输
- 把虚拟网卡的“接管”功能关掉,防止VMware迁移时IP漂移
有个北京做金融客户的朋友,主备机放在同一台ESXi上,网卡走的默认设置,结果每次vMotion之后备库就断同步,后来把心跳网络改成了独立端口组,问题才消停。
共享存储的三种玩法,多数人选错了
dgm在虚拟机上安装和物理机区别,最明显的就是存储层的选择,物理机一般走FC SAN,虚拟机上你只有三个选项:
- vSphere虚拟共享磁盘(VMDK共享模式):性能好,配置简单,适合RAC场景,但dgm场景下要注意多节点同时挂载的锁冲突
- iSCSI挂载:走网络存储,性能略降但更灵活,适合跨宿主机部署
- NFS共享存储:最省事,但延迟高,只适合测试环境
生产环境里,多数人会选vSphere虚拟共享磁盘配合多写入器模式,但这里有个细节:dgm的备库根本不需要共享存储,备库有自己的独立磁盘就行。
“dgm需要共享存储”是个流传很广的误解,Data Guard的本质是日志传输,不是共享存储架构,主库和备库各用各的盘,通过redo日志保持同步,这才是Data Guard的工作方式,如果你在备库上也挂了主库的共享盘,反倒是破坏了Data Guard的隔离性。
虚拟机的CPU和内存,按这个标准给
Oracle官方文档对11g和12c的资源要求比较保守,实际部署中,2 vCPU + 4GB内存跑dgmgrl和监听器绰绰有余,真正的资源大头在主备库实例本身。
- 主库虚拟机建议4 vCPU起,备库可以稍低,但别低于2 vCPU
- 内存方面,SGA和PGA加起来,主备各8GB比较稳
- 存储IOPS是个容易被忽略的点redo日志写入对IO延迟敏感,虚拟磁盘接口要选准虚拟化(PVSCSI),不要用默认的LSI Logic
dgm在虚拟机上安装步骤,照着做就行
环境准备好了就开装,下面的步骤以Oracle Linux 7 + Oracle 12c为例,同样适用于11g和19c。
第一步:两台虚拟机的基础准备
主库和备库各一台独立虚拟机,安装Oracle软件之前,检查这几个点:
- /etc/hosts里写清楚主备机的hostname和IP,别用DHCP,dgm对静态IP有硬性要求
- 关闭防火墙或者放行1521端口
- 时间同步用chronyd或者ntpd,主备机时差控制在1秒以内,否则后面还有个隐藏的坑dgm的Lag检查会误报
第二步:主库开启强制日志
在SQLPlus里执行:
ALTER DATABASE FORCE LOGGING; ALTER SYSTEM SET DB_FLASHBACK_RETENTION_TARGET=60 SCOPE=BOTH; ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
三条命令挨个跑,确保redo里记录了足够的信息,补充日志不加上,备库做逻辑备库时会报错。
第三步:用DGMGRL配置备库
这个阶段有两种方式:命令行的dgmgrl和图形界面的DG Manager,生产环境建议用命令行,图形工具在虚拟机上容易遇到窗口显示问题。
先创建备库的pfile,把主库的db_name带过来,然后执行:
dgmgrl sys/密码@主库 DGMGRL> CREATE CONFIGURATION dg_config AS PRIMARY DATABASE IS 主库名 CONNECT IDENTIFIER IS 主库连接串; DGMGRL> ADD DATABASE 备库名 AS CONNECT IDENTIFIER IS 备库连接串; DGMGRL> ENABLE CONFIGURATION;
三步下来配置就建好了,这里有个容易忽略的点:连接标识符里的服务名要提前建好,不然ADD DATABASE会一直卡在校验阶段。
第四步:验证同步状态
等待一两分钟,
DGMGRL> SHOW CONFIGURATION; DGMGRL> VALIDATE DATABASE 备库名;
SHOW CONFIGURATION会显示主备状态,看到SUCCESS字体就对了。VALIDATE DATABASE是专门用来检查备库延迟的,如果显示
LAG=0,说明redo传输正常。
第五步:做主备切换测试
切换是dgm最核心的功能,也是你花力气装它的理由,测试命令:
DGMGRL> SWITCHOVER TO 备库名;
切换完成后,原主库会变成备库并自动恢复同步,测完按同样命令切回来,这一步建议做三次以上,直到熟练为止。
虚拟机dgm装完起不来,多半是这几个原因
“虚拟机dgm安装”搜索里,很大比例是装完系统起不来的求助,总结下来,常见的有三轮。
ORA-12541,监听器没起来
现象是dgmgrl登录时提示TNS:no listener,检查虚拟机的listener.ora文件,看监听地址是不是绑定到了旧IP上,虚拟机迁移后会变IP,监听器不会自动跟随,解决办法是更新listener.ora后重启监听器。
ORA-12154,连接串解析失败
tnsnames.ora文件中的服务名与实际不匹配,这个文件在Oracle安装目录的network/admin下,检查两个地方:服务名是否与db_unique_name一致,SQLNet连接描述符是否带了端口号。
ORA-16664,心跳断了
这个是虚拟机特有的:ESXi发生vMotion之后,虚拟网卡MAC地址变了,dgm的会话断掉,主备握手失败,此时手动执行重新连接即可,要根治,需要把两块虚拟网卡的MAC地址设为静态。
虚拟机dgm安装和物理机区别,一张表说清
| 对比项 | 虚拟机 | 物理机 |
|---|---|---|
| 存储方式 | vSphere共享盘/NFS/iSCSI | FC SAN/本地盘 |
| 网络迁移 | vMotion可能导致断连 | 不涉及 |
| 配置速度 | 分钟级 | 小时级 |
| 故障恢复 | 快照回滚方便 | 依赖备份 |
| 成本 | 省硬件开销 | 单机成本高 |
| 适合场景 | 测试、中小业务 | 核心业务、监管环境 |
物理机的优势是确定性更强,硬件资源独占,性能波动小,虚拟机的好处是快照和克隆能力,可以在改动前做备份,出问题秒回滚。
实际生产里,多数银行和运营商的核心库还是放在物理机上,虚拟化跑dgm更多用于灾备演练和开发测试场景,如果你问“虚拟机dgm安装多少钱”,这里给你一个参考:软件本身不要钱,Oracle的Data Guard许可包含在企业版里,额外成本主要体现在VMware的授权和虚拟机的性能损耗上(约
5%到10% 的IO开销),比起物理机的采购成本,虚拟化方案整体便宜得多。
虚拟机dgm安装多少钱,从三种场景算
价格不是一个数字,取决于你用什么底子。
已有VMware环境
如果你公司已经有现成的vSphere集群,再加两台虚拟机几乎零成本,本地开发测试环境,只需要人工时间投入,一天内搞定。采购成本为零,主要是人力成本。
从零搭建虚拟化环境
需要采购一台服务器跑ESXi,配两台虚拟机的资源(4 vCPU、16GB内存、500GB存储左右跑中小型库),硬件采购成本在两三万级别(国内主流品牌服务器),VMware标准版的授权另计,排在后面的人力成本约两到三天工作量,这个环节看所在地区的薪资水平,北京地区普遍高于二线城市。
云主机上搭dgm
云厂商的虚拟机也可以跑dgm,但要注意云厂商的存储IOPS是否满足redo日志写入要求,低配云主机容易出现磁盘瓶颈,备库延迟越来越高,云主机方案的优势是弹性扩缩容,适合有弹性的业务场景,价格按小时计费。
dgm安装常见问题,挑三个核心的
问:dgm对虚拟机快照有什么要求?
做快照前需要暂停日志传输,再做快照,恢复后再续传,直接在运行状态做快照,会导致redo日志断档,具体操作是在dgmgrl里执行ALTER DATABASE QUIESCE,快照完成后执行ALTER DATABASE UNQUIESCE。
问:虚拟机的CPU/内存配置会不会影响dgm切换速度?
切换速度主要取决于redo日志的大小和网络传输速度,CPU和内存的影响集中在切换过程中的排序和日志应用阶段,配置越高,切换期间的停顿越短,中小库场景,切换时间通常在30秒到2分钟之间。
问:dgm的备库可以放在同一台物理服务器上吗?
从技术上讲可行,适合测试用途,生产环境不建议这么部署,同一台物理服务器上跑主备库,宿主机只要宕机,主备一起挂掉,灾备意义大打折扣,虚拟机的好处是可以通过DRS漂移到另一台宿主机,但高可用级别远达不到物理隔离,真正要保证业务连续性,主备放在不同的物理机上是最低要求。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/663086.html





