溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Oracle數(shù)據(jù)庫日常巡檢有哪些

發(fā)布時間:2021-11-09 16:23:55 來源:億速云 閱讀:162 作者:iii 欄目:關(guān)系型數(shù)據(jù)庫

本篇內(nèi)容介紹了“Oracle數(shù)據(jù)庫日常巡檢有哪些”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

1. 檢查數(shù)據(jù)庫基本狀況

包含:檢查Oracle實例狀態(tài),檢查Oracle服務(wù)進(jìn)程,檢查Oracle監(jiān)聽進(jìn)程,共三個部分。

1.1. 檢查Oracle實例狀態(tài)

select instance_name,host_name,startup_time,status,database_status from v$instance;

其中“STATUS”表示Oracle當(dāng)前的實例狀態(tài),必須為“OPEN”;“DATABASE_STATUS”表示Oracle當(dāng)前數(shù)據(jù)庫的狀態(tài),必須為“ACTIVE”。

1.2. 檢查Oracle在線日志狀態(tài)

select group#,status,type,member from v$logfile;

輸出結(jié)果應(yīng)該有3條以上(包含3條)記錄,“STATUS”應(yīng)該為非“INVALID”,非“DELETED”。注:“STATUS”顯示為空表示正常。

1.3. 檢查Oracle表空間的狀態(tài)

select tablespace_name,status from dba_tablespaces;

輸出結(jié)果中STATUS應(yīng)該都為ONLINE。

1.4. 檢查Oracle所有數(shù)據(jù)文件狀態(tài)

select name,status from v$datafile;

輸出結(jié)果中“STATUS”應(yīng)該都為“ONLINE”。或者:

select file_name,status from dba_data_files;

輸出結(jié)果中“STATUS”應(yīng)該都為“AVAILABLE”。

1.5. 檢查無效對象

select owner,object_name,object_type from dba_objects where status!='VALID' and owner!='SYS' and owner!='SYSTEM';

如果有記錄返回,則說明存在無效對象。若這些對象與應(yīng)用相關(guān),那么需要重新編譯生成這個對象,或者:

SELECT owner, object_name, object_type FROM dba_objects WHERE status= 'INVALID';

1.6. 檢查所有回滾段狀態(tài)

select segment_name,status from dba_rollback_segs;

輸出結(jié)果中所有回滾段的“STATUS”應(yīng)該為“ONLINE”。

回到頂部

2. 檢查Oracle相關(guān)資源的使用情況

包含:
a.檢查Oracle初始化文件中相關(guān)的參數(shù)值
b.檢查數(shù)據(jù)庫連接情況,檢查系統(tǒng)磁盤空間
c.檢查Oracle各個表空間使用情況,檢查一些擴(kuò)展異常的對象,
d.檢查system表空間內(nèi)的內(nèi)容,檢查對象的下一擴(kuò)展與表空間的最大擴(kuò)展值,總共七個部分。

2.1. 檢查Oracle初始化文件中相關(guān)參數(shù)值

select resource_name,
max_utilization,
initial_allocation, 
limit_valuefrom v$resource_limit;

若LIMIT_VALU-MAX_UTILIZATION<=5,則表明與RESOURCE_NAME相關(guān)的Oracle初始化參數(shù)需要調(diào)整??梢酝ㄟ^修改Oracle初始化參數(shù)文件$ORACLE_BASE/admin/CKDB/pfile/initORCL.ora來修改。

2.2. 檢查數(shù)據(jù)庫連接情況

查看當(dāng)前會話連接數(shù),是否屬于正常范圍。

select count(*) from v$session;select sid,serial#,username,program,machine,status from v$session;

其中:SID 會話(session)的ID號;

SERIAL# 會話的序列號,和SID一起用來唯一標(biāo)識一個會話;

USERNAME 建立該會話的用戶名;

PROGRAM 這個會話是用什么工具連接到數(shù)據(jù)庫的;

STATUS 當(dāng)前這個會話的狀態(tài),ACTIVE表示會話正在執(zhí)行某些任務(wù),INACTIVE表示當(dāng)前會話沒有執(zhí)行任何操作;

