主頁(yè) > 知識(shí)庫(kù) > PL/SQL遠(yuǎn)程備份和恢復(fù)Oracle數(shù)據(jù)庫(kù)

PL/SQL遠(yuǎn)程備份和恢復(fù)Oracle數(shù)據(jù)庫(kù)

熱門標(biāo)簽:山東crm外呼系統(tǒng)軟件 開發(fā)外呼系統(tǒng) 地圖標(biāo)注養(yǎng)老院 愛客外呼系統(tǒng)怎么樣 哈爾濱電話機(jī)器人銷售招聘 百度地圖標(biāo)注途經(jīng)點(diǎn) 圖吧網(wǎng)站地圖標(biāo)注 慧營(yíng)銷crm外呼系統(tǒng)丹丹 哪個(gè)400外呼系統(tǒng)好

在客戶端遠(yuǎn)程備份的文件保存在數(shù)據(jù)庫(kù)所在主機(jī)上,不會(huì)直接拷貝到客戶端。
—————————————————————————————————————————— 

首先無論你的Oracle服務(wù)器是Linux還是windows操作系統(tǒng),Oracle的備份和恢復(fù)操作都是使用DBMS_DUMP來實(shí)現(xiàn)導(dǎo)入(備份)和導(dǎo)出(恢復(fù))。首先你要安裝好PL/SQL,用PL/SQL來執(zhí)行我下面提供的JOB就可以實(shí)現(xiàn)了。

 一、Oracle的導(dǎo)出(備份)

1、用PLSQL連接Oracle數(shù)據(jù)庫(kù)服務(wù)器,使用你需要導(dǎo)出的用戶連接Oracle數(shù)據(jù)庫(kù)服務(wù)器,執(zhí)行下面語(yǔ)句備份: 

declare
   h1 NUMBER;
   l1 varchar2(20);
   begin
   h1 :=dbms_datapump.open (operation => 'EXPORT', job_mode =>'SCHEMA', job_name => 'JOB_EXP1', version =>'COMPATIBLE');
   dbms_datapump.set_parallel(handle=> h1, degree => 1);
   dbms_datapump.add_file(handle=> h1, filename => 'EXPDAT.LOG', directory =>'DATA_PUMP_DIR', filetype => 3);
   dbms_datapump.set_parameter(handle=> h1, name => 'KEEP_MASTER', value => 0);
   dbms_datapump.metadata_filter(handle=> h1, name => 'SCHEMA_EXPR', value => 'IN(''CHY'')');
   dbms_datapump.add_file(handle=> h1, filename => 'CHYDB.DMP',directory => 'DATA_PUMP_DIR', filetype => 1);
   dbms_datapump.set_parameter(handle=> h1, name => 'INCLUDE_METADATA', value => 1);
   dbms_datapump.set_parameter(handle=> h1, name => 'DATA_ACCESS_METHOD', value =>'AUTOMATIC');
   dbms_datapump.set_parameter(handle=> h1, name => 'ESTIMATE', value => 'BLOCKS');
   dbms_datapump.start_job(handle=> h1, skip_current => 0, abort_step => 0);
   dbms_datapump.wait_for_job(handle=> h1, job_state => l1);
   dbms_datapump.detach(handle=> h1);
  end;


2、注意:

A、'IN(''CHY'')' 中的CHY為PL\SQL登陸的用戶名,待備份的用戶,注意用大寫。
B、filename=> 'CHYDB.DMP'中的CHYDB是指定的備份出的dmp文件名稱,注意用大寫。

3、待plsql中執(zhí)行完成,從下面查詢獲取備份文件的路徑,并將dmp文件可以拷貝出來

復(fù)制代碼 代碼如下:
SELECTdirectory_path FROM dba_directories WHEREdirectory_name='DATA_PUMP_DIR';

4、Oracle的導(dǎo)出(備份)完成了。 

二、Oracle的導(dǎo)入(恢復(fù))
1、登陸或者遠(yuǎn)程到Oracle服務(wù)器,將Oracle的備份文件(DMP文件)拷貝到指定路徑下,路徑的獲取用下面的SQL語(yǔ)句: 

復(fù)制代碼 代碼如下:
SELECT directory_path FROMdba_directories WHERE directory_name='DATA_PUMP_DIR';

2、在Oracle服務(wù)器創(chuàng)建用戶,一般用Oracle工具em創(chuàng)建用戶

A、Oracle中沒有數(shù)據(jù)庫(kù)實(shí)體的概念,是“用戶”,數(shù)據(jù)庫(kù)用戶就相當(dāng)于SQLserver的數(shù)據(jù)庫(kù)實(shí)體。
B、登陸Oracle的em,用SYS用戶登陸,SYS的角色是SYSDBA。 
C、創(chuàng)建用戶,以“SA”為例子,默認(rèn)表空間一般選擇“USERS”,臨時(shí)表空間一般選擇TEMP(如果你自己想用自己創(chuàng)建的表空間也可以,選擇自己創(chuàng)建的表空間吧)。
D、角色頁(yè)簽,一定要授予該用戶DBA角色,在編輯列表選擇DBA選項(xiàng)移動(dòng)到右側(cè)。
E、系統(tǒng)權(quán)限頁(yè)簽,在編輯列表使用“全部移動(dòng)”,授予該用戶所有的權(quán)限。
F、剩下的頁(yè)簽不需要做任何設(shè)置,點(diǎn)擊確定就可以提示該用戶創(chuàng)建成功。  

