oracle存档模式,Oracle的备份和存档模式
Oracle的備份和存檔模式
在做硬件升級前必須要將數據庫做一次全備份,以便在出現不可預料的情況下進行恢復,全備份的方法有多種,以下列舉兩種簡單高效的邏輯備份和冷備份,在數據庫可以宕機的條件下,推薦使用冷備份,備份和恢復都較為簡單和安全。升級完成再將數據庫更改為存檔模式。一、邏輯備份(導出、導入)
1、導出工具 EXP
它是操作系統下一個可執行的文件存放目錄/ORACLE_HOME/bin。
exp導出工具將數據庫中數據備份壓縮成一個二進制系統文件。可以在不同OS間遷移。
它有三種模式:
a.?用戶模式:導出用戶所有對象以及對象中的數據;
b.?表模式:?導出用戶所有表或者指定的表;
c.
整個數據庫:導出數據庫中所有對象――需要DBA賦予該角色full_exp_database權限
2. exp交互式命令行方式導出
在一臺能連接公安網并且已安裝oracle客戶端的機器上連接目標數據庫
C:\Documents and Settings\yu>exp
scott/tiger@zhouyu――以有權限用戶連接目標數據庫
Export: Release 8.1.7.0.0 - Production on 星期五 1月 5 14:36:16
2007
(c) Copyright 2000 Oracle Corporation.?All
rights reserved.
連接到: Oracle9i Enterprise Edition Release 9.2.0.1.0 -
Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production
輸入數組提取緩沖區大小: 4096 >
――回車或者選擇較為合適的緩沖區大小
導出文件: EXPDAT.DMP>
e:\test.dmp?――指定要導出的文件在本機存放地址
(1)E(完整的數據庫),(2)U(用戶) 或 (3)T(表): (2)U > E
――指定導出的模式
導出權限(yes/no):yes>――指定是否導出權限,回車默認導出
導出表數據(yes/no):yes>――指定是否導出表數據,回車默認導出
壓縮區(yes/no):yes>――指定是否壓縮區,回車默認壓縮
3.exp非交互式命令行方式
在一臺能連接公安網并且已安裝oracle客戶端的機器上連接目標數據庫
$exp parfile=username.par
file=/directory1/username_1.dmp,/directory1/username_2.dmp
filesize=2000M log=/directory2/username_exp.log
參數文件username.par內容
userid=username/userpassword
buffer=8192000
compress=n
grants=y
說明:username.par為導出工具exp用的參數文件,里面具體參數可以根據需要去修改,具體的參數可以在查看操作系統幫助,例如windows中cmd命令行輸入命令
exp -help
4.導入工具 IMP
1. 它是操作系統下一個可執行的文件 存放目錄/ORACLE_HOME/bin
imp導入工具將EXP形成的二進制系統文件導入到數據庫中.
它有三種模式:
a.?用戶模式:導出用戶所有對象以及對象中的數據;
b.?表模式:?導出用戶所有表或者指定的表;
c.?整個數據庫:?導出數據庫中所有對象。
只有擁有IMP_FULL_DATABASE和DBA權限的用戶才能做整個數據庫導入
5. imp交互式命令行方式導入
在一臺能連接公安網并且已安裝oracle客戶端的機器上連接目標數據庫
C:\Documents and Settings\yu>imp scott/tiger@zhouyu
Import: Release 8.1.7.0.0 - Production on 星期五 1月 5 14:52:45
2007
(c) Copyright 2000 Oracle Corporation.?All
rights reserved.
連接到: Oracle9i Enterprise Edition Release 9.2.0.1.0 -
Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 – Production
導入文件: EXPDAT.DMP>e\test.dmp
輸入插入緩沖區大小(最小為 8192 ) 30720>
經由常規路徑導出由EXPORT:V08.01.06創建的文件
警告: 此對象由 TEST 導出, 而不是當前用戶
已經完成ZHS16GBK字符集和ZHS16GBK NCHAR 字符集中的導入
只列出導入文件的內容(yes/no):no>
由于對象已存在, 忽略創建錯誤(yes/no):no> yes
導入權限(yes/no):yes>
導入表數據(yes/no):yes>
導入整個導出文件(yes/no):no> yes
成功終止導入,但出現警告。
6. imp非交互式命令行方式導入
在一臺能連接公安網并且已安裝oracle客戶端的機器上連接目標數據庫
$ imp system/manager parfile=params.dat
參數文件params.dat 內容
file=dba.dmp show=n ignore=n grants=y fromuser=scott
tables=(dept,emp)
說明:
params.dat為導出工具imp用的參數文件,里面具體參數可以根據需要去修改,具體的參數可以在查看操作系統幫助,例如windows中cmd命令行輸入命令
imp –help。
需要注意的問題
imp和exp使用的字符集不同,如果字符集不同, 導入會失敗,
可以改變unix環境變量或者NT注冊表里NLS_LANG相關信息.導入完成后再改回來。
imp和exp版本不能往上兼容,imp可以成功導入低版本exp生成的文件,
不能導入高版本exp生成的文件。
imp全庫導入需要該用戶有IMP_FULL_DATABASE權限或本身為DBA用戶。
二、冷備份
冷備份發生在數據庫已經正常關閉的情況下,當正常關閉時會提供給我們一個完整的數據庫。冷備份是將關鍵性文件拷貝到另外位置的一種說法。對于備份Oracle信息而言,冷備份是最快和最安全的方法。冷備份的優點是:
1.是非常快速的備份方法(只需拷貝文件)
2.容易歸檔(簡單拷貝即可)
3.容易恢復到某個時間點上(只需將文件再拷貝回去)
4.能與歸檔方法相結合,作數據庫“最新狀態”的恢復。
5.低度維護,高度安全。
但冷備份也有如下不足:
1.單獨使用時,只能提供到“某一時間點上”的恢復。
2.在實施備份的全過程中,數據庫必須要作備份而不能作其它工作。也就是說,在冷備份過程中,數據庫必須是關閉狀態。
3.若磁盤空間有限,只能拷貝到磁帶等其它外部存儲設備上,速度會比較慢。
4.不能按表或按用戶恢復。
如果可能的話(主要看效率),應將信息備份到磁盤上,然后啟動數據庫(使用戶可以工作)并將所備份的信息拷貝到磁帶上(拷貝的同時,數據庫也可以工作)。冷備份中必須拷貝的文件包括:
1.所有數據文件
2.所有控制文件
3.所有聯機REDO LOG文件
4.Init.ora文件(可選)。
值得注意的是冷備份必須在數據庫關閉的情況下進行,當數據庫處于打開狀態時,執行數據庫文件系統備份是無效的
1.以system用戶登陸到數據庫,執行查詢,并保存查詢結果。
數據文件的位置:select name from v$datafile;
控制文件的位置:select name from v$controlfile;
日志文件的位置:select member from v$logfile;
初始化參數文件initsid.ora。
2.關閉數據庫
SQL>conn
sys/change_on_install@orcl as sysdba
SQL>shutdown normal;
3.按照第一步查詢結果,使用操作系統命令,拷貝文件至要備份路徑或磁盤。完成備份
4.重啟oracle數據庫
SQL>conn
sys/change_on_install@orcl as sysdba
SQL >startup;
三、更改oracle為歸檔模式
在默認情況下,在創建數據庫的時候,它處于NOARCHIVE模式,也就是非歸檔模式,非歸檔模式不必考慮存儲復制的文件所需要的額外存儲空間,也不需要存檔管理任務,但是,從備份和恢復的角度來看,最大的缺點就是在出現硬件故障的時候,在最后一次數據庫備份之后的任何更改都將丟失。這對于總隊數據庫來說是不可以接受的。所以需要在硬件升級的同時,將數據庫更改為歸檔模式,以便在出現故障時對數據庫進行恢復。
1.確定存檔模式
在更改數據庫存檔模式之前,首先需要做的就是確定當前的模式。
通過SQL*PLUS來確認
連接目標數據庫
SQL> conn ntiis/ntiisadmin@work60
已連接。
SQL> select log_mode from v$database;
LOG_MODE
------------
NOARCHIVELOG?――確認為非歸檔模式
2.更改數據庫參數文件
修改數據庫參數文件/ORACLE_HOME/admin/pfile/init.ora
取消以下語句的#注釋
log_archive_start = true
log_archive_dest_1 =
"location=/ORACLE_HOME/oradata/oradb/archive"
log_archive_format = %%ORACLE_SID%%T%TS%S.ARC
關閉數據庫,重新啟動
3.連接至總隊數據庫,確認更改生效
Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production
With the Partitioning option
JServer Release 8.1.7.0.0 - Production
SQL> connect internal
連接成功。
SQL> startup
已啟動 ORACLE 實例。
系統全局區域合計有 57124108個字節
Fixed Size 70924個字節
Variable Size 40198144個字節
Database Buffers 16777216個字節
Redo Buffers 77824個字節
已裝入數據庫。
數據庫已打開。
SQL> alter system switch logfile;
--強制系統進行日志切換,可馬上觀察到歸檔日志的產生
語句已處理。
查看C:\Oracle\oradata\oradb\archive目錄下,可以看到類似ORADBT001S01201.ARC的文件,說明歸檔成功
4.解釋init.ora參數文件中關于歸檔重做日志參數項的含義
歸檔模式是自動還是手工,true為自動,false為手工
log_archive_start = true
歸檔日志文件所保存的路徑
log_archive_dest_1 =
"location=C:\Oracle\oradata\oradb\archive"
歸檔日志文件的命名方法
log_archive_format = %%ORACLE_SID%%T%TS%S.ARC
總結
以上是生活随笔為你收集整理的oracle存档模式,Oracle的备份和存档模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle log.xml分析,Ora
- 下一篇: oracle中行数少于1000,orac