如果建立了過多的連接,會消耗數(shù)據(jù)庫的資源,同時,對一些“掛死”的連接可能需要手工進(jìn)行清理。如果DBA要手工斷開某個會話,則執(zhí)行:

(一般不建議使用這種方式去殺掉數(shù)據(jù)庫的連接,這樣有時候session不會斷開。容易引起死連接。建議通過sid查到操作系統(tǒng)的spid,使用ps –ef|grep spidno的方式確認(rèn)spid不是ORACLE的后臺進(jìn)程。使用操作系統(tǒng)的kill -9命令殺掉連接)

alter system kill session 'SID,SERIAL#';

注意:上例中SID為1到10(USERNAME列為空)的會話,是Oracle的后臺進(jìn)程,不要對這些會話進(jìn)行任何操作。

2.3. 檢查系統(tǒng)磁盤空間

如果文件系統(tǒng)的剩余空間過小或增長較快,需對其進(jìn)行確認(rèn)并刪除不用的文件以釋放空間。

[oracle@AS14 ~]$ df -h

Filesystem Size Used Avail Use% Mounted on

/dev/sda5 9.7G 3.9G 5.4G 42% /

/dev/sda1 479M 16M 438M 4% /boot

/dev/sda2 49G 19G 28G 41% /data

none 1014M 0 1014M 0% /dev/shm

2.4. 檢查表空間使用情況

Oracle數(shù)據(jù)庫日常巡檢有哪些

select f.tablespace_name,
a.total,
f.free,round((f.free / a.total) * 100) "% Free"from (select tablespace_name, sum(bytes / (1024 * 1024)) totalfrom dba_data_filesgroup by tablespace_name) a, 
(select tablespace_name, round(sum(bytes / (1024 * 1024))) freefrom dba_free_spacegroup by tablespace_name) fWHERE a.tablespace_name = f.tablespace_name(+)order by "% Free";

Oracle數(shù)據(jù)庫日常巡檢有哪些

如果空閑率%Free小于10%以上(包含10%),則注意要增加數(shù)據(jù)文件來擴(kuò)展表空間而不要是用數(shù)據(jù)文件的自動擴(kuò)展功能。請不要對表空間增加過多的數(shù)據(jù)文件,增加數(shù)據(jù)文件的原則是每個數(shù)據(jù)文件大小為2G或者4G,自動擴(kuò)展的最大限制在8G。

2.5. 檢查一些擴(kuò)展異常的對象

Oracle數(shù)據(jù)庫日常巡檢有哪些

select Segment_Name,
Segment_Type,
TableSpace_Name, 
(Extents / Max_extents) * 100 PercentFrom sys.DBA_SegmentsWhere Max_Extents != 0and (Extents / Max_extents) * 100 >= 95order By Percent;

Oracle數(shù)據(jù)庫日常巡檢有哪些

如果有記錄返回,則這些對象的擴(kuò)展已經(jīng)快達(dá)到它定義時的最大擴(kuò)展值。對于這些對象要修改它的存儲結(jié)構(gòu)參數(shù)。

2.6. 檢查system表空間內(nèi)的內(nèi)容

Oracle數(shù)據(jù)庫日常巡檢有哪些

select distinct (owner)from dba_tableswhere tablespace_name = 'SYSTEM'and owner != 'SYS'and owner != 'SYSTEM'unionselect distinct (owner)from dba_indexeswhere tablespace_name = 'SYSTEM'and owner != 'SYS'and owner != 'SYSTEM';

Oracle數(shù)據(jù)庫日常巡檢有哪些

如果記錄返回,則表明system表空間內(nèi)存在一些非system和sys用戶的對象。應(yīng)該進(jìn)一步檢查這些對象是否與我們應(yīng)用相關(guān)。如果相關(guān)請把這些對象移到非System表空間,同時應(yīng)該檢查這些對象屬主的缺省表空間值。

2.7. 檢查對象的下一擴(kuò)展與表空間的最大擴(kuò)展值

Oracle數(shù)據(jù)庫日常巡檢有哪些

