oracle冷備份操作如下:
1.shutdown資料庫
2.將重要文件備份到指定位置(datafile,controlfile,online log,archive log)
3.startup資料庫
**********************
1.首先先查看個檔案的位置(本實驗室以linux為例)
- SQL>SELECT name FROM v$datafile;
- SQL>SELECT name FROM v$controlfile;
- SQL>SELECT member FROM v$logfile;
- SELECT name from V$ARCHIVED_LOG;
- 然後shutdown資料庫
shutdown immediate;
*查路徑可以用pwd指令
備份到相關目錄下(本範例是將資料備份到/home/oracle的各個資料夾中datafile1,arch1等等..),指令如下:
( 如果路徑打錯會發生no such file錯誤)
備份成功( 只顯示datafile1中的資料,其他的也成功備份)
3.startup 資料庫;
SQL>STARTUP;
要進行recovery只需要將文件復原到原來的位置即可開啟資料庫。
****************************************************
oracle熱備份操作如下:
1.必須是archive log mode狀況下
2.不須關閉資料庫即可備份
3.表空間必須通過 alter tablespace XXX begin backup 指令 (本範例備份表空間users)
4.copy 表空間到要備份的地方
5.alter tablespace XXX end backup 指令(本範例備份表空間users)
6.將online redo log備份到archive中,指令:alter system switch logfile
7.alter database backup controlfile to trace
連續操作如下(linux環境):
成功備份到/home/oracle中
熱備份還原
*****************************
情境:假設資料表testtable的表空間test1損壞,在此已經有test1的備份檔,因此可以用熱備份加上archive還原
在此將表空間備份至home/oracle,在測試還原前(目前備份檔沒有id為1的值),我們先在testtable中insert 一筆資料並且commit(進入online redo log),我們來測試是否熱還原會運用備份檔加上archive log 和online redo log進行還原
接著使用alter system switch logfile指令進行log切換(將online redo 資料備份到archive)
備份控制檔:alter database backup controlfile to trace
shutdown資料庫
接著破壞表空間test1的資料檔(將test1的資料檔丟失)
因此開機時會發生以下錯誤:
恢復過程:
1.先將test1 offline
2.alter database open;開啟資料庫
3.copy home/oracle中的資料檔到原來的位置
4.recover 資料檔
5.關閉資料庫
6.從新開機
7.再將test1 online
還原成功!
留言列表