當前位置:首頁 » 編程軟體 » rman全備份腳本

rman全備份腳本

發布時間: 2025-07-20 01:43:12

『壹』 請解釋下Oracle里邏輯備份、物理備份、Rman備份的區別。教科書和百度上的解釋不是很懂,謝謝。

Oracle資料庫的邏輯備份
ORACLE資料庫有兩類備份方法。第一類為物理備份,該方法實現資料庫的完整恢復,但資料庫必須運行在歸擋模式下(業務資料庫在非歸擋模式下運行),且需要極大的外部存儲設備,例如磁帶庫;第二類備份方式為邏輯備份,業務資料庫採用此種方式,此方法不需要資料庫運行在歸擋模式下,不但備份簡單,而且可以不需要外部存儲設備。資料庫邏輯備份方法ORACLE資料庫的邏輯備份分為三種模式:表備份、用戶備份和完全備份。

表模式

備份某個用戶模式下指定的對象(表)。業務資料庫通常採用這種備份方式。若備份到本地文件,使用如下命令:

exp icdmain/icd rows=y indexes=n compress=n buffer=65536
feedback=100000 volsize=0
file=exp_icdmain_csd_yyyymmdd.dmp
log=exp_icdmain_csd_yyyymmdd.log
tables=icdmain.commoninformation,icdmain.serviceinfo,icdmain.dealinfo

若直接備份到磁帶設備,使用如下命令:
exp icdmain/icd rows=y indexes=n compress=n buffer=65536
feedback=100000 volsize=0
file=/dev/rmt0
log=exp_icdmain_csd_yyyymmdd.log
tables=icdmain.commoninformation,icdmain.serviceinfo,icdmain.dealinfo

註:在磁碟空間允許的情況下,應先備份到本地伺服器,然後再拷貝到磁帶。出於速度方面的考慮,盡量不要直接備份到磁帶設備。

用戶模式

備份某個用戶模式下的所有對象。業務資料庫通常採用這種備份方式。 若備份到本地文件,使用如下命令:

exp icdmain/icd owner=icdmain rows=y indexes=n compress=n buffer=65536
feedback=100000 volsize=0
file=exp_icdmain_yyyymmdd.dmp
log=exp_icdmain_yyyymmdd.log

若直接備份到磁帶設備,使用如下命令:

exp icdmain/icd owner=icdmain rows=y indexes=n compress=n buffer=65536
feedback=100000 volsize=0
file=/dev/rmt0
log=exp_icdmain_yyyymmdd.log

註:如果磁碟有空間,建議備份到磁碟,然後再拷貝到磁帶。如果資料庫數據量較小,可採用這種辦法備份。

完全模式

備份完整的資料庫。業務資料庫不採用這種備份方式。備份命令為:

exp icdmain/icd rows=y indexes=n compress=n buffer=65536
feedback=100000 volsize=0 full=y
file=exp_fulldb_yyyymmdd.dmp(磁帶設備則為/dev/rmt0)
log=exp_fulldb_yyyymmdd.log

對於資料庫備份,建議採用增量備份,即只備份上一次備份以來更改的數據。增量備份命令:

exp icdmain/icd rows=y indexes=n compress=n buffer=65536
feedback=100000 volsize=0 full=y inctype=incremental
file=exp_fulldb_yyyymmdd.dmp(磁帶設備則為/dev/rmt0)
log=exp_fulldb_yyyymmdd.log

註:關於增量備份必須滿足下列條件:
1. 只對完整資料庫備份有效,且第一次需要full=y參數,以後需要inctype=incremental參數。
2. 用戶必須有EXP_FULL_DATABASE的系統角色。
3. 話務量較小時方可採用資料庫備份。
4. 如果磁碟有空間,建議備份到磁碟,然後再備份到磁帶。

業務資料庫備份方法及周期用EXP進行備份前,先在SYS用戶下運行CATEXP.sql文件(如果以前已運行該文件,則不要執行這個腳本)。
沒有特殊說明,不允許在客戶端執行備份命令。

備份命令參照表模式下的備份命令。

RMAN備份原理

在之前,看了用戶管理的備份恢復管理,通過以SCN為線索貫穿整個過程,來熟悉了備份原理。
RMAN的備份過程和用戶備份恢復管理有很大的區別,很多朋友了都沒有理清楚原理
下面的是我的理解:
RMAN備份數據塊的工作原理:

