国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > Oracle > 正文

啟動(dòng)Oracle常見疑難問題分析

2024-08-29 13:29:47
字體:
供稿:網(wǎng)友
,歡迎訪問網(wǎng)頁設(shè)計(jì)愛好者web開發(fā)。啟動(dòng)oracle常見疑難問題分析  (2003-10-1) 

本文出自《網(wǎng)管員世界》2003年第10期“故障診斷”欄目

實(shí)例和數(shù)據(jù)庫的啟動(dòng)與關(guān)閉是dba的重要職責(zé)之一。只有打開數(shù)據(jù)庫,其他用戶才能對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行操作。一旦數(shù)據(jù)庫關(guān)閉,便不能對其操作。對于dba們來說,關(guān)閉和重新啟動(dòng)數(shù)據(jù)庫以便優(yōu)化、調(diào)整應(yīng)用程序的運(yùn)行是經(jīng)常碰到的事情。如果用戶已經(jīng)進(jìn)入了數(shù)據(jù)庫,使用shutdown immediate 或shutdown abort命令來執(zhí)行關(guān)閉數(shù)據(jù)庫,則用戶將失去連接,直到數(shù)據(jù)庫重新啟動(dòng)。經(jīng)常關(guān)閉和啟動(dòng)會(huì)對數(shù)據(jù)庫性能造成一定的影響,當(dāng)然也會(huì)影響到用戶對數(shù)據(jù)庫的使用。本文從管理數(shù)據(jù)庫的角度來分析在oracle啟動(dòng)和關(guān)閉時(shí)經(jīng)常遇到的問題,并總結(jié)了在啟動(dòng)和關(guān)閉oracle數(shù)據(jù)庫中應(yīng)該注意的問題和事項(xiàng)。

啟動(dòng)常見問題

(一)在一個(gè)控制文件被損壞情況下,如何正常啟動(dòng)?
系統(tǒng)環(huán)境
操作系統(tǒng):windows 2000 advanced server
數(shù)據(jù)庫: oracle 8i r2 (8.1.6) for nt 企業(yè)版
安裝路徑:c:/oracle
錯(cuò)誤現(xiàn)象
因硬盤有壞道,一個(gè)控制文件損壞了,或人工誤刪一個(gè)控制文件,控制面板的oracle相關(guān)服務(wù)可以啟動(dòng)成功,但用sql*plus無法連接。錯(cuò)誤提示為“ora-01034: oracle not available”。
解決方法
(1)在開始菜單中直接運(yùn)行命令,進(jìn)入“svrmgrl>”提示符模式。
(2)在“svrmgrl>”提示符下鍵入“connect internal”命令。
(3)在“svrmgrl>”提示符下鍵入“shutdown abort”命令關(guān)閉數(shù)據(jù)庫。
(4)找到init.ora文件,它一般位于“c:/oracle/admin/oradb/pfile”目錄下,然后修改init.ora文件,使無法使用的控制文件不在control_files參數(shù)中定義。如“c:/oracle/oradata/oradb/control03.ctl”,可在init.ora中將其刪除掉,或者更換成其它可啟動(dòng)的控制文件。
修改前:
control_files=(“c:/oracle/oradata/oradb/control01.ctl”.c:/oracle/oradata/oradb/control02.ctl“,”“c:/oracle/oradata/oradb/control03.ctl”)
修改后:
control_files=(“c:/oracle/oradata/oradb/
control01.ctl”,“c:/oracle/oradata/oradb/control02.ctl”)
(5)重新啟動(dòng)數(shù)據(jù)庫實(shí)例,即可解決問題。
注意:在控制文件中最少要有兩個(gè)控制文件。

