Database
意外覆蓋了 system.dbf - 現在怎麼辦?
我不小心覆蓋了 system.dbf
/usr/lib/oracle/xe/oradata/XE/system.dbf
好吧,我實際上並沒有意外地這樣做,但是由於數據庫中的其他故障,我將其覆蓋了。
當我嘗試執行以下命令時:
SQL> shutdown ORA-01109: database not open Database dismounted. ORACLE instance shut down. SQL> startup ORACLE instance started. Total System Global Area 289406976 bytes Fixed Size 1258488 bytes Variable Size 92277768 bytes Database Buffers 192937984 bytes Redo Buffers 2932736 bytes Database mounted. ORA-01589: must use RESETLOGS or NORESETLOGS option for database open
現在我想嘗試恢復數據庫,因為以掛載或標準啟動它肯定不起作用。
SQL> recover database using backup controlfile; ORA-00283: recovery session canceled due to errors ORA-01110: data file 1: '/usr/lib/oracle/xe/oradata/XE/system.dbf' ORA-01122: database file 1 failed verification check ORA-01110: data file 1: '/usr/lib/oracle/xe/oradata/XE/system.dbf' ORA-01206: file is not part of this database - wrong database id
我該如何解決這個問題?甚至可能嗎?
我的“真正”問題是我執行了 /etc/init.d/oracle-xe 配置,它覆蓋了我的舊配置並且可能刪除了密碼等,所以我的表不見了,但是我找到了 mytablespace.dbf 所以我希望有可能恢復嗎?
請對此有所了解。
你有你的數據庫的備份嗎?覆蓋 SYSTEM 表空間數據文件需要從備份中完全恢復。
由於我沒有使用 Oracle 的經驗,我根本不知道這是否適用。但是,如果文件是由某個程序打開的,並且該程序仍在執行,則可以通過在 /proc 文件系統中訪問它來恢復它。
# ls -l /proc/13646/fd total 0 lrwx------ 1 root root 64 Apr 13 21:43 0 -> /dev/null lrwx------ 1 root root 64 Apr 13 21:43 1 -> /dev/null lrwx------ 1 root root 64 Apr 13 21:43 2 -> /dev/null lrwx------ 1 root root 64 Apr 13 21:43 3 -> socket:[38094] l-wx------ 1 root root 64 Apr 13 21:43 4 -> /var/log/openvpn-status-server.log lrwx------ 1 root root 64 Apr 13 21:43 5 -> /etc/openvpn/ipp.txt lrwx------ 1 root root 64 Apr 13 21:43 6 -> socket:[38099] lrwx------ 1 root root 64 Apr 13 21:43 7 -> /dev/net/tun
讓我們刪除其中一個!
# rm /var/log/openvpn-status-server.log # ls /var/log/openvpn-status-server.log ls: cannot access /var/log/openvpn-status-server.log: No such file or directory
好的,刪除,再次ls:
# ls -l /proc/13646/fd/4 l-wx------ 1 root root 64 Apr 13 21:43 /proc/13646/fd/4 -> /var/log/openvpn-status- server.log (deleted)
它在那裡,已刪除但仍保留。
# cp /proc/13646/fd/4 myrecover.txt # ls -l myrecover.txt -rw------- 1 root root 359 Apr 13 21:45 myrecover.txt
果然,我親愛的老 openvpn-status-server.log 恢復了!