select a.table_name, a.next_extent, a.tablespace_namefrom all_tables a, 
(select tablespace_name, max(bytes) as big_chunk 
from dba_free_space 
group by tablespace_name) fwhere f.tablespace_name = a.tablespace_name 
and a.next_extent > f.big_chunkunionselect a.index_name, a.next_extent, a.tablespace_namefrom all_indexes a, 
(select tablespace_name, max(bytes) as big_chunk 
from dba_free_space 
group by tablespace_name) fwhere f.tablespace_name = a.tablespace_name 
and a.next_extent > f.big_chunk;

Oracle數(shù)據(jù)庫日常巡檢有哪些

如果有記錄返回,則表明這些對象的下一個擴(kuò)展大于該對象所屬表空間的最大擴(kuò)展值,需調(diào)整相應(yīng)表空間的存儲參數(shù)。

回到頂部

3. 檢查Oracle數(shù)據(jù)庫備份結(jié)果

包含:
a.檢查數(shù)據(jù)庫備份日志信息;
b.檢查backup卷中文件產(chǎn)生的時間;
c.檢查oracle用戶的email
3.1. 檢查數(shù)據(jù)庫備份日志信息

假設(shè):備份的臨時目錄為/backup/hotbakup,我們需要檢查2009年7月22日的備份結(jié)果,則用下面的命令來檢查:

cat /backup/hotbackup/hotbackup-09-7-22.log|grep –i error

備份腳本的日志文件為hotbackup-月份-日期-年份.log,在備份的臨時目錄下面。如果文件中存在“ERROR:”,則表明備份沒有成功,存在問題需要檢查。

3.2. 檢查backup卷中文件產(chǎn)生的時間

#ls –lt /backup/hotbackup

backup卷是備份的臨時目錄,查看輸出結(jié)果中文件的日期,都應(yīng)當(dāng)是在當(dāng)天凌晨由熱備份腳本產(chǎn)生的。如果時間不對則表明熱備份腳本沒執(zhí)行成功。

3.3. 檢查oracle用戶的email

#tail –n 300 /var/mail/oracle

熱備份腳本是通過Oracle用戶的cron去執(zhí)行的。cron執(zhí)行完后操作系統(tǒng)就會發(fā)一條Email通知Oracle用戶任務(wù)已經(jīng)完成。查看Oracle email中今天凌晨部分有無ORA-,Error,F(xiàn)ailed等出錯信息,如果有則表明備份不正常。

回到頂部

4. 檢查Oracle數(shù)據(jù)庫性能

在本節(jié)主要檢查Oracle數(shù)據(jù)庫性能情況,包含:檢查數(shù)據(jù)庫的等待事件,檢查死鎖及處理,檢查cpu、I/O、內(nèi)存性能,查看是否有僵死進(jìn)程,檢查行鏈接/遷移,定期做統(tǒng)計分析,檢查緩沖區(qū)命中率,檢查共享池命中率,檢查排序區(qū),檢查日志緩沖區(qū),總共十個部分。

4.1. 檢查數(shù)據(jù)庫的等待事件

Oracle數(shù)據(jù)庫日常巡檢有哪些

set pages 80set lines 120col event for a40select sid, event, p1, p2, p3, WAIT_TIME, SECONDS_IN_WAIT  from v$session_wait where event not like 'SQL%'
   and event not like 'rdbms%';

Oracle數(shù)據(jù)庫日常巡檢有哪些

如果數(shù)據(jù)庫長時間持續(xù)出現(xiàn)大量像latch free,enqueue,buffer busy waits,db file sequential read,db file scattered read等等待事件時,需要對其進(jìn)行分析,可能存在問題的語句。

4.2. Disk Read最高的SQL語句的獲取

SELECT SQL_TEXTFROM (SELECT * FROM V$SQLAREA ORDER BY DISK_READS)WHERE ROWNUM <= 5;

4.3. 查找前十條性能差的sql

Oracle數(shù)據(jù)庫日常巡檢有哪些

SELECT *FROM (SELECT PARSING_USER_ID 
EXECUTIONS,
SORTS,
COMMAND_TYPE,
DISK_READS, 
SQL_TEXTFROM V$SQLAREAORDER BY DISK_READS DESC)WHERE ROWNUM < 10;

Oracle數(shù)據(jù)庫日常巡檢有哪些

4.4. 等待時間最多的5個系統(tǒng)等待事件的獲取

Oracle數(shù)據(jù)庫日常巡檢有哪些