(二)聯(lián)機(jī)熱備份失敗后,如何打開數(shù)據(jù)庫?
系統(tǒng)環(huán)境:
操作系統(tǒng):windows 2000 advanced server
數(shù)據(jù)庫: oracle 8i r2 (8.1.6) for nt 企業(yè)版
安裝路徑:c:/oracle
錯(cuò)誤現(xiàn)象
進(jìn)行聯(lián)機(jī)熱備份時(shí),服務(wù)器發(fā)生故障(如掉電等)。重新啟動(dòng)服務(wù)器后,再啟動(dòng)數(shù)據(jù)庫時(shí),無法打開數(shù)據(jù)庫,oracle要求進(jìn)行介質(zhì)恢復(fù),因?yàn)楸砜臻g還處在熱備份狀態(tài)。
解決方法
(1)先將數(shù)據(jù)庫設(shè)置為歸檔模式
c:/>svrmgrl
svrmgrl>connect internal
svrmgrl>alter tablespace 表空間名 begin backup;
說明:這是在表空間進(jìn)行熱備份模式?jīng)]結(jié)束時(shí),就強(qiáng)行關(guān)閉數(shù)據(jù)庫所造成的錯(cuò)誤。
svrmgrl>shutdown abort
svrmgrl>startup mount
(2)將此表空間的數(shù)據(jù)文件在沒打開數(shù)據(jù)庫時(shí),設(shè)置成“end backup”模式
svrmgrl>alter database datafile '表空間的數(shù)據(jù)文件名' end backup;
(3)執(zhí)行表空間介質(zhì)恢復(fù)
svrmgrl>recover tablespace 表空間名;
svrmgrl>alter database open;

(三)oracle啟動(dòng)時(shí),監(jiān)聽器不啟動(dòng)或打開出錯(cuò)? 
錯(cuò)誤現(xiàn)象:
oracle啟動(dòng)時(shí),監(jiān)聽器不啟動(dòng)或打開出錯(cuò);服務(wù)器端:用username/password登錄正常,但用username/[email protected]登錄不成功;客戶端:用username/[email protected]登錄不成功
解決方法
(1)如果是因?yàn)樾薷牧薾t的機(jī)器名,則把listener.ora文件中的host參數(shù)全部改為新的nt機(jī)器名,重新啟動(dòng)oracletnslistener80服務(wù)即可。
例如:
listener =
(address_list =
(address = (protocol = tcp)(host = nt_name)(port = 1521))
(address=(protocol=tcp)(host=nt_name)(port= 1526))
  )
(2)使用監(jiān)聽器實(shí)用程序:lsnrctl80.exe。
(3)檢查監(jiān)聽器參數(shù)文件:c:/orant/net80/admin/
listener.ora。
(4)檢查監(jiān)聽器日志文件:c:/orant/net80/log/
listener.log。
(5)tnsnames.ora文件配置錯(cuò)誤,重新配置。
(6)檢查client端 tnsnames.ora。

(四)oracle enterprise manager(oem)工具中如何以sysoper、sysdba方式登錄?
軟件環(huán)境:
windows nt4.0+oracle 8.0.4
oracle安裝路徑為:c:/orant
錯(cuò)誤現(xiàn)象
在以oracle enterprise manager(oem)工具登錄數(shù)據(jù)庫時(shí),不論是sys用戶、system用戶,還是其他用戶,在connect as欄中以sysdba或sysoper角色登錄均遭拒絕,報(bào)錯(cuò):ora-01017:invalid username/password;logon denied,但以normal登錄成功。
出錯(cuò)分析
在oracle數(shù)據(jù)庫中有三種連接方式:
(1)normal正常方式,基本連接方式,級(jí)別較低。
(2)sysopr系統(tǒng)方式,系統(tǒng)連接方式,高一級(jí)。
(3)sysdba管理員方式,是數(shù)據(jù)庫管理員連接方式,級(jí)別最高。
oracle8中,sys、system已經(jīng)只是具有特權(quán)的普通用戶,而internal才是dba。所以在dba進(jìn)行管理數(shù)據(jù)時(shí),只能使用具有特權(quán)的“internal”連接方式才不會(huì)出錯(cuò)。
解決方法
以internal/oracle方式連接即可。 

