3 登入sqlplus SQL> delete c where deptno=10; 1 row deleted. SQL> commit; Commit complete. SQL> select * from c where deptno=10; no rows selected SQL> shutdown immediate ORA-01031: insufficient privileges SQL> conn sys/s as sysdba Connected. SQL> shutdown immediate Database closed. Database dismounted. ORACLE instance shut down. 删除完毕,并关闭数据库,再去bbed: 4 登入bbed BBED> dump /v dba 4,18820 offset 8162 count 23 File: /u01/app/oracle/oradata/ORCL/datafile/o1_mf_users_7wvsw7hg_.dbf (4) Block: 18820 Offsets: 8162 to 8184 Dba:0x01004984 ------------------------------------------------------- 3c020302 c10b0a41 43434f55 4e54494e l <…?ACCOUNTIN 47084e45 572059 l G.NEW Y <16 bytes per line> 发现没?accounting所在行变成了以3c打头了。把3c改成2c: BBED> modify /x 2c offset 8162 Warning: contents of previous BIFILE will be lost. Proceed? (Y/N) y File: /u01/app/oracle/oradata/ORCL/datafile/o1_mf_users_7wvsw7hg_.dbf (4) Block: 18820 Offsets: 8162 to 8184 Dba:0x01004984 ------------------------------------------------------------------------ 2c020302 c10b0a41 43434f55 4e54494e 47084e45 572059 <32 bytes per line> BBED> sum dba 4,18820 Check value for File 4, Block 18820: current = 0xec39, required = 0xec29 BBED> sum dba 4,18820 apply Check value for File 4, Block 18820: current = 0xec29, required = 0xec29 5 登入数据库,看一下是否恢复了被删的行: SQL> startup ORACLE instance started. Total System Global Area 524288000 bytes Fixed Size 1220336 bytes Variable Size 197132560 bytes Database Buffers 318767104 bytes Redo Buffers 7168000 bytes Database mounted. Database opened. SQL> conn scott/tiger Connected. SQL> select * from c; DEPTNO DNAME LOC ---------- -------------- ------------- 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON SQL> 成功恢复。 |