最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

[Oracle] 解析在沒有備份的情況下undo損壞怎么辦

 更新時間:2013年07月12日 11:16:18   作者:  
Oracle在運(yùn)行中很不幸遇到undo損壞,當(dāng)然最好的方法是完全恢復(fù),但如果是在沒有備份的情況下undo損壞怎么辦?以下就為大家介紹出現(xiàn)這種情況的解決辦法,需要的朋友參考下

如果Oracle在運(yùn)行中很不幸遇到undo損壞,當(dāng)然最好的方法是完全恢復(fù),不過如果沒有備份,可以采用一種非常規(guī)的手段(利用Oracle的隱藏參數(shù)),如果此時undo包含未提交的事務(wù),會造成一點(diǎn)點(diǎn)的數(shù)據(jù)丟失(一般都是可忍受的),如果沒有未提交的事務(wù),則不會有數(shù)據(jù)丟失。其主要步驟有:

1. 修改undo表空間管理為手動;
2. 設(shè)置隱藏參數(shù)(_offline_rollback_segments或_corrupted_rollback_segments)標(biāo)識受影響的回滾段,使Oracle忽略其上的未提交事務(wù);
3. 手動刪除受影響的回滾段和undo表空間,然后重建新的undo表空間;
4. 還原undo表空間管理為自動。

實(shí)驗(yàn)如下:
Step 1.
如果undo數(shù)據(jù)文件損壞,數(shù)據(jù)庫只能到mount狀態(tài),open時會出現(xiàn)以下錯誤:
ORA-01157: cannot identify/lock data file 14 - see DBWR trace file
ORA-01110: data file 14: 'I:\INTEL_DATA\O06DMS0\UNDO1.O06DMS0'
說明該undo文件已經(jīng)損壞或丟失,把該文件offline之后就可以打開數(shù)據(jù)庫了:
SQL> alter database datafile 'I:\INTEL_DATA\O06DMS0\UNDO1.O06DMS0' offline drop;
SQL> alter database open;
打開數(shù)據(jù)庫的目的是為了找出受影響的回滾段:
SQL> select segment_name,status from dba_rollback_segs;

SEGMENT_NAME                   STATUS
------------------------------ ----------------
SYSTEM                         ONLINE
_SYSSMU10_1201331463$          OFFLINE
_SYSSMU9_2926456744$           OFFLINE
_SYSSMU8_640224757$            OFFLINE
_SYSSMU7_3984293596$           OFFLINE
_SYSSMU6_3694658906$           OFFLINE
_SYSSMU5_3475919656$           OFFLINE
_SYSSMU4_168502732$            OFFLINE
_SYSSMU3_1987193959$           OFFLINE
_SYSSMU2_3908286755$           OFFLINE
_SYSSMU1_3281912951$           OFFLINE

SQL> show parameter undo

NAME                                 TYPE        VALUE
------------------------------------ ----------- -------------
undo_management                      string      AUTO
undo_retention                       integer     900
undo_tablespace                      string      undo1
關(guān)閉數(shù)據(jù)庫:
SQL> shutdown immediate;

Step 2.
創(chuàng)建一個臨時的pfile:
SQL> create pfile='H:\initO06DMS0.ora' from spfile;
修改pfile如下:
*.undo_management='manual'   -- undo表空間管理方式修改為手動
*.undo_tablespace='undo2'     --指定一個新的undo表空間
*._offline_rollback_segments=('_SYSSMU10_1201331463$','_SYSSMU9_2926456744$','_SYSSMU8_640224757$','_SYSSMU7_3984293596$','_SYSSMU6_3694658906$','_SYSSMU5_3475919656$','_SYSSMU4_168502732$','_SYSSMU3_1987193959$','_SYSSMU2_3908286755$','_SYSSMU1_3281912951$')  --把所有受影響的回滾段都列在這里
并以改pfile重新啟動數(shù)據(jù)庫:
SQL> startup pfile='H:\initO06DMS0.ora'

Step 3.
手動刪除受影響的回滾段:
SQL>drop rollback segment "_SYSSMU10_1201331463$";
SQL>drop rollback segment "_SYSSMU9_2926456744$";
SQL>drop rollback segment "_SYSSMU8_640224757$";
SQL>drop rollback segment "_SYSSMU7_3984293596$";
SQL>drop rollback segment "_SYSSMU6_3694658906$";
SQL>drop rollback segment "_SYSSMU5_3475919656$";
SQL>drop rollback segment "_SYSSMU4_168502732$";
SQL>drop rollback segment "_SYSSMU3_1987193959$";
SQL>drop rollback segment "_SYSSMU2_3908286755$";
SQL>drop rollback segment "_SYSSMU1_3281912951$";
手動刪除舊的undo表空間:
SQL> drop tablespace undo1 including contents;
重建新的undo表空間:
SQL> create undo tablespace undo2 datafile 'I:\INTEL_DATA\O06DMS0\UNDO2.O06DMS0' size 100m;
創(chuàng)建新的spfile,覆蓋舊的spfile:
SQL> create spfile from pfile='H:\initO06DMS0.ora';
關(guān)閉數(shù)據(jù)庫:
SQL> shutdown immediate;

Step 4.
以原來的spfile啟動數(shù)據(jù)庫:
SQL> startup;
還原undo表空間管理為自動:
SQL> alter system set undo_management='auto' scope=spfile;
取消隱藏參數(shù)的設(shè)置:
SQL> alter system reset "_offline_rollback_segments" scope=spfile;
重啟使其生效:
SQL> shutdown immediate;
SQL> startup
SQL> show parameter undo

