一、服务器检查

一、服务器检查

1、查看系统配置

  • 查看主机名:

    uname -n

  • 查看运行的硬件平台类型:

    uname -im
    
  • 查看cpu类型:

    uname -p
    
  • 查看内存信息:

    free -h
    

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IIlzzJ1z-1668838635190)(C:\Users\zhangjunwei\AppData\Roaming\Typora\typora-user-images\image-20221101144258166.png)]

  • 查看操作系统版本:

    lsb_release -d
    
  • 查看操作系统内核信息:

    uname -sr
    
  • 查看服务器信息:

    /usr/sbin/dmidecode |grep "Product Name"
    
  • 开机时间以及僵尸进程

    img

    total : 进程总数
    running : 正在运行的进程数
    sleeping : 睡眠的进程数
    stopped : 停止的进程数
    zombie : 僵尸进程数
    us : 用户空间占用CPU百分比
    sy : 内核空间占用CPU百分比
    ni : 用户进程空间内改变过优先级的进程占用CPU百分比
    id : 空闲CPU百分比
    wa : 等待输入输出的CPU时间百分比
    hi : 硬中断(Hardware IRQ)占用CPU的百分比
    si : 软中断(Software Interrupts)占用CPU的百分比
    st : 用于有虚拟cpu的情况,用来指示被虚拟机偷掉的cpu时间。

    备注:主要看有无僵尸线程数,以及相关经常占内存是否正常

2、内容参数

  • 共享内存情况:

    cat /etc/sysctl.conf |grep -v "#" |grep -v "^$"
    
  • oracle用户限制:

    [root@wtdb2 ~]# su - oracle
    [oracle@wtdb2 ~]$ ulimit -a
    

3、磁盘空间

  • 磁盘空间情况:

    df -h
    
    正常:rate<80%
    关注:80%<rate<90%
    警告:90%>rate
    
  • io情况

    iostat -x l 5
    
    • %iowait:CPU用于等待I/O操作占用CPU总时间的百分比
      %idle:CPU 空闲时间占比

      await:平均每次 IO 请求的等待时间(包括等待时间和处理时间,毫秒为单位)
      svctm:平均每次 IO 请求的处理时间(毫秒为单位)
      %util:每秒用于 IO 操作的时间占比

    • 若 %iowait 的值过高,表示磁盘存在 I/O 瓶颈 若 %idle 的值高但系统响应慢时,有可能是 CPU 等待分配内存,此时应加大内存容量 若 %idle 的值持续低于 1,则系统的 CPU 处理能力相对较低,表明系统中最需要解决的资源是CPU await 的值越接近 svctm 越好 %util 不宜过高

4、数据库配置

  • 查看RDBMS版本:
 select * from v$version;
  • 查看安装选项:
select * from v$option;
  • 查看已被使用的产品选项:
select comp_id, comp_name, version,status from dba_registry;
  • 数据库参数:
show parameter spfile;

select NAME,VALUE,ISDEFAULT as "Default",ISSYS_MODIFIABLE as "Dynamic" from v$system_parameter order by name;
//数据库非默认参数
select name , value from v$parameter where isdefault='FALSE';

5、内存管理配置

  • 查看sga
show sga

show parameter sga
  • 查看pga:
 show parameter pga
  • 查看内存

    free -h
    

    img

    total:表示系统的总内存
    used:表示应用程序已经使用的内存
    free:表示当前还没有被使用的内存
    shared:表示共享链接库使用的内存
    buff/cache:表示系统的page,cache和buffer使用到的内存
    available:表示应用程序还可以申请到的内存

    关注对象: available 内存占比不宜过低 free 内存应留有余量,因为这是系统不释放 buff/cache 直接可以调用的内存