原理:RMAN基於備份演算法規則來編譯要備份的數據文件列表。基於通道數和同時備份的數據文件數,RMAN在ORACEL共享內存段中
創建一些內存緩沖區一般是在PGA中不過有時候內存緩沖區會被推入SGA。通道服務進程隨後就開始讀取數據文件,並在RMAN緩沖取
中填充這些數據塊。一個緩沖區被填滿時,輸入緩沖區的數據就會推出到輸出緩沖區。數據文件中的數據塊都會都會發生這種
memery—to—monery write 的過程,如果數據塊符合備份的標准,並且memery—to—monery write操作沒有檢查到
數據corruption則該數據塊會被保存到輸出數據緩沖區中,直到輸出緩沖區被填滿。一但輸出緩沖區被填滿,輸出緩沖區的內容就會被
推到備份位置(磁碟或者磁帶)

RMAN備份資料庫過程:
RMAN發出備份全庫命令後,RMAN生成到目標資料庫的bequeath連接,也就是說會檢查ORACLA_SID變數中的實例名,並在該在實
例上產生一個伺服器進程,然後作為sysdba登陸,然後會產生一個作為備份的通道,(在PGA或者是在SGA分配存儲)。隨後RMAN調用
SYS.DBMS_RCVMAN請求資料庫結構信息,包括控制文件的信息(當前序列號,創建時間……)由於指定了備份全庫,所以RMAN會請求
資料庫中數據文件信息,並判斷是否存在offline數據文件(包括所在的位置和工作方式)。
RMAN開始備份,為了保持數據一致性RMAN必須構建控制文件快照,接下來RMAN調用DBMS _BACKUP_RESTORE數據包,該調用
可以創建備份片。RMAN擁有文件列表,所以它為數據文件讀取操作分配內存緩沖區,分配緩沖區後RMAN初始化備份片。一旦初始化了備份片,
RMAN會判斷是否使用了伺服器參數文件,如果使用了則會做為備份的一部分,還要備份控制文件,之後才開始備份數據文件,並將其推至內存。
為了實現這一功能,通道進程在磁碟上執行預讀取操作,並且將多個數據文件讀入內存中,RMAN會判斷數據塊頭信息是否仍然為零,如果數據塊
沒有被使用過,就不會發生到輸出緩沖區的寫操作,同時會丟棄這個數據塊(這就RMAN為什麼會只備份使用過的數據的原因,也是它的優點)
RMAN還會執行檢查數據塊有沒有corruption操作。當檢查通過了就被寫入到輸出緩沖區。一旦輸出緩沖區填滿了,就被推至備份文件位置。
在備份數據塊的時候,RMAN影子進程會得到備份狀態信息。並將它傳給V$session_longops視圖。查詢它能得到信息。
當數據文件的所有數據塊都被讀入輸入緩沖區並確定了狀態之後RMAN就會通過將這個數據文件寫入備份片來結束該文件的備份操作。所有
數據文件寫入備份片之後,RMAN生成最後一個對SYS DBMS BACKUP RESTORE 數據包的調用,該調用在控制文件中寫入備份信息(包括
備份片名,啟動備份操作時的檢查點的SCN和完成備份的時間)
至此完成備份!

希望大家繼續討論RMAN備份恢復原理(RMAN功能太強大了)

『貳』 如何升級oracle版本

