真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Oracle數(shù)據(jù)庫(kù)日常維護(hù)是怎么樣的

這篇文章給大家介紹Oracle數(shù)據(jù)庫(kù)日常維護(hù)是怎么樣的,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

目前創(chuàng)新互聯(lián)已為數(shù)千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)絡(luò)空間、網(wǎng)站托管、服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計(jì)、華亭網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。

在Oracle數(shù)據(jù)庫(kù)運(yùn)行期間,DBA應(yīng)該對(duì)數(shù)據(jù)庫(kù)的運(yùn)行日志及表空間的使用情況進(jìn)行監(jiān)控,及早發(fā)現(xiàn)數(shù)據(jù)庫(kù)中存在的問題。

一、Oracle警告日志文件監(jiān)控

Oracle在運(yùn)行過程中,會(huì)在警告日志文件(alert_SID.log)中記錄數(shù)據(jù)庫(kù)的一些運(yùn)行情況:

l        數(shù)據(jù)庫(kù)的啟動(dòng)、關(guān)閉,啟動(dòng)時(shí)的非缺省參數(shù);

l        數(shù)據(jù)庫(kù)的重做日志切換情況,記錄每次切換的時(shí)間,及如果因?yàn)闄z查點(diǎn)(checkpoint)操作沒有執(zhí)行完成造成不能切換,會(huì)記錄不能切換的原因;

l        對(duì)數(shù)據(jù)庫(kù)進(jìn)行的某些操作,如創(chuàng)建或刪除表空間、增加數(shù)據(jù)文件;

l        數(shù)據(jù)庫(kù)發(fā)生的錯(cuò)誤,如表空間不夠、出現(xiàn)壞塊、數(shù)據(jù)庫(kù)內(nèi)部錯(cuò)誤(ORA-600)

DBA應(yīng)該定期檢查日志文件,根據(jù)日志中發(fā)現(xiàn)的問題及時(shí)進(jìn)行處理

問題

處理

啟動(dòng)參數(shù)不對(duì)

檢查初始化參數(shù)文件

因?yàn)闄z查點(diǎn)操作或歸檔操作沒有完成造成重做日志不能切換

如果經(jīng)常發(fā)生這樣的情況,可以考慮增加重做日志文件組;想辦法提高檢查點(diǎn)或歸檔操作的效率;

有人未經(jīng)授權(quán)刪除了表空間

檢查數(shù)據(jù)庫(kù)的安全問題,是否密碼太簡(jiǎn)單;如有必要,撤消某些用戶的系統(tǒng)權(quán)限

出現(xiàn)壞塊

檢查是否是硬件問題(如磁盤本生有壞塊),如果不是,檢查是那個(gè)數(shù)據(jù)庫(kù)對(duì)象出現(xiàn)了壞塊,對(duì)這個(gè)對(duì)象進(jìn)行重建

表空間不夠

增加數(shù)據(jù)文件到相應(yīng)的表空間

出現(xiàn)ORA-600

根據(jù)日志文件的內(nèi)容查看相應(yīng)的TRC文件,如果是Oracle的bug,要及時(shí)打上相應(yīng)的補(bǔ)丁

在Oracle數(shù)據(jù)庫(kù)運(yùn)行期間,DBA應(yīng)該對(duì)數(shù)據(jù)庫(kù)的運(yùn)行日志及表空間的使用情況進(jìn)行監(jiān)控,及早發(fā)現(xiàn)數(shù)據(jù)庫(kù)中存在的問題。

一、Oracle警告日志文件監(jiān)控

Oracle在運(yùn)行過程中,會(huì)在警告日志文件(alert_SID.log)中記錄數(shù)據(jù)庫(kù)的一些運(yùn)行情況:

l        數(shù)據(jù)庫(kù)的啟動(dòng)、關(guān)閉,啟動(dòng)時(shí)的非缺省參數(shù);

l        數(shù)據(jù)庫(kù)的重做日志切換情況,記錄每次切換的時(shí)間,及如果因?yàn)闄z查點(diǎn)(checkpoint)操作沒有執(zhí)行完成造成不能切換,會(huì)記錄不能切換的原因;

l        對(duì)數(shù)據(jù)庫(kù)進(jìn)行的某些操作,如創(chuàng)建或刪除表空間、增加數(shù)據(jù)文件;

l        數(shù)據(jù)庫(kù)發(fā)生的錯(cuò)誤,如表空間不夠、出現(xiàn)壞塊、數(shù)據(jù)庫(kù)內(nèi)部錯(cuò)誤(ORA-600)

DBA應(yīng)該定期檢查日志文件,根據(jù)日志中發(fā)現(xiàn)的問題及時(shí)進(jìn)行處理

問題
 處理
 
啟動(dòng)參數(shù)不對(duì)
 檢查初始化參數(shù)文件
 
因?yàn)闄z查點(diǎn)操作或歸檔操作沒有完成造成重做日志不能切換
 如果經(jīng)常發(fā)生這樣的情況,可以考慮增加重做日志文件組;想辦法提高檢查點(diǎn)或歸檔操作的效率;
 
