1. 程式人生 > >oracle資料庫備份與還原

oracle資料庫備份與還原

一  關於expdp和impdp     使用EXPDP和IMPDP時應該注意的事項:
EXP和IMP是客戶端工具程式,它們既可以在客戶端使用,也可以在服務端使用。
EXPDP和IMPDP是服務端的工具程式,他們只能在ORACLE服務端使用,不能在客戶端使用。
IMP只適用於EXP匯出的檔案,不適用於EXPDP匯出檔案;IMPDP只適用於EXPDP匯出的檔案,而不適用於EXP匯出檔案。
expdp或impdp命令時,可暫不指出使用者名稱/密碼@例項名 as 身份,然後根據提示再輸入,如:
expdp schemas=scott dumpfile=expdp.dmp DIRECTORY=dpdata1;
一、建立邏輯目錄,該命令不會在作業系統建立真正的目錄,最好以system等管理員建立。
create directory dpdata1 as 'd:\test\dump';
二、檢視管理理員目錄(同時檢視作業系統是否存在,因為Oracle並不關心該目錄是否存在,如果不存在,則出錯)
select * from dba_directories;
三、給scott使用者賦予在指定目錄的操作許可權,最好以system等管理員賦予。
grant read,write on directory dpdata1 to scott;
四、匯出資料

directory可以不用指定有預設路徑
1)按使用者導
expdp scott/[email protected] schemas=scott dumpfile=expdp.dmp DIRECTORY=dpdata1;
2)並行程序parallel
expdp scott/[email protected] directory=dpdata1 dumpfile=scott3.dmp parallel=40 job_name=scott3
3)按表名導
expdp scott/[email protected] TABLES=emp,dept dumpfile=expdp.dmp DIRECTORY=dpdata1;
4)按查詢條件導
expdp scott/

[email protected] directory=dpdata1 dumpfile=expdp.dmp Tables=emp query='WHERE deptno=20';
5)按表空間導
expdp system/manager DIRECTORY=dpdata1 DUMPFILE=tablespace.dmp TABLESPACES=temp,example;
6)導整個資料庫
expdp system/manager DIRECTORY=dpdata1 DUMPFILE=full.dmp FULL=y;
五、還原資料
1)導到指定使用者下
impdp scott/tiger DIRECTORY=dpdata1 DUMPFILE=expdp.dmp SCHEMAS=scott;
2)改變表的owner
impdp system/manager DIRECTORY=dpdata1 DUMPFILE=expdp.dmp TABLES=scott.dept REMAP_SCHEMA=scott:system;
3)匯入表空間
impdp system/manager DIRECTORY=dpdata1 DUMPFILE=tablespace.dmp TABLESPACES=example;
4)匯入資料庫
impdb system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y;
5)追加資料
impdp system/manager DIRECTORY=dpdata1 DUMPFILE=expdp.dmp SCHEMAS=system TABLE_EXISTS_ACTION

