您好,登錄后才能下訂單哦!
很多的應(yīng)用場景下,為了防止災(zāi)難的發(fā)生,防范重要數(shù)據(jù)的丟失,異地容災(zāi)解決方案層次不窮。那么數(shù)據(jù)庫無疑成為廠家重點保護(hù)的對象,那么來一起學(xué)習(xí)一下Oracle的備份機制。
Oracle備可以分為邏輯導(dǎo)出/導(dǎo)入和物理備份/恢復(fù)
邏輯備份:其實就是利用exp/imp命令來實現(xiàn)表庫的數(shù)據(jù)信息
導(dǎo)出:
CMD命令模式下exp -? 查看幫助,簡單介紹兩個參數(shù)和使用格式
1)owner users to export: format is '(user1, user2, .., userN)'指定導(dǎo)出那些用戶的表,如果一個用戶不存在會出警告不會影響另一個用戶表導(dǎo)出
格式如下:exp system/system owner=(user1,user2) file=D:/path ------->file為保存路徑 ------------>owner等于多個參數(shù)時候要用括號括起來
2)tables tables to export: format is '(table1, table2, ..., tableN)'指定導(dǎo)出那些表,一次可以靈活選擇多個表備份
格式如下:exp system/system tables=(tables1,tables2) file=D:/path.dmp
基本格式大同小異 希望大家多多看幫助手冊(參考必須)
導(dǎo)入:
sql*plus中通過host 指令來調(diào)用DOS命令,注意Oracle 9i命令增量導(dǎo)出inctype已經(jīng)廢棄,導(dǎo)入使用imp命令 imp -? SQL*PLUS下要先打上 host
導(dǎo)入格式:imp system/system file=D:/path.dmp 帶上參數(shù) tables=(user1,user2) 該命令只導(dǎo)入user1,user2這兩張表。
SQL>host imp system/system file=D:/path.dmp tables=(user1,user2); 在SQL*PLUS中使用方式
不論導(dǎo)入還是導(dǎo)出在沒有指定參數(shù)的情況下將使用ORACLE_SID默認(rèn)的環(huán)境變量庫,前面已經(jīng)涉及SID知識。
物理備份/恢復(fù)
分為兩大類:冷備份和熱備份
什么是冷備份,簡單粗暴來說關(guān)閉數(shù)據(jù)庫,復(fù)制庫文件,這些文件有數(shù)據(jù)文件,控制文件,日志文件,聯(lián)機的BEDOLOG和Init.org(可選)。
冷備份步驟
1)關(guān)閉數(shù)據(jù)庫 shutdown normal(正常關(guān)閉)
2)當(dāng)前在SQL*PLUS環(huán)境下 SQL>host copy D:\oracle\product\...\oradata\test(原庫的路徑) E:\Backup(備份位置的路徑)
解析:其實就是將以文件(塊)存儲在磁盤的數(shù)據(jù)庫復(fù)制到另一個文件夾內(nèi)保存
恢復(fù)更簡易,只要保證數(shù)據(jù)庫關(guān)閉狀態(tài),把備份的庫復(fù)制到老的庫位置即可
什么是熱備份:有人也叫平滑升級,在啟動狀態(tài)的數(shù)據(jù)庫下進(jìn)行數(shù)據(jù)庫備份,因為很多場合應(yīng)用場景絕不可能讓你把某一臺數(shù)據(jù)庫關(guān)閉,高可用集群除外,所以掌握熱備份非常必要(數(shù)據(jù)庫一定是歸檔模式)
什么是歸檔模式:當(dāng)我們啟動數(shù)據(jù)庫的時候,會有很多初始化信息,其中就會有Redo Buffer重做緩沖區(qū)大小,那么我們數(shù)據(jù)庫有聯(lián)機重做日志,這個日志是記錄增刪改查等等操作記錄,一個Oracle的數(shù)據(jù)庫有至少有兩個歸檔重做日志,在非歸檔模式下,那么當(dāng)?shù)谝粋€歸檔日志寫滿之后切換第二個聯(lián)機重做日志,當(dāng)?shù)诙€歸檔日志寫滿以后切換寫第一個聯(lián)機重做日志,新內(nèi)容將老的日志記錄覆蓋,那么會導(dǎo)致內(nèi)容丟失。如果在歸檔模式下,在一個聯(lián)機重做日志寫滿之后切換時候?qū)w檔,并復(fù)制到其他目錄,這樣會相對了避免了數(shù)據(jù)丟失。
熱備份步驟
1)首先我們把數(shù)據(jù)庫進(jìn)入mount階段,修改歸檔模式,命令如下
SQL>alter database mount
SQL>alter database archivelog;
2)那么我們打開數(shù)據(jù),便于對數(shù)據(jù)庫操作
SQL>alter database open;
3)查看是否開啟歸檔模式
SQL>archive log list;
4)開啟表空間備份模式
SQL>alter tablespace users begin backup;
5)備份表空間
SQL>host copy D:\app\....\oradate\xx.dbf D:\Backup
6)關(guān)閉表空間備份
SQL>alter tablespace users end backup;
7)備份控制文件
SQL>alter database backup controlfile to '' reuse;
8)備份控制文件腳本
SQL>alter database backup controllfile to trace;
在Oracle_home\intsance_name\udump控制的跟蹤文件,復(fù)制文件到備份目錄下,熱備份完成,詳細(xì)的知識點會繼續(xù)完善。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。