有人未經(jīng)授權(quán)刪除了表空間
 檢查數(shù)據(jù)庫(kù)的安全問題,是否密碼太簡(jiǎn)單;如有必要,撤消某些用戶的系統(tǒng)權(quán)限
 
出現(xiàn)壞塊
 檢查是否是硬件問題(如磁盤本生有壞塊),如果不是,檢查是那個(gè)數(shù)據(jù)庫(kù)對(duì)象出現(xiàn)了壞塊,對(duì)這個(gè)對(duì)象進(jìn)行重建
 
表空間不夠
 增加數(shù)據(jù)文件到相應(yīng)的表空間
 
出現(xiàn)ORA-600
 根據(jù)日志文件的內(nèi)容查看相應(yīng)的TRC文件,如果是Oracle的bug,要及時(shí)打上相應(yīng)的補(bǔ)丁
 


二、數(shù)據(jù)庫(kù)表空間使用情況監(jiān)控(字典管理表空間)

數(shù)據(jù)庫(kù)運(yùn)行了一段時(shí)間后,由于不斷的在表空間上創(chuàng)建和刪除對(duì)象,會(huì)在表空間上產(chǎn)生大量的碎片,DBA應(yīng)該及時(shí)了解表空間的碎片和可用空間情況,以決定是否要對(duì)碎片進(jìn)行整理或?yàn)楸砜臻g增加數(shù)據(jù)文件。

select tablespace_name, count(*) chunks , max(bytes/1024/1024) max_chunk  from dba_free_space group by tablespace_name;

上面的SQL列出了數(shù)據(jù)庫(kù)中每個(gè)表空間的空閑塊情況,如下所示:

TABLESPACE_NAME          CHUNKS    MAX_CHUNK

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

INDX                               1  57.9921875

RBS                                3   490.992188

RMAN_TS                           1   16.515625

SYSTEM                            1   207.296875

TEMP                             20   70.8046875

TOOLS                             1   11.8359375

USERS                            67   71.3671875

其中,CHUNKS列表示表空間中有多少可用的空閑塊(每個(gè)空閑塊是由一些連續(xù)的Oracle數(shù)據(jù)塊組成),如果這樣的空閑塊過多,比如平均到每個(gè)數(shù)據(jù)文件上超過了100個(gè),那么該表空間的碎片狀況就比較嚴(yán)重了,可以嘗試用以下的SQL命令進(jìn)行表空間相鄰碎片的接合:

alter tablespace 表空間名 coalesce;

然后再執(zhí)行查看表空間碎片的SQL語(yǔ)句,看表空間的碎片有沒有減少。如果沒有效果,并且表空間的碎片已經(jīng)嚴(yán)重影響到了數(shù)據(jù)庫(kù)的運(yùn)行,則考慮對(duì)該表空間進(jìn)行重建。

MAX_CHUNK列的結(jié)果是表空間上最大的可用塊大小,如果該表空間上的對(duì)象所需分配的空間(NEXT值)大于可用塊的大小的話,就會(huì)提示ORA-1652、ORA-1653、ORA-1654的錯(cuò)誤信息,DBA應(yīng)該及時(shí)對(duì)表空間的空間進(jìn)行擴(kuò)充,以避免這些錯(cuò)誤發(fā)生。

對(duì)表空間的擴(kuò)充對(duì)表空間的數(shù)據(jù)文件大小進(jìn)行擴(kuò)展,或向表空間增加數(shù)據(jù)文件,具體操作見“存儲(chǔ)管理”部份。

三、查看數(shù)據(jù)庫(kù)的連接情況

DBA要定時(shí)對(duì)數(shù)據(jù)庫(kù)的連接情況進(jìn)行檢查,看與數(shù)據(jù)庫(kù)建立的會(huì)話數(shù)目是不是正常,如果建立了過多的連接,會(huì)消耗數(shù)據(jù)庫(kù)的資源。同時(shí),對(duì)一些“掛死”的連接,可能會(huì)需要DBA手工進(jìn)行清理。

以下的SQL語(yǔ)句列出當(dāng)前數(shù)據(jù)庫(kù)建立的會(huì)話情況:

select sid,serial#,username,program,machine,status from v$session;

輸出結(jié)果為:

SID SERIAL#   USERNAME   PROGRAM       MACHINE          STATUS

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

1        1               ORACLE.EXE   WORK3             ACTIVE

2        1               ORACLE.EXE   WORK3             ACTIVE

3        1               ORACLE.EXE   WORK3             ACTIVE

4        1               ORACLE.EXE   WORK3             ACTIVE

5        3               ORACLE.EXE   WORK3             ACTIVE

6        1               ORACLE.EXE   WORK3             ACTIVE

7        1              ORACLE.EXE   WORK3              ACTIVE

8       27 SYS         SQLPLUS.EXE  WORKGROUP\WORK3  ACTIVE

11        5 DBSNMP      dbsnmp.exe   WORKGROUP\WORK3 INACTIVE

其中,

SID 會(huì)話(session)的ID號(hào);

SERIAL# 會(huì)話的序列號(hào),和SID一起用來唯一標(biāo)識(shí)一個(gè)會(huì)話;

