共計 2042 個字符,預計需要花費 6 分鐘才能閱讀完成。
今天就跟大家聊聊有關 oracle 中怎么實現日志恢復功能,可能很多人都不太了解,為了讓大家更加了解,丸趣 TV 小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
1. 創建用戶
SQL create tablespace lits datafile e:\dbf\li01.dbf size 50m;
Tablespace created.
SQL create user li identified by li default tablespace lits;
User created.
SQL grant connect to li;
Grant succeeded.
– 允許用戶 li 任意使用 lits 表空間
SQL alter user li quota unlimited on lits;
User altered.
SQL
2. 關庫,刪除 dbf 文件,模擬數據文件丟失或者損壞
SQL shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
– 刪除 li01.dbf
3. 重啟
SQL startup
ORACLE instance started.
Total System Global Area 171966464 bytes
Fixed Size 787988 bytes
Variable Size 145488364 bytes
Database Buffers 25165824 bytes
Redo Buffers 524288 bytes
Database mounted.
ORA-01157: cannot identify/lock data file 11 – see DBWR trace file
ORA-01110: data file 11: E:\DBF\LI01.DBF
– 數據文件丟失只能啟動到 mount 模式,如果要系統正常啟動,可以先把丟失的文件 offline,其他正常的數據文件正常啟動數據庫
SQL select file#,ts#,name from v$datafile;
FILE# TS# NAME
———- ———- ———————————————————-
1 0 E:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\SYSTEM01.DBF
2 1 E:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\UNDOTBS01.DBF
3 2 E:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\SYSAUX01.DBF
4 4 E:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\USERS01.DBF
5 6 E:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\EXAMPLE01.DBF
6 7 E:\DBF\MYTABLESPACE.DBF
7 7 E:\DBF\MYTABLESPACE01.DBF
8 7 E:\DBF\MY02
9 8 E:\DBF\MYTS03
10 9 E:\ORACLE\RMAN\RMANTS01.DBF
11 10 E:\DBF\LI01.DBF
11 rows selected.
4.datafile offline 啟動系統
SQL alter database datafile 11 offline;
Database altered.
SQL alter database open;
Database altered.
SQL
SQL
5. 刪除原來損壞的新建 dbf,li01.dbf 必須是原來的同名
– 還有另外一種恢復方式,在備份前提下 把備份拷貝到 datafile 同名的數據文件進行恢復
SQL alter database create datafile e:\dbf\li01.dbf
Database altered.
6. 把日志同步到新的 dbf
SQL recover datafile e:\dbf\li01.dbf
Media recovery complete.
– 查不到表
SQL select * from li.li01;
select * from li.li01
*
ERROR at line 1:
ORA-00376: file 11 cannot be read at this time
ORA-01110: data file 11: E:\DBF\LI01.DBF
SQL
7.datafile online
SQL alter database datafile 11 online;
Database altered.
SQL select * from li.li01;
LID
———-
1
2
3
SQL
– 查詢結果是 commit 之前的結果。
SQL
看完上述內容,你們對 oracle 中怎么實現日志恢復功能有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注丸趣 TV 行業資訊頻道,感謝大家的支持。