SELECT *
  FROM (SELECT *
          FROM V$SYSTEM_EVENT         WHERE EVENT NOT LIKE 'SQL%'
         ORDER BY TOTAL_WAITS DESC) WHERE ROWNUM <= 5;

Oracle數(shù)據(jù)庫日常巡檢有哪些

4.5. 檢查運行很久的SQL

Oracle數(shù)據(jù)庫日常巡檢有哪些

COLUMN USERNAME FORMAT A12COLUMN OPNAME FORMAT A16COLUMN PROGRESS FORMAT A8SELECT USERNAME,
       SID,
       OPNAME,       ROUND(SOFAR * 100 / TOTALWORK, 0) || '%' AS PROGRESS,
       TIME_REMAINING,
       SQL_TEXT  FROM V$SESSION_LONGOPS, V$SQL WHERE TIME_REMAINING <> 0
   AND SQL_ADDRESS = ADDRESS   AND SQL_HASH_VALUE = HASH_VALUE;

Oracle數(shù)據(jù)庫日常巡檢有哪些

4.6. 檢查消耗CPU最高的進(jìn)程

Oracle數(shù)據(jù)庫日常巡檢有哪些

SET LINE 240SET VERIFY OFFCOLUMN SID FORMAT 999COLUMN PID FORMAT 999COLUMN S_# FORMAT 999COLUMN USERNAME FORMAT A9 HEADING "ORA USER"COLUMN PROGRAM FORMAT A29COLUMN SQL FORMAT A60COLUMN OSNAME FORMAT A9 HEADING "OS USER"SELECT P.PID PID,
       S.SID SID,
       P.SPID SPID,
       S.USERNAME USERNAME,
       S.OSUSER OSNAME,
       P.SERIAL# S_#,
       P.TERMINAL,
       P.PROGRAM PROGRAM,
       P.BACKGROUND,
       S.STATUS,       RTRIM(SUBSTR(A.SQL_TEXT, 1, 80)) SQLFROM V$PROCESS P,
       V$SESSION S,
       V$SQLAREA A WHERE P.ADDR = S.PADDR AND S.SQL_ADDRESS = A.ADDRESS(+) AND P.SPID LIKE '%&1%';

Oracle數(shù)據(jù)庫日常巡檢有哪些

4.7. 檢查碎片程度高的表

Oracle數(shù)據(jù)庫日常巡檢有哪些

SELECT segment_name table_name, COUNT(*) extents  FROM dba_segments WHERE owner NOT IN ('SYS', 'SYSTEM') GROUP BY segment_nameHAVING COUNT(*) = (SELECT MAX(COUNT(*))                     FROM dba_segments                    GROUP BY segment_name);

Oracle數(shù)據(jù)庫日常巡檢有哪些

4.8. 檢查表空間的I/O比例

Oracle數(shù)據(jù)庫日常巡檢有哪些

SELECT DF.TABLESPACE_NAME NAME,
       DF.FILE_NAME       "FILE",
       F.PHYRDS           PYR,
       F.PHYBLKRD         PBR,
       F.PHYWRTS          PYW,
       F.PHYBLKWRT        PBW  FROM V$FILESTAT F, DBA_DATA_FILES DF WHERE F.FILE# = DF.FILE_ID
 ORDER BY DF.TABLESPACE_NAME;

Oracle數(shù)據(jù)庫日常巡檢有哪些

4.9. 檢查文件系統(tǒng)的I/O比例

Oracle數(shù)據(jù)庫日常巡檢有哪些

