萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> oracle教程 >> Oracle中模擬及修復數據塊損壞

Oracle中模擬及修復數據塊損壞

在Oracle數據庫中,我們可能遭遇很多數據損壞的情況,在面對這些情況時如何進行數據恢復是非常重要的。在很多情況下,恢復是極其復雜的,而且需要謹慎,輕率的操作和嘗試可能導致數據庫的永久損壞。
所以我建議在恢復嘗試前應當先進行數據備份。

對於重要的數據庫,如果不能確定恢復步驟和操作後果,建議最好先向專業人士進行咨詢,以避免不必要的數據損失。

本文通過試驗模擬和解決數據塊損壞問題,是對一類數據庫損壞的恢復探討

1.插入數據

E:\Oracle\ora92\bin>sqlplus "/ as sysdba"
SQL*Plus: Release 9.2.0.4.0 - Production on 星期一 3月 8 20:27:15 2004
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
連接到:
Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.4.0 - Production
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
E:\ORACLE\ORADATA\EYGLE\SYSTEM01.DBF
E:\ORACLE\ORADATA\EYGLE\UNDOTBS01.DBF
E:\ORACLE\ORADATA\EYGLE\EYGLE01.DBF
SQL> create tablespace block
2 datafile 'e:\oracle\oradata\eygle\block.dbf'
3 size 1M
4 extent management local;
表空間已創建。
SQL> alter user eygle default tablespace block;
用戶已更改。
SQL> alter user eygle quota unlimited on block;
用戶已更改。
SQL> connect eygle/eygle
已連接。
SQL> create table t as select * from dba_users;
表已創建。
SQL> insert into t select * from t;
已創建8行。
SQL> /
已創建16行。
SQL> /
已創建32行。
SQL> /
已創建64行。
SQL> /
已創建128行。
SQL> /
已創建256行。
SQL> /
已創建512行。
SQL> /
已創建1024行。
SQL> /
已創建2048行。
SQL> /
已創建4096行。
SQL> /
insert into t select * from t
*
ERROR 位於第 1 行:
ORA-01653: 表EYGLE.T無法通過8(在表空間BLOCK中)擴展
SQL> commit;
提交完成。
SQL> alter system checkpoint;
系統已更改。
SQL> select count(*) from t;
COUNT(*)
----------
8192
SQL> connect / as sysdba
已連接。
SQL> shutdown immediate
數據庫已經關閉。
已經卸載數據庫。
ORACLE 例程已經關閉。

  • 共4頁:
  • 上一頁
  • 1
  • 2
  • 3
  • 4
  • 下一頁
copyright © 萬盛學電腦網 all rights reserved