DBA的日常工作

Davis_itpub發表於2018-06-27

一、活動狀態檢查

透過查詢基本檢視,確認資料庫和例項處於正常執行狀態,可以對外提供資料服務。


1.1例項狀態


SELECT instance_name,status FROM v$instance;

查詢返回例項名稱、狀態,正常狀態應為Open。


1.2會話資訊


SELECT

SESSIONS_CURRENT,SESSIONS_HIGHWATER FROM v$license;

輔助查詢,例項當前會話數和啟動最高連線會話數量。


SELECT inst_id,username,COUNT(*)

FROM gv$session GROUP BYinst_id,username;

查詢資料庫連線數以例項和使用者分組。



1.3引數檢查


SELECT value FROM v$parameter

WHERE name='open_cursors';

查詢給定引數的設定值,示例引數預設值為300,通常中等規模資料庫推薦設定為1000。


1.4引數修改


ALTER SYSTEM SET undo_retention=3600 COMMENT='default 900' SID='*' SCOPE=both;

修改給定的初始化引數,RAC環境需要注意SID引數。


參考:



1.5隱含引數


ALTER SYSTEM SET "_optimizer_use_feedback"=FALSE SCOPE=spfile;

為了解決特殊問題,有時需要設定以下劃線開頭的隱含引數。示例關閉了11.2版本中引入的Cardinality Feedback - 基數反饋特性。



1.6例項異常


當連線資料庫例項出現緩慢、掛起等現象,需要進行診斷和分析,甚至可能需要重新啟動資料庫例項。


1.6.1資訊採集

SQL>sqlplus -prelim / as sysdba

SQL>oradebug setmypid

SQL>oradebug unlimit

SQL>oradebug hanganalyze 3

SQL>oradebug dump systemstate 266

<間隔一定時間,如20秒,執行下一次資料取樣. >

SQL>oradebug hanganalyze 3

SQL>oradebug dump systemstate 266

示範命令,透過採集系統的Hang資訊、系統狀態資訊等,可以分析系統掛起的原因,間隔取樣,可以用於對比變化,輔助分析。



1.6.2 跟蹤

SQL>alter session set events '10046 trace name context forever,level 12';

SQL>shutdown immedaite;

SQL>startup mount;

SQL>alter session set events '10046 trace name context forever,level 12';

SQL>alter database open;

如果在資料庫關閉、啟動時遇到阻塞、掛起等,可以透過示範命令進行跟蹤,獲取跟蹤檔案進行分析。


1.6.3 安全停庫

SQL>alter system checkpoint;

SQL>alter system archive log current;

SQL>shutdown immediate;

如果資料庫出現異常需要重新啟動,可以透過示範命令執行檢查點、歸檔命令,然後嘗試以立即方式關閉資料庫。


1.6.4 強制停庫

SQL>shutdown abort;

SQL>startup nomount;

SQL>alter database mount;

SQL>alter database open;

如果立即方式不能順利關閉資料庫,強制的關閉方式為abort。示範命令可以透過分步驟的方式執行資料庫啟動。



1.7連線異常


當連線資料庫出現異常,需要檢測包括網路連通性,監聽器狀態等資訊。

1.7.1連通性

tnsping tns_name

在安裝具有Oracle客戶端的環境,可以透過tnsping工具測試配置的服務名稱,觀察網路是否連通以及響應時間。



1.7.2監聽器

lsnrctl status LISTENER

lsnrctl status LISTENER_SCAN1

lsnrctl service

在資料庫伺服器上,可以透過lsnrctl工具檢查監聽狀態和服務資訊,具體的監聽服務名稱可以在最後定義修改。


1.7.3監聽日誌檢查

adrci>showalert

在伺服器上,可以透過adrci工具,顯示各類告警檔案,檢查監聽器日誌,可以診斷監聽問題。



二、日誌資訊檢查

日誌狀態檢查檢查資料庫各類日誌資訊,確認資料庫例項、叢集等是否出現錯誤、告警,如存在問題,則需要進一步分析和應對。



2.1告警日誌


$ORACLE_BASE/diag/rdbms//$ORACLE_SID/

trace/alert_$ORACLE_SID.log

SQL>show parameter background_dump_dest

根據示例找到告警日誌,檢查例項是否存在 ORA- 錯誤提示等。


2.2叢集日誌


$GRID_HOME/log//alert.log

$GRID_HOME/log//(crsd、cssd、evmd、ohasd)/

在相應路徑找到RAC叢集日誌,檢查是否存在錯誤提示資訊等。