二  附加說明      並行操作(PARALLEL) 
您可以通過 PARALLEL 引數為匯出使用一個以上的執行緒來顯著地加速作業。每個執行緒建立一個單獨的轉儲檔案,因此引數 dumpfile 應當擁有和並行度一樣多的專案。您可以指定萬用字元作為檔名,而不是顯式地輸入各個檔名,例如: 
expdp ananda/abc123 tables=CASES directory=DPDATA1 dumpfile=expCASES_%U.dmp parallel=4 job_name=Cases_Export 
注意:dumpfile 引數擁有一個萬用字元 %U,它指示檔案將按需要建立,格式將為expCASES_nn.dmp,其中nn 從 01 開始,然後按需要向上增加。 
在並行模式下,狀態螢幕將顯示四個工作程序。(在預設模式下,只有一個程序是可見的)所有的工作程序同步取出資料,並在狀態螢幕上顯示它們的進度。 
分離訪問資料檔案和轉儲目錄檔案系統的輸入/輸出通道是很重要的。否則,與維護 Data Pump 作業相關的開銷可能超過並行執行緒的效益,並因此而降低效能。並行方式只有在表的數量多於並行值並且表很大時才是有效的。 
資料庫監控 
您還可以從資料庫檢視獲得關於執行的 Data Pump 作業的更多資訊。監控作業的主檢視是 DBA_DATAPUMP_JOBS,它將告訴您在作業上有多少個工作程序(列 DEGREE)在工作。 
另一個重要的檢視是 DBA_DATAPUMP_SESSIONS,當它與上述檢視和 V$SESSION 結合時將給出主前臺程序的會話 SID。 
select sid, serial# from v$session s, dba_datapump_sessions d where s.saddr = d.saddr;
這條指令顯示前臺程序的會話。更多有用的資訊可以從警報日誌中獲得。當程序啟動時,MCP 和工作程序在警報日誌中顯示如下: 
kupprdp:master process DM00 started with pid=23, OS id=20530 to execute - SYS.KUPM$MCP.MAIN('CASES_EXPORT', 'ANANDA'); kupprdp:worker process DW01 started with worker id=1, pid=24, OS id=20532 to execute - SYS.KUPW$WORKER.MAIN('CASES_EXPORT', 'ANANDA'); kupprdp:worker process DW03 started with worker id=2, pid=25, OS id=20534 to execute - SYS.KUPW$WORKER.MAIN('CASES_EXPORT', 'ANANDA'); 
它顯示為資料泵操作啟動的會話的 PID。您可以用以下查詢找到實際的 SID: 
select sid, program from v$session where paddr in (select addr from v$process where pid in (23,24,25)); 
PROGRAM 列將對應警報日誌檔案中的名稱顯示程序 DM (為主程序)或 DW (為工作程序)。如果一個工作程序使用了並行查詢,比如說 SID 23,您可以在檢視 V$PX_SESSION 中看到它,並把它找出來。它將為您顯示從 SID 23 代表的工作程序中執行的所有並行查詢會話: 
select sid from v$px_session where qcsid = 23; 
從檢視 V$SESSION_LONGOPS 中可以獲得其它的有用資訊來預測完成作業將花費的時間。 
select sid, serial#, sofar, totalwork from v$session_longops where opname = 'CASES_EXPORT' and sofar != totalwork; 
列 totalwork 顯示總工作量,該列的 sofar 數量被加和到當前的時刻 — 因而您可以用它來估計還要花多長時間。 
三 oracle 10g 和11g的互相匯入和匯出    1) 可以用10g的client連線11個匯出11g的資料庫,即可匯入10g   2)用expdp,impdp,如:
在11g伺服器上,使用expdp命令備份資料

EXPDP USERID='SYS/
[email protected]
as sysdba' schemas=sybj directory=DATA_PUMP_DIR dumpfile=aa.dmp logfile=aa.log version=10.2.0.1.0

在10g伺服器上,使用impdp命令恢復資料

準備工作:1.建庫2.建表空間3.建使用者並授權4.將aa.dmp拷貝到10g的dpdump目錄下

IMPDP USERID='SYS/[email protected] as sysdba' schemas=sybj directory=DATA_PUMP_DIR dumpfile=aa.dmp logfile=aa.log version=10.2.0.1.0

相關推薦

oracle資料庫備份還原語句

1.匯入語句 (1)全匯入:imp 使用者名稱/密碼@例項名 full=y file=資料庫備份檔案路徑 ignore=y; (2)單表匯入:imp  username/[email protected]:port/servername file="E:\dmp

oracle資料庫備份還原

一  關於expdp和impdp     使用EXPDP和IMPDP時應該注意的事項:EXP和IMP是客戶端工具程式,它們既可以在客戶端使用,也可以在服務端使用。EXPDP和IMPDP是服務端的工具程式,他們只能在ORACLE服務端使用,不能在客戶端使用。IMP只適用於EXP匯出的檔案,不適用於EXPDP匯出

Oracle資料庫備份恢復 - 增量備份

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Oracle資料庫備份恢復 - RMAN恢復

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Mysql資料庫備份還原(簡易)

一、資料備份   1、使用mysqldump命令備份   mysqldump命令將資料庫中的資料備份成一個文字檔案。表的結構和表中的資料將儲存在生成的文字檔案中。   mysqldump命令的工作原理很簡單。它先查出需要備份的表的結構,再在文字檔案中生成一個CREATE語句。然後,將表中

MySQL資料庫備份還原

1、mysql資料庫的備份和還原 * 第一種使用視覺化工具進行備份和還原 * 第二種使用sql語句進行備份和還原 - mysql資料庫的備份 -- 語句 mysqldump -u