6、文件和日志

  • 查看和跟踪文件

  • 检查alert.log

    show parameter dump
    
  • 检查控制文件

    记录数据库的物理机构及同步信息,建议同时存在2份以上的控制文件,并保存在不同的磁盘上。

    SQL> show parameter control_files;
    
    SQL>select status,name,is_recovery_dest_file,(block_size*file_size_blks)/1024/1024 "Mbytes" from v$controlfile;
    
  • 检查审计文件

    SQL> show parameter audit_file_dest
    
  • redo log文件

    建议配置多redo日志组(2个以上的日志组),对redo日志进行镜像保存,配置2个及其以上的redo日志镜像。

    connect as sysdba
    SQL> select group#,thread#,bytes,members,archived,status from v$log;
    SQL> select * from v$logfile order by 1;
    SQL>
    select l.group#, lf.member as Logfile,l.status,l.bytes/1024/1024 as "Size/MB"
    from v$log l,v$logfile lf
    where l.group#=lf.group#
    order by group#;
    
  • archived log 文件

    如果空间允许,建议归档日志保存2份及其以上镜像。

     connect as sysdba
     SQL> archive log list;
     Database log mode    Archive Mode
     Automatic archival    Enabled
     Archive destination    /u02/arch
     Oldest online log sequence   31135
     Next log sequence to archive  31139
     Current log sequence    31139
    
    select * from v$archive_dest;
     select * from v$archive;
     select * from v$archived_log;
    
  • 数据文件

    a、查看数据文件(所有数据文件总和)大小

    SQL> select count(*) "count",sum(bytes)/1024/1024 "Mbyters" from v$datafile;  
    
    count  Mbyters
    

    b、查看数据文件位置及大小

     SQL> select tablespace_name,file_id,bytes,autoextensible,status,file_name from dba_data_files;
    
    TABLESPACE_NAME   FILE_ID   BYTES   AUT STATUS   FILE_NAME
    

    c、查看数据文件是否自动扩展,默认系统表空间的是自动扩展的。

     SQL> select file_id, tablespace_name, bytes, maxbytes, maxblocks, increment_by, file_name from dba_data_files where autoextensible = 'YES';
    
      FILE_ID TABLESPACE_NAME     BYTES  MAXBYTES MAXBLOCKS INCREMENT_BY FILE_NAME
    
    SQL> select count(*) "count",sum(bytes)/1024/1024 "Mbyters" from v$datafile;  
    

7、表空间

  • 查看表空间使用情况,可查询dba_tablespace; dba_free_space; dba_data_files;
select * from (
Select  a.tablespace_name,
       round(a.bytes/1024/1024,3) total_bytes,
  round(b.bytes/1024/1024,3) free_bytes,
  round(a.bytes/1024/1024 - b.bytes/1024/1024,3) use_bytes,
  round((1 - b.bytes/a.bytes)*100,3) || '%' use
from         (select tablespace_name,
                sum(bytes) bytes
           from dba_data_files
          group by tablespace_name) a,
        (select tablespace_name,
                sum(bytes) bytes
           from dba_free_space
          group by tablespace_name) b
where a.tablespace_name = b.tablespace_name
union all
select         c.tablespace_name,
               round(c.bytes/1024/1024,3) total_bytes,
               round( (c.bytes-d.bytes_used)/1024/1024,3) free_bytes,
               round(d.bytes_used/1024/1024,3) use_bytes,
               round(d.bytes_used*100/c.bytes,3) || '%' use
from
(select tablespace_name,sum(bytes) bytes
from dba_temp_files group by tablespace_name) c,
(select tablespace_name,sum(bytes_cached) bytes_used
from v$temp_extent_pool group by tablespace_name) d
where c.tablespace_name = d.tablespace_name
)
order by tablespace_name;

  • 表空间可用性检查(online or offline)