2.3ASM日誌


$GRID_HOME/diag/asm/+asm//

trace/alert_.log

在相應路徑找到ASM日誌,檢查是否存在錯誤提示資訊等。

2.4Trace檔案


SQL>SELECT value FROM v$diag_info WHERE name='Default Trace File';

SQL>show parameter user_dump_dest

獲取會話產生或全域性轉儲位置,在診斷時需檢查最近日期檔案內容。

2.5叢集狀態


$crsctl status resource -t

確保資源狀態顯示線上。

2.6 errorstack分析


當遇到 ORA- 錯誤,而資料庫的輸出資訊不足時,可以採用errorstack進行跟蹤,採集更詳細的轉儲資訊。

SQL> alter system set events='600 trace name

errorstack forever, level 10';

SQL>alter system set events='600 trace name

errorstack off';

示例顯示了對ORA-600錯誤設定跟蹤,並關閉。




三、重做日誌維護

Oracle REDO日誌是資料庫的核心元件,檢查其狀態,維護其成員,監控其歸檔,稽核其效能,是DBA的重要工作。


3.1REDO組


SELECT group#,sequence#,archived,status FROM v$log;

查詢日誌組號、序號,是否歸檔完成和狀態資訊,如多組日誌顯示ACTIVE狀態,則可能說明資料庫存在IO方面的效能問題。


3.2REDO成員


SELECT group#,member FROM v$logfile;

檢視日誌組和成員資訊。

3.3增加日誌組或成員


SQL>ALTER DATABASE ADD LOGFILE GROUP 10

('/oracle/dbs/log1c.rdo','/oracle/dbs/log2c.rdo') SIZE 500M;

SQL>ALTER DATABASE ADD LOGFILE MEMBER

'/oracle/dbs/log3c.rdo'TO GROUP 10;

在日誌切換頻繁時,可能需要增加日誌組或者加大日誌大小。


3.4切換日誌


SQL>ALTER SYSTEM SWITCH LOGFILE;

切換日誌組,開始寫入下一個日誌組。


3.5執行歸檔


SQL>ALTER SYSTEM ARCHIVE LOG CURRENT;

對當前日誌組執行歸檔,切換到下一個日誌組,

在RAC會對所有例項執行歸檔,Thread引數指定歸檔例項。


3.6刪除日誌組或成員


SQL>ALTER DATABASE DROP LOGFILE GROUP 10;

SQL>ALTER DATABASE DROP LOGFILE MEMBER '/oracle/dbs/redo03.log';

刪除指定日誌組或日誌成員,注意只能對INACTIVE狀態的日誌執行刪除操作。


3.7歸檔檢查


SQL>archive log list;

檢查資料庫是否處於歸檔模式。


3.8歸檔狀態變更


SQL>alter database archivelog | noarchivelog;

示例步驟在MOUNT狀態改變歸檔模式,注意啟動歸檔模式之後

務必制訂備份歸檔的日常策略,防止磁碟空間被耗盡。


3.9調整歸檔路徑


SQL>alter system set log_archive_dest_2='location=&path' sid='&sid';

如果資料庫因歸檔耗盡空間,可以指定另外的歸檔路徑,以儘快歸檔日誌,恢復資料庫執行。


參考:



四、空間資訊檢查

確保資料儲存空間可用,定期檢查表空間餘量,進行表空間和檔案維護。


4.1 空間使用查詢


SQL> SELECT * FROM sys.sm$ts_used;
檢視資料庫表空間的使用資訊。

SQL> SELECT * FROM sys.sm$ts_free;
檢視資料庫表空間的剩餘空間。


4.2 檔案資訊


SELECT tablespace_name,file_name
FROM dba_data_files;

檢視資料庫表空間的資料檔案資訊。


4.3 檔案維護


alter database datafile '&path' resize 900M;

alter tablespace &tbs_name add datafile '&path' size 900M;

對資料庫的表空間容量進行擴容。


五、鎖/閂資訊檢查

Lock/Latch是資料庫控制併發的核心手段,檢查相關資訊可以監控資料庫的事務和執行狀況。


5.1鎖資訊


SQL>SELECT sid, type, lmode, ctime, block

FROMv$lock WHERE type not in ('MR','AE');

檢視鎖會話ID,型別,持有時間等,

注意如果block >1,可能意味著阻塞了其他會話。


5.2鎖故障排查


在資料庫出現鎖競爭和阻塞時,需要排查和處理鎖定,必要時透過Kill阻塞程式消除鎖定。


