1 系统资源状况:
-- 内存及 CPU 资源
- --linux,solaris,aix
- vmstat 5
-- 说明:
1) 观察空闲内存的数量多少, 以及空闲内存量是否稳定, 如果不稳定就得想办法来解决, 怎么解决还得看具体情况, 一般可以通过调整相关内存参数来解决, 各种操作系统输出指标解释及内存调整参数及方法不完全一样;
2) 观察 CPU 资源利用情况, 首先, 需要观察 CPU 上运行的任务数, 也就是 vmstat 输出中位于第一列上的指标, 如果该指标持续大于 CPU 核心数, 应该引起注意; 如果该指标持续大于 CPU 核心数的两倍, 那么应该引起重视; 如果持续为 CPU 核心数的多倍, 系统一般会出现应用可感知的现象, 必须立刻想办法解决当然, 在观察该指标的同时, 还要结合 CPU 利用率的指标情况, 如: 用户使用百分比, 系统使用百分比, 空闲百分比等指标, 如果空闲百分比持续低于 20%, 应该引起注意; 如果持续低于 10%, 应该引起重视; 如果持续为 0, 系统一般会出现应用可感知的现象, 应该立刻想办法解决问题;
3)CPU 用户使用百分比和系统使用百分比的比例, 也是应该注意的一般来说, 在一个状态正常的系统上, 用户使用百分比应该比系统使用百分比大很多, 几倍到十几倍甚至更高, 如果系统使用百分比持续接近用户使用百分比, 甚至大于用户使用百分比, 说明系统的状态是不正常的, 可能是硬件或者操作系统问题, 也可能是应用问题有关 vmstat 输出中各指标及解释等, 可以参照本人博客中相关文章: http://blog.csdn.net/tuning_optmization
--IO 状况
- --linux,solaris
- iostat -dx 5
- --aix
- iostat 5
-- 说明:
1) 该命令主要用来观察系统存储设备的负载和性能状况, 首先, 需要观察系统各存储设备的繁忙程度, 如果该繁忙程度指标持续超过 80%, 那么应该引起注意; 如果持续超过 90%, 应该引起重视; 如果持续 100%, 一般会出现应用感知的现象, 应该立刻想办法解决问题;
2) 其次, 需要注意的是系统上各存储设备的 IO 能力, 就是每秒钟各存储设备的输入输出的数据量, 这个和具体设备的硬件及配置有关, 没有一个严格的标准, 性能好点的能达到每秒上 G, 甚至几个 G, 差的只能到每秒几十兆甚至十几兆;
3) 最后, 需要观察存储设备完成每次读写操作耗费的时间, 这个也是和具体设备硬件和配置相关的, 好的设备可能不到 1 毫秒, 差的能到几十毫秒甚至上百毫秒; iostat 的输出, 在各种操作系统上的输出和解释也不尽相同, 具体可以参照本人博客的相关文章: http://blog.csdn.net/tuning_optmization
2 磁盘空间及使用率
df -k
-- 说明:
1) 该命令会输出系统上各存储设备的设备名, 总空间量, 已使用空间量及百分比, 可用空间量及百分比, 及挂载点名字等, 这里存储空间的单位为 K;
3 查看系统日志
-- 说明:
4 查看数据库告警日志 (alert.log)
-- 说明:
1) 不同的数据库版本, 该日志的位置也会不同, 一般来说, 10g 的数据库上, 在 ORACLE_BASE/admin/ORACLE_SID/bdump/alert_ORACLE_SID.log; 而 11g 数据库上, 在 ORACLE_BASE/diag/rdbms/ORACLE_SID/ORACLE_SID/trace/alert_ORACLE_SID.log, 具体可以登录数据库并通过以下命令查询:
select value from v$diag_info where name ='Diag Trace';
2) 找到 alert.log 日志后, 可以检查是否有异常情况, 例如: 报错, 可疑告警, 可疑命令等, 如果有这些异常, 可以将这些信息报告专业 DBA, 由专业 DBA 结合其他信息进一步跟踪分析, 直到找到引起异常的原因, 并妥善解决为止;
5 查看数据库表空间
-- 说明:
1) 最重要的是, 查看数据库的空间使用率, 数据库各表空间的空间使用情况, 可以用以下命令查询, 如果发现表空间使用率异常, 应该引起注意, 需进一步调查是正常使用还是异常使用, 如果正常使用引起的空间不够, 可以考虑对表空间扩容或其他措施解决, 否则, 就得看看什么问题导致了表空间的异常使用, 查明原因后解决;
- Select d.tablespace_name,space "sum_space(m)",blocks sum_blocks,
- space-nvl(free_space,0) "used_space",round((1-nvl(free_space,0)/space)*100,2) "used_rate(%)",
- Free_space "free_space(M)"
- From (select tablespace_name,round(sum(bytes)/(1024*1024),2) space,sum(blocks) blocks
- From dba_data_files
- Group by tablespace_name) d,
- (select tablespace_name,round(sum(bytes)/(1024*1024),2) free_space
- From dba_free_space
- Group by tablespace_name) f
- Where d.tablespace_name=f.tablespace_name(+)
- Union all
- Select d.tablespace_name,space "sum_space(M)",blocks sum_blocks,used_space "used_space(M)",round(nvl(used_space,0)/space*100,2) "used_rate(%)",
- Nvl(free_space,0) "free_space(m)"
- From
- (select tablespace_name,round(sum(bytes)/(1024*1024),2) space,
- Sum(blocks) blocks
- From dba_temp_files
- Group by tablespace_name) d,
- (select tablespace_name,round(sum(bytes_used)/(1024*1024),2) used_space,round(sum(bytes_free)/(1024*1024),2) free_space
- From v$temp_space_header
- Group by tablespace_name) f
- Where d.tablespace_name=f.tablespace_name(+)
- order by tablespace_name;
2) 其次, 要查看表空间的设置及状态, 最该注意的是用户数据表空间数据文件的自动扩展设置, 一般来说, 建议关闭用户数据表空间数据文件的自动扩展, 这样, 可以避免意外事件的发生, 例如: 表空间异常使用导致的系统空间耗尽等; 关闭数据文件自动增长, 当表空间耗尽时, 继续使用数据库会在用户端报错, 从而可以起到空间告警的作用, 表空间数据文件可以查询 ba_data_files 及 dba_temp_files 等视图;
6 查看数据库用户
-- 说明:
1) 可以查看 dba_users 视图来了解数据库用户的情况, 如果发现异常信息, 及时通知专业 DBA 等相关人员, 并进一步跟踪分析, 直到找到引起异常的原因并妥善解决, 例如: 发现了新的数据库用户; 原来被锁定的用户被打开了; 用户默认表空间发生了变化; 用户默认资源配置梗概或资源消耗组发生了变化等
7 查看用户权限及审计信息
-- 说明:
1) 查看用户权限, 看用户权限是否发生了变化, 是否存在过度授权的情况, 查看用户拥有的所有权限可以用以下语句:
- SELECT 'ROLE' TYPE,grantee,granted_role privilege,admin_option ad,
- '/' table_name,'/' column_name,'/' owner
- FROM dba_role_privs
- WHERE grantee = UPPER ('&&1')
- UNION ALL
- SELECT 'SYSTEM' TYPE,grantee,privilege privilege,admin_option ad,
- '/' table_name,'/' column_name,'/' owner
- FROM dba_sys_privs
- WHERE grantee = UPPER ('&&1')
- UNION ALL
- SELECT 'TABLE' TYPE,grantee,privilege privilege,grantable ad,
- table_name,'/' column_name,owner
- FROM dba_tab_privs
- WHERE grantee = UPPER ('&&1')
- UNION ALL
- SELECT 'COLUMN' TYPE,grantee,privilege privilege,
- grantable ad,table_name,column_name,owner
- FROM dba_col_privs
- WHERE grantee = UPPER ('&&1')
- ORDER BY 1;
2) 如果系统启用了审计功能, 根据审计具体配置的不同, 可以查看相应表视图字典或操作系统文件;
8 查看系统会话数及会话情况
-- 说明:
1) 查看系统会话数, 可以多次运行以下命令查看, 看看总会话数是否稳定, 也可以分用户查看会话数, 并查看各用户会话数是否稳定, 并和之前的数据进行对比, 如果发现不稳定或异常, 及时通知专业 DBA 等相关人员, 并进一步跟踪分析, 直至找到出现异常的原因并妥善解决, 例如: 会话的异常增长等
- select count(*) from v$session;
- select username,count(*) from v$session group by username;
2) 大体查看会话, 看看是否有异常信息, 如果发现异常情况, 及时通知专业 DBA 等相关人员, 并进一步跟踪分析, 直到找到出现异常的原因并妥善解决, 例如: 异常主机的登录; 异常用户的登录等;
select * from v$session;
9 查看数据库等待事件
-- 说明:
1) 数据库等待事件, 可以反映数据库目前的运行状态, 可以用以下命令查询, 如果发现异常信息, 及时通知专业 DBA 等相关人员, 并进一步跟踪分析, 知道找到出现异常的原因并妥善解决, 此外, 由于该项检查专业性比较强, 很多时候, 最好由专业 DBA 或者运维人员与专业 DBA 一起检查该项目, 以便及时准确的发现和解决问题, 具体事件及解释可以参照本人博客相关文章: http://blog.csdn.net/tuning_optmization
- Select event "wait event",sum(seconds_in_wait) "waited so far(sec)",
- Count(sid) "num sess waiting"
- From v$session_wait
- Group by event
- order by "waited so far(sec)" desc,"num sess waiting" desc;
10 检查用户密码情况
-- 说明:
1) 检查操作系统用户密码, 检查各用户密码是否变化, 如果发现异常, 及时通知系统管理员等相关人员, 并进一步跟踪分析, 直到找到异常的原因并妥善解决, 最好定期修改密码;
2) 检查数据库用户密码, 检查数据库各用户密码是否变化, 如果发现异常, 及时通知专业 DBA 等相关人员, 并进一步跟踪分析, 直到找到异常的原因并妥善解决, 最好定期修改密码;
11 定期获取 AWR 报告并分析
-- 说明:
1)AWR 报告是 oracle 数据库支持的一个功能, 可以反映数据库相应时段的负载和性能等状态, 系统默认保留一周的快照以生成相应 AWR, 快照粒度为 1 小时;
2)AWR 包含信息非常全面, 专业 DBA 可以根据它了解到相应时段数据库乃至服务器的整体状态, 分析 AWR 报告的工作需要专业 DBA 或者请专业 DBA 配合来做, 一旦发现异常, 及时通知相关人员, 并进一步跟踪分析, 直到找到异常的原因并妥善解决, 获取及分析 AWR 报告的方法
来源: https://www.cnblogs.com/lhdz_bj/p/8675405.html