Oracle資料庫升級也並非簡單的事,這篇文章對Oracle那點事做了較詳細的介紹:Oracle資料庫升級或數據遷移方法研究
我還屬於Oracle的菜鳥,就不獻丑介紹了。
下面我就簡單總結下,Oracle同版本升級的經歷:
升級資料庫:
1. 先檢查資料庫當前版本:SELECT * FROM v$version;
2. 使用RMAN或exp 進行全庫備份
【這一步非常非常重要,因升級到數據部分時,虛擬機沒空間了,導致VM崩潰,升級失敗.orcl庫也掛了,不得不從另一台Oracle上創建了一個Orcl,然後,冷備遷移過來,才得以重新升級。】
如:RMAN全備
export ORACLE_SID=orcl
rman target /
RMAN>backup full database plus archivelog //全備資料庫,並且包括ArchiveLog。
3. 最後按下面步驟進行升級
<1> 先知道Oracle 7個更新文件的作用:
第一 和 二個包表示database , 如果升級資料庫,只需要這2個文件即可。
第三個包表示grid, 用來升級RAC 的CRS。如果升級RAC 要先用這個文件。
第四個表示客戶端,
第五個表示gateways,
第六個表示 examples, 這個是我們的示例文件安裝包。
<2> 升級Oracle資料庫
首先將第一和二個zip壓縮上傳,並在同一個目錄下解壓,因為,它兩的目錄結構基本一致,並且這兩壓縮包的內容需要合並後才能,執行runInstaller文件。所有要在同一個目錄下解壓,這樣會直接合並。
<3> 運行runInstaller,若沒有圖像界面會可能就需要有應答文件了,這個就需要再查了,
我測試時,有圖形界面,所以直接用圖形界面來升級:
需要注意幾個地方:
A. 這是第一個地方,這里需要點,「Skip software updates"跳到軟體更新
B.這里是選項安裝新Oracle軟體的位置,這里不能寫舊的位置。
另注: 磁碟空間一定要5~10G, Oracle11.2.0.1升級到11.2.0.3需要4.1G。
C. 第三點:需要注意: /etc/oratab這個文件。
因為,更新到最後是更新資料庫,更新資料庫時,必須要有一個資料庫是運行的.才能執行,並且更新資料庫時,它是通過oratab文件來讓你選擇通過那個運行的資料庫來嘗試更新資料庫。
4. 資料庫更新完後,需要做以下事情:
首先,升級完成後,需要將Oracle必須的環境變數修改為升級後的Oracle軟體路徑。
需要修改: ORACLE_HOME.
如我的環境:
Oracle11.2.0.1時:
ORACLE_BASE=/home/oracle/ora
ORACLE_HOME=$ORACLE_BASE/proct/11g/db_1
升級後,Oracle版本為:11.2.0.3,新的家目錄為:
Oracle11.2.0.3: ORACLE_HOME=$ORACLE_BASE/proct/11.2.0.3/db_1
<1> 先執行這個文件,用sysdba的許可權:
SQL> SPOOL update.info
SQL> $ORACLE_HOME/rdbms/admin/utlu112i.sql
SQL> SPOOL OFF
查看日誌是否有錯誤。
<2> 關閉資料庫,並更新啟動。
SQL> shutdown immediate
SQL> startup upgrade
SQL> select * from v$version; #查看Oracle的版本。
SQL> select status from v$instance;
STATUS
------------
OPEN MIGRATE
#下面開始執行升級腳本。
SQL> SPOOL update-info.log
SQL> @$ORACLE_HOME/rdbms/admin/catupgrd.sql
#下面是查看升級結果的; 這個不是很確定,因為參考博客的環境是,
# 是9i 升 10g
#SQL> @$ORACLE_HOME/rdbms/admin/utlu102s.sql
SQL> SPOOL OFF
完成後,需要查看升級日誌,是否有保錯,若有,則重新執行升級SQL腳本。
#升級完成後,需要重啟DB.
SQL> shutdown immediate
SQL> startup
#下面是執行重新編譯無效對象
SQL> @$ORACLE_HOME/rdbms/admin/utlrp.sql
#查看是否還存在無效對象,若為0,則表示升級完成。否則重新執行編譯。
SQL> SELECT count(*) FROM dba_objects WHERE status='INVALID';
SQL> select name from v$database; #確認資料庫的SID是否正確。
SQL> show user; #確認當前是否為sys用戶。
SQL> select tablespace_name, bytes from dba_data_files; #確認表空間大小是否正確.
#下面這個步驟網文中沒有,這是尚觀視頻中提到的,作用不明.
#SQL> @$ORACLE_HOME/rdbms/admin/catalog.sql
#最後,重啟資料庫沒有問題就是升級成功了。
SQL> select status from v$instance;
STATUS
------------
OPEN #注意,成功打開資料庫後,這里將是OPEN,而非OPEN MIGRATE

熱點內容
c語言退出程序函數 發布:2025-07-20 05:24:34 瀏覽:200
電腦怎麼訪問區域網伺服器 發布:2025-07-20 05:13:21 瀏覽:485
抖音mas演算法 發布:2025-07-20 04:54:54 瀏覽:522
媽媽會把手機圖案密碼設置成什麼 發布:2025-07-20 04:50:18 瀏覽:596
隨機編譯的項目 發布:2025-07-20 04:37:31 瀏覽:743
c語言判斷文件結束 發布:2025-07-20 04:30:23 瀏覽:506
android線程狀態 發布:2025-07-20 04:30:23 瀏覽:44
為什麼安卓刷抖音沒有蘋果流暢 發布:2025-07-20 04:29:39 瀏覽:29
50個網需要什麼伺服器 發布:2025-07-20 04:26:25 瀏覽:824
java技術方案 發布:2025-07-20 04:26:25 瀏覽:113