5.2.1查詢阻塞會話

SQL>SELECT sid,sql_id,status,blocking_session

FROMv$session WHERE sid in(SELECT session_id FROM v$locked_object);

查詢當前鎖事物中阻塞會話與被阻塞會話的sid,sql_id和狀態資訊


5.2.2阻塞SQL文字

SQL> SELECT sql_id,sql_text FROMv$sqltext

WHERE sql_id='&sql_id' ORDER BYpiece;

透過sql_id查詢得到SQL文字,例如透過sql_id查詢出阻塞的SQL語句。


5.2.3鎖阻塞物件資訊

SQL>SELECT owner,object_name,object_type FROM dba_objects

WHEREobject_id in (SELECT object_id FROM v$locked_object);

透過sid查詢阻塞物件的詳細資訊如物件名稱,所屬使用者等


5.2.4殺阻塞會話

SQL>altersystem kill session 'sid,serial#';

在Oracle例項內殺死阻塞的會話程式,其中sid,serial# 為中止會話對應資訊,來自v$session。


5.2.5殺系統程式

SQL>SELECTpro.spid,pro.program

FROMv$session ses,v$process pro

WHEREses.sid=&sid and ses.paddr=pro.addr;

#kill -9 spid

有時對於活動程式,在系統層面中止更為快速安全,示例找到系統程式號,然後kill中止。

注意:無論何時,需要認真分析,並且避免誤殺重要後臺程式。


5.3閂檢查


SELECTname,gets,misses,immediate_gets,spin_gets

FROMv$latch ORDER BY 2;

檢查資料庫閂的使用情況,misses、SPIN_GETS統計高的,需要關注。


5.3.1 閂使用檢查

SQL>SELECT addr,gets FROM v$latch_children

WHEREname='cache buffers chains';

SQL>SELECT hladdr,file#,dbablk FROM x$bh

WHEREhladdr in (SELECT addr FROM v$latch_children WHERE addr='&addr');

僅供學習:透過獲得Latch的地址,找到該Latch守護的X$BH中相關的Buffer。


六、等待和統計資料

Wait和Statistics資料分別代表了資料庫的等待和執行資料,觀察這些資料以瞭解資料庫的等待瓶頸和健康程度。


6.1等待事件查詢


SELECT sid,event,wait_time_micro

FROM v$session_wait ORDER BY 3;

透過等待事件和等待時間,瞭解資料庫當前連線會話的等待情況。

注意,如果會話眾多,需要限定查詢輸出行數。


6.2TOP10等待事件


SQL> SELECT * FROM (

SELECTEVENT,TOTAL_WAITS,AVERAGE_WAIT,TIME_WAITED

FROM v$system_event WHEREwait_class<>'Idle'

ORDER BY time_waited desc) WHERE rownum<=10;

檢視當前資料中TOP10等待事件資訊,需要分析和關注非空閒的顯著等待。


6.3會話統計資料


SQL>SELECT s.sid,s.statistic#,n.name,s.value

FROM v$sesstat s,v$statname n

WHERE s.statistic#=n.statistic# andn.name='redo size' and sid='&sid';

查詢資料庫會話的統計資訊資料,示例查詢了Redo的大小,SID需要提供。


6.4系統級統計資料


SQL>SELECT * FROM v$sysstat WHERE name='redo size';

查詢整個系統的統計資料,示例顯示資料庫例項啟動以來的REDO日誌生成量。


七、物件檢查

表、索引、分割槽、約束等是資料庫的核心儲存物件,其核心資訊和物件維護是DBA重要的日常工作。


7.1表資訊資料


SQL>SELECT * FROM (

SELECTowner,table_name,num_rows

FROMdba_tables ORDER BY num_rows desc nulls last )

WHERErownum < 11;

檢視錶的基本資訊資料:屬主,表名,記錄行數等。


7.2表結構查詢


SQL> set long 12000

SQL> SELECTdbms_metadata.get_ddl('TABLE','&table_name','&user')

FROM dual;

根據提供的表名和使用者(需大寫),查詢表的表結構資訊(建表語句)。


7.3表統計資訊


SQL>SELECT owner,table_name,last_analyzed FROM dba_tab_statistics

WHEREowner='&owner' and table_name='&table_name';

查詢給定使用者、給定表(需大寫),查詢最後的統計資訊分析收集時間。統計資訊影響執行計劃,當SQL執行異常時,需要重點分析統計資訊。


7.4表統計資訊收集


