国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

我的備份與恢復實驗 (歸檔模式下用戶管理的完全恢復)

2024-07-21 02:40:24
字體:
來源:轉載
供稿:網友

  os:winXP
Oracle:9.2.0.1.0
sid:xianhe一:預備工作

把數據庫改為歸檔模式

SQL> startup mount
ORACLE 例程已經啟動。

Total System Global Area  126950220 bytes
Fixed Size                   453452 bytes
Variable Size             109051904 bytes
Database Buffers           16777216 bytes
Redo Buffers                 667648 bytes
數據庫裝載完畢。
SQL> alter database archivelog;

數據庫已更改。

SQL> alter database open;

數據庫已更改。

SQL>

設置成自動歸檔
SQL> alter system set log_archive_start = true scope=spfile;

系統已更改。

確定數據庫在歸檔模式下并是自動存檔的
SQL> archive log list
數據庫日志模式            存檔模式
自動存檔             啟用
存檔終點            D:/oracle/ora92/RDBMS
最早的概要日志序列     2
下一個存檔日志序列   4
當前日志序列           4
SQL>

干凈的關閉數據庫,做一個完全的冷備份。




二:開始實驗

實驗1:描述如下。

數據庫系統數據文件和回退段遭破壞的情況下的恢復。此時數據庫的狀態是關閉的。

先啟動數據庫,用scott用戶建立test表,并插入兩條數據。

SQL> create table scott.test
  2  (id int);

表已創建。

SQL> insert into scott.test values(1);

已創建 1 行。

SQL> insert into scott.test values(2);

已創建 1 行。

SQL> commit;

提交完成。

假設數據庫遭意外被迫關閉,并且系統數據文件丟失。

SQL> shutdown abort
ORACLE 例程已經關閉。

把oracle服務停掉,刪除SYSTEM01.dbf和UNDOTBS01.DBF文件

啟動服務

啟動數據庫, 提示如下錯誤
SQL> startup
ORACLE 例程已經啟動。

Total System Global Area  126950220 bytes
Fixed Size                   453452 bytes
Variable Size             109051904 bytes
Database Buffers           16777216 bytes
Redo Buffers                 667648 bytes
數據庫裝載完畢。
ORA-01157: 無法標識/鎖定數據文件 1 - 請參閱 DBWR 跟蹤文件
ORA-01110: 數據文件 1: 'D:/ORACLE/ORADATA/XINAHE/SYSTEM01.DBF'

把備份的SYSTEM01.dbf文件還原回去

然后recover database 或 recover datafile 'D:/ORACLE/ORADATA/XINAHE/SYSTEM01.DBF'

SQL> recover datafile 'D:/ORACLE/ORADATA/XINAHE/SYSTEM01.DBF';
完成介質恢復。


打開數據庫有提示
SQL> alter database open;
alter database open
*
ERROR 位于第 1 行:
ORA-01157: 無法標識/鎖定數據文件 2 - 請參閱 DBWR 跟蹤文件
ORA-01110: 數據文件 2: 'D:/ORACLE/ORADATA/XINAHE/UNDOTBS01.DBF'

把備份的UNDOTBS01.DBF文件還原回去,執行recover database 或 recover datafile 'D:/ORACLE/ORADATA/XINAHE/UNDOTBS01.DBF'

SQL> recover datafile 'D:/ORACLE/ORADATA/XINAHE/UNDOTBS01.DBF';
完成介質恢復。

然后就可以打開數據庫,查看scott用戶的test表。

SQL> alter database open;

數據庫已更改。

SQL> select * from scott.test;

        ID
----------
         1
         2

SQL>
完成。


實驗2:描述如下
        數據庫是打開的,這是損壞的文件是用戶的數據文件而不是system和undo文件。

用scott用戶在users表空間建立test1表

SQL> create table scott.test1(id int)
  2  tablespace users;

表已創建。

插入兩條數據

SQL> insert into scott.test1 values(1);

已創建 1 行。

SQL> insert into scott.test1 values(2);

已創建 1 行。

SQL> commit;

提交完成。

當前日志歸檔

SQL> alter system archive log current;

系統已更改。

現在破壞users表空間,使其離線,然后刪除users01.dbf

SQL> alter tablespace users offline;

表空間已更改。

SQL> alter tablespace users online;
alter tablespace users online
*
ERROR 位于第 1 行:
ORA-01157: 無法標識/鎖定數據文件 9 - 請參閱 DBWR 跟蹤文件
ORA-01110: 數據文件 9: 'D:/ORACLE/ORADATA/XINAHE/USERS01.DBF'

此時出現錯誤,users表空間不能在線了。這時把備份的users01.DBF還原回去。
然后

SQL> recover tablespace users;
ORA-00279: 更改 292331 (在 03/18/2005 16:36:05 生成) 對于線程 1 是必需的
ORA-00289: 建議: D:/ORACLE/ORA92/RDBMS/ARC00004.001
ORA-00280: 更改 292331 對于線程 1 是按序列 # 4 進行的


指定日志: {<RET>=suggested filename AUTO CANCEL}
auto
ORA-00279: 更改 292907 (在 03/18/2005 16:45:43 生成) 對于線程 1 是必需的
ORA-00289: 建議: D:/ORACLE/ORA92/RDBMS/ARC00005.001
ORA-00280: 更改 292907 對于線程 1 是按序列 # 5 進行的
ORA-00278: 此恢復不再需要日志文件 'D:/ORACLE/ORA92/RDBMS/ARC00004.001'


已應用的日志。
完成介質恢復。
SQL> alter tablespace users online;

表空間已更改。

SQL> select * from scott.test1;

        ID
----------
         1
         2
完成。

實驗3:描述如下

數據文件沒有備份(不能使system和undo文件)的恢復。

創建表空間testspace

SQL> create tablespace testspace
  2  datafile 'd:/oracle/oradata/xinahe/testspace.dbf' size 10m;

表空間已創建。

SQL> create table scott.test3(id int)
  2  tablespace testspace;

表已創建。

SQL> commit;

提交完成。

SQL> alter system switch logfile;

系統已更改。


SQL> insert into scott.test3 values(1);

已創建 1 行。

SQL> commit;

提交完成。

SQL> alter tablespace testspace offline;

表空間已更改。

SQL> select * from scott.test3;
select * from scott.test3
                    *
ERROR 位于第 1 行:
ORA-00376: 此時無法讀取文件 11
ORA-01110: 數據文件 11: 'D:/ORACLE/ORADATA/XINAHE/TESTSPACE.DBF'

由于沒有備份數據文件,我重新創建一個

SQL> alter database create datafile
  2  'D:/ORACLE/ORADATA/XINAHE/TESTSPACE.DBF';

數據庫已更改。

SQL> recover tablespace testspace;
完成介質恢復。
SQL> alter tablespace testspace online;

表空間已更改。

SQL> select * from scott.test3;

        ID
----------
         1
完成。

上一篇:監控數據庫性能的SQL

下一篇:神秘的DUAL

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 长白| 平顶山市| 孝感市| 英德市| 江西省| 襄汾县| 建湖县| 三穗县| 拜泉县| 襄城县| 赫章县| 基隆市| 闻喜县| 含山县| 黑龙江省| 衡阳市| 临武县| 崇义县| 繁峙县| 汉阴县| 广河县| 通山县| 娄烦县| 石渠县| 卢氏县| 广安市| 赤水市| 迁西县| 金门县| 安西县| 仪征市| 广灵县| 马公市| 尖扎县| 房山区| 荔波县| 林芝县| 西畴县| 从江县| 德钦县| 西畴县|