oracle數(shù)據(jù)庫的啟動(dòng)

啟動(dòng)實(shí)例
啟動(dòng)實(shí)例,以使oracle server完成如下任務(wù):
◆ 讀參數(shù)文件init.ora文件,以決定如何初始化該實(shí)例;
◆ 根據(jù)參數(shù)文件中提供的sga大小,來為sga分配存貯空間;
◆ 啟動(dòng)后臺(tái)進(jìn)程;
◆ 打開后臺(tái)跟蹤文件。
實(shí)例啟動(dòng)分正常啟動(dòng)和約束啟動(dòng)。所謂約束啟動(dòng),就是當(dāng)數(shù)據(jù)庫打開后,只能使具有restricted session系統(tǒng)特權(quán)的用戶與其相連接。而正常啟動(dòng)則允許所有用戶與其相連接。
實(shí)例啟動(dòng)有如下三種方式:
◆ 只啟動(dòng)實(shí)例;
◆ 啟動(dòng)實(shí)例并安裝數(shù)據(jù)庫,但不打開數(shù)據(jù)庫;
◆ 啟動(dòng)實(shí)例,并安裝和打開數(shù)據(jù)庫。

數(shù)據(jù)庫安裝
數(shù)據(jù)庫安裝就是將指定的數(shù)據(jù)庫與已啟動(dòng)的實(shí)例相聯(lián)系。被安裝的數(shù)據(jù)庫在打開之前保持關(guān)閉,此時(shí)只有dba能存取。在安裝數(shù)據(jù)庫時(shí),實(shí)例查找參數(shù)文件中的control-files參數(shù)所指定的控制文件,并打開它,從中取得數(shù)據(jù)庫的數(shù)據(jù)文件名和日志文件名,然后確認(rèn)這些文件是否存在。如果希望多個(gè)實(shí)例并發(fā)地安裝同一個(gè)數(shù)據(jù)庫,則dba可選擇并行方式安裝該數(shù)據(jù)庫。如果希望只有一個(gè)實(shí)例可安裝該數(shù)據(jù)庫,則選擇專用方式安裝該數(shù)據(jù)庫。如果oracle版本不支持并行服務(wù)器選項(xiàng),則只能按專用方式安裝數(shù)據(jù)庫。當(dāng)選擇并行方式安裝數(shù)據(jù)庫時(shí),并發(fā)安裝同一個(gè)數(shù)據(jù)庫的實(shí)例個(gè)數(shù)受預(yù)定義最大值的限制,而且在參數(shù)文件中必須有命名的私用回滾段或可用的公用回滾段。

打開數(shù)據(jù)庫
在安裝的數(shù)據(jù)庫被打開之前,所有合法的用戶(除dba)都不能對該數(shù)據(jù)庫進(jìn)行連接和存取;只有被打開以后才能進(jìn)行連接和存取。在打開數(shù)據(jù)庫的同時(shí),實(shí)例也打開在線的數(shù)據(jù)文件和在線日志文件。如果數(shù)據(jù)庫是由于實(shí)例的異常而中止或電源故障而被關(guān)閉時(shí),則下次打開它時(shí)會(huì)自動(dòng)執(zhí)行實(shí)例恢復(fù)。在數(shù)據(jù)庫被打開時(shí),實(shí)例試圖獲取一個(gè)或多個(gè)回滾段。在分布事務(wù)中,若當(dāng)—個(gè)數(shù)據(jù)庫因電源故障等突然被關(guān)閉,此時(shí)若有一個(gè)或多個(gè)分布式事務(wù)還沒提交或回滾,則在該數(shù)據(jù)庫被重新打開時(shí),繼續(xù)完成實(shí)例恢復(fù),reco后臺(tái)進(jìn)程將自動(dòng)、立即和一致地解決尚未提交或回滾的任何分布事務(wù)。