SQL>exec dbms_stats.gather_table_stats(ownname=>'&owner',

tabname=>'&table_name');

收集統計資訊是一項複雜任務,需要詳細設計,示例對給出使用者、表名的物件採集統計資訊。


7.5索引資訊資料


SQL>SELECT * FROM (

SELECTindex_name,table_name,num_rows,leaf_blocks,clustering_factor

FROMdba_indexes ORDER BY 5 desc nulls last)

WHERErownum<11;

查詢索引的基本資訊,示例輸出包括葉塊數和聚簇因子等,如聚簇因子過高接近行數可能代表索引效率不高。


7.6索引定義查詢


SQL>set long 12000

SQL>SELECT dbms_metadata.get_ddl('INDEX','&table_name','&user')

FROM dual;

根據提供的表名和使用者名稱,查詢索引的建立語句。


7.7索引統計資訊及收集方法


SQL>SELECT owner,index_name,last_analyzed FROM dba_ind_statistics

WHEREowner='&owner' and table_name='&table_name';

根據給定的使用者名稱,表名稱(需大寫),查詢索引資訊,尤其應關注最後分析時間。

SQL>exec dbms_stats.gather_index_stats(ownname=>'&owner',

indname=>'&index_name');

收集統計資訊是一項複雜任務,示例對給出使用者、索引名的物件採集統計資訊。


7.8分割槽物件檢查


SQL>SELECT table_name,partitioning_type,partition_count,status

FROM dba_part_tables;

SQL>SELECT table_name,partition_name,high_value

FROM dba_tab_partitions WHERE rownum<11;

檢視分割槽表的基本資訊:分割槽型別,數量,邊界值等。


7.9分割槽定義查詢


SQL> SELECTdbms_metadata.get_ddl('TABLE',

'&part_table_name','user')FROM dual;

根據給定的分割槽表名、使用者(需大寫),查詢分割槽表的結構資訊(建表語句)。


7.10分割槽統計資訊相關


SQL>SELECT owner,table_name,partition_name,last_analyzed

FROMdba_tab_statistics

WHERE owner='&owner' andtable_name='&table_name';

SQL>exec dbms_stats.gather_table_stats(ownname=>'&owner',

tabname=>'&table_name');

檢視分割槽表的統計資訊收集時間,以及對分割槽表進行手工收集統計資訊,注意分割槽表統計資訊收集非常複雜,需要深入研究做出正確策略,示例僅提供最簡單的採集命令。


7.11 約束資訊


SQL>SELECTconstraint_name,constraint_type FROM DBA_CONSTRAINTS

WHEREtable_name='&table_name';

查詢指定資料表的約束資訊,包括名稱和型別。


7.12失效物件檢查


SQL>SELECT owner,object_name,object_type,status

FROMdba_objects WHERE status <>'VALID'

ORDERBY owner,object_name;

檢查資料庫中的失效物件資訊,通常執行健康的資料庫中不應有失效的物件。


7.13閃回查詢


閃回查詢功能對於恢復DML及部分DDL誤操作非常便利,DBA必備技能。


7.13.1時間閃回

SQL>SELECT * FROM &table_name as of timestamp

to_timestamp('2015-02-0400:02:09','yyyy-mm-dd hh24:mi:ss');

閃回表資料,基於時間點的表資料閃回查詢。


7.13.2 SCN閃回

SQL>SELECT * FROM &table_name as of scn &scn;

閃回表資料,基於scn的表資料查詢,需要提供SCN,如果不明確SCN,可以透過時間點閃回查詢。


7.13.3 閃回DROP

SQL>flashback table &old_table to before drop rename to &new_table;

閃回刪除操作,對已經刪除的表進行閃回回復並重新命名。


參考:


八、AWR報告檢查

透過AWR報告瞭解日常高峰時段資料庫各項指標和執行狀況,透過對比報告觀察和基線的變化,透過趨勢分析持續關注資料庫日常執行狀態。


8.1本地AWR


SQL>@?/rdbms/admin/awrrpt

生成本地AWR報告資訊,需要根據提示輸入相應的資訊。


8.2指定例項AWR


SQL>@?/rdbms/admin/awrrpti

生成指定例項AWR報告


8.3AWR對比報告


SQL>@?/rdbms/admin/awrddrpt

生成本地AWR時間段對比報告


8.4指定例項對比


SQL>@?/rdbms/admin/awrddrpi

生成指定例項AWR時間段對比報告


8.5AWR資訊提取