SELECT SUBSTR(A.FILE#, 1, 2) "#",
       SUBSTR(A.NAME, 1, 30) "NAME",
       A.STATUS,
       A.BYTES,
       B.PHYRDS,
       B.PHYWRTS  FROM V$DATAFILE A, V$FILESTAT B WHERE A.FILE# = B.FILE#;

Oracle數(shù)據(jù)庫日常巡檢有哪些

4.10.檢查死鎖及處理

查詢目前鎖對象信息:

Oracle數(shù)據(jù)庫日常巡檢有哪些

select sid,
       serial#,
       username,
       SCHEMANAME,
       osuser,
       MACHINE,     
       terminal,
       PROGRAM,
       owner,       object_name,
       object_type,
       o.object_id
  from dba_objects o, v$locked_object l, v$session s where o.object_id = l.object_id
   and s.sid = l.session_id;

Oracle數(shù)據(jù)庫日常巡檢有哪些

oracle級kill掉該session:

alter system kill session '&sid,&serial#';

操作系統(tǒng)級kill掉session:

#>kill -9 pid

回到頂部

5. 檢查數(shù)據(jù)庫cpu、I/O、內(nèi)存性能

記錄數(shù)據(jù)庫的cpu使用、IO、內(nèi)存等使用情況,使用vmstat,iostat,sar,top等命令進(jìn)行信息收集并檢查這些信息,判斷資源使用情況。

5.1 CPU使用情況:

[root@sale8 ~]# top

top - 10:29:35 up 73 days, 19:54, 1 user, load average: 0.37, 0.38, 0.29

Tasks: 353 total, 2 running, 351 sleeping, 0 stopped, 0 zombie

Cpu(s): 1.2% us, 0.1% sy, 0.0% ni,98.8% id, 0.0% wa, 0.0% hi, 0.0% si

Mem: 16404472k total, 12887428k used, 3517044k free, 60796k buffers

Swap: 8385920k total, 665576k used, 7720344k free, 10358384k cached


PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

30495 oracle 15 0 8329m 866m 861m R 10 5.4 7:53.90 oracle

32501 oracle 15 0 8328m 1.7g 1.7g S 2 10.6 1:58.38 oracle

32503 oracle 15 0 8329m 1.6g 1.6g S 2 10.2 2:06.62 oracle

注意上面的藍(lán)色字體部分,此部分內(nèi)容表示系統(tǒng)剩余的cpu,當(dāng)其平均值下降至10%以下的時視為CPU使用率異常,需記錄下該數(shù)值,并將狀態(tài)記為異常。

5.2 內(nèi)存使用情況:

# free -m

total used free shared buffers cached

Mem: 2026 1958 67 0 76 1556

-/+ buffers/cache: 326 1700

Swap: 5992 92 5900

如上所示,藍(lán)色部分表示系統(tǒng)總內(nèi)存,紅色部分表示系統(tǒng)使用的內(nèi)存,黃色部分表示系統(tǒng)剩余內(nèi)存,當(dāng)剩余內(nèi)存低于總內(nèi)存的10%時視為異常。

5.3 系統(tǒng)I/O情況:

# iostat -k 1 3

Linux 2.6.9-22.ELsmp (AS14) 07/29/2009


avg-cpu: %user %nice %sys%iowait %idle

0.16 0.00 0.05 0.36 99.43


Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn

sda 3.33 13.16 50.25 94483478 360665804


avg-cpu: %user %nice %sys%iowait %idle

0.00 0.00 0.00 0.00 100.00


Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn

sda 0.00 0.00 0.00 0 0

如上所示,藍(lán)色字體部分表示磁盤讀寫情況,紅色字體部分為cpu IO等待情況。

5.4 系統(tǒng)負(fù)載情況:

#uptime

12:08:37 up 162 days, 23:33, 15 users, load average: 0.01, 0.15, 0.10

如上所示,藍(lán)體字部分表示系統(tǒng)負(fù)載,后面的3個數(shù)值如果有高于2.5的時候就表明系統(tǒng)在超負(fù)荷運轉(zhuǎn)了,并將此值記錄到巡檢表,視為異常。

5.5.查看是否有僵死進(jìn)程

select spid from v$process where addr not in (select paddr from v$session);

有些僵尸進(jìn)程有阻塞其他業(yè)務(wù)的正常運行,定期殺掉僵尸進(jìn)程。

5.6.檢查行鏈接/遷移

select table_name, num_rows, chain_cnt  From dba_tables Where owner = 'CTAIS2'
   And chain_cnt <> 0;

注:含有l(wèi)ong raw列的表有行鏈接是正常的,找到遷移行保存到chained_rows表中,如沒有該表執(zhí)行../rdbms/admin/utlchain.sql

analyze table tablename list chained rows;

可通過表chained_rows中table_name,head_rowid看出哪些行是遷移行

create table aa as select a.* from sb_zsxx a,chained_rows b where a.rowid=b.head_rowid and b.table_name ='SB_ZSXX';delete from sb_zsxx where rowid in (select head_rowid from chained_rows where table_name = 'SB_ZSXX');insert into sb_zsxx select * from chained_row where table_name = 'SB_ZSXX';

5.7 定期做統(tǒng)計分析
對于采用Oracle Cost-Based-Optimizer的系統(tǒng),需要定期對數(shù)據(jù)對象的統(tǒng)計信息進(jìn)行采集更新,使優(yōu)化器可以根據(jù)準(zhǔn)備的信息作出正確的explain plan。在以下情況更需要進(jìn)行統(tǒng)計信息的更新:
a. 應(yīng)用發(fā)生變化
b. 大規(guī)模數(shù)據(jù)遷移、歷史數(shù)據(jù)遷出、其他數(shù)據(jù)的導(dǎo)入等
c .數(shù)據(jù)量發(fā)生變化
查看表或索引的統(tǒng)計信息是否需更新,如:

Select table_name,num_rows,last_analyzed From user_tables where table_name ='DJ_NSRXX'select count(*) from DJ_NSRXX如num_rows和count(*)

如果行數(shù)相差很多,則該表需要更新統(tǒng)計信息,建議一周做一次統(tǒng)計信息收集,如:

exec sys.dbms_stats.gather_schema_stats(ownname=>'CTAIS2',cascade => TRUE,degree => 4);

5.8 檢查緩沖區(qū)命中率

Oracle數(shù)據(jù)庫日常巡檢有哪些

SELECT a.VALUE + b.VALUE logical_reads,
       c.VALUE phys_reads,       round(100 * (1 - c.value / (a.value + b.value)), 4) hit_ratio  FROM v$sysstat a, v$sysstat b, v$sysstat c WHERE a.NAME = 'db block gets'
   AND b.NAME = 'consistent gets'
   AND c.NAME = 'physical reads';

Oracle數(shù)據(jù)庫日常巡檢有哪些

如果命中率低于90%則需加大數(shù)據(jù)庫參數(shù)db_cache_size。

5.9 檢查共享池命中率

select sum(pinhits) / sum(pins) * 100 from v$librarycache;

如低于95%,則需要調(diào)整應(yīng)用程序使用綁定變量,或者調(diào)整數(shù)據(jù)庫參數(shù)shared pool的大小。

5.10 檢查排序區(qū)

 select name,value from v$sysstat where name like '%sort%';

如果disk/(memoty+row)的比例過高,則需要調(diào)整sort_area_size(workarea_size_policy=false)或pga_aggregate_target(workarea_size_policy=true)。

5.11 檢查日志緩沖區(qū)

select name,value from v$sysstat where name in ('redo entries','redo buffer allocation retries');

如果redo buffer allocation retries/redo entries超過1%,則需要增大log_buffer。

回到頂部

6. 檢查數(shù)據(jù)庫安全性

在本節(jié)主要檢查Oracle數(shù)據(jù)庫的安全性,包含:檢查系統(tǒng)安全信息,定期修改密碼,總共兩個部分。

6.1. 檢查系統(tǒng)安全日志信息

系統(tǒng)安全日志文件的目錄在/var/log下,主要檢查登錄成功或失敗的用戶日志信息。

檢查登錄成功的日志:

[root@rac2 ~]# grep -i accepted /var/log/secure

Jan 8 08:44:43 rac2 sshd[29559]: Accepted password for root from ::ffff:10.10.10.6 port 1119 ssh3……

檢查登錄失敗的日志:

[root@rac2 ~]# grep -i inval /var/log/secure &&grep -i failed /var/log/secure

Jan 9 10:30:44 rac2 sshd[3071]: Invalid user ydbuser from ::ffff:192.168.3.5

Jan 9 10:30:56 rac2 sshd[3071]: Failed password for invalid user ydbuser from ::ffff:192.168.3.5 port 36005 ssh3

Jan 9 10:30:56 rac2 sshd[3071]: Failed password for invalid user ydbuser from ::ffff:192.168.3.5 port 36005 ssh3

Jan 10 22:44:38 rac2 sshd[21611]: Failed password for root from ::ffff:10.10.10.6 port 1723 ssh3

在出現(xiàn)的日志信息中沒有錯誤(Invalid、refused)提示,如果沒有(Invalid、refused)視為系統(tǒng)正常,出現(xiàn)錯誤提示,應(yīng)作出系統(tǒng)告警通知。

6.2. 檢查用戶修改密碼

在數(shù)據(jù)庫系統(tǒng)上往往存在很多的用戶,如:第三方數(shù)據(jù)庫監(jiān)控系統(tǒng),初始安裝數(shù)據(jù)庫時的演示用戶,管理員用戶等等,這些用戶的密碼往往是寫定的,被很多人知道,會被別有用心的人利用來攻擊系統(tǒng)甚至進(jìn)行修改數(shù)據(jù)。需要修改密碼的用戶包括:
數(shù)據(jù)庫管理員用戶SYS,SYSTEM;其他用戶。
登陸系統(tǒng)后,提示符下輸入cat /etc/passwd,在列出來的用戶中查看是否存在已經(jīng)不再使用的或是陌生的帳號。若存在,則記錄為異常。

修改密碼方法:

alter user USER_NAME identified by PASSWORD;

回到頂部

7. 其他檢查

在本節(jié)主要檢查當(dāng)前crontab任務(wù)是否正常,檢查Oracle Job是否有失敗等共六個部分。

7.1 檢查當(dāng)前crontab任務(wù)是否正常

[oracle@AS14 ~]$ crontab -l

7.2 Oracle Job是否有失敗

select job,what,last_date,next_date,failures,broken from dba_jobs Where schema_user='CAIKE';

如有問題建議重建job,如:

exec sys.dbms_job.remove(1);commit;exec sys.dbms_job.isubmit(1,'REFRESH_ALL_SNAPSHOT;',SYSDATE+1/1440,'SYSDATE+4/1440');commit;

7.3. 監(jiān)控數(shù)據(jù)量的增長情況

Oracle數(shù)據(jù)庫日常巡檢有哪些

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;

Oracle數(shù)據(jù)庫日常巡檢有哪些

根據(jù)本周每天的檢查情況找到空間擴(kuò)展很快的數(shù)據(jù)庫對象,并采取相應(yīng)的措施:

--刪除歷史數(shù)據(jù)
移動規(guī)定數(shù)據(jù)庫中至少保留6個月的歷史數(shù)據(jù),所以以前的歷史數(shù)據(jù)可以考慮備份然后進(jìn)行清除以便釋放其所占的資源空間。

---擴(kuò)表空間

alter tablespace <tablespace_name> add datafile ‘<file>’ size <size> autoextend off;

注意:在數(shù)據(jù)庫結(jié)構(gòu)發(fā)生變化時,如增加了表空間,增加了數(shù)據(jù)文件或重做日志文件這些操作,都會造成Oracle數(shù)據(jù)庫控制文件的變化,DBA應(yīng)及進(jìn)行控制文件的備份,備份方法是:

執(zhí)行SQL語句:

alter database backup controlfile to '/home/backup/control.bak';

或:

alter database backup controlfile to trace;

這樣,會在USER_DUMP_DEST(初始化參數(shù)文件中指定)目錄下生成創(chuàng)建控制文件的SQL命令。

7.4. 檢查失效的索引

select index_name, table_name, tablespace_name, status  From dba_indexes Where owner = 'CTAIS2'
   And status <> 'VALID';

注:分區(qū)表上的索引status為N/A是正常的,如有失效索引則對該索引做rebuild,如:

alter index INDEX_NAME rebuild tablespace TABLESPACE_NAME;

7.5. 檢查不起作用的約束

SELECT owner, constraint_name, table_name, constraint_type, status  FROM dba_constraints WHERE status = 'DISABLE'
   and constraint_type = 'P';

如有失效約束則啟用,如:

alter Table TABLE_NAME Enable Constraints CONSTRAINT_NAME;

7.6. 檢查無效的trigger

SELECT owner, trigger_name, table_name, status FROM dba_triggers WHERE status = 'DISABLED';

如有失效觸發(fā)器則啟用,如:

alter Trigger TRIGGER_NAME Enable;

“Oracle數(shù)據(jù)庫日常巡檢有哪些”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI