Oracle資料庫備份

2021-04-18 00:09:58 字數 2389 閱讀 2334

oracle資料庫備份技術

網路故障  os  oracle  director   

一、備份的意義

當我們使用乙個資料庫時,總希望資料庫的內容是可靠的、正確的,但由於計算機系統的故障(硬體故障、網路故障、程序故障和系統故障)影響資料庫系統的操作,影響資料庫中資料的正確性,甚至破壞資料庫,使資料庫中全部或部分資料丟失。 

因此對現有資料的儲存--備份顯得越發重要。

二、備份的方法

oracle資料庫有三種標準的備份。匯出/匯入(export/import) 、冷備份、熱備份。

匯出備份是一種邏輯備份,這種方法包括讀取一系列的資料庫日誌,並寫入檔案中,這些日誌的讀取與其所處位置無關。

冷備份和熱備份是物理備份(也稱低階備份),它涉及到組成資料庫的檔案,但不考慮邏輯內容。

面我們分別介紹一下這三種備份方法及其特點:

(一)、匯出/匯入(export/import)

export/import是用來將oracle中資料移出/移入資料庫。

1、export將資料庫中資料備份成乙個二進位制系統檔案稱為「匯出轉儲檔案(export dump file),並將重新生成資料庫寫入檔案中。

它有三種模式:

使用者模式:匯出使用者所有物件以及物件中的資料

表模式:匯出使用者所有表或者指定的表

整個資料庫:匯出資料庫中所有物件

它的備份有三種型別:

完全型(complete export):備份整個資料庫

積累型(comulative erport):備份上一次積累型備份所改變的資料

增量型(increamental export):備份上一次備份後改變的資料

export 的命令可以互動式進行,各引數的具體含義見oracle exp/imp引數詳解。

在進行匯出備份時我們要考慮一點問題,那就是匯出的一致性,在匯出過程 中匯出每讀一次就讀取乙個表,因而儘管匯出是在乙個特點時自己開始的,但不同的表讀取的時間不同,因此,匯出開始讀乙個表時,此時表中的資料才是匯出的資料,這樣當大多數表按內部關鍵字和外部關鍵字相互聯絡時,在匯出過程中這些相關聯表的改變就會導致匯出的不一致性,要避開這個,我們可以將匯出過程安排在不對錶操作的時候進行。另外,當oracle中restrictep consistent 選項就可以保證匯出資料一致性。

2、import匯入:

匯入的過程是匯出的逆過程,這個命令先讀取匯出來的匯出轉儲二進位制檔案,並執行檔案,恢復物件使用者和資料。

import命令執行的方法和export方案有關。

如果export所實施的是完全型方案(full)則在import時所有的資料物件,包括表空間,資料檔案,使用者都會在匯入時建立,但考慮到資料庫中的物理布局,預先建立表空間和使用者是有用的。

如果export使用的是incremental/cumulative方式,則需要預先設定好錶空間、使用者、資料檔案。

(二)、冷備份

冷備份發生在資料庫已經正常關閉的情況下,當正常關閉時會提供給我們乙個完整的資料庫。

資料庫使用的每個檔案都被備份下來,這些檔案包括:

☆所有資料檔案

☆所有控制檔案

☆所有聯機redo log 檔案

☆init.ora檔案(可選)

值得注意的是冷備份必須是資料庫關閉的情況下完成,當資料庫開著的時候,執行資料庫檔案系統備份無效。

作冷備份一般步驟是:

正常關閉要備份的例項(instance)

備份整個資料庫到乙個目錄

啟動資料庫

指令碼如下:

sqldba>connect internal

sqldba>shutdown normal

sqldba>! cp 或 sqldba>!tar cvf /dev/rmt/0 /wwwdg/oracle

sqldba>startup

(三)、熱備份(achirelog)

資料庫需要二十四小時執行,而且隨時有新的資料加入,資料丟失將影響整個公司,採用archivelog mode物理備份。

設定資料庫為automatic archivelog mode,指令碼如下:

#su - oracle

%svrmgrl

svrmgrl>connect internal

svrmgrl>startup mount

svrmgrl>alter database archivelog

svrmgrl>shutdown

svrmgrl>exit

%vi init.ora

加入log_archive_start = true # if you want automatic archiving

log_archive_dest = $oracle_home/dbs/arch

log_archive_format = log%s.arc

%dbstart

oracle資料庫備份

oracle資料庫的邏輯備份分為三種模式 表備份 使用者備份和完全備份。表模式 備份某個使用者模式下指定的物件 表 業務資料庫通常採用這種備份方式。若備份到本地檔案,使用如下命令 exp icdmain icd rows y indexes n compress n buffer 65536 fil...

Oracle資料庫備份

將下面的語句儲存為批處理檔案,即backup.dat,雙擊即可實現資料庫備份。1.資料庫匯出,儲存格式為 年月日日期時分秒.dmp 帶有日誌 exp 使用者名稱 密碼 資料庫例項名 file date 0,4 date 5,2 date 8,2 date 11,3 time 0,2 time 3,2...

oracle資料庫備份

oracle資料庫 1 命令列備份 1 將資料庫test完全匯出,使用者名稱system 密碼manager 匯出到d daochu.dmp中 exp system manager test file d daochu.dmp full y 附加一句 若把備份倒到指定資料夾下,資料夾的名字中最好不要...