1. 程式人生 > >通過資料泵expdp、impdp方式備份與還原(匯出與匯入)Oracle資料庫

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

前言

備份還原oracle資料庫的方式有很多種,本文只講解使用expdp、impdp資料泵方式備份與還原(恢復)資料庫,此種方式可以匯出/匯入資料庫表以及表中的資料。

請自行修改目錄路徑,否則出現錯誤別怪我哦~

一、備份

step1:使用system登入oracle

開啟DOS命令列介面,使用system使用者登入oracle,格式:sqlplus 使用者名稱/密碼@例項名(或者使用plsql、sqlyog等工具登入)。

C:\Users\Administrator>sqlplus system/000000@orcl 


step2:建立邏輯目錄

建立備份邏輯目錄,此目錄不是真實的目錄(單引號裡面的內容是備份的目錄,

可以先檢視一下所有的目錄:select * from dba_directories;)

SQL>create or replace directory data as 'D:\app\shuhao\oradata\orcl';

step3:給使用者授權

SQL>grant read, write on directory data to jeecg_test;

step4:匯出資料庫

退出資料庫,進入DOS命令列介面,執行下列命令匯出資料庫

expdp jeecg_test/000000@orcl directory=data dumpfile=JEECG_20180226.DMP logfile=jeecg.log schemas=jeecg_test

解讀:

directory是step2建立的目錄

dumpfile是匯出的檔名,存放於directory目錄裡

schemas後面是使用者名稱



step5:檢視匯出的檔案

二、還原資料庫前準備工作

注:在本地或者另外一臺電腦都可以進行還原

step1:刪除表空間與使用者

匯入前需要先刪除原來的表空間和使用者,如果之前沒建立過該表空間,則忽略此步驟

drop tablespace JEECG_TEST including contents and datafiles;

drop user JEECG_TEST cascade;

step2:建立表空間與使用者

create tablespace JEECG_TEST datafile 'D:\app\shuhao\oradata\orcl\JEECG_TEST.DBF' size 50m  autoextend on;

注:單引號裡面的檔名與表空間名字相同

create user jeecg_test identified by 000000 default tablespace JEECG_TEST temporary tablespace temp;

step3:給使用者授權

grant connect to JEECG_TEST; 

grant resource to JEECG_TEST; 

grant dba to JEECG_TEST;

注:dba為最高階許可權,可以建立資料庫,表等。


三、還原

step1:使用system登入oracle

開啟dos命令列介面,使用system登入oracle,格式:sqlplus 使用者名稱/密碼@例項名(或者使用plsql、sqlyog等工具登入)。

C:\Users\shuhao>sqlplus system/orcl@orcl 

step2:建立邏輯目錄

建立還原目錄(單引號裡面的內容是匯入的目錄,與前面建立的目錄相同)

SQL>create or replace directory data as 'D:\app\shuhao\oradata\orcl';

step3:給目標使用者授權

SQL>grant read,write on directory data to jeecg_test;


step4:建立真實目錄,存放備份檔案

在相應位置建立真實目錄,把備份的檔案JEECG_20180226.DMP放到真實目錄裡


step5:匯入備份檔案

DOS命令列執行下列命令

impdp jeecg_test/000000@orcl directory=data dumpfile=JEECG_20180226.DMP logfile=jeecg.log remap_schema =JEECG_TEST:JEECG_TEST

注:remap_schema=JEECG_TEST:JEECG_TEST表示把左邊的JEECG_TEST使用者的資料,匯入到右邊的JEECG_TEST使用者裡面


OK, GAME OVER !