SQL>@?/rdbms/admin/awrextr

使用awrextr指令碼將AWR效能資料匯出,可以用於留錯或者異地分析。


8.6AWR資訊載入


SQL>@?/rdbms/admin/awrload

透過awrload,可以將匯出的AWR效能資料匯入到其他資料庫中,便於集中和分析。


九、SQL報告檢查

對TOP SQL進行持續關注和分析,透過SQL報告分析SQL的效率、效能,並做出報告和最佳化建議等。


9.1 本地SQLReport


SQL> @?/rdbms/admin/awrsqrpt

生成本地SQLReport報告


9.2 指定例項SQLReport


SQL>@?/rdbms/admin/awrsqrpi

生成指定例項SQLRerport報告


9.3 當前會話SQL Monitor Report


SELECT

dbms_sqltune.report_sql_monitor(session_id=> '&sid',

report_level=> 'ALL', TYPE=> '&type') as report

FROM dual;

生成當前會話的SQL Monitor Report


9.4 指定SQLID SQL Monitor Report


SELECT

dbms_sqltune.report_sql_monitor(sql_id=> '&sql_id',

report_level=> 'ALL', TYPE=> '&type') as report FROM dual;

生成指定SQL_ID的SQL Monitor Report


參考:

9.5 Explain SQL執行計劃


explain plan for

SELECT count(*) FROM user_objects;

SELECT * FROM table(dbms_xplan.display);

示例透過explain plan for方法獲取SQL執行計劃


9.6 Autotrace SQL執行計劃


SQL>set autotrace traceonly explain;

SQL>SELECT count(*) FROM user_objects;

SQL>set autotrace off;

透過SQL*Plus的 autotrace 功能獲取SQL執行計劃。


9.7 DBMS_XPLAN SQL執行計劃


SQL> SELECT * FROM

