您好,登錄后才能下訂單哦!
一、活動狀態(tài)檢查
通過查詢基本視圖,確認(rèn)數(shù)據(jù)庫和實例處于正常運行狀態(tài),可以對外提供數(shù)據(jù)服務(wù)。
1.1實例狀態(tài)
SELECT instance_name,status FROM v$instance;
查詢返回實例名稱、狀態(tài),正常狀態(tài)應(yīng)為Open。
1.2會話信息
SELECT
SESSIONS_CURRENT,SESSIONS_HIGHWATER FROM v$license;
輔助查詢,實例當(dāng)前會話數(shù)和啟動最高連接會話數(shù)量。
SELECT inst_id,username,COUNT(*)
FROM gv$session GROUP BYinst_id,username;
查詢數(shù)據(jù)庫連接數(shù)以實例和用戶分組。
1.3參數(shù)檢查
SELECT value FROM v$parameter
WHERE name='open_cursors';
查詢給定參數(shù)的設(shè)置值,示例參數(shù)缺省值為300,通常中等規(guī)模數(shù)據(jù)庫推薦設(shè)置為1000。
1.4參數(shù)修改
ALTER SYSTEM SET undo_retention=3600 COMMENT='default 900' SID='*' SCOPE=both;
修改給定的初始化參數(shù),RAC環(huán)境需要注意SID參數(shù)。
參考:
http://www.eygle.com/archives/2006/09/undo_retention_need_change.html
1.5隱含參數(shù)
ALTER SYSTEM SET "_optimizer_use_feedback"=FALSE SCOPE=spfile;
為了解決特殊問題,有時需要設(shè)置以下劃線開頭的隱含參數(shù)。示例關(guān)閉了11.2版本中引入的Cardinality Feedback - 基數(shù)反饋特性。
1.6實例異常
當(dāng)連接數(shù)據(jù)庫實例出現(xiàn)緩慢、掛起等現(xiàn)象,需要進(jìn)行診斷和分析,甚至可能需要重新啟動數(shù)據(jù)庫實例。
1.6.1信息采集
SQL>sqlplus -prelim / as sysdba
SQL>oradebug setmypid
SQL>oradebug unlimit
SQL>oradebug hanganalyze 3
SQL>oradebug dump systemstate 266
<間隔一定時間,如20秒,執(zhí)行下一次數(shù)據(jù)采樣. >
SQL>oradebug hanganalyze 3
SQL>oradebug dump systemstate 266
示范命令,通過采集系統(tǒng)的Hang信息、系統(tǒng)狀態(tài)信息等,可以分析系統(tǒng)掛起的原因,間隔采樣,可以用于對比變化,輔助分析。
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;
如果在數(shù)據(jù)庫關(guān)閉、啟動時遇到阻塞、掛起等,可以通過示范命令進(jìn)行跟蹤,獲取跟蹤文件進(jìn)行分析。
1.6.3 安全停庫
SQL>alter system checkpoint;
SQL>alter system archive log current;
SQL>shutdown immediate;
如果數(shù)據(jù)庫出現(xiàn)異常需要重新啟動,可以通過示范命令執(zhí)行檢查點、歸檔命令,然后嘗試以立即方式關(guān)閉數(shù)據(jù)庫。
1.6.4 強(qiáng)制停庫
SQL>shutdown abort;
SQL>startup nomount;
SQL>alter database mount;
SQL>alter database open;
如果立即方式不能順利關(guān)閉數(shù)據(jù)庫,強(qiáng)制的關(guān)閉方式為abort。示范命令可以通過分步驟的方式執(zhí)行數(shù)據(jù)庫啟動。
1.7連接異常
當(dāng)連接數(shù)據(jù)庫出現(xiàn)異常,需要檢測包括網(wǎng)絡(luò)連通性,監(jiān)聽器狀態(tài)等信息。
1.7.1連通性
tnsping tns_name
在安裝具有Oracle客戶端的環(huán)境,可以通過tnsping工具測試配置的服務(wù)名稱,觀察網(wǎng)絡(luò)是否連通以及響應(yīng)時間。
1.7.2監(jiān)聽器
lsnrctl status LISTENER
lsnrctl status LISTENER_SCAN1
lsnrctl service
在數(shù)據(jù)庫服務(wù)器上,可以通過lsnrctl工具檢查監(jiān)聽狀態(tài)和服務(wù)信息,具體的監(jiān)聽服務(wù)名稱可以在最后定義修改。
1.7.3監(jiān)聽日志檢查
adrci>showalert
在服務(wù)器上,可以通過adrci工具,顯示各類告警文件,檢查監(jiān)聽器日志,可以診斷監(jiān)聽問題。
二、日志信息檢查
日志狀態(tài)檢查檢查數(shù)據(jù)庫各類日志信息,確認(rèn)數(shù)據(jù)庫實例、集群等是否出現(xiàn)錯誤、告警,如存在問題,則需要進(jìn)一步分析和應(yīng)對。
2.1告警日志
$ORACLE_BASE/diag/rdbms//$ORACLE_SID/
trace/alert_$ORACLE_SID.log
SQL>show parameter background_dump_dest
根據(jù)示例找到告警日志,檢查實例是否存在 ORA- 錯誤提示等。
2.2集群日志
$GRID_HOME/log//alert.log
$GRID_HOME/log//(crsd、cssd、evmd、ohasd)/
在相應(yīng)路徑找到RAC集群日志,檢查是否存在錯誤提示信息等。
2.3ASM日志
$GRID_HOME/diag/asm/+asm//
trace/alert_.log
在相應(yīng)路徑找到ASM日志,檢查是否存在錯誤提示信息等。
2.4Trace文件
SQL>SELECT value FROM v$diag_info WHERE name='Default Trace File';
SQL>show parameter user_dump_dest
獲取會話產(chǎn)生或全局轉(zhuǎn)儲位置,在診斷時需檢查最近日期文件內(nèi)容。
2.5集群狀態(tài)
$crsctl status resource -t
確保資源狀態(tài)顯示在線。
2.6 errorstack分析
當(dāng)遇到 ORA- 錯誤,而數(shù)據(jù)庫的輸出信息不足時,可以采用errorstack進(jìn)行跟蹤,采集更詳細(xì)的轉(zhuǎn)儲信息。
SQL> alter system set events='600 trace name
errorstack forever, level 10';
SQL>alter system set events='600 trace name
errorstack off';
示例顯示了對ORA-600錯誤設(shè)置跟蹤,并關(guān)閉。
Oracle REDO日志是數(shù)據(jù)庫的核心組件,檢查其狀態(tài),維護(hù)其成員,監(jiān)控其歸檔,審核其性能,是DBA的重要工作。
3.1REDO組
SELECT group#,sequence#,archived,status FROM v$log;
查詢?nèi)罩窘M號、序號,是否歸檔完成和狀態(tài)信息,如多組日志顯示ACTIVE狀態(tài),則可能說明數(shù)據(jù)庫存在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執(zhí)行歸檔
SQL>ALTER SYSTEM ARCHIVE LOG CURRENT;
對當(dāng)前日志組執(zhí)行歸檔,切換到下一個日志組,
在RAC會對所有實例執(zhí)行歸檔,Thread參數(shù)指定歸檔實例。
3.6刪除日志組或成員
SQL>ALTER DATABASE DROP LOGFILE GROUP 10;
SQL>ALTER DATABASE DROP LOGFILE MEMBER '/oracle/dbs/redo03.log';
刪除指定日志組或日志成員,注意只能對INACTIVE狀態(tài)的日志執(zhí)行刪除操作。
3.7歸檔檢查
SQL>archive log list;
檢查數(shù)據(jù)庫是否處于歸檔模式。
3.8歸檔狀態(tài)變更
SQL>alter database archivelog | noarchivelog;
示例步驟在MOUNT狀態(tài)改變歸檔模式,注意啟動歸檔模式之后
務(wù)必制訂備份歸檔的日常策略,防止磁盤空間被耗盡。
3.9調(diào)整歸檔路徑
SQL>alter system set log_archive_dest_2='location=&path' sid='&sid';
如果數(shù)據(jù)庫因歸檔耗盡空間,可以指定另外的歸檔路徑,以盡快歸檔日志,恢復(fù)數(shù)據(jù)庫運行。
參考:
http://www.eygle.com/archives/2009/09/oracle_redo_log.html
http://www.eygle.com/archives/2012/03/how_drop_logfile_member.html
四、空間信息檢查
確保數(shù)據(jù)存儲空間可用,定期檢查表空間余量,進(jìn)行表空間和文件維護(hù)。
4.1 空間使用查詢
SQL> SELECT * FROM sys.sm$ts_used;
查看數(shù)據(jù)庫表空間的使用信息。
SQL> SELECT * FROM sys.sm$ts_free;
查看數(shù)據(jù)庫表空間的剩余空間。
4.2 文件信息
SELECT tablespace_name,file_name
FROM dba_data_files;
查看數(shù)據(jù)庫表空間的數(shù)據(jù)文件信息。
4.3 文件維護(hù)
alter database datafile '&path' resize 900M;
alter tablespace &tbs_name add datafile '&path' size 900M;
對數(shù)據(jù)庫的表空間容量進(jìn)行擴(kuò)容。
五、鎖/閂信息檢查
Lock/Latch是數(shù)據(jù)庫控制并發(fā)的核心手段,檢查相關(guān)信息可以監(jiān)控數(shù)據(jù)庫的事務(wù)和運行狀況。
5.1鎖信息
SQL>SELECT sid, type, lmode, ctime, block
FROMv$lock WHERE type not in ('MR','AE');
查看鎖會話ID,類型,持有時間等,
注意如果block >1,可能意味著阻塞了其他會話。
5.2鎖故障排查
在數(shù)據(jù)庫出現(xiàn)鎖競爭和阻塞時,需要排查和處理鎖定,必要時通過Kill阻塞進(jìn)程消除鎖定。
5.2.1查詢阻塞會話
SQL>SELECT sid,sql_id,status,blocking_session
FROMv$session WHERE sid in(SELECT session_id FROM v$locked_object);
查詢當(dāng)前鎖事物中阻塞會話與被阻塞會話的sid,sql_id和狀態(tài)信息
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查詢阻塞對象的詳細(xì)信息如對象名稱,所屬用戶等
5.2.4殺阻塞會話
SQL>altersystem kill session 'sid,serial#';
在Oracle實例內(nèi)殺死阻塞的會話進(jìn)程,其中sid,serial# 為中止會話對應(yīng)信息,來自v$session。
5.2.5殺系統(tǒng)進(jìn)程
SQL>SELECTpro.spid,pro.program
FROMv$session ses,v$process pro
WHEREses.sid=&sid and ses.paddr=pro.addr;
#kill -9 spid
有時對于活動進(jìn)程,在系統(tǒng)層面中止更為快速安全,示例找到系統(tǒng)進(jìn)程號,然后kill中止。
注意:無論何時,需要認(rèn)真分析,并且避免誤殺重要后臺進(jìn)程。
5.3閂檢查
SELECTname,gets,misses,immediate_gets,spin_gets
FROMv$latch ORDER BY 2;
檢查數(shù)據(jù)庫閂的使用情況,misses、SPIN_GETS統(tǒng)計高的,需要關(guān)注。
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');
僅供學(xué)習(xí):通過獲得Latch的地址,找到該Latch守護(hù)的X$BH中相關(guān)的Buffer。
六、等待和統(tǒng)計數(shù)據(jù)
Wait和Statistics數(shù)據(jù)分別代表了數(shù)據(jù)庫的等待和運行數(shù)據(jù),觀察這些數(shù)據(jù)以了解數(shù)據(jù)庫的等待瓶頸和健康程度。
6.1等待事件查詢
SELECT sid,event,wait_time_micro
FROM v$session_wait ORDER BY 3;
通過等待事件和等待時間,了解數(shù)據(jù)庫當(dāng)前連接會話的等待情況。
注意,如果會話眾多,需要限定查詢輸出行數(shù)。
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;
查看當(dāng)前數(shù)據(jù)中TOP10等待事件信息,需要分析和關(guān)注非空閑的顯著等待。
6.3會話統(tǒng)計數(shù)據(jù)
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';
查詢數(shù)據(jù)庫會話的統(tǒng)計信息數(shù)據(jù),示例查詢了Redo的大小,SID需要提供。
6.4系統(tǒng)級統(tǒng)計數(shù)據(jù)
SQL>SELECT * FROM v$sysstat WHERE name='redo size';
查詢整個系統(tǒng)的統(tǒng)計數(shù)據(jù),示例顯示數(shù)據(jù)庫實例啟動以來的REDO日志生成量。
表、索引、分區(qū)、約束等是數(shù)據(jù)庫的核心存儲對象,其核心信息和對象維護(hù)是DBA重要的日常工作。
7.1表信息數(shù)據(jù)
SQL>SELECT * FROM (
SELECTowner,table_name,num_rows
FROMdba_tables ORDER BY num_rows desc nulls last )
WHERErownum < 11;
查看表的基本信息數(shù)據(jù):屬主,表名,記錄行數(shù)等。
7.2表結(jié)構(gòu)查詢
SQL> set long 12000
SQL> SELECTdbms_metadata.get_ddl('TABLE','&table_name','&user')
FROM dual;
根據(jù)提供的表名和用戶(需大寫),查詢表的表結(jié)構(gòu)信息(建表語句)。
7.3表統(tǒng)計信息
SQL>SELECT owner,table_name,last_analyzed FROM dba_tab_statistics
WHEREowner='&owner' and table_name='&table_name';
查詢給定用戶、給定表(需大寫),查詢最后的統(tǒng)計信息分析收集時間。統(tǒng)計信息影響執(zhí)行計劃,當(dāng)SQL執(zhí)行異常時,需要重點分析統(tǒng)計信息。
7.4表統(tǒng)計信息收集
SQL>exec dbms_stats.gather_table_stats(ownname=>'&owner',
tabname=>'&table_name');
收集統(tǒng)計信息是一項復(fù)雜任務(wù),需要詳細(xì)設(shè)計,示例對給出用戶、表名的對象采集統(tǒng)計信息。
7.5索引信息數(shù)據(jù)
SQL>SELECT * FROM (
SELECTindex_name,table_name,num_rows,leaf_blocks,clustering_factor
FROMdba_indexes ORDER BY 5 desc nulls last)
WHERErownum<11;
查詢索引的基本信息,示例輸出包括葉塊數(shù)和聚簇因子等,如聚簇因子過高接近行數(shù)可能代表索引效率不高。
7.6索引定義查詢
SQL>set long 12000
SQL>SELECT dbms_metadata.get_ddl('INDEX','&table_name','&user')
FROM dual;
根據(jù)提供的表名和用戶名,查詢索引的建立語句。
7.7索引統(tǒng)計信息及收集方法
SQL>SELECT owner,index_name,last_analyzed FROM dba_ind_statistics
WHEREowner='&owner' and table_name='&table_name';
根據(jù)給定的用戶名,表名稱(需大寫),查詢索引信息,尤其應(yīng)關(guān)注最后分析時間。
SQL>exec dbms_stats.gather_index_stats(ownname=>'&owner',
indname=>'&index_name');
收集統(tǒng)計信息是一項復(fù)雜任務(wù),示例對給出用戶、索引名的對象采集統(tǒng)計信息。
7.8分區(qū)對象檢查
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;
查看分區(qū)表的基本信息:分區(qū)類型,數(shù)量,邊界值等。
7.9分區(qū)定義查詢
SQL> SELECTdbms_metadata.get_ddl('TABLE',
'&part_table_name','user')FROM dual;
根據(jù)給定的分區(qū)表名、用戶(需大寫),查詢分區(qū)表的結(jié)構(gòu)信息(建表語句)。
7.10分區(qū)統(tǒng)計信息相關(guān)
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');
查看分區(qū)表的統(tǒng)計信息收集時間,以及對分區(qū)表進(jìn)行手工收集統(tǒng)計信息,注意分區(qū)表統(tǒng)計信息收集非常復(fù)雜,需要深入研究做出正確策略,示例僅提供最簡單的采集命令。
7.11 約束信息
SQL>SELECTconstraint_name,constraint_type FROM DBA_CONSTRAINTS
WHEREtable_name='&table_name';
查詢指定數(shù)據(jù)表的約束信息,包括名稱和類型。
7.12失效對象檢查
SQL>SELECT owner,object_name,object_type,status
FROMdba_objects WHERE status <>'VALID'
ORDERBY owner,object_name;
檢查數(shù)據(jù)庫中的失效對象信息,通常運行健康的數(shù)據(jù)庫中不應(yīng)有失效的對象。
7.13閃回查詢
閃回查詢功能對于恢復(fù)DML及部分DDL誤操作非常便利,DBA必備技能。
7.13.1時間閃回
SQL>SELECT * FROM &table_name as of timestamp
to_timestamp('2015-02-0400:02:09','yyyy-mm-dd hh34:mi:ss');
閃回表數(shù)據(jù),基于時間點的表數(shù)據(jù)閃回查詢。
7.13.2 SCN閃回
SQL>SELECT * FROM &table_name as of scn &scn;
閃回表數(shù)據(jù),基于scn的表數(shù)據(jù)查詢,需要提供SCN,如果不明確SCN,可以通過時間點閃回查詢。
7.13.3 閃回DROP
SQL>flashback table &old_table to before drop rename to &new_table;
閃回刪除操作,對已經(jīng)刪除的表進(jìn)行閃回回復(fù)并重命名。
參考:
http://www.eygle.com/archives/2009/11/scn_to_timestamp.html
http://www.eygle.com/archives/2005/03/eoaoracle10gaef.html
八、AWR報告檢查
通過AWR報告了解日常高峰時段數(shù)據(jù)庫各項指標(biāo)和運行狀況,通過對比報告觀察和基線的變化,通過趨勢分析持續(xù)關(guān)注數(shù)據(jù)庫日常運行狀態(tài)。
8.1本地AWR
SQL>@?/rdbms/admin/awrrpt
生成本地AWR報告信息,需要根據(jù)提示輸入相應(yīng)的信息。
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性能數(shù)據(jù)導(dǎo)出,可以用于留錯或者異地分析。
8.6AWR信息加載
SQL>@?/rdbms/admin/awrload
通過awrload,可以將導(dǎo)出的AWR性能數(shù)據(jù)導(dǎo)入到其他數(shù)據(jù)庫中,便于集中和分析。
九、SQL報告檢查
對TOP SQL進(jìn)行持續(xù)關(guān)注和分析,通過SQL報告分析SQL的效率、性能,并做出報告和優(yōu)化建議等。
9.1 本地SQLReport
SQL> @?/rdbms/admin/awrsqrpt
生成本地SQLReport報告
9.2 指定實例SQLReport
SQL>@?/rdbms/admin/awrsqrpi
生成指定實例SQLRerport報告
9.3 當(dāng)前會話SQL Monitor Report
SELECT
dbms_sqltune.report_sql_monitor(session_id=> '&sid',
report_level=> 'ALL', TYPE=> '&type') as report
FROM dual;
生成當(dāng)前會話的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
參考:http://www.eygle.com/archives/2012/09/sqloracle_sql_monitor_report.html
9.5 Explain SQL執(zhí)行計劃
explain plan for
SELECT count(*) FROM user_objects;
SELECT * FROM table(dbms_xplan.display);
示例通過explain plan for方法獲取SQL執(zhí)行計劃
9.6 Autotrace SQL執(zhí)行計劃
SQL>set autotrace traceonly explain;
SQL>SELECT count(*) FROM user_objects;
SQL>set autotrace off;
通過SQL*Plus的 autotrace 功能獲取SQL執(zhí)行計劃。
9.7 DBMS_XPLAN SQL執(zhí)行計劃
SQL> SELECT * FROM
table(dbms_xplan.display_cursor('&sql_id',null,'advanced');
通過DBMS_XPLAN包獲取SQL執(zhí)行計劃,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事件來查看執(zhí)行計劃和詳細(xì)的SQL解析過程,trace文件提供了Oracle如何選擇執(zhí)行計劃的原因。
參考:http://www.eygle.com/archives/2011/02/dba_event_10046_10053.html
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信息。
參考:http://www.eygle.com/archives/2010/11/dbms_sqltune_bindata.html
十、定時任務(wù)檢查
檢查數(shù)據(jù)庫定時任務(wù)執(zhí)行情況,確保后臺任務(wù)正確執(zhí)行,尤其應(yīng)關(guān)注統(tǒng)計信息收集等核心任務(wù)。
10.1用戶定時任務(wù)
SQL> SELECTjob,log_user,last_date,next_date,interval,broken,failures
FROM dba_jobs;
查詢用戶的定時任務(wù)(job)信息,確保任務(wù)在期望的時間成功執(zhí)行,這是DBA的重要工作之一。
10.2系統(tǒng)定時任務(wù)
SQL> SELECTjob_name,start_date,repeat_interval
FROM dba_scheduler_jobs
查詢系統(tǒng)定時調(diào)度信息,查詢顯示了任務(wù)名稱、初始啟動日期以及重復(fù)間隔。
10.3系統(tǒng)定時任務(wù)-11g
SQL> SELECTclient_name,mean_job_duration
FROM dba_autotask_client;
11g之后增加的字典表,記錄每個在7天和30天維護(hù)任務(wù)的統(tǒng)計信息,查詢顯示名稱和平均執(zhí)行時間。
10.4啟停統(tǒng)計信息任務(wù)-10g
SQL>execdbms_scheduler.disable('SYS.GATHER_STATS_JOB');
SQL>execdbms_scheduler.enable('SYS.GATHER_STATS_JOB');
關(guān)閉和開啟oralce 10g 統(tǒng)計信息自動采集任務(wù)
10.5啟停統(tǒng)計信息任務(wù)-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);
關(guān)閉和開啟Oralce 11g 統(tǒng)計信息自動采集任務(wù)
十一、備份
數(shù)據(jù)備份重于一切,日常應(yīng)檢查備份執(zhí)行情況,并檢查備份的有效性,確保備份能夠保障數(shù)據(jù)安全,備份安全加密也應(yīng)兼顧。
11.1全庫exp/imp
$ exp system/managerfile=/full.dmp log=/full.log full=y
$ imp system/managerfile=/full.dmp log=/full.log full=y
將數(shù)據(jù)庫全庫導(dǎo)出導(dǎo)入(示例以及以下示例顯示的是非Windows環(huán)境),
通過提供的用戶,執(zhí)行全庫導(dǎo)出。需要注意存儲位置和空間。
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
將數(shù)據(jù)庫按指定用戶導(dǎo)出
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
將數(shù)據(jù)庫按指定表導(dǎo)出
11.4全庫模式expdp/impdp
$ expdp system/managerdirectory=svr_dir dumpfile=full.dmp full=y;
$ impdb system/managerdirectory=svr_dir dumpfile=full.dmp full=y;
將數(shù)據(jù)庫全庫導(dǎo)出導(dǎo)入, 注意directory是數(shù)據(jù)庫中創(chuàng)建的對象,指定服務(wù)器上的存儲位置。
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;
將數(shù)據(jù)庫進(jìn)行按用戶導(dǎo)出和導(dǎo)入示例,impdp示例中,分別重新映射了導(dǎo)入的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;
將數(shù)據(jù)庫進(jìn)行按表導(dǎo)出和導(dǎo)入
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;
控制文件對數(shù)據(jù)庫十分重要,建議啟動控制文件的自動備份,示范顯示的是通過RMAN的設(shè)置。
11.9手動控制文件備份
RMAN> backup currentcontrolfile;
SQL> alter database backupcontrolfile to '/back/control.bak';
通過RMAN或者SQL命令手動備份控制文件,備份的是控制文件的二進(jìn)制拷貝。
11.10轉(zhuǎn)儲控制文件
SQL> alter session set events'immediate trace name controlf level 8';
通過以上命令轉(zhuǎn)儲控制文件二進(jìn)制信息到文本,研究這些信息,可以極大加深對于數(shù)據(jù)庫的了解。
SQL> alter database backupcontrolfile to trace;
通過SQL命令轉(zhuǎn)儲控制文件到文本,可以用于重建控制文件。
11.11RMAN備份數(shù)據(jù)庫
RMAN> backup format'/data/backup/%U' database plus archivelog;
對于DBA備份是第一重要的工作,在歸檔模式下,
執(zhí)行全庫備份可以簡化為示例的一個命令(需要根據(jù)容量進(jìn)行分片)。
參考:http://www.eygle.com/archives/2004/11/use_rman_plusarchivelog_option.html
十二、基本信息檢查
基本信息包括版本、組件、補(bǔ)丁集等信息,定期檢查數(shù)據(jù)庫信息并登記在案是數(shù)據(jù)庫生命周期管理的重要內(nèi)容之一。
12.1版本檢查
SQL> SELECT * FROM v$version;
查看數(shù)據(jù)庫的版本信息
12.2組件檢查
SQL> SELECT * FROM v$option;
查看數(shù)據(jù)庫的組件信息
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;
查詢數(shù)據(jù)庫的版本升級歷史信息。
# $ORACLE_HOME/OPatch/opatchlsinventory
查詢數(shù)據(jù)庫補(bǔ)丁歷史信息,是系統(tǒng)級的命令工具。
免責(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)容。