常用打開數(shù)據(jù)庫和實(shí)例命令方式
(1)startup nomount
非安裝啟動(dòng),這種啟動(dòng)方式下可執(zhí)行:重建控制文件、重建數(shù)據(jù)庫和啟動(dòng)instance,即啟動(dòng)sga和后臺(tái)進(jìn)程,這種啟動(dòng)只需要init.ora文件。
(2)startup mount dbname
安裝啟動(dòng),這種啟動(dòng)方式下可執(zhí)行:數(shù)據(jù)庫日志歸檔、數(shù)據(jù)庫恢復(fù)和重新命名一些數(shù)據(jù)庫文件。
(3)startup open dbname
先執(zhí)行“nomount”,然后執(zhí)行“mount”,再打開包括redolog文件在內(nèi)的所有數(shù)據(jù)庫文件,這種方式下可訪問數(shù)據(jù)庫中的數(shù)據(jù)。
(4)startup等于以下三個(gè)命令
startup nomount
alter database mount
alter database open
(5)startup restrict
約束方式啟動(dòng),這種方式能夠啟動(dòng)數(shù)據(jù)庫,但只允許具有一定特權(quán)的用戶訪問,非特權(quán)用戶訪問時(shí),會(huì)出現(xiàn)以下提示:
error:
ora-01035: oracle 只允許具有restricted session權(quán)限的用戶使用。
(6)startup force
強(qiáng)制啟動(dòng)方式,當(dāng)不能關(guān)閉數(shù)據(jù)庫時(shí),可以用startup force來完成數(shù)據(jù)庫的關(guān)閉,先關(guān)閉數(shù)據(jù)庫,再執(zhí)行正常啟動(dòng)數(shù)據(jù)庫命令。
(7)startup pfile=參數(shù)文件名
帶初始化參數(shù)文件的啟動(dòng)方式,先讀取參數(shù)文件,再按參數(shù)文件中的設(shè)置啟動(dòng)數(shù)據(jù)庫。例:startup pfile=e:/oracle/admin/oradb/pfile/init.ora
(8)startup exclusive 
    sql>conect internal
作為internal連接時(shí),connect命令不需要口令,因?yàn)槠涫跈?quán)是由操作系統(tǒng)隱式提供的。internal連接等價(jià)于sys連接,它們都是擁有oracle數(shù)據(jù)字典的用戶。

應(yīng)用
在unix下啟動(dòng)oracle8i,其整個(gè)過程步驟如下:
(1)telnet 主機(jī)ip或者是主機(jī)名
user:***** password:*****
(2)lsnrctl start
(3)svrmgrl
(4)svrmgrl>connect internal
(5)svrmgrl>startup

實(shí)例和數(shù)據(jù)庫的關(guān)閉

關(guān)閉實(shí)例的步驟
關(guān)閉實(shí)例后,sga從內(nèi)存撤消,后臺(tái)進(jìn)程被停止。關(guān)閉實(shí)例的步驟如下:
(1)啟動(dòng)sql*dba
(2)作為internal用戶與數(shù)據(jù)庫相連接
(3)關(guān)閉實(shí)例
◆ 關(guān)閉數(shù)據(jù)庫
◆ 卸下數(shù)據(jù)庫
◆ 關(guān)閉實(shí)例

關(guān)閉數(shù)據(jù)庫
數(shù)據(jù)庫關(guān)閉時(shí),首先將sga中的所有數(shù)據(jù)庫數(shù)據(jù)和日志項(xiàng)數(shù)據(jù)寫入相應(yīng)的數(shù)據(jù)文件和日志文件。然后關(guān)閉所有聯(lián)機(jī)數(shù)據(jù)文件和日志文件。在數(shù)據(jù)庫關(guān)閉后和卸下之前,控制文件仍保持打開,此時(shí)如果需要打開時(shí),還可重新打開數(shù)據(jù)庫。

卸下數(shù)據(jù)庫
卸下數(shù)據(jù)庫就是切斷實(shí)例與數(shù)據(jù)庫的聯(lián)系,關(guān)閉數(shù)據(jù)庫控制文件,使內(nèi)存僅保留實(shí)例。

