關於備份之言已經發布了一章rman工具的使用 今天九妹帶你玩轉數據泵 -----sql
一.數據泵數據庫
數據泵實現邏輯備份服務器
邏輯備份是建立數據庫對象的邏輯副本,並存入一個二進制轉儲文件的過程。從本質上說,邏輯備份與恢復實際就是對數據庫實施數據的導入和導出。oracle
導出:ide
導出即數據庫的邏輯備份,實質是讀取一個數據庫集並將這個數據集寫入一個文件(擴展名一般是dmp),這些記錄的導出與物理位置無關。工具
導入:測試
導入及數據庫的邏輯恢復,實質是讀取被導出的二進制轉儲文件並將其恢復到數據庫。spa
一、使用數據泵技術導入/導出操作系統
數據泵(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
查看是否恢復回來
二.使用閃回技術
一、閃回技術概述
爲了使數據庫可以從任何邏輯誤操做中迅速恢復,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)特性實現的,若是要使用閃回刪除技術,還須要啓用回收站
閃回查詢、閃回版本查詢、閃回事務查詢以及閃回表主要是基於撤銷表空間中的回滾信息實現的
二、閃回恢復區
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
查詢是否已經啓用閃回