文章詳情頁
Oracle數(shù)據(jù)庫管理系統(tǒng):大數(shù)據(jù)的備份
瀏覽:100日期:2023-11-21 12:54:38
問:公司里的Oracle數(shù)據(jù)庫有20G之大(這是一個方案的大小.原來這個方案有30G,我已經(jīng)把能刪的數(shù)據(jù)都刪了),怎么備份?感覺備份一次好慢啊.專家有什么指導(dǎo)一下的嗎?(另:20G的數(shù)據(jù)庫是不是備份也要20G這樣?)我希望能每周備份一次,最好天天一次. 答:方法一:首選需要在UNIX下創(chuàng)建一個管道(只創(chuàng)建一次即可):$mknod ./eXP_pipe p$ ls -l exp_pipeprw-rw-r-- 1 report group 0 Mar 17 05:20 exp_pipe然后通過管道,將EXP導(dǎo)出的數(shù)據(jù)直接壓縮,注重:下面二行要寫在同一個shell腳本中。compress < ./exp_pipe > ./tmp_now.dmp.Z &exp user/passwd@數(shù)據(jù)庫連接串 file=./exp_pipe direct=y compress=no log=./exp.log20G的DMP文件,壓縮后的大小在4G左右。方法二:考慮到機(jī)器的速度和效率的問題,一般不建議使用exp對數(shù)據(jù)量大的數(shù)據(jù)庫進(jìn)行備份,因?yàn)楸容^慢。oracle的rman備份可以支持增量備份,你可以自己設(shè)置一個備份策略,好比每周日做一次數(shù)據(jù)庫全備份(level 0 級的備份),然后周一周二做增量備份(level 1 級的備份),周三在做一次數(shù)據(jù)庫全備份(level 0),最后周四、周五、周六做數(shù)據(jù)庫的增量備份(level 1)。這樣既可以保證你的備份在大部分時間內(nèi)比較快,而且也可一保證在需要恢復(fù)時較快。具體的備份策略要根據(jù)你的要求而定,我只是舉個例子。介紹一下什么是Oracle的rman備份:Oracle 的RMAN備份- -查看那當(dāng)前使用那個spfile文件 :SQL> select name,value from v$parameter where name='spfile';1。檢查數(shù)據(jù)庫的歸檔方式。假如不是規(guī)定方式,則要修改數(shù)據(jù)庫為歸檔方式。1.1 以dba帳號登陸,$ sqlplus '/as sysdba';SQL> archive log list;Database log mode No Archive Mode #非歸檔方式Automatic archival EnabledArchive destination /oracle/bakram/log_archiveOldest online log sequence 161Current log sequence 1631.2 假如第一步為 No Archive Mode ,則將數(shù)據(jù)庫修改修改為歸檔方式1.2.1 建立存檔路徑.$mkdir /oracle/bakram/log_archive1.2.2 在/oracle/OracleHome/dbs/建立一文件 firstSpfile.ora文件內(nèi)容為:SPFILE='/oracle/OracleHome/dbs/spfileorcyehoo.ora' # 實(shí)例名稱log_archive_start=true;log_archive_format=ARC%T%S.arc #格式log_archive_dest=/oracle/bakram/log_archive #存放的路徑1.3 停止數(shù)據(jù)庫$/oracle/dbstop.sh1.4 修改歸檔方式1.4.1 建立一個dbstartmount.sh文件--------echo 'begin to start oracle mount...'lsnrctl startsqlplus /nolog < connect /as sysdbastartup mountexitexitsleep 10echo 'oracle have started oracle mount...'--------執(zhí)行./dbstartmount.shSQL>alert database archivelog;Database altered.將數(shù)據(jù)庫打開SQL> alert database open;Database altered.SQL>1.5.配置dbstart.sh。 啟動數(shù)據(jù)庫$vi /oracle/dbstart.sh #編輯啟動腳本---------------------------------------------echo 'begin to start oracle...'lsnrctl startsqlplus /nolog < connect /as sysdbastartup pfile='/oracle/OracleHome/dbs/firstSpfile.ora' #修改這里。即啟動時加載自己配置的文件。 exitexitsleep 10echo 'oracle have started...'--------------------------------------2. 創(chuàng)建RMAN目錄$ sqlplus system/data#yes2.1創(chuàng)建一個獨(dú)立的表空間SQL> create tablespace back datafile 'back_Css.dmp' size 50m;2.2創(chuàng)建RMAN用戶SQL> create user rman identified by rman default tablespace back temporary tablespace temp;2.3給RMAN授予權(quán)限SQL>grant connect,resource,recovery_catalog_owner to rman;2.4打開RMAN$RMAN2.5連接數(shù)據(jù)庫RMAN>connect catalog rman/rman;2.6 創(chuàng)建恢復(fù)目錄RMAN>create catalog tablespace back;3. 注冊目標(biāo)數(shù)據(jù)庫(需要備份的數(shù)據(jù)庫)3.1 注冊數(shù)據(jù)庫$rman target sys/data#yes catalog rman/rman@yehoo; #yehoo為實(shí)例名。----Recovery Manager: Release 9.2.0.1.0 - ProdUCtionCopyright (c) 1995, 2002, Oracle Corporation. All rights reserved.connected to target database: YEHOO (DBID=2840368994)connected to recovery catalog database----RMAN> register database;3.2 查詢恢復(fù)目錄怎么能知道我們的oracle9i是OLTP還是DSS4。備份備份表空間:backup tag 'tsuser' format '/oracle/css_20041209_%u_%s_%p' tablespace css;5. 維護(hù)rman5.1 查看現(xiàn)有備份RMAN> list backup;5.2 列出過期備份RMAN> report obsolete6. 選擇備份策略
標(biāo)簽:
Oracle
數(shù)據(jù)庫
排行榜
