當前位置:首頁 » 編程語言 » oraclesql備份表

oraclesql備份表

發布時間: 2025-09-12 12:35:22

㈠ 請解釋下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資料庫伺服器,利用plsql程序來登陸資料庫。在用戶名、密碼、資料庫的地方分別輸入對應的用戶名、密碼和資料庫實例名稱。

2
登陸完成後,新建sql窗口,並在sql窗口中執行以下語句:
-----------------------------------------------------------------------------
declare stmt
varchar2(200);begin for tb in (select table_name from user_tables where
segment_created='NO') loop stmt:='alter table '||tb.table_name||'
allocate extent'; begin execute immediate stmt; exception when
others then dbms_output.put_line(stmt); end; end loop;end;/
-----------------------------------------------------------------------------
此語句的作用是導出oracle 11g的空表

3
建立bat批處理文件
------------------------------------------------------------------------------
cd d:\bea\dbbackdel oa%date:~8,2%.dmpexpdp username/password@orcl directory=DIR_EXP mpfile=oa%date:~8,2%.dmp
------------------------------------------------------------------------------
其中d:\bea\dbback是命令所在的目錄
username/password@orcl 分別為登陸資料庫的用戶名、密碼、資料庫實例
DIR_EXP 是在plsql中建立的directory即目錄,需要根據自己的需求來創建

在電腦附件中找到任務計劃程序,然後點擊打開,如下圖

點擊右側的「創建基本任務」,創建一個任務計劃,填寫任務名字和描述,如下圖:

設置任務的執行周期,這里周期選擇每天,點擊下一步

再設置開始時間,一般選擇在夜間備份資料庫,點擊下一步

設置執行的操作是,這里是批處理,所以選擇程序,點擊下一步

選擇前面我們只做的bat批處理文件。即oracle備份語句文件。參數填寫文件所在的目錄,點擊下一步:

點擊完成即可。

然後雙擊對應的計劃任務名稱,出現界面如下圖:

然後在安全選項中選擇「不管用戶是否登陸都要運行此程序」
步驟閱讀
然後點擊確定,系統會讓用戶輸入對應的系統登陸密碼,如下圖,輸入完密碼點擊確定即可。

熱點內容
php柱狀圖 發布:2025-09-12 14:04:39 瀏覽:60
同配置為什麼台式機貴 發布:2025-09-12 13:52:27 瀏覽:529
關於長安逸動哪個配置家用合適 發布:2025-09-12 13:48:44 瀏覽:467
矩陣伺服器怎麼安裝 發布:2025-09-12 13:47:10 瀏覽:387
科技成果資料庫 發布:2025-09-12 13:38:37 瀏覽:131
反編譯servicejar 發布:2025-09-12 13:33:34 瀏覽:450
電腦病毒是否能自動感染伺服器 發布:2025-09-12 13:29:26 瀏覽:580
安卓手機id鎖怎麼解鎖 發布:2025-09-12 13:25:41 瀏覽:622
cpp編譯器推薦 發布:2025-09-12 13:13:55 瀏覽:123
python中set函數 發布:2025-09-12 13:08:47 瀏覽:317