zoukankan      html  css  js  c++  java
  • 转:linux中oracle的日常维护命令

     
    1.  检查Oracle的进程 
    $  ps -ef|grep "ora_"|grep -v grep 
      oracle  5998     1  0 11:15:59 ?        0:01 ora_j000_PPRD10 
      oracle  2968     1  0 21:16:57 ?        0:00 ora_q000_PPRD10 
      oracle  2927     1  0 21:16:33 ?        0:00 ora_pmon_PPRD10 
      oracle  2933     1  0 21:16:34 ?        0:07 ora_dbw0_PPRD10 
      oracle  2945     1  0 21:16:34 ?        0:02 ora_mmon_PPRD10 
      oracle  2931     1  0 21:16:33 ?        0:00 ora_mman_PPRD10 
      oracle  2949     1  0 21:16:34 ?        0:00 ora_d000_PPRD10 
      oracle  2970     1  0 21:16:57 ?        0:00 ora_q001_PPRD10 
      oracle  2935     1  0 21:16:34 ?        0:05 ora_lgwr_PPRD10 
      oracle  2951     1  0 21:16:34 ?        0:00 ora_s000_PPRD10 
      oracle  2939     1  0 21:16:34 ?        0:06 ora_smon_PPRD10 
      oracle  2957     1  0 21:16:47 ?        0:00 ora_qmnc_PPRD10 
      oracle  2943     1  0 21:16:34 ?        0:05 ora_cjq0_PPRD10 
      oracle  2947     1  0 21:16:34 ?        0:00 ora_mmnl_PPRD10 
      oracle  2937     1  0 21:16:34 ?        0:18 ora_ckpt_PPRD10 
      oracle  2941     1  0 21:16:34 ?        0:00 ora_reco_PPRD10 
    oracle  2929     1  0 21:16:33 ?        0:00 ora_psp0_PPRD10 
    
    在检查Oracle的进程命令输出后,输出显示至少应包括以下一些进程: 
    ? Oracle写数据文件的进程,输出显示为:“ora_dbw0_ORCL” 
    ? Oracle写日志文件的进程,输出显示为:“ora_lgwr_ORCL” 
    ? Oracle监听实例状态的进程,输出显示为:“ora_smon_ORCL” 
    ? Oracle监听客户端连接进程状态的进程,输出显示为:“ora_pmon_ORCL” 
    ? Oracle进行归档的进程,输出显示为:“ora_arc0_ORCL” 
    ? Oracle进行检查点的进程,输出显示为:“ora_ckpt_ORCL” 
    ? Oracle进行[url=javascript:;]恢复[/url]的进程,输出显示为:“ora_reco_ORCL” 
    
    
    2 .  查看数据库的实例: 
    SQL> select instance_name,status,version,database_status from v$instance; 
    
    INSTANCE_NAME  STATUS    VERSION     DATABASE_STATUS 
    ----------------        ------------   -----------------    ----------------- 
    PPRD10           OPEN     10.2.0.4.0       ACTIVE 
    
    其中“STATUS”表示Oracle当前的实例状态,必须为“OPEN”;DATABASE_STATUS”表示Oracle当前数据库的状态,必须为“ACTIVE”。 
    
    
    3 . 查看数据库的日志模式,打开模式 
    SQL> select name,log_mode,open_mode from v$database; 
    
    NAME      LOG_MODE       OPEN_MODE 
    ---------      ------------          ---------- 
    PPRD10    NOARCHIVELOG  READ WRITE   
    
    其中“LOG_MODE”表示Oracle当前的归档方式。“ARCHIVELOG”表示数据库运行在归档模式下,“NOARCHIVELOG”表示数据库运行在非归档模式下。 
    
    4 . 查看数据库alert_SID.log 中的ora-的错误信息: 
    $ more /u01/app/oracle/admin/pinnsoft/bdump/alert_pinnsoft.log | grep -i ora- 
    
    WARNING: inbound connection timed out (ORA-3136) 
    WARNING: inbound connection timed out (ORA-3136) 
    ORA-12012: error on auto execute of job 78677 
    ORA-20820: ORA-20820: 
    ORA-06512: at "PS_SYSTEM.ROW_VALIDATOR_T", line 912 
    ORA-06512: at "PS_SYSTEM.ROW_VALIDATOR_T", line 924 
    ORA-06512: at "WORKORDER.INVENTORY_UTL", line 1260 
    ORA-12012: error on auto execute of job 78677 
    
    
    4.1 查alert_SID.log中的err的信息: 
    $ more /u01/app/oracle/admin/pinnsoft/bdump/alert_pinnsoft.log | grep -i err 
    
    Errors in file /u01/app/oracle/admin/pinnsoft/bdump/pinnsoft_j000_2666.trc: 
    ORA-12012: error on auto execute of job 78677 
    : 6000101: Error occurred when rolling Inventory date 
    Errors in file /u01/app/oracle/admin/pinnsoft/bdump/pinnsoft_j000_11886.trc: 
    ORA-12012: error on auto execute of job 78677 
    : 6000101: Error occurred when rolling Inventory date 
    Errors in file /u01/app/oracle/admin/pinnsoft/bdump/pinnsoft_j000_21375.trc: 
    ORA-12012: error on auto execute of job 78677 
    : 6000101: Error occurred when rolling Inventory date 
    
    
    4.2 查alert_SID.log的fail的信息: 
    $ more /u01/app/oracle/admin/pinnsoft/bdump/alert_pinnsoft.log | grep -i fail 
    
    PMON failed to acquire latch, see PMON dump 
    PMON failed to acquire latch, see PMON dump 
    PMON failed to acquire latch, see PMON dump 
    
    
    5. 检查控制文件状态
    SQL> select status,name from v$controlfile; 
    STATUS  NAME 
    -------    ------------------------------------------------------------------------ 
            /data/app/oracle/oradata/PPRD10/control01.ctl 
            /data/app/oracle/oradata/PPRD10/control02.ctl 
            /data/app/oracle/oradata/PPRD10/control03.ctl 
    
    输出结果应该有3条以上(包含3条)的记录,“STATUS”应该为空。状态为空表示控制文件状态正常。 
    
    6.  查询日志状态 
    SQL> select group#,status,member from v$logfile; 
    
    GROUP#  STATUS  MEMBER 
    ----------    -------    ------------------------------------------------------------- 
               1         /data/app/oracle/oradata/PPRD10/redo01.log 
               2         /data/app/oracle/oradata/PPRD10/redo02.log 
               3         /data/app/oracle/oradata/PPRD10/redo03.log 
    
      输出结果应该有3条以上(包含 3 条)记录,”STATUS”应该为非”INVALID”,非“DELETED”。 
    
    7 .  查询数据状态: 
    SQL> select file#,status,name from v$datafile; 
    
    FILE#  STATUS   NAME 
    ----------  -------    -------------------------------------------------- 
             1  SYSTEM  /u01/app/oracle/oradata/orcl/system01.dbf 
             2  ONLINE  /u01/app/oracle/oradata/orcl/undotbs01.dbf 
             3  ONLINE  /u01/app/oracle/oradata/orcl/sysaux01.dbf 
             4  ONLINE  /u01/app/oracle/oradata/orcl/users01.dbf 
             5  ONLINE  /u01/app/oracle/oradata/orcl/example01.dbf 
             6  ONLINE  /u01/app/oracle/oradata/orcl/perfstat.dbf 
             7  ONLINE  /u01/app/oracle/oradata/orcl/risenet.dbf 
    
      “ONLINE"表示正常在线状态 
    
    8 . 查询表空间状态 
    SQL> select tablespace_name,status from dba_tablespaces; 
    
    TABLESPACE_NAME           STATUS 
    ------------------------------     --------- 
    SYSTEM                           ONLINE 
    UNDOTBS1                       ONLINE 
    SYSAUX                           ONLINE 
    TEMP                              ONLINE 
    USERS                            ONLINE 
    EXAMPLE                         ONLINE 
    PERFSTAT                        ONLINE 
    RISENET                          ONLINE 
    
    “ONLINE”表示正常在线状态 
    
    9  . 检查Oracle所有回滚段的状态 
    
    SQL> select segment_name,status from dba_rollback_segs; 
    
    SEGMENT_NAME              STATUS 
    ------------------------------    ---------------- 
    SYSTEM                           ONLINE 
    _SYSSMU10$                    ONLINE 
    _SYSSMU9$                      ONLINE 
    _SYSSMU8$                      ONLINE 
    _SYSSMU7$                      ONLINE 
    _SYSSMU6$                      ONLINE 
    _SYSSMU5$                      ONLINE 
    _SYSSMU4$                      ONLINE 
    _SYSSMU3$                      ONLINE 
    _SYSSMU2$                      ONLINE 
    _SYSSMU1$                      ONLINE 
    
    11 rows selected. 
    
    10 .检查Oracle初始化文件中相关的参数值 
    
    SQL>select resource_name,current_utilization,max_utilization,initial_allocation  ,limit_value from v$resource_limit; 
    
    RESOURCE_NAME                  CURRENT_UTILIZATION MAX_UTILIZATION INITIAL_AL LI 
    ------------------------------ ------------------- --------------- ---------- -- 
    processes                                       26              31        150 
    sessions                                        30              37        170 
    enqueue_locks                                   23              31       2300 
    enqueue_resources                               23              49        968  U 
    ges_procs                                        0               0          0 
    ges_ress                                         0               0          0  U 
    ges_locks                                        0               0          0  U 
    ges_cache_ress                                   0               0          0  U 
    ges_reg_msgs                                     0               0          0  U 
    ges_big_msgs                                     0               0          0  U 
    ges_rsv_msgs                                     0               0          0 
    
    RESOURCE_NAME                  CURRENT_UTILIZATION MAX_UTILIZATION INITIAL_AL LI 
    ------------------------------ ------------------- --------------- ---------- -- 
    gcs_resources                                    0               0          0 
    gcs_shadows                                      0               0          0 
    dml_locks                                        0              68        748  U 
    temporary_table_locks                            0               3  UNLIMITED  U 
    transactions                                     2              11        187  U 
    branches                                         0               0        187  U 
    cmtcallbk                                        0               2        187  U 
    sort_segment_locks                               0               3  UNLIMITED  U 
    max_rollback_segments                           11              11        187 
    max_shared_servers                               1               1  UNLIMITED  U 
    parallel_max_servers                             0               0         40 
    
    22 rows selected. 
    
    
    11. 检查Oracle各个表空间的增长情况 
    
    Select  A.tablespace_name,(1-(A.total)/B.total)*100 used_percent 
    from (select tablespace_name,sum(bytes) total from dba_free_space group by tablespace_name) A, (select tablespace_name,sum(bytes) total from dba_data_files group by tablespace_name) B 
    where A.tablespace_name=B.tablespace_name; 
    
    SQL> Select  A.tablespace_name,(1-(A.total)/B.total)*100 used_percent 
      2  from (select tablespace_name,sum(bytes) total from dba_free_space group by tablespace_name) A, (select tablespace_name,sum(bytes) total from dba_data_files group by tablespace_name) B 
    where A.tablespace_name=B.tablespace_name; 
    3 
    
    TABLESPACE_NAME                USED_PERCENT 
    ------------------------------         ------------ 
    UNDOTBS1                              33.25 
    SYSAUX                               99.0364583 
    RISENET                                .0125 
    USERS                                   62.5 
    SYSTEM                               98.6067708 
    EXAMPLE                               68.25 
    PERFSTAT                             28.7625 
    
    7 rows selected. 
    
    12 . 检查一些扩展异常的对象 
    select segment_name,segment_type,tablespace_name, 
    (extents/max_extents)*100 Percent from sys.DBA_segments 
    where max_extents!=0 and (extents/max_extents)*100>=95 
    order by percent; 
    
    SQL> select segment_name,segment_type,tablespace_name, 
      2      (extents/max_extents)*100 Percent 
      3      from sys.DBA_segments 
      4      where max_extents!=0 and (extents/max_extents)*100>=95 
      5  order by percent; 
    
    no rows selected 
    
    如果有记录返回,则这些对象的扩展已经快达到它定义时的最大扩展值。对于这些对象要修改它的存储结构参数. 
    
    13  . 检查system表空间内的内容 
    select distinct(owner) from dba_tables 
    where tablespace_name='SYSTEM' and owner!='SYS' 
    and owner!='SYSTEM' 
    union 
    select distinct(owner) from dba_indexes 
    where tablespace_name='SYSTEM' 
    and owner!='SYS' and owner!='SYSTEM'; 
    SQL> select distinct(owner) from dba_tables 
      2  where tablespace_name='SYSTEM' and 
      3  owner!='SYS' and owner!='SYSTEM' 
      4  union 
      5  select distinct(owner) from dba_indexes 
      6  where tablespace_name='SYSTEM' and 
      7  owner!='SYS' and owner!='SYSTEM'; 
    
    OWNER 
    ------------------------------ 
    MDSYS 
    OLAPSYS 
    OUTLN 
    
      如果有记录返回,则表明system表空间内存在一些非system和sys用户的对象。应该进一步检查这些对象是否与我们应用相关。如果相关请把这些对象移到非System表空间,同时应该检查这些对象属主的缺省表空间值, 
    
    14. 检查对象的下一扩展与表空间的最大扩展值 
    select a.table_name,a.next_extent,a.tablespace_name 
    from all_tables a, 
    (select tablespace_name,max(bytes) as big_chunk 
    from dba_free_space group by tablespace_name) f 
    where f.tablespace_name=a.tablespace_name 
    and a.next_extent>f.big_chunk 
    union 
    select a.index_name,a.next_extent,a.tablespace_name 
    from all_indexes a, 
    (select tablespace_name,max(bytes) as big_chunk 
    from dba_free_space 
    group by tablespace_name) f 
    where f.tablespace_name=a.tablespace_name 
    and a.next_extent>f.big_chunk; 
    
    SQL> select a.table_name,a.next_extent,a.tablespace_name 
      2      from all_tables a, 
      3      (select tablespace_name,max(bytes) as big_chunk 
      4      from dba_free_space group by tablespace_name) f 
      5      where f.tablespace_name=a.tablespace_name 
      6      and a.next_extent>f.big_chunk 
      7      union 
      8      select a.index_name,a.next_extent,a.tablespace_name 
      9      from all_indexes a, 
    10      (select tablespace_name,max(bytes) as big_chunk 
    11      from dba_free_space 
    12      group by tablespace_name) f 
    13      where f.tablespace_name=a.tablespace_name 
    14      and a.next_extent>f.big_chunk; 
    
    no rows selected 
    
      如果有记录返回,则表明这些对象的下一个扩展大于该对象所属表空间的最大扩展值,需调整相应表空间的存储参数
    

      

    魔兽就是毒瘤,大家千万不要玩。
  • 相关阅读:
    github误fork后删除
    初识javascript
    struts验证框架失效
    Java基础学习1Java标识符及基本类型
    dos 命令行方式下启动和停止MySql服务
    html
    给文本框添加边框的两种方法
    银行家算法
    解决MyEclipse里Tomcat端口被占用而无法启动的情况
    Java近似圆
  • 原文地址:https://www.cnblogs.com/tracy/p/2303703.html
Copyright © 2011-2022 走看看