NAME                                 TYPE        VALUE
------------------------------------ ----------- -------------------
undo_management                      string      AUTO
undo_retention                       integer     900
undo_tablespace                      string      undo2

最終檢查一下:
SQL> select segment_name,status from dba_rollback_segs;

SEGMENT_NAME                   STATUS
------------------------------ ----------------
SYSTEM                         ONLINE
_SYSSMU40_1968985325$          ONLINE
_SYSSMU39_4040503138$          ONLINE
_SYSSMU38_4059847715$          ONLINE
_SYSSMU37_2692202156$          ONLINE
_SYSSMU36_2617425201$          ONLINE
_SYSSMU35_1133967719$          ONLINE
_SYSSMU34_1916939664$          ONLINE
_SYSSMU33_99444166$            ONLINE
_SYSSMU32_162619813$           ONLINE
_SYSSMU31_830375278$           ONLINE

相關(guān)文章

  • oracle刪除已存在的表的實(shí)例

    oracle刪除已存在的表的實(shí)例

    查詢系統(tǒng)表,判斷表是否存在,存在則直接刪除
    2013-02-02
  • Oracle在DML語句中使用returing?into子句

    Oracle在DML語句中使用returing?into子句

    這篇文章介紹了Oracle在DML語句中使用returing?into子句的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • Oracle Index索引無效的原因與解決方法

    Oracle Index索引無效的原因與解決方法

    這篇文章主要給大家介紹了關(guān)于Oracle Index索引無效的原因與解決方法,文中通過示例代碼以及圖文介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • Navicat連接Oracle數(shù)據(jù)庫的詳細(xì)步驟與注意事項(xiàng)

    Navicat連接Oracle數(shù)據(jù)庫的詳細(xì)步驟與注意事項(xiàng)

    Navicat是一套可創(chuàng)建多個連接的數(shù)據(jù)庫管理工具,用以方便管理各種數(shù)據(jù)庫,下面這篇文章主要給大家介紹了關(guān)于Navicat連接Oracle數(shù)據(jù)庫的詳細(xì)步驟與注意事項(xiàng),文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-04-04
  • oracle中利用關(guān)鍵字rownum查詢前20名員工信息及rownum用法

    oracle中利用關(guān)鍵字rownum查詢前20名員工信息及rownum用法

    這篇文章主要介紹了oracle中利用關(guān)鍵字rownum查詢前20名員工信息,本文通過代碼給大家簡單介紹了ORACLE 中ROWNUM用法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-04-04
  • Orcale 數(shù)據(jù)庫客戶端PL/SQL 中文亂碼的問題解決方法

    Orcale 數(shù)據(jù)庫客戶端PL/SQL 中文亂碼的問題解決方法

    這篇文章主要介紹了Orcale 數(shù)據(jù)庫客戶端PL/SQL 中文亂碼的問題解決方法,需要的朋友可以參考下
    2014-05-05
  • Oracle數(shù)據(jù)庫表備份導(dǎo)入導(dǎo)出dmp的方式及踩坑記錄

    Oracle數(shù)據(jù)庫表備份導(dǎo)入導(dǎo)出dmp的方式及踩坑記錄

    dmp是數(shù)據(jù)庫導(dǎo)出的文件,用以備份數(shù)據(jù)庫用,一般會用exp命令來導(dǎo)出,用imp命令來導(dǎo)入也就是恢復(fù)數(shù)據(jù)庫,下面這篇文章主要給大家介紹了關(guān)于Oracle數(shù)據(jù)庫表備份導(dǎo)入導(dǎo)出dmp的方式及踩坑記錄,需要的朋友可以參考下
    2022-07-07
  • oracle中存儲函數(shù)與存儲過程的區(qū)別介紹

    oracle中存儲函數(shù)與存儲過程的區(qū)別介紹

    這篇文章主要介紹了oracle中存儲函數(shù)與存儲過程的區(qū)別介紹,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-10-10
  • Oracle中的instr()函數(shù)應(yīng)用及使用詳解

    Oracle中的instr()函數(shù)應(yīng)用及使用詳解

    這篇文章主要介紹了Oracle中的instr()函數(shù)應(yīng)用及使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • Oracle查詢執(zhí)行計(jì)劃

    Oracle查詢執(zhí)行計(jì)劃

    執(zhí)行計(jì)劃(Execution Plan)也叫查詢計(jì)劃(Query Plan),它是數(shù)據(jù)庫執(zhí)行SQL語句的具體步驟和過程。本文主要介紹了Oracle查詢執(zhí)行計(jì)劃方法,感興趣的同學(xué)可以參考閱讀
    2023-04-04

最新評論

溆浦县| 固始县| 峨眉山市| 河北省| 进贤县| 乐陵市| 景泰县| 花莲县| 旌德县| 永和县| 宽城| 鄱阳县| 滦平县| 南昌县| 永和县| 开封县| 旬邑县| 航空| 信丰县| 米易县| 三原县| 浮山县| 高邮市| 上思县| 宜君县| 伽师县| 延寿县| 岳池县| 榆林市| 祁门县| 来宾市| 南郑县| 潼关县| 定安县| 东兰县| 贵定县| 麻阳| 怀仁县| 灌南县| 黎川县| 陆丰市|