table(dbms_xplan.display_cursor('&sql_id',null,'advanced');

透過DBMS_XPLAN包獲取SQL執行計劃,sql_id 需要提供。


9.8 10053事件跟蹤


SQL>alter session set tracefile_identifier='10053';

SQL> alter session set events '10053 trace name context forever ,level 1';

SQL> <execute sql statements>

SQL> alter session set events '10053 trace name context off';

透過10053事件來檢視執行計劃和詳細的SQL解析過程,trace檔案提供了Oracle如何選擇執行計劃的原因。


參考:


9.9 繫結變數


SELECT

dbms_sqltune.extract_bind(bind_data, 1).value_string

FROM wrh$_sqlstat WHERE sql_id ='&sql_id';


SELECT snap_id,name,position,value_string

FROM dba_hist_sqlbind WHERE sql_id= '&sql_id';

查詢SQL語句的繫結變數以及歷史繫結變數值資訊,需要給定SQL_ID資訊。


參考:


十、定時任務檢查

檢查資料庫定時任務執行情況,確保後臺任務正確執行,尤其應關注統計資訊收集等核心任務。


10.1使用者定時任務


SQL> SELECTjob,log_user,last_date,next_date,interval,broken,failures

FROM dba_jobs;

查詢使用者的定時任務(job)資訊,確保任務在期望的時間成功執行,這是DBA的重要工作之一。


10.2系統定時任務


SQL> SELECTjob_name,start_date,repeat_interval

FROM dba_scheduler_jobs

查詢系統定時排程資訊,查詢顯示了任務名稱、初始啟動日期以及重複間隔。


10.3系統定時任務-11g


SQL> SELECTclient_name,mean_job_duration

FROM dba_autotask_client;

11g之後增加的字典表,記錄每個在7天和30天維護任務的統計資訊,查詢顯示名稱和平均執行時間。


10.4啟停統計資訊任務-10g


SQL>execdbms_scheduler.disable('SYS.GATHER_STATS_JOB');

SQL>execdbms_scheduler.enable('SYS.GATHER_STATS_JOB');

關閉和開啟oralce 10g 統計資訊自動採集任務


10.5啟停統計資訊任務-11g


SQL> exec DBMS_AUTO_TASK_ADMIN.DISABLE(client_name=> 'auto

optimizerstats collection', operation => NULL, window_name => NULL);

SQL> execDBMS_AUTO_TASK_ADMIN.ENABLE(client_name => 'auto

optimizer stats collection', operation=> NULL, window_name => NULL);

關閉和開啟Oralce 11g 統計資訊自動採集任務


十一、備份

資料備份重於一切,日常應檢查備份執行情況,並檢查備份的有效性,確保備份能夠保障資料安全,備份安全加密也應兼顧。


11.1全庫exp/imp


$ exp system/managerfile=/full.dmp log=/full.log full=y

$ imp system/managerfile=/full.dmp log=/full.log full=y

將資料庫全庫匯出匯入(示例以及以下示例顯示的是非Windows環境),

透過提供的使用者,執行全庫匯出。需要注意儲存位置和空間。


11.2使用者模式exp/imp


$exp enmo/enmo file=/enmo.dmp log=/enmo.log owner=enmo

$imp enmo/enmo file=/enmo.dmp log=/enmo.log fromuser=enmo

touser=enmo

將資料庫按指定使用者匯出


11.3表模式exp/imp


$ exp enmo/enmo file=/tables.dmplog=/tables.log tables=table_name

$ imp enmo/enmo file=/tables.dmplog=/tables.log tables=table_name

將資料庫按指定表匯出


11.4全庫模式expdp/impdp


$ expdp system/managerdirectory=svr_dir dumpfile=full.dmp full=y;

$ impdb system/managerdirectory=svr_dir dumpfile=full.dmp full=y;

將資料庫全庫匯出匯入, 注意directory是資料庫中建立的物件,指定伺服器上的儲存位置。


11.5使用者模式-expdp/impdp


$ expdp system/manager directory=svr_dirschemas=scott

dumpfile=expdp.dmp ;

$ impdp system/managerdirectory=svr_dir schemas=scott

dumpfile=expdp.dmpremap_schema=scott:enmo

remap_tablespace=users:testtbs;

將資料庫進行按使用者匯出和匯入示例,impdp示例中,分別重新對映了匯入的Schema和表空間。


11.6表模式-expdp/impdp


$ expdp scott/tiger directory=svr_dirtables=emp,dept

dumpfile=tables.dmp;

$ impdp scott/tigerdirectory=svr_dir dumpfile=tables.dmp

tables=emp,dept;

將資料庫進行按表匯出和匯入


11.7物理備份檢查


SQL> SELECTbackup_type,start_time,completion_time,block_size

FROM v$backup_set;

檢查備份集資訊,確保備份有效和及時是DBA的重要工作之一。RMAN的備份資訊記錄在控制檔案中。


11.8自動控制檔案備份


RMAN> show all;

RMAN> CONFIGURE CONTROLFILEAUTOBACKUP ON;

控制檔案對資料庫十分重要,建議啟動控制檔案的自動備份,示範顯示的是透過RMAN的設定。


11.9手動控制檔案備份


RMAN> backup currentcontrolfile;

SQL> alter database backupcontrolfile to '/back/control.bak';

透過RMAN或者SQL命令手動備份控制檔案,備份的是控制檔案的二進位制複製。


11.10轉儲控制檔案


SQL> alter session set events'immediate trace name controlf level 8';

透過以上命令轉儲控制檔案二進位制資訊到文字,研究這些資訊,可以極大加深對於資料庫的瞭解。

SQL> alter database backupcontrolfile to trace;

透過SQL命令轉儲控制檔案到文字,可以用於重建控制檔案。


11.11RMAN備份資料庫


RMAN> backup format'/data/backup/%U' database plus archivelog;

對於DBA備份是第一重要的工作,在歸檔模式下,

執行全庫備份可以簡化為示例的一個命令(需要根據容量進行分片)。


參考:


十二、基本資訊檢查

基本資訊包括版本、元件、補丁集等資訊,定期檢查資料庫資訊並登記在案是資料庫生命週期管理的重要內容之一。


12.1版本檢查


SQL> SELECT * FROM v$version;

檢視資料庫的版本資訊


12.2元件檢查


SQL> SELECT * FROM v$option;

檢視資料庫的元件資訊


12.3容量檢查


# asmcmd
ASMCMD>lsdg

SELECT group_number,disk_number,
mount_status,total_mb,free_mb
FROM v$asm_disk;

SELECT group_number,name,state,total_mb,free_mb
FROM v$asm_diskgroup;

如果使用了ASM管理,可以透過示例檢視ASM磁碟及磁碟組容量等資訊。


12.4PSU檢查


SQL> SELECT * FROM dba_registry_history;

查詢資料庫的版本升級歷史資訊。

# $ORACLE_HOME/OPatch/opatchlsinventory

查詢資料庫補丁歷史資訊,是系統級的命令工具。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31520497/viewspace-2156855/,如需轉載,請註明出處,否則將追究法律責任。

相關文章