關於備份之言已經發布了一章rman工具的使用 今天九妹帶你玩轉數據泵 -----
一.數據泵
數據泵實現邏輯備份
邏輯備份是創建數據庫對象的邏輯副本,並存入一個二進制轉儲文件的過程。從本質上說,邏輯備份與恢復實際就是對數據庫實施數據的導入和導出。
導出:
導出即數據庫的邏輯備份,實質是讀取一個數據庫集並將這個數據集寫入一個文件(擴展名通常是dmp),這些記錄的導出與物理位置無關。
導入:
導入及數據庫的邏輯恢復,實質是讀取被導出的二進制轉儲文件並將其恢復到數據庫。
1、使用數據泵技術導入/導出
數據泵(data pump)是一種在數據庫之間或在數據庫與操作系統之前高速傳輸的技術。數據泵工具運行在服務器上,數據庫管理員需要指定數據庫目錄來保存轉儲的數據。
基於命令行的數據泵導出步驟如下
1)連接oracle數據庫
在連接數據庫之前 首先創建一個操作目錄存放的位置
mkdir -p /opt /backup
chown -R oracle:oinstall /opt/backup
連接數據庫後解鎖 scott 用戶
alter user scott account unlock
設置密碼爲scott:alter user scott identified by pwd123
2)創建操作目錄及授予用戶對目錄的權限
3)
5)導出scott用戶下的表
使用expdp命令導入數據(可以按照表導出,按照用戶模式導出,按照表空間導出和全庫導出),使用impdp命令導入數據(可以按照表導入,按照用戶模式導入,按照表空間導入和全庫導入)。
expdf scott/pwd123 direcotry=dump_dir dumpfile=scott.dmp tables=emp,dept
6)已經備分成 公
測試刪除emp表
sqlplus scott/pwd123
drop table emp;
7)導入emp表
8)select * from scott.emp
查看是否恢復回來
二.使用閃回技術
1、閃回技術概述
爲了使數據庫能夠從任何邏輯誤操作中迅速恢復,oracle退出了閃回技術。採用該技術,可以對行級和事務級的數據變化進行恢復,減少了數據恢復的時間,而且操作簡單,通過sql語句就可以實現數據的恢復,大大提高了數據庫恢復的效率。閃回技術是數據庫恢復技術歷史上一次重大的進步,從根本上改變了數據恢復。
閃回技術包括以下各項:
1)閃回查詢(flashback query):查詢過去某個時間點或某個SCN(system change number,系統更改號)值時表中的數據信息。
2)閃回版本查詢(flashback version query):查詢過去某個時間段或某個SCN段內表中數據的變化情況。
3)閃回事務查詢(flashback transaction query):查看某個事務或所有事務在過去一段時間對數據進行的修改。
4)閃回數據庫(flashback database):將數據庫恢復到過去某個時間點或某個SCN值時的狀態。
5)閃回刪除(flashback drop):將已經刪除的表及相關聯的對象恢復到刪除前的狀態。
6)閃回表(flashback table):將表恢復到過去的某個時間點或某個SCN值時的狀態。
SCN:scn是當Oracle數據庫更新後,有dbms自動維護而累積遞增的一個數字,可以通過查詢數據字典V$DATABASE中的CURRENT_SCN獲得當前的SCN號。
注意:
閃回數據庫是基於閃回恢復區(Flash Recovery Area)特性實現的,如果要使用閃回數據庫技術,還需要啓用閃回恢復區
閃回刪除是基於回收站(Recycle Bin)特性實現的,如果要使用閃回刪除技術,還需要啓用回收站
閃回查詢、閃回版本查詢、閃回事務查詢以及閃回表主要是基於撤銷表空間中的回滾信息實現的
2、閃回恢復區
1)閃回恢復區的含義
Oracle推薦指定一個閃回恢復區(flash recovery area)作爲存放備份與恢複相關文件的默認位置,這樣oracle就可以實現自動的基於磁盤的備份與恢復(automatic disk-based backup and recovery)。那麼,什麼是閃回恢復區?簡單地說,閃回恢復區是一塊用以存儲恢複相關的文件的存儲空間,允許用戶集中存儲所有恢複相關的文件。如下集中文件可以放到閃回恢復區中。
控制文件
歸檔的日誌文件
閃回日誌
控制文件和SPFILE自動備份
RMAN備份集
數據文件拷貝
2)閃回恢復區的優點
閃回恢復區提供了一個集中化的存儲區域,很大程度上減少了管理開銷,這是其最主要的優點,另外,與RMAN結合使用可以進行快速恢復。
閃回恢復區主要通過以下3個初始化參數來設置和管理。
Db_recovery_file_dest:指定閃回恢復區的位置
Db_recovery_file_dest_size:指定閃回恢復區的可用空間大小
Db_flashback_retention_target:該參數用來控制閃回日誌中數據保留的時間,或者說,希望閃回數據庫能夠恢復到的最早的時間點。單位爲MIN,默認爲1440min,也就是一天。當然,實際上可退回的時間還取決於閃回恢復區的大小,因爲裏面保存了回退所需要的閃回日誌,所以這個參數要和db_recovery_file_dest_size配合修改。
如果要撤銷閃回恢復區,把初始化參數DB_RECOVERY_FILE_DEST的值清空即可。
注意:db_recovery_file_dest_size只有在db_recovery_file_dest清空之後纔可以清空。
5)設置閃回數據庫
設置可閃回恢復區之後,要啓用閃回數據庫的功能,還需要進一步配置。數據庫必須已經處於歸檔模式,再設置閃回數據庫。
設置閃回數據庫的步驟如下:
啓用歸檔模式(閃回數據庫只能處於歸檔模式)
歸檔模式的設置
1)關閉數據庫
shutdown immediate
2)啓動數據庫
startup mont
3)設置歸檔模式
alter database archivelog
4)查詢模式
archive log list
3.設置閃回
查看是否設置閃回
建立閃回區
設置閃回數據庫的數據保留週期爲一天以min爲單位
啓用閃回日誌
shutdown immediate
查詢是否已經啓用閃回