oracle10g运维手册(一)

2014-11-24 08:53:37 · 作者: · 浏览: 8

1. 检查数据库基本状况... 4

1.1. 检查Oracle实例状态... 4

1.2. 检查Oracle服务进程... 4

1.3. 检查Oracle监听状态... 5

2. 检查系统和oracle日志文件... 6

2.1. 检查操作系统日志文件... 6

2.2. 检查oracle日志文件... 6

2.3. 检查Oracle核心转储目录... 7

2.4. 检查Root用户和Oracle用户的email. 7

3. 检查Oracle对象状态... 7

3.1. 检查Oracle控制文件状态... 7

3.2. 检查Oracle在线日志状态... 8

3.3. 检查Oracle表空间的状态... 8

3.4. 检查Oracle所有数据文件状态... 8

3.5. 检查无效对象... 9

3.6. 检查所有回滚段状态... 10

4. 检查Oracle相关资源的使用情况... 10

4.1. 检查Oracle初始化文件中相关参数值... 10

4.2. 检查数据库连接情况... 11

4.3. 检查系统磁盘空间... 12

4.4. 检查表空间使用情况... 12

4.5. 检查一些扩展异常的对象... 13

4.6. 检查system表空间内的内容... 14

4.7. 检查对象的下一扩展与表空间的最大扩展值... 14

5. 检查Oracle数据库备份结果... 14

5.1. 检查数据库备份日志信息... 15

5.2. 检查backup卷中文件产生的时间... 15

5.3. 检查oracle用户的email. 15

6. 检查Oracle数据库性能... 15

6.1. 检查数据库的等待事件... 15

6.2. Disk Read最高的SQL语句的获取... 15

6.3. 查找前十条性能差的sql. 16

6.4. 等待时间最多的5个系统等待事件的获取... 16

6.5. 检查运行很久的SQL. 16

6.6. 检查消耗CPU最高的进程... 16

6.7. 检查碎片程度高的表... 17

6.8. 检查表空间的 I/O 比例... 17

6.9. 检查文件系统的 I/O 比例... 17

6.10. 检查死锁及处理... 17

6.11. 检查数据库cpu、I/O、内存性能... 18

6.12. 查看是否有僵死进程... 19

6.13. 检查行链接/迁移... 19

6.14. 定期做统计分析... 19

6.15. 检查缓冲区命中率... 20

6.16. 检查共享池命中率... 20

6.17. 检查排序区... 20

6.18. 检查日志缓冲区... 21

7. 检查数据库安全性... 21

7.1. 检查系统安全日志信息... 21

7.2. 检查用户修改密码... 21

8. 其他检查... 22

8.1. 检查当前crontab任务是否正常... 22

8.2. Oracle Job是否有失败... 22

8.3. 监控数据量的增长情况... 22

8.4. 检查失效的索引... 23

8.5. 检查不起作用的约束... 23

8.6. 检查无效的trigger. 23

巡检内容

1. 检查数据库基本状况

在本节中主要对数据库的基本状况进行检查,其中包含:检查Oracle实例状态,检查Oracle服务进程,检查Oracle监听进程,共三个部分。

1.1. 检查Oracle实例状态

SQL> select instance_name,host_name,startup_time,status,database_status from v$instance;

INSTANCE_NAME HOST_NAME STARTUP_TIME STATUS DATABASE_STATUS

---------------- ------------------- -------------------- ---------- ------------ ----

CKDB AS14 2009-5-7 9:3 OPEN ACTIVE

其中“STATUS”表示Oracle当前的实例状态,必须为“OPEN”;“DATABASE_STATUS”表示Oracle当前数据库的状态,必须为“ACTIVE”。

SQL> select name,log_mode,open_mode from v$database;

NAME LOG_MODE OPEN_MODE

--------- ------------ -----------------

CKDB ARCHIVELOG READ WRITE

其中“LOG_MODE”表示Oracle当前的归档方式。“ARCHIVELOG”表示数据库运行在归档模式下,“NOARCHIVELOG”表示数据库运行在非归档模式下。在我们的系统中数据库必须运行在归档方式下。

1.2. 检查Oracle服务进程

$ps -ef|grep ora_|grep -v grep&&ps -ef|grep ora_|grep -v grep|wc l

oracle 2960 1 0 May07 00:01:02 ora_pmon_CKDB

oracle 2962 1 0 May07 00:00:22 ora_psp0_CKDB

oracle 2964 1 0 May07 00:00:00 ora_mman_CKDB

oracle 2966 1 0 May07 00:03:20 ora_dbw0_CKDB

oracle 2968 1 0 May07 00:04:29 ora_lgwr_CKDB

oracle 2970 1 0 May07 00:10:31 ora_ckpt_CKDB

oracle 2972 1 0 May07 00:03:45 ora_smon_CKDB

oracle 2974 1 0 May07 00:00:00 ora_reco_CKDB

oracle 2976 1 0 May07 00:01:24 ora_cjq0_CKDB

oracle 2978 1 0 May07 00:06:17 ora_mmon_CKDB

oracle 2980 1 0 May07 00:07:26 ora_mmnl_CKDB

oracle 2982 1 0 May07 00:00:00 ora_d000_CKDB

oracle 2984 1 0 May07 00:00:00 ora_s000_CKDB

oracle 2994 1 0 May07 00:00:28 ora_arc0_CKDB

oracle 2996 1 0 May07 00:00:29 ora_arc1_CKDB

oracle 3000 1 0 May07 00:00:00 ora_qmnc_CKDB

oracle 3625 1 0 May07 00:01:40 ora_q000_CKDB

oracle 31594 1 0 Jul20 00:00:00 ora_q003_CKDB

oracle 23802 1 0 05:09 00:00:33 ora_j000_CKDB

19

在检查Oracle的进程命令输出后,输出显示至少应包括以下一些进程:
. Oracle写数据文件的进程,输出显示为:“ora_dbw0_CKDB”
. Oracle写日志文件的进程,输出显示为:“ora_lgwr_ CKDB”
. Oracle监听实例状态的进程,输出显示为:“ora_smon_ CKDB”
. Oracle监听客户端连接进程状态的进程,输出显示为:“ora_pmon_ CKDB”
. Oracle进行归档的进程,输出显示为:“ora_arc0_ CKDB”
. Oracle进行检查点的进程,输出显示为:“ora_c