暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle数据库的启动——关于数据库诊断的建议

原创 eygle 2019-12-26
549

我曾经在论坛上看到无数类似这样的提问:

  • 我的数据库启动不了了,怎么办?
  • 我的数据库慢,怎么办?
  • 我的数据库down了,怎么办?

面对这样的问题,我们往往无能为力,这里面没有任何实质性的信息,无从判断。

所以,我们说,在提问之前,你应该想想你想传达怎样的信息给别人。如果你只想说,我的数据库出问题了,那么别人只能了解这个事实,没有办法帮你。学会提问,也需要智慧。

在这里我提醒大家需要记住的是,在数据库出现问题的时候,首先检查你的告警日志文件,研究其中的警告信息或者提供给他人寻求帮助,这通常是解决问题的第一个步骤。

从警报日志文件来看一下完整的数据库启动过程:

Sat Apr 29 11:44:45 2006
alter database open
Sat Apr 29 11:44:45 2006
Thread 1 opened at log sequence 124
  Current log# 1 seq# 124 mem# 0: /opt/oracle/oradata/eygle/redo01.log
Successful open of redo thread 1.
Sat Apr 29 11:44:45 2006
SMON: enabling cache recovery
Sat Apr 29 11:44:46 2006
Undo Segment 1 Onlined
Undo Segment 2 Onlined
Undo Segment 3 Onlined
Undo Segment 4 Onlined
Undo Segment 5 Onlined
Undo Segment 6 Onlined
Undo Segment 7 Onlined
Undo Segment 8 Onlined
Undo Segment 9 Onlined
Undo Segment 10 Onlined
Successfully onlined Undo Tablespace 1.
Sat Apr 29 11:44:46 2006
SMON: enabling tx recovery
Sat Apr 29 11:44:46 2006
Database Characterset is ZHS16GBK
replication_dependency_tracking turned off (no async multimaster replication found)
Completed: alter database open
复制

在完成数据库的验证和恢复过程后,数据库处于一致的状态,数据库还需要进行一系列的处理过程:将Undo段在线等操作,然后数据库可以提供访问,同时SMON可以开始进行事务回滚等。

在启动日志里你可能注意到了这样一行:

Database Characterset is ZHS16GBK
复制

在每次数据库的启动过程中,Oracle都需要判断控制文件中记录的字符集和数据库中的字符集是否相符,如果相符,则记录如上一行日志;如果不相符合,则以数据库中的字符集为准更新控制文件中的字符集记录,类似的日志如下:

Updating character set in controlfile to ZHS16CGB231280
复制

提示:在Oracle 8i之前,可以通过Update props$表的方式修改字符集,从Oracle 8i开始,切记绝对不要使用同样的方式修改字符集

如果细致一些,启动日志中的每条信息都是值得研究的。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论