前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一觉醒来后生产数据库宕机了

一觉醒来后生产数据库宕机了

作者头像
JiekeXu之路
发布2020-02-26 13:16:49
7640
发布2020-02-26 13:16:49
举报
文章被收录于专栏:JiekeXu之路JiekeXu之路
大家好,我是 JiekuXu,可以叫我老徐,也可和同事们一样称我强哥,但千万不要叫大佬哦,我很菜,不敢和大佬相比,不过很高兴和大家又见面了。本文首发于微信公众号【JiekeXu之路】,欢迎点击上方蓝字关注我吧! 疫情当下,能不出来就不要出来咯,胜利的曙光马上到来,再等等,在坚持坚持,都坚持一个月还怕什么呢。再等等,疫情还没有结束,等疫情结束放开玩吧。

20 日大早上还在睡眠中,就被电话吵醒了,监控值班同事打电话告诉有一台生产数据库连接失败,出现紧急事件,今天刚好我值班,便开始了今日的远程工作,迷迷糊糊、朦朦胧胧地打开电脑便去登陆环境,可能当时没睡醒脑子还不好使吧,当登陆上去后发现数据库实例确实宕机了,庆幸的是还有另一个节点可以正常访问,便不慌不忙的在 SQLPLUS 命令行敲了启动命令,便出现了如下的画面。。。

ORA-01105、ORA-01677 错误,便知道此问题是由于参数不一致所致,说明当前实例的某些参数设置和 RAC 其他实例设置的不符,并不能说明导致错误的真正原因。后面又联想到同事昨天是准备搭建备库的,联系确认了下便是此缘故导致,说在 /home/oracle 备份了参数才做的修改,于是乎便去 找备份的参数。

使用备份的参数文件去启动实例依然没法解决,实例启动瞬间宕机。

于是便尝试通过spfile 生成的 pfile 来启动实例,但还是报错。

SQL> create pfile=’/tmp/pfile.bak’ from spfile;

这时同事提供了关键信息说主要修改的参数有哪些发给我,一看却是是出现问题的参数。

其中:

Alter system set db_file_name_convert=’+DATA’,’+DATA’ scope=spfile;
Alter system set log_file_name_convert=’+ARCH’,’+ARCH’ scope=spfile;

这两个参数是静态参数修改后重启数据库才会生效,但他就这么修改了,当时没法重启便过去了,这就导致很坑了。这两个参数主要是用于当主备库目录结构不一致时读取此参数设置的路径才生效,但我们搭建的备库目录路径和主库一样,此参数是没有必要设置的,可他不管三七二十一就复制粘贴过去了。。。节点一重启后参数生效了,但节点2没生效故产生了参数不一致的情况。

由于节点2是正常的,通过 spfile 生成的 pfile 里查看到

db_file_name_convert=’+DATA’,’+DATA’

但通过节点 2 查看 db_file_name_convert 时是为空

SQL>  show parameter db_file_name_convert


NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_file_name_convert                 string

这就很清楚了,节点2没有重启还是之前的状态,参数为空,节点1重启后读取了 spfile 里的参数导致参数不一致。

于是就去修改节点 1 的 pfile,但这里也遇到了一点小小的问题,修改时直接置为空了,但还是启动时报错

*.db_file_name_convert=’ ’,’ ’

还是报错,估计还是修改的问题,那么这次就狠一点,直接将 db_file_name_convert 和 log_file_name_convert 参数删除,这次启动便可以成功启动了,此时节点1便可以是 pfile 文件启动了。那么为了填此坑,spfile 里还是存在着这两个参数,所以要再次修改一下,可遗憾的是报错了。。。

最后突然想起了 reset ,使用 reset 重置了这两个参数, sid 也可以单独指定某一个实例,“*” 代表所有实例,事情便终于算是解决完了,整个人也清醒了。

Alter system reset db_file_name_convert scope=spfile sid=’*’;
Alter system reset log_file_name_convert scope=spfile sid=’*’;

有关Data Guard更多参数描述信息请参考Oracle官方文档:

10G 官方文档:
http://download.oracle.com/docs/cd/B19306_01/server.102/b14239/init_params.htm#i88512

11G 官方文档:
https://docs.oracle.com/cd/E11882_01/server.112/e40402/toc.htm

Oracle Database Documentation

Oracle 官方联机文档,以下是各个版本的入口,从 11g 到 20c 都有,可自行查看。

https://docs.oracle.com/en/database/oracle/oracle-database/index.html

最后,可以看到 Oracle 官方即将发布的 20C 的官方文档也已经发布了,可以在线查看

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-02-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 JiekeXu之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档