常用關(guān)閉數(shù)據(jù)庫和實(shí)例命令
(1)shutdown normal(正常關(guān)閉數(shù)據(jù)庫)
在正常關(guān)閉情況下,oracle在關(guān)閉數(shù)據(jù)庫前,等待所有與之相連接的用戶正常結(jié)束其對話。于是在下次啟動(dòng)數(shù)據(jù)庫時(shí),就不需要恢復(fù)實(shí)例。
(2)shutdown immediate(立即方式關(guān)閉數(shù)據(jù)庫)
當(dāng)選擇immediate關(guān)閉方式時(shí),即實(shí)現(xiàn)直接關(guān)閉。在svrmgrl中執(zhí)行shutdown immediate,數(shù)據(jù)庫并不立即關(guān)閉, 而是在oracle執(zhí)行某些清除工作后才關(guān)閉(終止會(huì)話、釋放會(huì)話資源),當(dāng)使用shutdown不能關(guān)閉數(shù)據(jù)庫時(shí),shutdown immediate可以完成數(shù)據(jù)庫關(guān)閉的操作。
該關(guān)閉方式主要用于下列情況:
①馬上停電;
②oracle正在非正規(guī)的運(yùn)行數(shù)據(jù)庫或一個(gè)數(shù)據(jù)庫應(yīng)用。
該方式關(guān)閉數(shù)據(jù)庫過程如下:
①oracle結(jié)束當(dāng)前正在處理的sql語句;
②回滾未提交的事務(wù);
③oracle不等待與之相連接的用戶退出連接,就直接中斷他們,使用這種關(guān)閉方式,下次啟動(dòng)數(shù)據(jù)庫時(shí),oracle應(yīng)自動(dòng)執(zhí)行實(shí)例恢復(fù)。
(3)shutdown abort(撤消實(shí)例方式關(guān)閉數(shù)據(jù)庫)
這是一種最快的關(guān)閉方式,它主要用于下列情況:
①一分鐘后就要停電;
②oracle正在非正規(guī)的運(yùn)行數(shù)據(jù)庫或一個(gè)數(shù)據(jù)庫應(yīng)用,并且其它的關(guān)閉方式失效;
③啟動(dòng)一個(gè)數(shù)據(jù)庫實(shí)例時(shí)碰到問題。
該方式關(guān)閉數(shù)據(jù)庫的過程如下:
①oracle不等待調(diào)用完成,直接中斷正在處理的sql語句;
②回滾未提交事物。
使用這種關(guān)閉方式,下次啟動(dòng)數(shù)據(jù)庫時(shí),oracle應(yīng)自動(dòng)執(zhí)行實(shí)例恢復(fù)。啟動(dòng)和關(guān)閉實(shí)例和數(shù)據(jù)庫的操作需要connect internal系統(tǒng)特權(quán),安裝和打開數(shù)據(jù)庫的操作還要有alter database系統(tǒng)特權(quán)。直接關(guān)閉數(shù)據(jù)庫,正在訪問數(shù)據(jù)庫的會(huì)話會(huì)被突然終止,如果數(shù)據(jù)庫中有大量操作正在執(zhí)行,這時(shí)執(zhí)行shutdown abort后,重新啟動(dòng)數(shù)據(jù)庫需要很長時(shí)間。

應(yīng)用
在unix中關(guān)閉oracle8i,其具體步驟如下:
svrmgrl>connect internal
svrmgrl>shutdown
svrmgrl>exit

在關(guān)閉oracle數(shù)據(jù)庫時(shí)需注意問題

不要提前關(guān)閉sql*net。
當(dāng)需要shutdown數(shù)據(jù)庫,不要提前關(guān)閉sql*net,直到確認(rèn)關(guān)閉了server上的所有數(shù)據(jù)庫后再關(guān)閉sql*net。如果關(guān)閉了sql*net,用戶將失去和數(shù)據(jù)庫的會(huì)話。

