oracle rac 不停机调整时间

oracle rac 时间修改
此处首先说明以下几点原理:
1、oracle 11g之前,集群中各节点之间的时间同步靠的是ntpd,即选择一台主节点,或者另找一台ntpd服务器做时间服务器,集群中各节点与该服务器时间同步,以保证数据库各节点之间时间一致。
2、oracle 11g之后集群中新增了一个ctssd服务,主要实现从主节点向其他从节点同步时间。
3、linux服务器下有两个时间需要关注,一个是系统时间,用date命令查看,一个是硬件时间,用hwclock命令查看,硬件时间主要由cpu芯片中的时钟决定,记录在bios中。系统时间和硬件时间之间的关联关系是:
1)开机时操作系统回读取bios中的硬件时间,作为系统时间,关机之前系统会将当前的系统时间写入bios修改硬件时间。
2)可以手动的同步系统时间和硬件时间:hwclock -w 将系统时间同步至硬件时间;hwclock -s 将硬件时间同步至系统时间
本次要说明的是:linux系统时间影响了数据库时间时,如何处理(对于系统时间和数据库时间本身不一致的情况下这里不做说明)
情况1:如果系统时间<正确的时间,那么需要把系统时间向前改,操作步骤如下:
1)关闭从节点的数据库即集群组件:crsctl stop crs
2)修改主节点即从节点的系统时间:date -s
3)修改主节点即从节点的硬件时间:hwclock -w
4)启动从节点的数据库即集群组件:crsctl start crs
情况2:如果系统时间>正确时间,那么需要把系统时间向后改,这种情况下建议停掉数据库操作,步骤如下:
1)停掉主节点即从节点的数据库及集群组件:crsctl stop crs
2)修改主节点及从节点的系统时间:date -s
3)修改主节点及从节点的硬件时间:hwclock -w
4)待系统时间超过修改前的系统时间之后再启动数据库及集群组件(例如17:34的时候停掉了数据库及集群服务,把系统时间修改为了17:00,那么就等到17:34之后再启动数据库及集群服务):crsctl start crs
上述即为两种情况下如何调整系统时间。下面说下如何避免系统时间上的误差,此处要用到上述的原理1和原理2:
1、oralce 10g中可以打开各个节点的ntpd服务,同时从时间服务器同步;或者主节点从时间服务器同步,其他从节点从主节点同步;oracle 11g中则可以只在主节点上设置ntpd服务,主节点再通过ctssd服务向其他从节点同步时间。
2、可以观察,系统时间和硬件是否都不正常,如果其中一个时正常的,那么可以设置一个定时任务,将正确的时间定期同步至不正确的时间。本案例中观察后发现硬件时间一直都是正确的,只是在常年运行过程中有于开关机,导致硬件时间被系统时间影响,因此本案例中,只是设置了如下一个定时任务:
#crontab -e
0 1 * * * /user/sbin/hwclock -s
经过观察,定时任务开启后,系统时间基本正常。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值