⑴ oracle進程號在process查不到
如果您在使用Oracle資料庫時,在process中無法找到某個進程號,可能有以下幾種虛拆情況:
1. 進程已經結束:如果該進程已經結束,則您在process中將無法找到該進程號。您可以嘗試使用歷史記錄等方式查看該進程的狀態。
2. 沒有足夠的權宴譽前限:如果您沒有足夠的許可權訪問Oracle資料庫,則可能會導致無法查看某些進程號。請確保您的用戶具有足夠的許可權。
3. 進程號被重用:如果Oracle資料庫已經重啟過,那麼在process中可以看到之前使用過的進程號被重新分配給其他新進程使用,導致您無法找到原來的進程號。
4. 資料庫問題:如果您遇到其他問題,例如Oracle資料庫出現問題或崩潰,也可能導致您無法在process中找到某個進程號。
總之,如果您在process中無法找到某個Oracle進程號,請先檢查以上幾種情況,如果問題仍無法晌清解決,建議聯系資料庫管理員或者Oracle技術支持進行進一步排查和處理。
⑵ oracle存儲過程失效重啟後恢復正常
根據oracle資料庫的特點和提供的工具,主要方法有以下幾種方法:
利用邏輯備份使用import工具丟失數據的表
利用物理備份來通過還原數據文件並進行不悉高完全恢復
利用dbms_logmnr包從redo log文件中恢復
利用flashback特性恢復數據
前提
為了方便使用方法的介紹,上述恢復方法都將基於以下場景進行:系統管理員在前一天晚上11點用export對資料庫做了全庫邏輯備份,然後對所有數據文件進行了熱備份。第二天上午10點,系統管理員在修改表TFUNDASSET的數據時,由於修改語句的條件寫錯了,導致一批記錄(幾千條)的ztm欄位被修改成了錯誤的值,而且已經提交。這個表是資產表,相對而言數據變化不頻繁。
一、利用邏輯備份使用import工具恢復丟失的數據
export/import是oracle提供的用於對資料庫進行邏輯備份的工具。該工具適用於備份那些數據量不大、業務量不多的資料庫系統。因為如果在前一天晚上11點用export做了邏輯備份,那麼當今天上午10點資料庫意外崩潰時,從備份起到資料庫崩潰的這段時間里的數據修改操作(包括DDL和DML)都會丟失。如果丟失數據內的表上的數據是相對比較穩定,也就是說該表上基本沒有DML操作,例如標准代碼表、分區表裡的歷史數據,那麼採用import來導入該表可以比較完整的恢復數據。如果該表是經常變化的業務表,那麼這些丟失的數據只能根據業務情況從紙質記錄恢復,或者其他途徑恢復。
▲示例如下:這個表是一個資產表。相對來說,今天系統運行中修改的數據較少,丟失的數據量可以承受或者可以從別的途徑恢復。那就可以用import來恢復。
方法一:
1、把這個表的數據備份到另一個表:
.png
2、刪除該表的記錄:
.png
3、執行下面的命令:
.png
這個命令中在關鍵字tables中指定需要導入的表名字,ignore=y表示忽略表已經存在的錯誤。
4、導入結束後,檢查表中的記錄,並用適當的方法恢復當天的修改。
方法二:
1、 把需要恢復的表導入到另一個用戶下面:
.png
2、檢查數據以後,把原表記錄刪除:
.png
3、然後從另一用戶表中插入回去:
.png
4、 數據量比較大時可以採用如下方法:
.png
二、利用物理備份來通過還原數據文件並進行不完全恢復
如果資料庫運行在歸檔模式下,那麼可以通過使用以前的數據文件備份進行還原,然後利用歸檔日誌進行前滾,直到回滾到錯誤操作的時間點前,然後重置日誌文件打開資料庫。
可以通過下列方法確認是否是運行在歸檔模式:
.png
如果是如上所示,那麼就是運行在歸檔模式了。
▲假定在前一天晚上11點做了全庫物理備份,那麼可以考慮如下恢復:
1、關閉資料庫:
由於資料庫的不完全恢復必須在一個關閉的資料庫上實施,利用一個舊的資料庫的備份還原,然後用日誌根據需要逐步前滾,而不能還拆扒原一個新的備份,再回退到某個時間點。
通知各客戶端資料庫將關閉,然後旅陸昌發出:
.png
資料庫已經關閉。
已經卸載資料庫。
ORACLE 常式已經關閉。
2、確定錯誤操作的時間:
可以根據操作員的估計來確定不完全恢復需要前滾停止的時間,也可以利用LogMiner來分析日誌文件(這個工具將在後面介紹),找出錯誤操作的准確時間。
3、還原數據文件:
先對當前的資料庫文件進行備份,然後再用以前的最近一次備份覆蓋現有數據文件。注意:不覆蓋現有的控制文件。
4、基於時間點恢復,啟動資料庫到裝配狀態:
.png
這樣資料庫就恢復到了2015年10月20日的9點58分零秒。
然後再利用業務資料補充這段時間內的數據。
三、利用dbms_logmnr包從log文件中恢復
這個包是由Oracle提供,與dbms_logmnr_d包配合使用可以方便地分析聯機日誌文件和歸檔日誌文件,從這些日誌文件中提取出所有對資料庫的更改操作。
在使用這個包之前,需要先做一些設置和修改:
1、打開initorcl.ora,修改初始化參數utl_file_dir,設置dbms_logmnr_d包將要使用的數據字典文件的放置目錄。
.png
然後重啟資料庫使參數生效。
2、以sys用戶連接到資料庫執行dbmslmd.sql腳本重建dbms_logmnr_d這個包。
應用Logminer分析重做日誌文件的操作主要有以下步驟:
● 使用dbms_logmnr_d里的存儲過程build創建一個外部數據字典文件;
● 使用dbms_logmnr里的存儲過程add_logfile添加要分析的日誌文件;
● 使用dbms_logmnr里的存儲過程start_logmnr啟動分析;
● 查詢與dbms_logmnr相關的幾個視圖來獲取日誌文件內容;
● 使用dbms_logmnr里的存儲過程end_logmnr結束分析。
▲下面詳細講述使用的過程
1、使用dbms_logmnr_d里的存儲過程build創建一個外部數據字典文件:
.png
2、使用dbms_logmnr里的存儲過程add_logfile添加要分析的日誌文件到待分析文件列表:
.png
如果沒有運行在歸檔模式,那麼由於重做日誌文件的循環使用可能導致日誌文件被覆蓋而無法獲取到所要尋找的恢復條目。如果運行在歸檔模式,則可以通過查看$ORACLE_HOMEadminorclbmp目錄下的alert_orcl.log里日誌文件歸檔的時間和錯誤操作的時間來確定加入哪些歸檔日誌文件到待分析的文件列表中去。
.png
注意:執行以上過程時logfilename參數需要寫日誌文件的全路徑,否則會報錯。重復以上操作直到把所有需要分析的文件都加到列表中去。這樣就可以啟動進行分析。
3、使用dbms_logmnr里的存儲過程start_logmnr啟動分析;
.png
這樣就可以通過下面的查詢來獲取日誌文件的內容了。
4、查詢與dbms_logmnr相關的幾個視圖來獲取日誌文件內容;
.png
這樣就可以找出要恢復所需的語句。注意:v$logmnr_contents只對執行dbms_logmnr.start_logmnr的會話有效,如果通過其他會話或者使用dbms_logmnr.end_logmnr終止了分析,都將不能訪問v$logmnr_contents的數據。如果要使其他會話也能獲取到這些數據,可以通過另外建表來實現,如:
create table undo_sql as select * from v$logmnr_contents。
再對undo_sql進行授權,其他用戶就可以訪問v$logmnr_contents的數據了。
5、使用dbms_logmnr里的存儲過程end_logmnr結束分析。
使用完成以後用下面的命令來結束分析活動:exec dbms_logmnr.end_logmnr;
這樣就釋放了分配給logminer的資源(內存和數據結構)。
從上面的過程可知,如果是更新的數據量比較大,而日誌文件比較小,就可能會導致日誌文件的切換。如果沒有及時去挖掘日誌文件(沒有運行在歸檔模式),那麼可能會由於日誌文件的循環使用而導致數據不可恢復。如果運行在歸檔模式,也可能由於需要分析的日誌文件比較多而時間較長。
四、利用flashback新特性恢復數據
Oracle9i 開始提供了閃回查詢(Flashback Query)功能,對於誤刪除或者誤更新並且已經commit了的情況提供了簡便快捷的恢復方法;而在Oracle 提供閃回查詢之前,碰到這種情況只能通過備份來進行基於時間點的恢復或者使用logmnr挖掘日誌來恢復,無疑這比閃回查詢要麻煩而且費時。
使用這個Flashback Query特性的前提條件:
1. 資料庫必須處於Automatic Undo Management 狀態。
.png
2. 最大可以閃回查詢的時間段由UNDO_RETENTION 初始化參數(單位為秒)指定
.png
可以通過ALTER SYSTEM SET UNDO_RETENTION = ;來動態修改參數值。
▲如何使用Flashback Query來恢復數據呢?
1. 通過SQL
.png
使用SELECT 語句的AS OF 來進行閃回查詢,語法如下:
使用AS OF 關鍵字來對表,視圖或者物化視圖進行Flashback Query,如果指定了SCN,那麼expr 部分必須是一個數字,如果指定了TIMESTAMP,那麼expr 必須是一個timestamp類型的值。查詢結果將返回在指定的SCN 或者時間點上的數據。
下面我們使用scott 方案來作一個實驗。
.png
如果想在update 的子查詢部分使用AS OF,那麼該查詢只能返回一條記錄,否則將會報錯。
可以通過添加一個臨時表作為中轉,然後再作更新,如下:
.png
2.通過DBMS_FLASHBACK包來恢復
DBMS_FLASHBACK 包提供了以下幾個函數:
ENABLE_AT_TIME:設置當前SESSION 的閃回查詢時間
ENABLE_AT_SYSTEM_CHANGE_NUMBER:設置當前SESSION 的閃回查詢SCN
GET_SYSTEM_CHANGE_NUMBER:取得當前資料庫的SCN
DISABLE:關閉當前SESSION 的閃回查詢
當將一個SESSION 設置為閃回查詢模式之後,後續的查詢都會基於那個時間點或者SCN 的資料庫狀態,如果SESSION 結束,那麼即使沒有明確指定DISABLE,閃回查詢也會自動失效。
當SESSION 運行在閃回查詢狀態時,不允許進行任何DML 和DDL 操作。如果要用DML操作來進行數據恢復就必須使用PL/SQL 游標。
▲示例:
.png
通過上面的例子可以看出,只要這個修改的時間不早於sysdate- (UNDO_RETENTION指定的秒數),就可通過這種方式來恢復數據。
.png
對於問題中的批量數據,可以寫個過程來完成獲取到更改前的數據:
然後再用這個臨時表裡的數據來更新TFUNDASSET就可以了。
五、總結
比較以上幾種恢復數據的方法的使用過程,我們可以看出:
● exp/imp只適合於數據變化不大的表的數據丟失的情況,即使用這種方法處理後也需要從業務辦理資料中修正數據,否則導致數據丟失;
● 採用基於時間點的不完全恢復可以恢復丟失的數據,但是需要關關閉資料庫,減少系統可用時間,而且也會丟失恢復時間點以後的數據;
● 使用LogMiner可以較好的恢復數據,但是要求資料庫盡可能運行在歸檔模式,否則也可能導致數據丟失。好處是不用關閉系統,能夠從日誌文件中得到所有的數據。
● 使用Flashback最方便和簡潔,可以直接得到修改前的數據,但是需要依賴系統設置,並且需要佔用大量的回滾表空間。
因此選擇什麼樣的方法來恢復數據,取決於你的系統環境和具體情況,不能生搬硬套。採用正確的方法才能最大程度的減少數據的丟失。
當然,最好是不需要用到這些恢復的辦法。前提是,你必須做好以下的工作:
1、 為不同環境創建不同的資料庫用戶、不同密碼(如果不能用戶不同,一定要密碼不同);
2、 將owner和應用用戶分開,並做適度授權;
3、 在做DML前,先用同樣的條件做查詢,看根據結果集是否符合預期。
⑶ 詳細講解Oracle資料庫運行錯誤的解決方法
Oracle數此遲巧據庫運行錯誤的解決方法
錯誤 ORA : ORACLE not available
Oracle安裝 啟動後用sqlplus / as sysdba 登陸 執行任何select語句都出現錯誤
select*fromdictionary * ERRORatline : ORA :ORACLEnotavailable
但是用toad等客戶端工具正常!
為什麼sqlplus不行呢?
另 我用的是
oracle
redhat as
解決方法:
更改一下linux用戶的環境變數ORACLE_SID就可以了
錯誤 ORA : shared memory realm does not exist
我試圖連接資料庫時的ORA 和 ORA 錯誤信息 它總是顯示這樣的信息 ORA Oracle not available 和 ORA shared memory realm does not exist
不能連接到我的Oracle 資料庫上
因為碰到防火牆森鍵的問題次數比較多 這次也先看看 發現根本就沒什麼攔截的 查看了一下監聽 資料庫旦跡實例也是運行著的
奇怪的事情 剛才還好好的 重啟了機器就不行了
解決方法:解決的方法倒是不麻煩
首先看一下 ORACLE_BASEORACLE_HOMEDATABASE 下面的 ORADIM LOG 文件
如果里邊有這個錯誤
ORA : 驗證適配器初始化失敗
那麼問題就是它了
到ORACLE_BASEORACLE_HOMENEORKADMIN下面找sqlnet ora文件
把sqlnet authentication_services=(NTS) 改成
sqlnet authentication_services=(NONE)
然後手動重起一下你的哪個資料庫服務 在開始 >控制面板 >管理工具 >服務里然後把這個服務的啟動帳號改成你的帳號吧 其實不改大概也沒有毛病 我就沒改 看了這個方法 出錯的原因大概有兩種情況 修改了帳戶 實例有些變動等
如果還不行 重啟電腦試試
ERROR ORA : TNS:listener does not currently know of service requested in connect descriptor
關於 ORA: :TNS 沒有監聽器 的問題
看看是不是監聽服務沒有起來
檢查有沒有修改IP地址 計算機名稱
對於 一般情況下是機器的IP地址更改了 我就碰到過這種情況 oracle g的安裝是在沒有聯網的狀態下 結果聯上網後OracleDBConsole*服務啟動不了 在此情況下我的解決方案是斷網啟動服務就好用了 其實問題在於初始配置的監聽/服務中的主機信息與現在的信息不符 如果要改便主機IP/名稱的話 也必須同時修改oracle中的相應配置 否則oracle找不到主機當然啟動不了
必須啟動的服務:OracleOraDb g_home TNSListener(監聽器) OracleService[sid]這兩項 後者可選為手動啟動(因為吃資源厲害)
後來又遇到OracleOraDb g_home TNSListener服務無法啟動的問題 google了下原來是被優化大師清注冊表時幹掉的 服務啟動路徑要在注冊表中添加
方法如下
看HKEY_LOCAL_ TNSListener有無ImagePath的字元串 沒有的話就加一個 值為 oracleproct db_ TNSLSNR(不只一處) 類似還有 優化大師幹掉VS 中的 NET framework的注冊表信息 當時我重裝了
lishixin/Article/program/Oracle/201311/17611
⑷ oracle資料庫服務宕機可能是什麼原因造成的
原因很多,內部原因外部原談橘伏因都有可能。
外部原因:比如伺服器宕機,系統錯誤,溫度過高宕機(比如機房空調壞了),臨時斷電,內存錯誤等等這些都有可能,電壓不足等等。
內部原因:比較常見的有undo文件損壞,數據文件錯誤(遇到過一次,最後用補0的伍察方法擴大了數據文件才好,不過現在用asm存儲,這個應該不怎麼可能了),時間調整錯誤(向後調,改動時間過長,比如00:00改為01:00,那麼就兩個情況都占,未必一定宕機,不過可能性很大),核心進含攜程錯誤(這個比較少見,不過真的有,有時是有人誤殺了),程序錯誤導致(見過一個因為某程序錯誤,導致鎖表,而後鎖表導致某進程一直佔用內存,後來的進程根本進不了該表,然後越滾越大最後宕機,還是後來查出來的,相當於蝴蝶扇翅膀變成颶風,所以有錯誤要及時發現才行),存儲錯誤,io爭用(持續時間長)等等。
這么說吧,很多的ora錯誤都可能引起宕機(並不是全部ora錯誤都會引起宕機),真要說的話要很長時間,如果想不宕機那麼就要有監測檢查制度,早發現早解決,也就不會有什麼問題了。
⑸ 強制關閉oracle的危害
強制關閉 Oracle 資料庫會帶來以下危害:
1. 數據丟失或損壞。如果在關閉過程中正在進行寫入操作,資料庫可能只完成了部分修改操作並且沒有把數據寫入磁碟。此時資料庫的數據可能出現不一致,導致數據的丟失和損壞,甚至使得資料庫無法正常啟動。
2. 資料庫崩潰。一些資料庫進程可能會繼續在運行,例如,提交事務還沒完成、查詢語句還沒執行完等等。如果資料庫被強制關閉,這些進程可能無法正常退出,資料庫就可能崩潰,導致系統棚型無法重啟。
3. 資料庫狀態不穩定。強制關閉 Oracle 資料庫可能導致某些系統資衡悶源受到損害。如果在關閉之後不及時進行修復,Oracle 資料庫就可能一直處於不穩定的狀態,影響其正常使用。
4. 資料庫可用性降低。強制關閉 Oracle 資料庫會破壞資料庫的一致性和完咐和彎整性,使資料庫無法正常工作。這對於用戶和開發人員來說都是非常不利的,因為他們需要可靠的資料庫來支持日常業務和開發。
因此,為了避免數據丟失、資料庫崩潰和狀態不穩定等問題出現,我們建議用戶在關閉 Oracle 資料庫之前,先進行相關的備份操作,並確保所有的操作完成之後再關閉資料庫。再或者在必要情況下使用正常的關機過程來關閉資料庫,避免使用強制關閉的方式。
⑹ ORA-03113錯誤分析
前言 每一個DBA在進行資料庫管理的過程中不可避免的要遇到形形 *** 的錯誤(ORA xxxx) 有些錯誤由於頻繁出現 原因復雜而被DBA們戲稱之為 經典的錯誤 其中ORA end of fileon munication channel 就是這樣的一個 我們可以簡單的把這個錯誤理解為Oracle客戶端進程和資料庫後台進程連接中斷 不過 導致這個錯誤的原因實際上有很多種 對資料庫設置不當 任何能導致資料庫後台進程崩潰的行為都可能產生這個錯誤 這個錯誤的出現還經常伴隨著其它錯誤 比如說 ORA ORACLE not available 此外 該錯誤出現的場景復雜 可能出現在: 啟動的Oracle的時侯; 試圖創建資料庫的時侯; 試圖對資料庫進行連接的時侯; 在客戶端正在運行SQL/PL/SQL的時侯; 備份/恢復資料庫的時侯; 其它一些情況下......在論壇上也時常可以看到初級DBA對這個問題的求救 在這里簡單的對該問題睜殲進行一下整理 不當之處 請多指教! 錯誤原因種種 根據網路上大家反映的情況來看 錯誤原因大約有這些: Unix核心參數設置不當 Oracle執行文件許可權不正確/環境變數問題 客戶端通信不能正確處理 資料庫伺服器崩潰/操作系統崩潰/進程被kill Oracle 內部錯誤 特定SQL PL/SQL引和早雀起的錯誤 空間不夠 防火牆的問題 其它原因在開始解決問題之前 作如下幾件事情: 回憶一下在出現錯誤之前你都做了什麼操作 越詳細越好; 查看background_mp_dest目錄中的alertSID log文件也是你要做的事情; Google一下 在互聯網上有很多信息等著你去發現 不要什麼都問別人 當然 如果你找到了一些對你非常有幫助的東西――這篇文檔就不用看了 別耽誤你的時間 呵呵 Unix核心參數設置不當/ init參數設置不當 如果資料庫在安裝過程中沒有設定正確的操作系統核心變數 可能在安裝資料庫文件的時侯沒甚麼問題 在創建資料庫的時侯常常會出現 錯誤 和此有關的另一個原因是init ora參數文件中的processes參數指定了不合理的值 啟動資料庫導致錯誤出現(當然這個歸根到底也是核心參數的問題) 這個錯誤信息一般如下 ORA : end of file on munication channelORA : ORACLE not availableORA : shared memory realm does not exist解決辦法有兩個 修改核心參數 加大相應核心參數的值(推薦); 減小init ora參數的Processes的值 需要注意的是 SEMMSL必須設定為至少要 + 進程數的最大值 SEMMNS 也依賴於每個資料庫上的進喚早程參數值 注 這個錯誤類型只在Unix平台上出現 在Windows上如果processes的值過大 則會出現 ORA : invalid value for parameter max_rollback_segments must bebeeen and /* 此時指定的參數值超過了 */或者ORA : out of memory/* 小於 的一個大參數值 */我的軟體環境 Windows Version Service Pack CPU type ORACLE RDBMS Version: 在特定平台上更改核心參數可能會有差別 請參考Oracle Technet()上的安裝文檔 對特定Unix平台的安裝文檔也有對核心參數意義的解釋 Init ora中的參數如果設置不當 會產生該錯誤 有經驗表明:shared_pool_size設置過小會出現錯誤 此外timed_statistics=true的設置也會帶來問題 Oracle執行文件許可權不正確/環境變數問題 這個問題只出現在Unix平台上 常見情況是有的時侯管理員為了方便而使用Unix的tar命令處理過的壓縮包進行的安裝 或者是系統管理員指定了額外的OS用戶也可以管理資料庫卻沒有指定正確的環境變數 Oracle執行文件在$ORACLE_HOME/bin目錄下 如果出現問題 應該用如下Unix類似命令來糾正 chmod $ORACLE_HOME/bin/oracle有的時侯要對Oracle進行relink操作 在Unix上通過cp拷貝安裝的時候 常常會出現環境變數的問題 和個別執行程序連接問題 LD_LIBRARY_PATH如果設置的不正確會導致問題 在這種情況下 需要對Oracle進行relink 如果可執行文件oralcle被破壞 也要對其relink 如果安裝了並行伺服器選項而Distributed Lock Manager沒有安裝或正確運行也會導致錯誤 客戶端通信不能正確處理 SQL*Net驅動器的問題 如果使用的版本比較低的驅動器 請更換到新版本的驅動 SQL*Net的驅動沒有連接到Oracle可執行文件會導致錯誤 檢查網路是否通暢 Windows平台的常見問題:在Windows平台創建資料庫的時侯 如果出現該問題可以考慮用如下的方法 首先檢查本地網路設置 查看網路上是否有同名的結點或有沖突的IP 如果問題依舊 可以保守的用下面的方法 禁用網卡 將本地連接狀態改為禁用; 將sqlnet ora文件打開(以記事本形式)將nts驗證注釋掉 #SQLNET AUTHENTICATION_SERVICES= (NTS) 創建資料庫; 創建成功後 恢復本地連接 資料庫伺服器崩潰/操作系統崩潰/進程被Kill 在連接過程中 如果Oracle資料庫的伺服器崩潰或者資料庫所在的操作系統崩潰 就會出現這個錯誤 Oracle Server崩潰的原因可能因為主要後台進程死掉 被錯誤的進行了Kill操作 如果是這個原因還是比較容易解決的 此外 和OS有關的應用程序存在內存泄漏(或者有病毒)的時侯也會導致Oracle後台程序問題 推薦排錯辦法: 查看應用軟體相關進程是否正常運行; 查看有無內存泄漏; 查殺病毒; 確定系統管理員沒有進行誤操作; 確定無黑客入侵行為 其它不確定因素...... Oracle 內部錯誤/ Bug 如果查看background_mp_dest目錄中的alert log發現有無ora 等錯誤 可以到Metalink站點上查看具體信息及其解決方案 一般情況下要打軟體補丁 特定SQL PL/SQL引起的錯誤嘗試把SQL進行分開執行 也可以用SQL_TRACE來進行跟蹤 找到導致問題的SQL語句 在SQLPlus下 ALTER SESSION SET SQL_TRACE TRUE;SQL語句中的非法字元和不合理的處理結果偶爾會帶來問題 系統空間不夠 任何時侯都要確保資料庫系統有足夠的空間 如果 USER_DUMP_DEST和BACKGROUND_DUMP_DEST沒有剩餘空間的話 會導致此問題 此外 如果打開了審計 AUDIT目錄要由足夠的空間 如果激活了Trace的話 Trace目錄要由足夠的空間 Dave Wotton的文檔表明 在對表進行插入數據的時侯 如果文件超過了 G(而文件系統有 G限制) 會導致該問題 防火牆的問題 如果數據要通過防火牆 請聯系系統管理員 詢問是否對資料庫數據進行了過濾或者是突然禁止了通行埠 如本地安裝有個人防火牆 請檢查本地設置 其它方面說明 導致這個錯誤的原因有很多種 上面列到的只是一些典型情況 經常去一些資料庫技術論壇可能會有幫助 比如說ITPUB() C NOUG()等 lishixin/Article/program/Oracle/201311/17658
⑺ 讓oracle資料庫崩潰的sql語句
dml操作(insert , delete , update)之後,一定要使用commit或rollback命令來結束該事務,否則直接關閉sql plus,資料庫默認rollback之前未提交的事漏喚御務,所以今天你在select的時候 會顯示未選定行。
而手動輸入commit,rollback 這類的命令,是顯示的提交事務(完成事務)。
如果在dml操作之鏈源後未及時顯示的提交,而是又進行了ddl操作(create alter...),則數據返岩庫會隱式的提交之前未完成的事務。
所以 下次一定要注意哦~~
⑻ 我的資料庫突然崩潰了,不知道是什麼原因
1,首先排除設置了正確的sid連接
如:c:\users\administrator>set
oracle_sid
=
orcl
//確定本機資料庫實例名
linux下用export
oracle_sid=orcl
2,以sysdba連接,關閉資料庫
sqlplus
/
as
sysdba
shutdown
immediate
如果不能關閉,windows下殺掉oracle進程,停掉oracle的服務
linux下:ps
-ef|grep
smon找到對應的pid
kill
-9
3,重新啟動試試
startup
如果還是不行,查看報錯原因,這里可能有很多,比如數據文件錯誤
4.這里假如你的錯誤是數據文件引起
shutdown
immediate
startup
mount
recover
datafile
;
alter
database
open;
就可以了
如果不是數據文件錯誤,貼出來看看吧
⑼ oracle資料庫崩潰了怎麼辦
把原來資料庫的數據文件、
日誌文件、
控制文件
拷貝到新裝資料庫的目錄下 然後STARTUP
⑽ oracle 導出dmp 會不會導致資料庫崩潰
當然不會了,導出dmp是對資料庫的備份,導出時會提示你需不需要導出數據和對象之類的。放心備份吧