存檔或刪除舊的trace files和logs
當(dāng)啟動(dòng)oracle的一個(gè)實(shí)例時(shí),oracle把關(guān)于該實(shí)例的診斷信息寫入指定的trace和log文件。每個(gè)后臺(tái)進(jìn)程都增加一個(gè)trace文件,它被存儲(chǔ)在指定的目錄,該路徑由init.ora或config.ora文件中的background_dump_dest參數(shù)指定。用戶在數(shù)據(jù)庫中遇到一個(gè)內(nèi)部錯(cuò)誤時(shí)也增加用戶的trace文件,該文件的位置由init.ora或config.ora文件中的user_dump_dest參數(shù)指定。trace文件的個(gè)數(shù)和名稱形式由使用數(shù)據(jù)庫的操作系統(tǒng)決定。
在每次啟動(dòng)和關(guān)閉數(shù)據(jù)庫時(shí),oracle不會(huì)自動(dòng)刪除trace文件。如果長期不刪除這些無用文件,它們將占據(jù)數(shù)據(jù)庫中大量的自由空間。數(shù)據(jù)庫管理員應(yīng)該很好的管理這些文件,可以采取刪除或者存檔的策略來避免無用文件占用大量自由空間。
sql*net也產(chǎn)生log文件,一般叫l(wèi)istener.log,listener.log文件大小也隨著啟動(dòng)的次數(shù)不斷的變大,所以通過妥善管理它也能有效的利用空間。查看該文件可以鍵入命令:
lsnrctl status
在oracle8i中使用該命令,其顯示結(jié)果為:
o200 5% lsnrctl status
lsnrctl for sgi irix64: version 8.1.6.0.0 - production on 09-apr-2003 09:16:26
(c) copyright 1998, 1999, oracle corporation.  all rights reserved.
connecting to (address=(protocol=ipc)(key=pnpkey))
status of the listener
alias                     listener
version                   tnslsnr for sgi irix64: version 8.1.6.0.0 - production
start date                19-mar-2003 14:43:53
uptime                    20 days 18 hr. 4607182418800017439 min. 56 sec
trace level               off
security                  off
snmp                      off
listener log file         /data/ora8i/orahome/network/log/listener.log
the listener supports no services
the command completed successfully

改名alert log文件
alert log文件也是用來記錄instance的診斷信息的。它的存放目錄也通過background_dump_dest參數(shù)來指定。一般情況下alert log文件命名方式為:alert_ .log。alter log文件包括了一些數(shù)據(jù)庫主要事件信息,例如:startup和shutdown及redolog的使用、表空間的改變、文件的改變、內(nèi)部錯(cuò)誤信息和數(shù)據(jù)庫備份狀態(tài)的改變等。
alter log在后續(xù)數(shù)據(jù)庫的使用中,其增長速度非常快。如果一段時(shí)間后,再查看它時(shí),其文件已經(jīng)變得非常大,所以查看它是非常的費(fèi)勁。一般來講,為了既能留下這些有用的信息,同時(shí)不至于浪費(fèi)很大的空間,最好的管理辦法就是給它改名。可以在任何時(shí)候更改alter log文件名,建議在shutdown/startup數(shù)據(jù)庫時(shí)更改名字。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 白城市| 陈巴尔虎旗| 广西| 尚志市| 郎溪县| 三穗县| 鄄城县| 宝山区| 周口市| 漳州市| 金塔县| 海兴县| 陆良县| 集安市| 泾源县| 华容县| 辽阳市| 乡城县| 天津市| 三台县| 肃南| 河北区| 安化县| 尉氏县| 安福县| 枝江市| 永康市| 深水埗区| 遵化市| 红安县| 武功县| 通海县| 集安市| 天等县| 尚志市| 东宁县| 溆浦县| 静安区| 元朗区| 高要市| 高要市|