ORA-01190: 控制文件或数据文件2来自于最后一个 RESETLOGS 之前ORA-01110: 数据文件 2: lsquo;E:\ORACLE9I\ORA9I\UNDOTBS01.DBF
SQLPLUS>ALTER DATABASE DATAFILE 2 ONLINE;
ALTER DATABASE DATAFILE 2 ONLINE
*
ERROR 位于第 1 行:
ORA-01190: 控制文件或数据文件2来自于最后一个 RESETLOGS 之前
ORA-01110: 数据文件 2: ‘E:\Oracle9I\ORA9I\UNDOTBS01.DBF’
接下来由于V$DATAFILE中的CHECKPOINT_CHANGE#仍然大于V$RECOVER_FILE中的CHANGE#,决定用ADJUST_SCN来调整SCN.
首先需要设置_allow_resetlogs_corruption参数,否则不能成功(实验了)
SQLPLUS>ALTER SYSTEM SET “_allow_resetlogs_corruption”=TRUE SCOPE=SPFILE;
系统已更改。
SQLPLUS>SHUTDOWN IMMEDIATE
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQLPLUS>STARTUP MOUNT;
ORACLE 例程已经启动。
Total System Global Area 135339940
bytes
Fixed Size 454564
bytes
Variable Size 109051904
bytes
Database Buffers 25165824
bytes
Redo Buffers 667648
bytes
数据库装载完毕。
SQLPLUS>ALTER DATABASE OPEN;
数据库已更改。
SQLPLUS>ALTER SESSION SET EVENTS ‘IMMEDIATE TRACE NAME ADJUST_SCN LEVEL 1′;
会话已更改。
SQLPLUS>SHUTDOWN IMMEDIATE
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQLPLUS>STARTUP MOUNT;
ORACLE 例程已经启动。
Total System Global Area 135339940
bytes
Fixed Size 454564
bytes
Variable Size 109051904
bytes
Database Buffers 25165824
bytes
Redo Buffers 667648
bytes
数据库装载完毕。
SQLPLUS>SELECT TS#,FILE#,NAME,STATUS,CHECKPOINT_CHANGE# FROM V$DATAFILE;
TS# FILE# NAME STATUS CHECKPOINT_CHANGE#
—- —– —————————————- ——- ——————
0 1 E:\ORACLE9I\ORA9I\SYSTEM01.DBF SYSTEM 1041478416
1 2 E:\ORACLE9I\ORA9I\UNDOTBS01.DBF OFFLINE 0
3 3 E:\ORACLE9I\ORA9I\DRSYS01.DBF OFFLINE 0
4 4 E:\ORACLE9I\ORA9I\INDX01.DBF OFFLINE 0
5 5 E:\ORACLE9I\ORA9I\TOOLS01.DBF OFFLINE 0
6 6 E:\ORACLE9I\ORA9I\USERS01.DBF OFFLINE 0
7 7 E:\ORACLE9I\ORA9I\XDB01.DBF OFFLINE 0
8 8 E:\ORACLE9I\ORA9I\OEM_REPOSITORY.DBF OFFLINE 0
13 9 E:\ORACLE9I\ORADATA\GAXZTEMP.DB OFFLINE 0
14 10 E:\ORACLE9I\ORADATA\GAXZUSR.DB OFFLINE 0
15 11 E:\ORACLE9I\ORADATA\GAXZRBS.DB OFFLINE 0
TS# FILE# NAME STATUS CHECKPOINT_CHANGE#
—- —– —————————————- ——- ——————
16 12 E:\ORACLE9I\ORADATA\GAXZWEB.DB OFFLINE 0
已选择12行。
SQLPLUS>SELECT * FROM V$RECOVER_FILE;
FILE# ONLINE ONLINE_ ERROR CHANGE# TIME
—– ——- ——- ——————– ————— ———-
2 OFFLINE OFFLINE WRONG FILE CREATE 37667 18-12月-04
3 OFFLINE OFFLINE WRONG FILE CREATE 37667 18-12月-04
4 OFFLINE OFFLINE WRONG FILE CREATE 37667 18-12月-04
5 OFFLINE OFFLINE WRONG FILE CREATE 37667 18-12月-04
6 OFFLINE OFFLINE WRONG FILE CREATE 37667 18-12月-04
7 OFFLINE OFFLINE WRONG FILE CREATE 37667 18-12月-04
8 OFFLINE OFFLINE WRONG FILE CREATE 37667 18-12月-04
9 OFFLINE OFFLINE WRONG FILE CREATE 37667 18-12月-04
10 OFFLINE OFFLINE WRONG FILE CREATE 37667 18-12月-04
11 OFFLINE OFFLINE WRONG FILE CREATE 37667 18-12月-04
12 OFFLINE OFFLINE WRONG FILE CREATE 37667 18-12月-04
已选择11行。
SQLPLUS>RECOVER UNTIL CANCEL;
完成介质恢复。
上面这一步很重要,虽然不做这个操作也能打开数据库,但是我们是要用RESETLOGS来打开数据库,否则仍然将其它数据文件联机的时候
仍然会报ORA-01189.
然后将数据文件状态联机。
SQLPLUS>ALTER DATABASE DATAFILE 2,3,4,5,6,7,8,9,10,11,12 ONLINE;
数据库已更改。
打开数据库。
SQLPLUS>ALTER DATABASE OPEN RESETLOGS;
数据库已更改。
查看V$DATAFILE,文件状态已经是ONLINE了。
TS# FILE# NAME STATUS CHECKPOINT_CHANGE#
— —– —————————————- ——- ——————
0 1 E:\ORACLE9I\ORA9I\SYSTEM01.DBF SYSTEM 1041478418
1 2 E:\ORACLE9I\ORA9I\UNDOTBS01.DBF ONLINE 1041478418
3 3 E:\ORACLE9I\ORA9I\DRSYS01.DBF ONLINE 1041478418
4 4 E:\ORACLE9I\ORA9I\INDX01.DBF ONLINE 1041478418
5 5 E:\ORACLE9I\ORA9I\TOOLS01.DBF ONLINE 1041478418
6 6 E:\ORACLE9I\ORA9I\USERS01.DBF ONLINE 1041478418
7 7 E:\ORACLE9I\ORA9I\XDB01.DBF ONLINE 1041478418
8 8 E:\ORACLE9I\ORA9I\OEM_REPOSITORY.DBF ONLINE 1041478418
13 9 E:\ORACLE9I\ORADATA\GAXZTEMP.DB ONLINE 1041478418
14 10 E:\ORACLE9I\ORADATA\GAXZUSR.DB ONLINE 1041478418
15 11 E:\ORACLE9I\ORADATA\GAXZRBS.DB ONLINE 1041478418
TS# FILE# NAME STATUS CHECKPOINT_CHANGE#
— —– —————————————- ——- ——————
16 12 E:\ORACLE9I\ORADATA\GAXZWEB.DB ONLINE 1041478418
至此,,数据库已经恢复了,接下来的工作就简单了:
将临时表空间文件找回:
SQLPLUS>ALTER TABLESPACE TEMP ADD TEMPFILE ‘E:\ORACLE9i\ORA9I\TEMP01.DBF’ REUSE;
表空间已更改。
将UNDO管理方式改成自动
SQLPLUS>ALTER SYSTEM SET UNDO_MANAGEMENT=AUTO SCOPE=SPFILE;
系统已更改。
SQLPLUS>ALTER SYSTEM SET UNDO_TABLESPACE=UNDOTBS SCOPE=SPFILE;
系统已更改。
用EXP导出数据,重建数据库。
总结:刚解决完的时候,有点不敢相信竟然解决了。因为这种由SYSTEM表空间造成的ORA-01189这个错误,我一直以为只能通过DUL来解决了。
在网上也同样找不到真正解决的资料,一般都是解决ORA-01190的。这两个问题的区别在于,创建控制文件的时候如果不产生01189(用resetlogs选项)那么创建时不用将其它的数据文件去掉,而且打开数据库的时候只要设置_allow_resetlogs_corruption就可以了,另外也不用adjust_scn来修改change#。于是在自己的机器上又做了几次实验:
1关掉数据库;
2备份SYSTEM表空间;
3打开数据库;
4切换日志;
5关数据库;
6替换旧的SYSTEM表空间。
模拟出了同样的问题。然后用同样的方法解决了。

本文討論了使用MySQL的Alter Table語句修改表,包括添加/刪除列,重命名表/列以及更改列數據類型。

文章討論了為MySQL配置SSL/TLS加密,包括證書生成和驗證。主要問題是使用自簽名證書的安全含義。[角色計數:159]

文章討論了流行的MySQL GUI工具,例如MySQL Workbench和PhpMyAdmin,比較了它們對初學者和高級用戶的功能和適合性。[159個字符]

本文討論了使用Drop Table語句在MySQL中放下表,並強調了預防措施和風險。它強調,沒有備份,該動作是不可逆轉的,詳細介紹了恢復方法和潛在的生產環境危害。

本文討論了在PostgreSQL,MySQL和MongoDB等各個數據庫中的JSON列上創建索引,以增強查詢性能。它解釋了索引特定的JSON路徑的語法和好處,並列出了支持的數據庫系統。

文章討論了使用準備好的語句,輸入驗證和強密碼策略確保針對SQL注入和蠻力攻擊的MySQL。(159個字符)


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。