3、用PL\SQL連接Oracle服務(wù)器,注意使用第2步創(chuàng)建的用戶登陸PL\SQL連接Oracle服務(wù)器

4、在新的SQLWindow執(zhí)行下面的語(yǔ)句進(jìn)行導(dǎo)入(恢復(fù))

 declare
   h1 NUMBER;
   l1 varchar2(20);
   begin
    h1 :=dbms_datapump.open (operation => 'IMPORT', job_mode =>'SCHEMA', job_name => 'JOB_EXP1', version =>'COMPATIBLE');
    dbms_datapump.set_parallel(handle => h1,degree => 1);
    dbms_datapump.add_file(handle => h1, filename=> 'IMPORT.LOG', directory => 'DATA_PUMP_DIR', filetype =>3);
    dbms_datapump.set_parameter(handle => h1, name=> 'KEEP_MASTER', value => 0);
    dbms_datapump.add_file(handle => h1, filename=> 'CHYDB.DMP', directory =>'DATA_PUMP_DIR', filetype => 1);
    dbms_datapump.metadata_filter(handle=> h1, name => 'SCHEMA_EXPR', value => 'IN(''CHY'')');
    dbms_datapump.set_parameter(handle=> h1, name => 'INCLUDE_METADATA', value => 1);
    dbms_datapump.set_parameter(handle=> h1, name => 'DATA_ACCESS_METHOD', value =>'AUTOMATIC');
    dbms_datapump.set_parameter(handle=> h1, name => 'SKIP_UNUSABLE_INDEXES', value => 0);
    dbms_datapump.metadata_remap(handle=> h1,name => 'REMAP_SCHEMA', old_value => 'CHY', value => 'SA');
    dbms_datapump.metadata_remap(handle=> h1,name => 'REMAP_TABLESPACE', old_value =>'USERS', value => 'USERS');
    dbms_datapump.metadata_transform(handle=> h1,name => 'OID',value => 0);
    dbms_datapump.start_job(handle=> h1, skip_current => 0, abort_step => 0);
    dbms_datapump.wait_for_job(handle=> h1, job_state => l1);
    dbms_datapump.detach(handle=> h1);
   end;

5、注意:(下面的全部都要大寫)
A、第一個(gè)紅色標(biāo)記('CHYDB.DMP'),拷貝到Oracle服務(wù)器的DMP文件的名稱
B、第二個(gè)紅色標(biāo)記(CHY),DMP文件的用戶,所以在導(dǎo)入(備份)Oracle用戶是需要記下用戶名和表空間的名稱
C、第三個(gè)紅色標(biāo)記(CHY),DMP文件的用戶
D、第四個(gè)紅色標(biāo)記(SA),你剛才創(chuàng)建的用戶
E、第五個(gè)紅色標(biāo)記(USERS),DMP文件的表空間的名稱,在B里面提到需要記住的
F、第六個(gè)紅色標(biāo)記(USERS),你剛才創(chuàng)建的用戶關(guān)聯(lián)的默認(rèn)表空間的名稱 

6、確保上述步驟無誤,執(zhí)行導(dǎo)入(恢復(fù))語(yǔ)句,成功實(shí)現(xiàn)Oracle的導(dǎo)入(恢復(fù))。 

7、在做導(dǎo)入的過程中,第1步提到的路徑下有導(dǎo)入日志,導(dǎo)入完成后看看有什么錯(cuò)誤

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • PL/SQL中編寫Oracle數(shù)據(jù)庫(kù)分頁(yè)的存儲(chǔ)過程
  • 詳解PL/SQL Developer連接本地Oracle 11g 64位數(shù)據(jù)庫(kù)
  • 利用PL/SQL從Oracle數(shù)據(jù)庫(kù)導(dǎo)出和導(dǎo)入數(shù)據(jù)
  • Oracle中PL/SQL中if語(yǔ)句的寫法介紹
  • 利用Oracle數(shù)據(jù)庫(kù)發(fā)送郵件的實(shí)例代碼
  • Oracle 存儲(chǔ)過程發(fā)送郵件實(shí)例學(xué)習(xí)
  • oracle 發(fā)送郵件 實(shí)現(xiàn)方法
  • 如何使用Oracle PL/SQL 實(shí)現(xiàn)發(fā)送電子郵件功能(UTL_MAIL)

標(biāo)簽:周口 武漢 甘肅 承德 開封 青島 固原 和田

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《PL/SQL遠(yuǎn)程備份和恢復(fù)Oracle數(shù)據(jù)庫(kù)》,本文關(guān)鍵詞  SQL,遠(yuǎn)程,備份,和,恢復(fù),Oracle,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《PL/SQL遠(yuǎn)程備份和恢復(fù)Oracle數(shù)據(jù)庫(kù)》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于PL/SQL遠(yuǎn)程備份和恢復(fù)Oracle數(shù)據(jù)庫(kù)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章