USERNAME 建立該會(huì)話的用戶名;

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

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

如果DBA要手工斷開某個(gè)會(huì)話,則執(zhí)行:

alter system kill session 'SID,SERIAL#';

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

四、控制文件的備份

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

執(zhí)行SQL語(yǔ)句:alter database backup controlfile to '/home/backup/control.bak';

或: alter database  backup controlfile to trace;

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

五、檢查數(shù)據(jù)庫(kù)文件的狀態(tài)

DBA要及時(shí)查看數(shù)據(jù)庫(kù)中數(shù)據(jù)文件的狀態(tài)(如被誤刪除),根據(jù)實(shí)際情況決定如何進(jìn)行處理,檢查數(shù)據(jù)文件的狀態(tài)的SQL如下:

select file_name,status from dba_data_files;

如果數(shù)據(jù)文件的STATUS列不是AVAILABLE,那么就要采取相應(yīng)的措施,如對(duì)該數(shù)據(jù)文件進(jìn)行恢復(fù)操作,或重建該數(shù)據(jù)文件所在的表空間。

六、檢查數(shù)據(jù)庫(kù)定時(shí)作業(yè)的完成情況

如果數(shù)據(jù)庫(kù)使用了Oracle的JOB來完成一些定時(shí)作業(yè),要對(duì)這些JOB的運(yùn)行情況進(jìn)行檢查:

select job,log_user,last_date,failures  from dba_jobs;

如果FAILURES列是一個(gè)大于0的數(shù)的話,說明JOB運(yùn)行失敗,要進(jìn)一步的檢查。

七、數(shù)據(jù)庫(kù)壞塊的處理

當(dāng)Oracle數(shù)據(jù)庫(kù)出現(xiàn)壞塊時(shí),Oracle會(huì)在警告日志文件(alert_SID.log)中記錄壞塊的信息:

ORA-01578: ORACLE data block corrupted (file # 7, block # )
ORA-01110: data file : '/oracle1/oradata/V920/oradata/V816/users01.dbf'

其中,<AFN>代表壞塊所在數(shù)據(jù)文件的絕對(duì)文件號(hào),代表壞塊是數(shù)據(jù)文件上的第幾個(gè)數(shù)據(jù)塊

出現(xiàn)這種情況時(shí),應(yīng)該首先檢查是否是硬件及操作系統(tǒng)上的故障導(dǎo)致Oracle數(shù)據(jù)庫(kù)出現(xiàn)壞塊。在排除了數(shù)據(jù)庫(kù)以外的原因后,再對(duì)發(fā)生壞塊的數(shù)據(jù)庫(kù)對(duì)象進(jìn)行處理。

1.確定發(fā)生壞塊的數(shù)據(jù)庫(kù)對(duì)象

SELECT tablespace_name,segment_type,owner,segment_name
FROM  dba_extents WHERE  file_id =
AND between block_id AND block_id+blocks-1;
2.決定修復(fù)方法

如果發(fā)生壞塊的對(duì)象是一個(gè)索引,那么可以直接把索引DROP掉后,再根據(jù)表里的記錄進(jìn)行重建;

如果發(fā)生壞塊的表的記錄可以根據(jù)其它表的記錄生成的話,那么可以直接把這個(gè)表DROP掉后重建;

如果有數(shù)據(jù)庫(kù)的備份,則恢復(fù)數(shù)據(jù)庫(kù)的方法來進(jìn)行修復(fù);

如果表里的記錄沒有其它辦法恢復(fù),那么壞塊上的記錄就丟失了,只能把表中其它數(shù)據(jù)塊上的記錄取出來,然后對(duì)這個(gè)表進(jìn)行重建。

3.用Oracle提供的DBMS_REPAIR包標(biāo)記出壞塊

exec DBMS_REPAIR.SKIP_CORRUPT_BLOCKS('','');

4.使用Create table as select命令將表中其它塊上的記錄保存到另一張表上

create table corrupt_table_bak as select * from corrupt_table;

5.用DROP TABLE命令刪除有壞塊的表

drop table corrupt_table;

6.用alter table rename命令恢復(fù)原來的表

alter table corrupt_table_bak rename to corrupt_table;

7.如果表上存在索引,則要重建表上的索引

八、操作系統(tǒng)相關(guān)維護(hù)

DBA要注意對(duì)操作系統(tǒng)的監(jiān)控:

l  文件系統(tǒng)的空間使用情況(df -k),必要時(shí)對(duì)Oracle的警告日志及TRC文件進(jìn)行清理

l  如果Oracle提供網(wǎng)絡(luò)服務(wù),檢查網(wǎng)絡(luò)連接是否正常

l  檢查操作系統(tǒng)的資源使用情況是否正常

l  檢查數(shù)據(jù)庫(kù)服務(wù)器有沒有硬件故障,如磁盤、內(nèi)存報(bào)錯(cuò)

關(guān)于Oracle數(shù)據(jù)庫(kù)日常維護(hù)是怎么樣的就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。


網(wǎng)站名稱:Oracle數(shù)據(jù)庫(kù)日常維護(hù)是怎么樣的
文章位置:http://weahome.cn/article/goodde.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部