10年工作经验,专研网站运维。
全部博文(454)
分类: Oracle
2013-12-03 08:37:22
Oracle数据库日常巡检:
1. 检查数据库日志
1.1 警告日志:
cat
/orainst/admin/cba/bdump/alert_cba.log
1.2 联机(在线)重做日志:
# cd
/orainst/flash_recovery_area/CBA/archivelog
1.3 归档重做日志:
ls /orainst/flash_recovery_area/CBA/archivelog/
1.4
跟踪日志:
用LogMiner查看。
2. 查看相关用户的mail
$
mail
3. 检查核心转储
3. 查看闪回恢复区的空间使用率,配置为20G
cd /orainst/flash_recovery_area/CBA
# du -m
0.00 ./archivelog/2014_07_01
0.00 ./archivelog/2014_07_02
0.00 ./archivelog/2014_07_03
0.00 ./archivelog/2014_07_04
248.77 ./archivelog/2014_07_06
665.55 ./archivelog/2014_07_07
829.43 ./archivelog/2014_07_08
1494.52 ./archivelog/2014_07_10
929.74 ./archivelog/2014_07_11
4168.02 ./archivelog
0.00 ./onlinelog
4168.02 .
4. 检查所有无效的对象
select
* from dba_objects where status!='VALID';
4.1 检查闪回恢复区的使用率:
select * from v$flash_recovery_area_usage;
5. 检查数据库表空间使用率
select
a.a1 表空间名称,
c.c2 类型,
c.c3 区管理,
b.b2/1024/1024 表空间大小M,
(b.b2-a.a2)/1024/1024 已使用M,
substr((b.b2-a.a2)/b.b2*100,1,5) 利用率
from
(select tablespace_name a1, sum(nvl(bytes,0)) a2 from dba_free_space group by tablespace_name) a,
(select tablespace_name b1,sum(bytes) b2 from dba_data_files group by tablespace_name) b,
(select tablespace_name c1,contents c2,extent_management c3 from dba_tablespaces) c
where a.a1=b.b1 and c.c1=b.b1;
或使用:
SELECT
UPPER(F.TABLESPACE_NAME) "表空间名",
D.TOT_GROOTTE_MB
"表空间大小(M)",
D.TOT_GROOTTE_MB
- F.TOTAL_BYTES "已使用空间(M)",
TO_CHAR(ROUND((D.TOT_GROOTTE_MB
- F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,2),'990.99') || '%' "使用比",
F.TOTAL_BYTES
"空闲空间(M)",
F.MAX_BYTES
"最大块(M)"
FROM
(SELECT TABLESPACE_NAME,
ROUND(SUM(BYTES)
/ (1024 * 1024), 2) TOTAL_BYTES,
ROUND(MAX(BYTES)
/ (1024 * 1024), 2) MAX_BYTES
FROM
SYS.DBA_FREE_SPACE
GROUP
BY TABLESPACE_NAME) F,
(SELECT
DD.TABLESPACE_NAME,
ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB
FROM
SYS.DBA_DATA_FILES DD
GROUP
BY DD.TABLESPACE_NAME) D
WHERE
D.TABLESPACE_NAME = F.TABLESPACE_NAME
ORDER
BY 1;
6. 检查数据库的数据文件是否为自动扩展
6.1查看所有的表空间以及所对应数据文件名:
1. 2012
2. CIS_DATA
3. LHCBA_DATA
4. MMDB_DAT1
5. MMDB_LOB1
6. MMDB_NDX1
7. PMDB_DAT1
8. PMDB_LOB1
9. PMDB_NDX1
10. SYSAUX
11. SYSTEM
12. UNDOTBS1
13. USERS
7. 检查备份是否出错
vi /nbuscript/hot_database_backup.sh.out 查看RMAN备份日志
cd /oradata/oradmp 查看exp的log日志
8. 检查Oracle实例状态
SQL> select status from
v$instance;
STATUS
------------
OPEN
9. 检查Oracle数据库状态
SQL> select open_mode from v$database;
10. 检查Oracle死锁
select
username,lockwait,status,machine,program from v$session where sid in
(select
session_id from v$locked_object)
11. 检查缓冲区命中率
12. 检查共享池命中率
13. 数据字典命中率
14. 库缓存命中率
15. 最浪费内存的前10个语句占全部内存读取量的比例
16. 检查失效的索引
17. 检查日志文件、控制文件、参数文件、数据文件、表空间、回滚段等Oracle对象的状态
18. 检查每一个扩展异常对象状态
19. 查询等待事件
20. SQL语句的利用率和效率查询
21. 实时监控操作系统,发生异常需短信或邮件报警
22. 检查Oracle数据库的进程
23. 检查Oracle数据库的监听进程
24. 检查Oracle的自动负载库报告
25. 检查Oracle官方补丁
26. 关注Oracle官方新闻
27. 检查Oracle的自动诊断报告
28. 使用LogMiner分析数据库的日志
29. 查看当前实例SID:
# echo $ORACLE_SID
# env
# set
30. 定义选择的sid(适用于一个数据库多个实例)
export
ORACLE_SID=orcl
30. 查看时spfile启动,还是pfile启动:
SQL>
show parameter spfile;
NAME TYPE
VALUE
------------------------------------ -----------
------------------------------
spfile string
/orainst/product/10g/dbs/spfil
ecba.ora
如果有值说明使用spfile启动,反之pfile
以上工作尽量做到每日巡检,个别项可以每周巡检。这样可以对数据库系统的安全性和稳定性有一个基本的保障。