linux上 mysql資料庫備份還原 (xtrabackup工具安裝使用)

由於我安裝的mysql5.7是最新的版本,而一些老的xtrabackup版本已經不相容,所以在這裡我下載最新的xtrabackup工具 注:我這裡沒有應用全備和整備,而是用了部分備份,即一個數據庫的備份和恢復 環境:  centos7            mysql

資料庫備份還原:mysqldump,source

*資料庫備份* 1、備份方法一:適用於myslam表:     直接將tb_name.frm、tb_name.myd、tb_name.myi三個檔案儲存,備份即可。     需要的時候直接解壓到,移動到相應的資料庫目錄內即可。 【注意】如果是同樣的方法,處理的innodb表結構檔案。則使用showtabl

SQL Server 2012資料庫備份還原

備份為.bak檔案 選中資料庫---->右鍵---->任務---->備份 還原.bak檔案 說明:不要新建資料庫,直接還原 資料庫---->右鍵---->還原資料庫

CI資料庫備份還原入門小例子

function backup(){                function backup(){  $this->load->dbutil();  $this->load->helper('file');  $prefs = array(                 '

Oracle資料庫備份恢復的三種方法

Oracle資料庫有三種標準的備份方法,它們分別是匯出/匯入(EXP/IMP)、熱備份和冷備份。匯出備件是一種邏輯備份,冷備份和熱備份是物理備份。   一、 匯出/匯入(Export/Import)   利用Export可將資料從資料庫中提取出來,利用Impor

mysql 資料庫備份還原

1. 備份某個資料庫 ##################################################################   # 備份某個資料庫   #######################################

【RAC】rac環境下的資料庫備份還原

【RAC】rac環境下的資料庫備份與還原 一.1 BLOG文件結構圖 一.2 前言部分 一.2.1 導讀 各位技術愛好者,看完本文後,你可以掌握如下的技能,也可以學到一些其它你所

Informix:資料庫備份還原(dbexport|dbimport)

最近在職場中遇到一個問題:移庫 將原來的A庫的資料全部匯入B庫(典型的資料庫備份還原) 環境:Informix 兩條指令: dbexort dbimport 準備: 確保資料庫無連線,不

Linux系統下,Oracle資料庫備份還原

資料備份: 1.使用Linux系統下的資料庫管理員賬號連線linux終端。 2. 執行以下語句,建立“bak_dir”資料夾。 mkdir bak_dir 3. 執行以下語句,為“bak_dir”資料夾賦予讀、寫和執行許可權。 chmod 777 bak_dir 4.

oracle資料庫備份還原(本地及遠端操作)

 執行環境:  可以在SQLPLUS.EXE或者DOS(命令列)中執行, DOS中可以執行時由於 在oracle 8i 中  安裝目錄\ora81\BIN被設定為全域性路徑, 該目錄下有EXP.EXE與IMP.EXE檔案被用來執行匯入匯出。 oracle用java編寫,我

通過資料泵expdp、impdp方式備份還原(匯出匯入)Oracle資料庫

前言備份還原oracle資料庫的方式有很多種,本文只講解使用expdp、impdp資料泵方式備份與還原(恢復)資料庫,此種方式可以匯出/匯入資料庫表以及表中的資料。請自行修改目錄路徑,否則出現錯誤別怪我哦~一、備份step1:使用system登入oracle開啟DOS命令列介

SQL server 2008資料庫備份還原

一、SQL資料庫的備份: 1、依次開啟 開始選單 → 程式 → Microsoft SQL Server 2008 → SQL Server Management Studio → 資料庫:Dsideal_school_db既是我們需要備份的學籍資料庫 圖(1)

Linux下備份還原MySQL資料庫

備份 [[email protected] ~]# mysqldump -u root -p mysql > ~/mysql.sql Enter password: [[email protected] ~]# ls ~/mysql.sql /root/mysq

Mysql:Java程式碼實現資料庫定時備份還原詳解

一、目的 使用java程式碼實現定時執行Mysql備份與還原。 二、思路 先寫好一個定時器,每隔多少時間執行一次備份 備份方法為,通過java向命令列寫入命令執行 首先在cmd中模擬備份,測試成功後 使用java程式碼實現資料備份功能