程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> 重建Oracle表空間專業技術指導

重建Oracle表空間專業技術指導

編輯:Oracle數據庫基礎

之前介紹過Oracle表空間恢復,這裡在向大家詳細介紹重建Oracle表空間之前,首先讓大家了解下用戶表空間的錯誤,然後全面介紹重建Oracle表空間。

錯誤:

在啟動數據庫時出現ORA-01157,ORA-01110或操作系統級錯誤例如ORA-07360,在關閉數據庫(使用shutdown normal或shutdown immediate) 時將導致錯誤ORA-01116,ORA-01110以及操作系統級錯誤ORA-07368

以下有兩種解決方案:

1.用戶的表空間可以被輕易地重建
即最近導出的對象是可用的或表空間中的對象可以被輕易地重建等.在這種情況下,最簡單的方法是offline並刪除該數據文件,刪除表空間並重建Oracle表空間以及所有的對象.
svrmgrl> startup mount
svrmgrl> alter database datafile 'filename' offline drop;
svrmgrl> alter database open;
svrmgrl> drop tablespace tablespace_name including contents;
重建Oracle表空間及所有對象.

2.用戶的表空間不能夠被輕易地重建
在大多數情況下,重建Oracle表空間是不可能及太辛苦的工作.方法是倒備份及做介質恢復.如果您的系統運行在NOARCHIVELOG模式下,則只有丟失的數據在online redo log中方可被恢復。步驟如下:
1)Restore the lost datafile from a backup
2)svrmgrl> startup mount
3)svrmgrl> select v1.group#,member,sequence#,first_change#
◆from v$log v1,v$logfile v2
◆where v1.group#=v2.group#;
4)如果數據庫運行在NOARCHIVELOG模式下則:
svrmgrl> select file#,change# from v$recover_file;
如果 CHANGE# 大於最小的FIRST_CHANGE#則數據文件可以被恢復。
如果 CHANGE# 小於最小的FIRST_CHANGE#則數據文件不可恢復。 恢復最近一次的全備份或采用方案一.
5)svrmgrl> recover datafile filename;
6)確認恢復成功
7)svrmgrl> alter database open resetlogs;

3.只讀表空間無需做介質恢復,只要將備份恢復即可.唯一的例外是:
◆表空間在最後一次備份後被改為read-write 模式
◆表空間在最後一次備份後被改為read-only 模式
◆在這種情況下,均需進行介質恢復

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved