你知道 DBA 工作中都要做的巡检有哪些吗?

来源:这里教程网 时间:2026-03-01 17:57:24 作者:

作者 | JiekeXu

来源 | JiekeXu之路(ID: JiekeXu_IT)

转载请联系授权 | (微信ID:xxq1426321293)

大家好,我是 JiekeXu,很高兴和大家又见面了,今天分享下 Oracle DBA 工作中都需要做的数据库巡检有哪些?本文首发于微信公众号【JiekeXu之路】,欢迎点击上方蓝字关注我吧!

最近有很多小伙伴们都在陆陆续续的上班了,结束了远程办公时刻,不能浑水摸鱼了,那么我也不例外,下周开始现场轮班了,首先要做的就是检查数据库的信息,填写一张关于数据库信息的巡检表,下面我们就一起来捋一捋,Oracle DBA 工作中都需要做的数据库巡检有哪些?

一、查看有几个实例:

ps -ef|grep smon

oracle    9069 29581  0 11:02 pts/0    00:00:00 grep smon
oracle   27814     1  0 Mar30 ?        00:01:41 ora_smon_orcl2
root     28394     1  1  2019 ?        5-01:48:28 /app/product/11.2.0/grid/bin/osysmond.bin
grid     28870     1  0  2019 ?        00:13:38 asm_smon_+ASM2
oracle   32266     1  0  2019 ?        00:15:40 ora_smon_PROD3

二、查看数据库状态

su - grid cs-testr2:/home/grid$crsctl status res -t --------------------------------------------------------------------------------NAME           TARGET  STATE        SERVER                   STATE_DETAILS       --------------------------------------------------------------------------------Local Resources--------------------------------------------------------------------------------ora.ARCH.dg               ONLINE  ONLINE       cs-testr1                                              ONLINE  ONLINE       cs-testr2                               ora.DATA.dg               ONLINE  ONLINE       cs-testr1                                              ONLINE  ONLINE       cs-testr2                               ora.LISTENER.lsnr               ONLINE  ONLINE       cs-testr1                                              ONLINE  ONLINE       cs-testr2                               ora.OCR.dg               ONLINE  ONLINE       cs-testr1                                              ONLINE  ONLINE       cs-testr2                               ora.asm               ONLINE  ONLINE       cs-testr1           Started                            ONLINE  ONLINE       cs-testr2           Started             ora.gsd               OFFLINE OFFLINE      cs-testr1                                              OFFLINE OFFLINE      cs-testr2                               ora.net1.network               ONLINE  ONLINE       cs-testr1                                              ONLINE  ONLINE       cs-testr2                               ora.ons               ONLINE  ONLINE       cs-testr1                                              ONLINE  ONLINE       cs-testr2                               ora.registry.acfs               ONLINE  ONLINE       cs-testr1                                              ONLINE  ONLINE       cs-testr2                               --------------------------------------------------------------------------------Cluster Resources--------------------------------------------------------------------------------ora.LISTENER_SCAN1.lsnr      1        ONLINE  ONLINE       cs-testr1                               ora.cs-testr1.vip      1        ONLINE  ONLINE       cs-testr1                               ora.cs-testr2.vip      1        ONLINE  ONLINE       cs-testr2                               ora.cvu      1        ONLINE  ONLINE       cs-testr1                               ora.oc4j      1        ONLINE  ONLINE       cs-testr1                               ora.orcl.db      1        ONLINE  ONLINE       cs-testr1           Open                      2        ONLINE  ONLINE       cs-testr2           Open                ora.scan1.vip      1        ONLINE  ONLINE       cs-testr1

 

#检查监听状态
cs-testr2:/home/grid$ lsnrctl status 

LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 10-APR-2020 18:13:27

Copyright (c) 1991, 2013, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.4.0 - Production
Start Date                23-JUL-2019 10:26:56
Uptime                    262 days 7 hr. 46 min. 31 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /app/product/11.2.0/grid/network/admin/listener.ora
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.1XX.XX.XX)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.1XX.XX.XX)(PORT=1521)))
Services Summary...
Service "+ASM" has 1 instance(s).
  Instance "+ASM2", status READY, has 1 handler(s) for this service...
Service "ORCLXDB.us.exampl.com" has 1 instance(s).
  Instance "PROD3", status READY, has 1 handler(s) for this service...
