機器學習Zero
數據庫備份
- 數據庫備份的分類
1.1 邏輯備份與物理備份
1.2 完全備份/差異備份/增量備份 - Oracle 邏輯備份
2.1 EXP/IMP
2.2 EXPDP/IMPDP - 數據庫備份的分類
1.1 邏輯備份與物理備份
數據庫備份按照備份狀態分為邏輯備份與物理備份。
(1)邏輯備份
利用SQL從數據庫中抽取數據,并存為二進制文件的形式進行備份。業務數據庫采用此種方式,不需要在歸檔模式下。如Oracle中,對數據庫對象(用戶、表、存儲過程)利用EXPORT導出,利用IMPORT把邏輯備份文件導入數據庫(Oracle exp/imp)。
優點:可以只備份某些表或某些特定的數據;可以在不同版本之間進行跨平臺恢復;可以壓縮后存儲節省空間。
缺點:對于大規模的數據庫,執行語句耗時較長;無法保證完全一致性(如同時有新數據插入)。
(2)物理備份
物理備份是指直接拷貝數據庫存儲介質上的所有內容,包括操作系統層面和數據庫引擎層面,這樣就能夠完整地還原整個數據庫。一般需要外部存儲設備。
優點:速度快且可靠;能夠提供一致性快照。
缺點:只能提供到“某一時間點”上的恢復,無法選擇性地(按表或用戶)進行備份和恢復,只能全庫備份和恢復;不能用于跨平臺遷移。
冷備份:發生在數據庫已經正常關閉的情況下(脫機狀態),所有的數據文件都處于離線狀態。在實施備份過程中,數據庫不能做其他工作,可以保證數據的完整性和一致性。
熱備份:在數據庫運行情況下(聯機狀態)進行,不會影響正常的業務操作,可在表空間或數據庫文件級備份,并且對用戶透明,能夠保持業務連續性,備份時間短,可達到秒級恢復(恢復到某一時間點)。熱備份要將日志置為歸檔模式,需要考慮到正在寫入或修改的數據可能導致數據不一致性問題,采取特殊措施來確保數據完整性。
(3)歸檔模式與非歸檔模式
歸檔模式:歸檔模式下,數據庫將歷史記錄保存到一組稱為“歸檔日志”的特殊文件中。這些日志包含先前已提交的事務的詳細信息,使得可以恢復或還原丟失或損壞的數據。由于需要頻繁地寫入日志文件,性能會有所降低。
非歸檔模式:非歸檔模式下,當一個事務被提交時,其結果直接寫入主要數據文件中。而不像歸檔模式那樣額外生成日志文件。這種方式雖然可以提高性能,并降低空間開銷,但也存在數據丟失或損壞時無法完全恢復的風險。
1.2 完全備份/差異備份/增量備份
(1)完全備份(Full):備份全部選中文件,并不依賴文件的存檔屬性來確定備份哪些文件(每個文件都被標記為已備份,消除存檔屬性)。
(2)差異備份(Differential):備份上次完全備份后發生變化的所有文件(備份后不標記為已備份文件,不消除存檔屬性)。(備份時間長,占空間多,恢復快)。
(3)增量備份(Incremental):針對上次備份后(無論哪種備份)備份上次備份后所有發生變化的文件(備份后標記文件,消除存檔屬性)。(備份時間短,占空間少,恢復慢)。
組合示例:
完備+差備:周一進行完全備份,周二到周五進行差異備份。若周五數據被破壞,需還原周一的完全備份及周五的差異備份。
完備+增備:周一進行完全備份,周二到周五機型增量備份。若周五數據被破壞,需還原周一的完全備份及周二至周五的增量備份。
- Oracle 邏輯備份
Oracle支持兩種類型的邏輯備份:導出/導入實用程序與數據泵。
2.1 EXP/IMP
(1)EXP導出
完全模式
exp SYSTEM/MANAGER BUFFER=64000 file= C:\full.dmp full=Y
1
用戶模式
exp detail12/detail12 owner=(detail12,detail11) file=/home/oracle/detail.dmp
1
exp detail12/detail12@RACDB_192.168.1.13 file=d:/detail.dmp
1
其中,RACDB_192.168.1.13為Oracle Net Configuration Assistant的網絡服務名。
表模式
exp detail12/detail12 owner=detail12 tables=(T_JBXX) file=/home/oracle/t_jbxx.dmp
1
如果T_JBXX為分區表,使用tables=(T_JBXX1:P1,T_JBXX2:P2)的形式。
query字段格式:
query="""where dept_date<to_date('2014-02-01 00:00:10','yyyy-mm-dd hh24:mi:ss')"""
1
注意:不導入權限和索引可加入 GRANTS=Y INDEXES=Y
關鍵字說明
關鍵字 說明 (默認值)
USERID 用戶名/口令
FULL 導出整個文件 (N)
BUFFER 數據緩沖區大小
OWNER 所有者用戶名列表
FILE 輸出文件 (EXPDAT.DMP)
TABLES 表名列表
COMPRESS 導入到一個區 (Y)
RECORDLENGTH IO 記錄的長度
GRANTS 導出權限 (Y)
INCTYPE 增量導出類型
INDEXES 導出索引 (Y)
RECORD 跟蹤增量導出 (Y)
DIRECT 直接路徑 (N)
TRIGGERS 導出觸發器 (Y)
LOG 屏幕輸出的日志文件
STATISTICS 分析對象 (ESTIMATE)
ROWS 導出數據行 (Y)
PARFILE 參數文件名
CONSISTENT 交叉表的一致性 (N)
CONSTRAINTS 導出的約束條件 (Y)
OBJECT_CONSISTENT 只在對象導出期間設置為只讀的事務處理 (N)
FEEDBACK 每 x 行顯示進度 (0)
FILESIZE 每個轉儲文件的最大大小
FLASHBACK_SCN 用于將會話快照設置回以前狀態的 SCN
FLASHBACK_TIME 用于獲取最接近指定時間的 SCN 的時間
QUERY 用于導出表的子集的 select 子句
RESUMABLE 遇到與空格相關的錯誤時掛起 (N)
RESUMABLE_NAME 用于標識可恢復語句的文本字符串
RESUMABLE_TIMEOUT RESUMABLE 的等待時間
TTS_FULL_CHECK 對 TTS 執行完整或部分相關性檢查
TABLESPACES 要導出的表空間列表
TRANSPORT_TABLESPACE 導出可傳輸的表空間元數據 (N)
TEMPLATE 調用 iAS 模式導出的模板名
(2)IMP導入
完全模式
imp SYSTEM/MANAGER BUFFER=64000 file=C:\full.dmp full=Y
1
用戶模式
imp detail12/detail12 fromuser=(detail12,detail11) touser=(detail12,detail11) file=/home/oracle/detail.dmp
1
表模式
imp detail12/detail12 owner=detail12 tables=(T_JBXX) file=/home/oracle/t_jbxx.dmp
1
注意
IMP導入必須指定Full=Y,或提供fromuser/touser參數,或提供tables參數。
導入前需按要求設置字符集export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
忽略創建表錯誤可加入IGNORE=Y,不導入權限和索引可加入 GRANTS=Y INDEXES=Y
導入時發生IMP-00032錯誤,表示SQL語句超過緩沖區長度,可以加入選項:buffer=100000000
關鍵字說明
關鍵字 說明 (默認值)
USERID 用戶名/口令
FULL 導入整個文件 (N)
BUFFER 數據緩沖區大小
FROMUSER 所有者用戶名列表
FILE 輸入文件 (EXPDAT.DMP)
TOUSER 用戶名列表
SHOW 只列出文件內容 (N)
TABLES 表名列表
IGNORE 忽略創建錯誤 (N)
RECORDLENGTH IO 記錄的長度
GRANTS 導入權限 (Y)
INCTYPE 增量導入類型
INDEXES 導入索引 (Y)
COMMIT 提交數組插入 (N)
ROWS 導入數據行 (Y)
PARFILE 參數文件名
LOG 屏幕輸出的日志文件
CONSTRAINTS 導入限制 (Y)
DESTROY 覆蓋表空間數據文件 (N)
INDEXFILE 將表/索引信息寫入指定的文件
SKIP_UNUSABLE_INDEXES 跳過不可用索引的維護 (N)
FEEDBACK 每 x 行顯示進度 (0)
TOID_NOVALIDATE 跳過指定類型 ID 的驗證
FILESIZE 每個轉儲文件的最大大小
STATISTICS 始終導入預計算的統計信息
RESUMABLE 在遇到有關空間的錯誤時掛起 (N)
RESUMABLE_NAME 用來標識可恢復語句的文本字符串
RESUMABLE_TIMEOUT RESUMABLE 的等待時間
COMPILE 編譯過程, 程序包和函數 (Y)
STREAMS_CONFIGURATION 導入流的一般元數據 (Y)
STREAMS_INSTANTIATION 導入流實例化元數據 (N)
2.2 EXPDP/IMPDP
(1)數據泵介紹
Oracle Database 10g引入了最新的數據泵(Data Dump)技術,使DBA或開發人員可以將數據庫元數據(對象定義)和數據快速移動到另一個oracle數據庫中,與Export / Import相比,它提供更好的性能、安全性和靈活性。
并行處理: Oracle 數據泵支持并行處理(通過指定 PARALLEL 參數啟用),這使得導入和導出任務更加快速和高效。
可定制: 數據泵允許用戶選擇要包含或排除的對象類型(如表、視圖、約束等),以及要包含或排除的特定對象。
壓縮: Oracle 數據泵支持壓縮功能,可減少導出文件的大小,并提高傳輸速度。
安全性: 數據泵支持 SSL 加密協議來保護敏感信息,在安全方面非常有優勢。
多平臺兼容性: Oracle 數據泵支持多個平臺上運行,例如 Windows 和 Linux 等操作系統。
(2)數據泵的使用
EXP和IMP是客戶段工具程序,它們既可以在可以客戶端使用,也可以在服務端使用。 EXPDP和IMPDP是服務端的工具程序,他們只能在ORACLE服務端使用,不能在客戶端使用。
使用EXPDP工具時,其轉儲文件只能被存放在DIRECTORY對象對應的OS目錄中,而不能直接指定轉儲文件所在的OS目錄。因此,使用EXPDP工具時,必須首先建立DIRECTORY對象,并且需要為數據庫用戶授予使用DIRECTORY對象權限。
使用Data Pump,可將整個數據庫或特定模式及其對象(如表格、索引、約束和其數據)導出/導入,還可指定選項,例如表空間、壓縮級別、加密和遠程導出/導入的網絡鏈接。
Data Pump包括兩個客戶端實用程序:expdp(Export Data Pump)和impdp(Import Data Pump)。
e.g.
create directory imp_dir as 'D:\imp_dir';
GRANT READ, WIRTE ON DIRECTORY imp_dir TO detail;
1
2
expdp scott/tiger DUMPFILE=tmp_dump.dmp DIRECTORY= imp_dir
1
impdp scott/tiger DUMPFILE=tmp_dump.dmp DIRECTORY= imp_dir
————————————————
版權聲明:本文為CSDN博主「機器學習Zero」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/apr15/article/details/131119466