SQL> select tablespace_name,status from dba_tablespaces;
  • 查看表空间管理类型(数据字典管理or本地管理,9i之后默认的管理方式为本地管理方式
SQL> select tablespace_name, extent_management from dba_tablespaces;
  • 查看临时表空间

    • a、检查当前永久表空间和临时表空间

      SQL> select tablespace_name, contents  from dba_tablespaces;
      
    • b、检查是否存在永久表空间类型的临时表空间(10G之后应该不会有这种情况)

      SQL> select u.username, t.tablespace_name
      from dba_users u, dba_tablespaces t
      where u.temporary_tablespace = t.tablespace_name
      and t.contents <> 'TEMPORARY';
      
    • c、检查临时表空间大小

      SQL> select tablespace_name, sum(bytes)/1024/1024 mb
           from dba_temp_files
           group by tablespace_name;
      
    • d、查看临时表空间使用的高水位线(同一时间最大的使用量)

      SQL> select tablespace_name, sum(bytes_cached)/1024/1024 mb
           from v$temp_extent_pool
           group by tablespace_name;
      

8、数据库对象

  • 检查无效的数据库对象

    SQL> SELECT owner,object_type,object_name,status,LAST_DDL_TIME  FROM dba_objects WHERE status like 'INVALID';
    
  • 查看在系统表空间(system,sysaux)内的非系统用户(sys,system)对象。

    SQL> select owner, segment_name, segment_type from dba_segments where tablespace_name = 'SYSTEM' and owner not in ('SYS','SYSTEM');
    
  • 检查数据库连接

    SQL> SELECT * FROM DBA_DB_LINKS;
    
  • 检查索引

    索引需要维护。对于表的删除或者添加操作都会间接地对index进行相应的操作。过时的index结构会产生碎片,此时index需要被重新建立。
    belevel是B-tree索引形式的一部分,与oracle为搜索某些记录而减少index搜索的次数相关联。在一些情况下,BLEVEL需要单独的磁盘命中。
    如果blevel>4,那么建议重建index
    SQL> select * from dba_indexes where blevel>4;

  • 数据行数最大前十的表

    select t.table_name,t.tablespace_name,t.num_rows/10000 "rows(万行)" from user_tables t order by t.num_rows  desc
    
  • 查询执行最慢的sql

    select *
    from(select sa.SQL_TEXT,
         sa.EXECUTIONS,
         round(sa.ELAPSED_TIME/1000000,2) "总执行时间",
         round(sa.ELAPSED_TIME/1000000/sa.ELAPSED_TIME,2) "平均执行时间",
         sa.COMMAND_TYPE,
         sa.PARSING_USER_ID "用户id",
         u.USERNAME "用户名",
         sa.HASH_VALUE
       from v$sqlarea sa 
       left join all_users u
       on sa.PARSING_USER_ID=u.USER_ID
       where sa.EXECUTIONS>0 and u.username='填写用户名'
       order by (sa.ELAPSED_TIME/sa.EXECUTIONS) desc     
    )
    where rownum<=50--查询的数据数目
    
  • 查询次数最多的sql

    select s.sql_text,
    s.EXECUTIONS,
    s.PARSING_USER_ID,
    rank() over(order by executions desc ) exec_rank
    from v$sql s
    left join all_users u
    on u.USER_ID =s.PARSING_user_ID
    

    9、安全管理

    database / administrator
    检查sys/system 不要使用默认密码
    检查被授予DBA权限的用户,收回不必要的

    select grantee,granted_role from dba_role_privs where granted_role='DBA'
    

    检查被授予SYSDBA权限的用户

    select * from v$pwfile_users;
    

10、监听器设置

  • 位于服务器端的监听程序时单独的进程。它从客户端接收连接请求,并管理这些对服务端的请求。

    cd $ORACLE_HOME/network/admin
       more listener.ora
    
    
  • SQLNET.ORA设置,包含了客户端和服务器对SQL*NET配置的设置信息。

    cd $ORACLE_HOME/network/admin
      more sqlnet.log
    
  • TNSNAMES.ORA

    包含了与连接描述符相匹配的网络服务名。连接描述符包括监听程序的地址以及connect_data

    cd $ORACLE_HOME/network/admin
       more tnsnames.ora
    

11、数据库备份和恢复情况

  • 检查备份恢复策略
    建议:根据不同的数据库失败情况制定相应的恢复策略
    全库恢复
    表空间恢复
    数据文件恢复
    表恢复
    制定的恢复策略进行恢复测试。

  • 检查数据库备份是否正常

    crontab  -l
    

    img

服务器对SQL*NET配置的设置信息。

cd $ORACLE_HOME/network/admin
  more sqlnet.log
  • TNSNAMES.ORA

    包含了与连接描述符相匹配的网络服务名。连接描述符包括监听程序的地址以及connect_data

    cd $ORACLE_HOME/network/admin
       more tnsnames.ora
    

11、数据库备份和恢复情况

  • 检查备份恢复策略
    建议:根据不同的数据库失败情况制定相应的恢复策略
    全库恢复
    表空间恢复
    数据文件恢复
    表恢复
    制定的恢复策略进行恢复测试。

  • 检查数据库备份是否正常

    crontab  -l
    

    [外链图片转存中…(img-iJj0OKho-1668838635192)]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值