Service "PROD3.us.exampl.com" has 1 instance(s).
  Instance "PROD3", status READY, has 1 handler(s) for this service...
Service "orcl" has 1 instance(s).
  Instance "orcl2", status READY, has 1 handler(s) for this service...
Service "orclXDB" has 1 instance(s).
  Instance "orcl2", status READY, has 1 handler(s) for this service...
The command completed successfully

三、检查用户连接

cs-testr2:/home/grid$ps -ef | grep LOCAL=NO | grep -v grep | awk '{print $2}' | wc -l  45

四、检查后台日志

#数据库alerttail -500f  $ORACLE_BASE/diag/rdbms/orcl/orcl2/trace/alert_orcl2.log |more#ASM 日志tail -500f  $ORACLE_BASE/diag/asm/+asm/+ASM2/trace/alert_+ASM2.log#集群日志tail -200f  $ORACLE_HOME/log/cs-testr2/alertcs-testr2.log#监听日志tail -200f $ORACLE_HOME/network/log/listener.log

五、检查 sudo 配置;

sudo -l
Matching Defaults entries for oracle on this host:
    runaspw


User oracle may run the following commands on this host:
    (root) NOPASSWD: /bin/kill, /usr/bin/printenv, /app/oraInventory/orainstRoot.sh, /app/product/11.2.0/db/root.sh, /app/product/11.2.0/db/OPatch/opatch

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

以上完成了基本巡检,下面需要填写一些固定信息

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

六、完善表格中的所有信息列(更新+补充):

-------------以 SUSE 系统为例:------------

#查看CPU信息(型号)

cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c4  AMD Opteron(TM) Processor 6234

#检查操作系统版本

#查看物理 CPU 个数:

cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l2

# 查看逻辑 CPU 的个数

cat /proc/cpuinfo| grep "processor"| wc -l4

#查看内存:

free -g             total       used       free     shared    buffers     cachedMem:             7          7          0          0          0          5-/+ buffers/cache:          1          5Swap:            7          0          7

--------------------AIX 系统----------------

#主机型号:
uname -um
00F8F7964C00 IBM,0206F796T

#主机序列号:
uname -uM
IBM,9179-MHD IBM,0206F796T

#查看CPU信息(型号)

prtconf|more (查看Processor Type 行)
System Model: IBM,9179-MHD
Machine Serial Number: 06F796T
Processor Type: PowerPC_POWER7
Processor Implementation Mode: POWER 7
Processor Version: PV_7_Compat
Number Of Processors: 64
Processor Clock Speed: 3724 MHz
CPU Type: 64-bit
Kernel Type: 64-bit
LPAR Info: 3 KHYXDB1
Memory Size: 311296 MB
Good Memory Size: 311296 MB
Platform Firmware level: AM760_068
Firmware Version: IBM,AM760_068
Console Login: enable
Auto Restart: true
Full Core: false


--当然也可以过滤下:
prtconf|grep 'Processor Type'
Processor Type: PowerPC_POWER7

#查看物理CPU个数:

prtconf|grep ProcessorsNumber Of Processors: 64

#逻辑CPU:

pmcycles -m | wc -l256

#查看内存:

prtconf|grep MemoryMemory Size: 311296 MBGood Memory Size: 311296 MB+ mem0                                                                             Memory

--------------HPUX:命令输出信息省略-------------

#查看主机型号 
machinfo
(Model)
#主机序列号:
machinfo
(查看Platform info:下的Machine serial number)
#查看CPU信息(型号)
machinfo

#查看物理CPU个数(HP只有物理C):
machinfo
(查看CPU info下的24 logical processors,24即为cpu个数)
#内存:
machinfo

#查看主机名:
hostname

#查看 ip 地址映射:
cat /etc/hosts
#查看端口号:
lsnrctl status
LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 10-APR-2020 14:23:20


Copyright (c) 1991, 2013, Oracle.  All rights reserved.

Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.4.0 - Production
Start Date                23-JUL-2019 10:26:56
Uptime                    262 days 3 hr. 56 min. 23 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /app/product/11.2.0/grid/network/admin/listener.ora
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.1XX.XX.XX)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.1XX.XX.XX)(PORT=1521)))
Services Summary...
Service "+ASM" has 1 instance(s).
  Instance "+ASM2", status READY, has 1 handler(s) for this service...
