一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Oracle - oracle 12c因誤刪pdb數據文件導致整個數據庫打不開的解決方法

oracle 12c因誤刪pdb數據文件導致整個數據庫打不開的解決方法

2020-03-22 19:56左直拳 Oracle

這篇文章主要給大家介紹了關于oracle 12c因誤刪pdb數據文件導致整個數據庫打不開問題的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起看看吧。

前言

最近因為一位同事誤刪了某個插件數據庫(PDB)的數據文件,結果整個數據庫,包括容器數據庫(CDB),以及其他插件數據庫都用不了了。無奈。。。通過嘗試各種方法最終解決了,覺著有必要將解決的過程分享出來,方法大家參考學習,下面話不多說了,來一起看看詳細的介紹吧。

方法如下:

1、用sys賬號進入實例,可見容器數據庫處于mounted狀態;插在上面的所有PDB當然也都是mounted。

?
1
sqlplus sys/pwd@orcl12c as sysdba;

2、試圖打開CDB,提示有數據庫文件未能加載。

?
1
2
3
4
5
6
7
SQL> alter database open;
alter database open
*
第 1 行出現錯誤:
ORA-01157: 無法標識/鎖定數據文件 101 - 請參閱 DBWR 跟蹤文件
ORA-01110: 數據文件 101:
'D:\APP\ADMINISTRATOR\ORADATA\ORCL12C\PDBDTJK\NMEMC.DBF'

又關閉又啟動,來回折騰,都是如此:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
SQL> shutdown immediate
ORA-01109: 數據庫未打開
 
 
已經卸載數據庫。
ORACLE 例程已經關閉。
SQL> startup
ORACLE 例程已經啟動。
 
Total System Global Area 2147483648 bytes
Fixed Size     3834152 bytes
Variable Size    671092440 bytes
Database Buffers   1459617792 bytes
Redo Buffers    12939264 bytes
數據庫裝載完畢。
ORA-01157: 無法標識/鎖定數據文件 101 - 請參閱 DBWR 跟蹤文件
ORA-01110: 數據文件 101:
'D:\APP\ADMINISTRATOR\ORADATA\ORCL12C\PDBDTJK\NMEMC.DBF'

3、查閱網上資料,應該是將此遺失文件標為脫機、刪除。但提示找不到該文件!

?
1
2
3
4
5
SQL> alter database datafile 101 offline;
alter database datafile 101 offline
*
第 1 行出現錯誤:
ORA-01516: 不存在的日志文件, 數據文件或臨時文件 "101"

這就奇怪了,明明是你提示了該文件的,現在又說不知道這個文件。

4、估計是當前所在數據庫是CDB,而這個文件屬于PDB,所以應該切換到相關PDB,再進行文件脫機。

?
1
2
3
4
5
6
7
8
9
SQL> alter session set container=PDBDTJK;
 
會話已更改。
 
SQL> show pdbs;
 
 CON_ID CON_NAME      OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
  13 PDBDTJK      MOUNTED

5、脫機(offline,drop),成功!

?
1
2
3
4
5
6
7
8
9
10
SQL> alter database datafile 'D:\APP\ADMINISTRATOR\ORADATA\ORCL12C\PDBDTJK\NMEMC.DBF' offline;
alter database datafile 'D:\APP\ADMINISTRATOR\ORADATA\ORCL12C\PDBDTJK\NMEMC.DBF' offline
*
第 1 行出現錯誤:
ORA-01145: 除非啟用了介質恢復, 否則不允許立即脫機
 
 
SQL> alter database datafile 'D:\APP\ADMINISTRATOR\ORADATA\ORCL12C\PDBDTJK\NMEMC.DBF' offline drop;
 
數據庫已更改。

6、切換回CDB,打開,成功!

?
1
2
3
4
5
6
7
SQL> alter session set container=CDB$ROOT;
 
會話已更改。
 
SQL> alter database open;
 
數據庫已更改。

哎,我的天吶!吶啊~~~

7、總結

1)一個PDB損壞,導致整個CDB以及其他PDB都不能用,乃至于無法恢復?不應該啊,這可是oracle啊,不可能這么弱智的

還真是。聽說oracle 12c r1版本就是,PDB宕機,CDB也會陪著一起宕;到r2就好一點,只宕PDB。

2)本次恢復,從CDB切換到PDB是關鍵。網上給出的答案,都是11g或以前的,一個實例對應一個數據庫,所以沒有數據庫切換的概念,文件說脫機就脫機了。

3)只要數據庫實例能啟動,不管CDB是否已打開,sys都能進去:

?
1
sqlplus sys/pwd@servername as sysdba;

而PDB則不行。在未打開的情況下,你用 conn user/pwd@servername 這種方式已經進不去了,但切換會話還可以:

?
1
2
3
SQL> alter session set container=PDBDTJK;
 
會話已更改。

這是孫悟空的一根救命毫毛。

4)以上問題的解決,現在看起來一步一步的,清晰明了,但這中間經過了多少煎熬和痛苦。昨天傍晚出現的問題,搞到21點,還沒搞定?;丶依^續查資料到晚上快24點。早上七點醒來,才查了一下會話切換。早上是人最清醒的時候。

我都不清楚這個文件是怎么刪除的。在繼續使用的情況下,刪除文件系統會提示被鎖定,估計是停掉數據庫再刪除,叉啊,這不是找死嗎。我都不敢想象,如果今天數據庫沒起來,會有一翻怎樣的折騰。雖然是開發數據庫,但好多項目在使用,各有各的PDB。

好了,以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對服務器之家的支持。

原文鏈接:http://blog.csdn.net/leftfist/article/details/78349184

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产欧美一区二区三区精品 | 日本护士厕所xxx | 亚洲精品国产在线网站 | 日本最新伦中文字幕 | 欧美一区二区三区在线观看免费 | 日韩制服丝袜在线观看 | 好 舒服 好 粗 好硬 好爽 | 男人天堂资源 | 国产高清久久 | 久久99re2热在线播放7 | 欧美不卡一区二区三区 | 亚洲免费精品视频 | 四虎院影永久在线观看 | 公妇乱淫在线播放免费观看 | 日本捏胸吃奶视频免费 | 99久久伊人精品波多野结衣 | 欧美精品亚洲精品日韩专区va | 丁香婷婷在线视频 | 亚洲性综合网 | 精品国产一区二区三区久久久蜜臀 | 国产精品探花一区在线观看 | 校花被吃奶还摸下面 | 日韩成人一级 | jk制服白丝超短裙流白浆 | 免费一看一级欧美 | 精品网站一区二区三区网站 | 美女扒开屁股让男人进去 | 操bb视频 | 亚洲 日韩经典 中文字幕 | 美女被灌浣肠失禁视频 | 亚洲国产精品综合久久网络 | 草草影院免费 | 欧美女人p | 青青青在线视频 | caoporm国产精品视频免费 | 日本国产高清色www视频在线 | 操国产美女 | 国产第一福利 | 亚洲精品久久久久久婷婷 | 国产探花视频 | 亚洲网站大全 |