PL/SQL遠程備份和恢復Oracle數據庫

來源:本網整理

plsql的導出功能要調用Oracle客戶端中的exp.exe文件,需要安裝完整的Oracle客戶端,instanceClient是不行的。操作如下:1、打開PLSQL,找到工具欄,打開“導出表”。如圖。2、進入導出主頁,輸入需要導出的文件名稱。3、點擊保存。4、點擊一下右下角的“導出”,就可以看到導出數據的概況。5、如圖所示,中途若無報錯,則可以根據選定的路徑找到文件,備份操作完成www.13333515.buzz防采集請勿采集本網。

s">

PL/SQL遠程備份和恢復Oracle數據庫

作者:huchunfu 字體:[增加 減小] 類型:轉載 時間:2016-09-07 我要評論 這篇文章主要為大家詳細介紹了PL/SQL遠程備份和恢復Oracle數據庫的具體方法,感興趣的小伙伴們可以參考一下 ">

在客戶端遠程備份的文件保存在數據庫所在主機上,不會直接拷貝到客戶端。

像oracle還有一套數據庫管理系統,可以通過網頁瀏覽,然后進行對db的配置以及備份和恢復。恢復:通過日志進行恢復!1、備份位置 在SQL Server上,有多種備份位置可以選擇,如本地磁盤,網絡磁盤,遠程地址

—————————————————————————————————————————— 

手頭上只有C#的代碼,不知道對你有沒有幫助 遠程備份要注意權限的問題,普通的訪問帳戶沒有備份和還原的權限,最好用sa的帳戶,并且程序訪問的帳戶必須添加到遠程機器的系統內 你說的遠程備份到

首先無論你的Oracle服務器是Linux還是windows操作系統,Oracle的備份和恢復操作都是使用DBMS_DUMP來實現導入(備份)和導出(恢復)。首先你要安裝好PL/SQL,用PL/SQL來執行我下面提供的JOB就可以實現了。

1、首先打開PL/SQLDeveloper,輸入用戶抄名、密碼登錄oracle數據庫。2、【導出-1】點擊頂部菜單【Tools】->【Export Tables】。3、然后選擇要導出的用戶(默認是當前登錄的用戶),點擊【Output

 一、Oracle的導出(備份)

可能是ORACLE實例不是OPEN狀態,不是OPEN狀態遠程就連接不上去了

1、用PLSQL連接Oracle數據庫服務器,使用你需要導出的用戶連接Oracle數據庫服務器,執行下面語句備份: 

一:備份遠程數據庫,將備份文件拷貝到本地,然后在本地還原數據庫。二:將遠程數據庫的數據文件跟日志文件拷貝到本地(拷貝之前需要先停止遠程數據庫服務,否則無法進行拷貝),然后在本地進行

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中執行完成,從下面查詢獲取備份文件的路徑,并將dmp文件可以拷貝出來

復制代碼 代碼如下:SELECTdirectory_path FROM dba_directories WHEREdirectory_name='DATA_PUMP_DIR';

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

二、Oracle的導入(恢復)

1、登陸或者遠程到Oracle服務器,將Oracle的備份文件(DMP文件)拷貝到指定路徑下,路徑的獲取用下面的SQL語句: 

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

2、在Oracle服務器創建用戶,一般用Oracle工具em創建用戶

A、Oracle中沒有數據庫實體的概念,是“用戶”,數據庫用戶就相當于SQLserver的數據庫實體。

B、登陸Oracle的em,用SYS用戶登陸,SYS的角色是SYSDBA。 

C、創建用戶,以“SA”為例子,默認表空間一般選擇“USERS”,臨時表空間一般選擇TEMP(如果你自己想用自己創建的表空間也可以,選擇自己創建的表空間吧)。

D、角色頁簽,一定要授予該用戶DBA角色,在編輯列表選擇DBA選項移動到右側。

E、系統權限頁簽,在編輯列表使用“全部移動”,授予該用戶所有的權限。

F、剩下的頁簽不需要做任何設置,點擊確定就可以提示該用戶創建成功。  

3、用PL\SQL連接Oracle服務器,注意使用第2步創建的用戶登陸PL\SQL連接Oracle服務器

4、在新的SQLWindow執行下面的語句進行導入(恢復)

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、第一個紅色標記('CHYDB.DMP'),拷貝到Oracle服務器的DMP文件的名稱

B、第二個紅色標記(CHY),DMP文件的用戶,所以在導入(備份)Oracle用戶是需要記下用戶名和表空間的名稱

C、第三個紅色標記(CHY),DMP文件的用戶

D、第四個紅色標記(SA),你剛才創建的用戶

E、第五個紅色標記(USERS),DMP文件的表空間的名稱,在B里面提到需要記住的

F、第六個紅色標記(USERS),你剛才創建的用戶關聯的默認表空間的名稱 

6、確保上述步驟無誤,執行導入(恢復)語句,成功實現Oracle的導入(恢復)。 

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持突襲網。

現在有個需求需要實現數據的備份和恢復.以前沒碰到過。希望會的給予指點。問題補充:pxb1988 寫道引用 public static void backup(){ String user="root;數據庫帳號 String password="root;登陸密碼 String database="test;需要備份的數據庫名 String filepath="d:\\\\finacing.sql;備份的路徑地址 String stmt1="mysqldump"+database+"-h 192.168.5.222"+"-u"+user+"-p"+password+"-default-character-set=utf8-result-file="+filepath;try { Runtime.getRuntime().exec(stmt1);System.out.println("數據已導出到文件"+filepath+"中");} catch(IOException e){ e.printStackTrace();} } 其中的-h 192.168.5.222 換成127.0.0.1或localhost都可以,但換成局域網中的ip就不可以.但是這樣備份不行還是報錯 錯誤信息如下內容來自www.13333515.buzz請勿采集。

免責聲明 - 關于我們 - 聯系我們 - 廣告聯系 - 友情鏈接 - 幫助中心 - 頻道導航
Copyright © 2017 www.13333515.buzz All Rights Reserved
3排列五开奖结果