天天看點

oracle資料庫備份

1. 檔案檢視

  資料檔案、控制檔案、日志檔案檢視如下:

  select file#, status, enabled, name from v$datafile;--檢視資料檔案

  select * from v$controlfile;--控制檔案

  select * from v$logfile;--日志檔案

  2. 三種備份方法

  1)導入/導出(import/export)

  1.支援類型: table, user, tablespace, full database

  2. 導入導出例子:

exp system/manager@test file=d:\export.dmp owner=(system,sys)--将system和sys的表導出

exp aichannel/aichannel@test file= d:export.dmp tables= (tab1,tab2)--将tab1表和tab2表導出

imp system/manager@test file=d:\export.dmp tables=(tab1,tab2);--将export.dmp中tab1表和tab2表導入

imp system/manager@test file=d:\export.dmp;

  3. 注意:若使用者權限不夠時需要修改權限

  --先以system/manager登入

  --授予權限

  grant exp_full_database, imp_full_database to username;

  2)冷備份(非歸檔模式)

  1. 步驟:shutdown資料庫---> copy檔案---> start資料庫

  2.  例子:

connect tigger/sccot as sysdba;

shutdown immediate;

cp d:/test*.dbf d:export   --cp 檔案  目标檔案夾    資料檔案

cp d:/test*.ctl d:export   --控制檔案

cp d:/test*.log d:export   --日志檔案

startup;

  3)熱備份(歸檔模式)

  2. 将資料庫轉換為歸檔模式如下:(注意資料庫必須已裝載到此執行個體并且不在任何執行個體中打開)

  --需先關閉資料庫并加載資料庫

startup mount;--(startup nomount 啟動執行個體;startup mount 啟動執行個體加載資料庫; startup 啟動執行個體加載資料庫打開資料庫)

alter database archivelog;--資料庫必須已裝載到此執行個體并且不在任何執行個體中打開

  3. 歸檔相關操作

archive log list;--檢視是否出于歸檔模式;

alter system set log_archive_start =true scope =spfile; --啟用主動歸檔

select name from v$archived_log; --查詢歸檔日志

alter system set log_achive_start=false scope=spfile;--将資料庫切換為歸檔模式

archive log stop;

archive log start;

4. 熱備份具體步驟如下:

startup mount;

alter database archivelog;

alter database open;

alter tablespace users begin backup; --設定備份模式;

host copy d:\oracle\*.dbf d:\export;--拷貝

alter tablespace users end backup ;--結束備份狀态

alter system switch logfile--切換日志,使用目前日志歸檔

  5. 不足之處:不能出錯

  6. 優點:備份時資料庫仍然可以使用,備份時間短

  3.rman備份和恢複工具(rocovery manager)

  1)說明:

  1.rman是 oracle提供的一個備份與恢複的工具,可以用來執行完全或不完全的資料庫恢複。

  2.rman不能用于備份初始化參數檔案和密碼檔案。

  3. 與傳統工具相比,rman具有獨特的優勢:跳過未使用的資料塊。當備份一個rman備份集時,rman不會備份從未被寫入的資料塊,而傳統的方式無法獲知那些是未被使用的資料塊。

  4. rman可以進行增量備份(增量備份是針對于上一次備份(無論是哪種備份):備份上一次備份後,所有發生變化的檔案)

  2)例子:

  --準備工作:

  connect tiger/sccot;

  startup mount

  alter database archivelog

  alter database open

  --檢視備份相關資訊

  list backupset;

  --備份全庫

  backup database;

  --備份表空間

  backup tablespace tp1;

  --備份全庫删除舊的歸檔日志

  backup databse plus archivelog delete input;--備份全庫及控制檔案、伺服器參數檔案與所有歸檔的重做日志,并删除舊的歸檔日志

  --備份表空間删除舊的歸檔日志

  backup tablespace system plus archivelog delete input;

  --備份歸檔日志

  backup archivelog all delete input;

  --檢視備份資訊

  list of backup sets;

  --0增量備份(等于全備份)

  backup incremental level=0(level 0) database;

  --1級增量備份

  backup incremental level 1 database;

  注意:0級增量備份和完全備份唯一的差別,0級增量備份能作為增量備份的基礎,而全備份不能作為增量備份的基礎

最新内容請見作者的github頁:http://qaseven.github.io/