Service "ORCLXDB.us.exampl.com" has 1 instance(s).
  Instance "PROD3", status READY, has 1 handler(s) for this service...
Service "PROD3.us.exampl.com" has 1 instance(s).
  Instance "PROD3", status READY, has 1 handler(s) for this service...
Service "orcl" has 1 instance(s).
  Instance "orcl2", status READY, has 1 handler(s) for this service...
Service "orclXDB" has 1 instance(s).
  Instance "orcl2", status READY, has 1 handler(s) for this service...

-----------------数据库实例级别检查------------------

su - oraclesqlplus / as sysdba

#查看实例名,数据库名:

show parameter name
SYS@orcl2> show parameter name

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
cell_offloadgroup_name               string
db_file_name_convert                 string
db_name                              string      orcl
db_unique_name                       string      orcl
global_names                         boolean     FALSE
instance_name                        string      orcl2
lock_name_space                      string
log_file_name_convert                string
processor_group_name                 string
service_names                        string      orcl

#查看字符集:

select userenv('language'from dual;

SYS@orcl2> select userenv('language') from dual;

USERENV('LANGUAGE')
----------------------------------------------------
AMERICAN_AMERICA.AL32UTF8

#查看连接数:

show parameter processes

SYS@orcl2> show parameter processes

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes                      integer     1
db_writer_processes                  integer     1
gcs_server_processes                 integer     2
global_txn_processes                 integer     1
job_queue_processes                  integer     15
log_archive_max_processes            integer     4
processes                            integer     2000

#查看在线日志组的大小:

set linesize 250
COLUMN groupno                  FORMAT a6                 HEADING 'Group'   
COLUMN thread                     FORMAT a6                 HEADING 'Thread'   
COLUMN member                  FORMAT a50                HEADING 'Member'         
COLUMN redo_file_type         FORMAT a10                HEADING 'Redo Type'      
COLUMN group_status           FORMAT a12                HEADING 'Group Status'
COLUMN member_status       FORMAT a15                HEADING 'Member Status'     
COLUMN bytes                       FORMAT 999,999            HEADING 'Size(M)'        
COLUMN archived                  FORMAT a10                HEADING 'Archived'
BREAK ON groupno
SELECT to_char(f.group#)  groupno, to_char(l.thread#) thread, f.member member, f.type  redo_file_type, l.status group_status, f.status member_status, l.bytes/1024/1024 bytes, l.archived archived FROM v$logfile f, v$log l WHERE f.group# = l.group# ORDER BY f.group#, f.member;

Group  Thread Member                                             Redo Type  Group Status Member Status    Size(M) Archived
------ ------ -------------------------------------------------- ---------- ------------ --------------- -------- ----------
1      1      +DATA/orcl/onlinelog/group_1.261.1014371369        ONLINE     INACTIVE                          512 YES
2      1      +DATA/orcl/onlinelog/group_2.262.1014371373        ONLINE     CURRENT                           512 NO
3      2      +DATA/orcl/onlinelog/group_3.265.1014371591        ONLINE     CURRENT                           512 NO
4      2      +DATA/orcl/onlinelog/group_4.266.1014371593        ONLINE     INACTIVE                          512 YES

【需要重点记录归档是否开启,是否有备份】

SYS@orcl2> archive log listDatabase log mode              Archive ModeAutomatic archival             EnabledArchive destination            +ARCHOldest online log sequence     66Next log sequence to archive   67Current log sequence           67

#归档目录大小根据情况查:

#若ASM:select group_number,name,total_mb/1024 total_gb,free_mb/1024 free_gb,TYPE from v$asm_diskgroup;GROUP_NUMBER NAME                             TOTAL_GB    FREE_GB TYPE------------ ------------------------------ ---------- ---------- ------           1 ARCH                                   50 4.63964844 EXTERN           2 DATA                                  100         92 EXTERN           3 OCR                                     3 2.09570313 NORMAL           #若文件系统:df -h/df -g/bdfSYS@orcl2> ! df -h Filesystem      Size  Used Avail Use% Mounted on/dev/sda3       189G   60G  119G  34% /udev            3.9G  132K  3.9G   1% /devtmpfs           3.9G  492M  3.4G  13% /dev/shm/dev/sda1      1011M   62M  899M   7% /boot

#检查备份情况

【ADG 备库需要部署删除归档的脚本】:

①查询是否有备份:
col START_TIME for a30
col END_TIME for a30
col status for a10
select SESSION_KEY,INPUT_TYPE,STATUS,to_char(START_TIME, 'yyyy-mm-dd hh24:mi') START_TIME,to_char(END_TIME, 'yyyy-mm-dd hh24:mi') 
END_TIME,ELAPSED_SECONDS / 3600 from v$rman_backup_job_details 
where to_char(START_TIME, 'yyyy-mm-dd hh24:mi') > to_char(sysdate-12,'yyyy-mm-dd hh24:mi') order by SESSION_KEY;
SESSION_KEY INPUT_TYPE    STATUS     START_TIME                     END_TIME                       ELAPSED_SECONDS/3600
----------- ------------- ---------- ------------------------------ ------------------------------ --------------------
      63833 ARCHIVELOG    COMPLETED  2020-03-29 19:13               2020-03-29 19:31                         .289444444
      63841 DB INCR       COMPLETED  2020-03-30 00:20               2020-03-30 03:01                         2.67833333
      63843 ARCHIVELOG    COMPLETED  2020-03-30 00:55               2020-03-30 01:25                         .506388889
      63851 ARCHIVELOG    COMPLETED  2020-03-30 07:30               2020-03-30 08:06                         .599444444
      63859 ARCHIVELOG    COMPLETED  2020-03-30 13:55               2020-03-30 14:08                         .220555556
      63867 ARCHIVELOG    COMPLETED  2020-03-30 19:12               2020-03-30 19:26                         .238888889
      63875 DB INCR       COMPLETED  2020-03-31 00:01               2020-03-31 02:42                         2.68805556
      63877 ARCHIVELOG    COMPLETED  2020-03-31 00:28               2020-03-31 01:06                         .636666667
      63885 ARCHIVELOG    COMPLETED  2020-03-31 06:48               2020-03-31 07:26                               .635
      63893 ARCHIVELOG    COMPLETED  2020-03-31 12:13               2020-03-31 12:31                         .302222222
      63901 ARCHIVELOG    COMPLETED  2020-03-31 19:30               2020-03-31 19:44                         .234166667
      63909 DB INCR       COMPLETED  2020-04-01 00:26               2020-04-01 02:38                         2.19027778
      63911 ARCHIVELOG    COMPLETED  2020-04-01 00:31               2020-04-01 00:39                              .1475
      63919 ARCHIVELOG    COMPLETED  2020-04-01 06:29               2020-04-01 07:08                         .648611111
      63927 ARCHIVELOG    COMPLETED  2020-04-01 12:36               2020-04-01 12:48                              .2025

SQL> col END_TIME for a20 
SQL> select input_bytes_display,start_time,end_time,status,input_type,ELAPSED_SECONDS from V$RMAN_BACKUP_JOB_DETAILS  where input_type ='DB INCR' order by start_time;

INPUT_BYTES_DISPLAY  START_TIME           END_TIME             STATUS     INPUT_TYPE    ELAPSED_SECONDS
-------------------- -------------------- -------------------- ---------- ------------- ---------------
    1.61T            04-FEB-20            05-FEB-20            COMPLETED  DB INCR                  5572
    2.10T            05-FEB-20            06-FEB-20            COMPLETED  DB INCR                  6619
    2.30T            06-FEB-20            07-FEB-20            COMPLETED  DB INCR                  9305
    2.18T            08-FEB-20            08-FEB-20            COMPLETED  DB INCR                  7596
    2.39T            09-FEB-20            09-FEB-20            COMPLETED  DB INCR                 11599
    2.26T            09-FEB-20            10-FEB-20            COMPLETED  DB INCR                  7862
   28.11T            10-FEB-20            11-FEB-20            COMPLETED  DB INCR                 89220
    1.63T            12-FEB-20            12-FEB-20            COMPLETED  DB INCR                  7650
    2.53T            12-FEB-20            13-FEB-20            COMPLETED  DB INCR                  8945
    2.54T            14-FEB-20            14-FEB-20            COMPLETED  DB INCR                  7906
#若数据库有备库,查看备库是否正常,若异常及时恢复;

①查看有没有备库:

SQL> show parameter log_archive_dest_2


NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_2                   string      SERVICE=xxyx3  VALID_FOR=(ON
                                                 LINE_LOGFILES,PRIMARY_ROLE) DB
                                                 _UNIQUE_NAME=xxyx3

②查看备库同步情况,备库查询:
set linesize 150;
set pagesize 20;
column name format a13;
column value format a20;
column unit format a30;
column TIME_COMPUTED format a30;
select name,value,unit,time_computed from v$dataguard_stats where name in ('transport lag','apply lag');

#查看数据库版本:

set line 150   col ACTION_TIME for a30    col ACTION for a8    col NAMESPACE for a8    col VERSION for a10    col BUNDLE_SERIES for a5    col COMMENTS for a20    select * from dba_registry_history;ACTION_TIME                    ACTION   NAMESPAC VERSION            ID BUNDL COMMENTS------------------------------ -------- -------- ---------- ---------- ----- --------------------17-JUL-14 05.30.00.525281 PM   APPLY    SERVER   11.2.0.3            9 PSU   PSU 11.2.0.3.9

#查看数据库补丁版本:

PS:这项忘记了,截个图吧。

su -grid$ORACLE_HOME/OPatch/opatch lsinventory

#安装日期:

select NAME,CREATED from gv$database;
SQL> select NAME,CREATED from gv$database;

NAME          CREATED
------------- ------------------
XXYX        17-JUL-14
XXYX        17-JUL-14

#表空间使用情况(超过 80% 需扩容,磁盘使用超过 85% 需要加盘)

SELECT a.tablespace_name,round(total/1024/1024/1024) "Total g",round(free/1024/1024/1024) "Free g",ROUND((total-free)/total,4)*100 "USED%"FROM (SELECT tablespace_name,SUM(bytes) free FROMDBA_FREE_SPACEGROUP BY tablespace_name ) a,(SELECT tablespace_name,SUM(bytes) total FROM DBA_DATA_FILESGROUP BY tablespace_name) bWHERE a.tablespace_name=b.tablespace_nameORDER BY 4;TABLESPACE_NAME                   Total g     Free g      USED%------------------------------ ---------- ---------- ----------UNDOTBS2                                2          2        .38USERS                                   0          0       2.63UNDOTBS1                                0          0      18.42SYSAUX                                  3          1      56.53SYSTEM                                  1          0      99.45

#磁盘使用情况:

select group_number,name,total_mb/1024 total_gb,free_mb/1024 free_gb,TYPE from v$asm_diskgroup;GROUP_NUMBER NAME                             TOTAL_GB    FREE_GB TYPE------------ ------------------------------ ---------- ---------- ------           1 ARCH                                   50 4.63964844 EXTERN           2 DATA                                  100         92 EXTERN           3 OCR                                     3 2.09570313 NORMAL

#数据库表空间大小:

SELECT round(SUM(bytes / (1024*1024*1024)), 0) "ts_size g" 
FROM dba_tablespaces t, dba_data_files d 
WHERE t.tablespace_name = d.tablespace_name;


SYS@orcl2> SELECT round(SUM(bytes / (1024*1024*1024)), 0) "ts_size g" 
  2  FROM dba_tablespaces t, dba_data_files d 
  3  WHERE t.tablespace_name = d.tablespace_name;

 ts_size g
----------
         6

#数据库表空间已使用大小(GB)(数据量):

select sum(bytes)/1024/1024 mb from dba_segments;SYS@orcl2> select sum(bytes)/1024/1024 mb from dba_segments;        MB----------  2712.375

好了,到这里就算完事了,可以休息了。写作不易,此文如果对你有帮助,请支持点“在看”与转发,你的支持便是我最大的动力,让我们一起努力做更好的自己!

全国计算机等级考试二级 Python 软件安装指南

Oracle 11GR2 RAC 最新补丁 190416 安装指导

你该知道的 Oracle 认证那些事儿(送 OCP 题库)

三万字打造 91 道 MySQL 面试题【建议收藏】

Oracle 软件包及补丁包免费下载及简单说明

Oracle 12C 最新补丁下载与安装操作指北

Oracle OCP考试经验总结与心得体会

Oracle 12CR2 安装配置与基础学习

Windows 环境下安装 Oracle 19C

点亮在看,你最好看!

相关推荐