1. 程式人生 > >Linux服務器上的oracle數據導入和導出

Linux服務器上的oracle數據導入和導出

body linux服務器 hist data 服務器 directory director 進行 file

背景:

在同一臺Linux服務器上,有兩個數據庫用戶,分別為:database1,database2,如何把database1用戶下面的所有的表和數據,導入到database2數據庫(database2為新創建的用戶,沒有創建任何表,是一個空的數據庫)

操作步驟:

1、創建數據庫用戶database2(註:這裏只創建新的數據庫用戶database2,database1數據庫用戶已經存在,並且database1用戶已有表和數據)

登錄數據庫linux服務器,切換成oracle用戶(這裏說的oracle指的是數據庫的一個管理員用戶名,角色是sysdba),操作如下:

su - oracle

sqlplus / as sysdba; -- 輸完後回車,可以進入sqlplus客戶端,進行SQL語句操作

create user database2 identifield by 123456;

grant connect, resource, dba to database2;

alter user database2 default tablespace PB_DATA;

2、創建文件導出的目錄,database1用戶下的表數據,導出後的文件,將會保存在這個目錄下

SQL > create directory PB_DUMP as ‘\usr\history\data\exoport‘;

PB_DUMP是linux系統中\usr\history\data\exoport目錄的別名,通過上面SQL語句創建後,信息會保存在oracle的目錄表中,可以查詢表select * from dba_directories中的DIRECTORY_NAME字段值確認,對應的路徑是DIRECTORY_PATH字段。

3、創建導出腳本

cat > exp_database1_table_data.par

輸入如下內容,保存的腳本文件為exp_database1_table_data.par

userid = ‘oracle / as sysdba‘

directory = PB_DUMP

dumpfile = exp_database1_table_data_20180101.dmp

logfile = exp_database1_table_data_20180101.log

schemas = database1

cluster = n

參數說明:directory參數是一個目錄名稱, PB_DUMP是步驟2中所創建的oracle目錄,也就是導出後的dmp文件保存在這個目錄下。dumpfile是導出後的數據文件的名稱;logfile是導出日誌,導出過程中所打印的日誌信息會保存在這裏;schemas參數值是即將要導出數據的源數據庫用戶名。

4、創建導入腳本

cat >imp_database2_table_data.par

輸入如下內容,保存的腳本文件為imp_database2_table_data.par

userid = ‘oracle / as sysdba‘

directory = PB_DUMP

dumpfile = exp_database1_table_data_20180101.dmp

logfile = exp_database1_table_data_20180101.log

remap_schemas = database1 :database2

cluster = n

參數說明:remap_schemas的參數值database1 :database2,表示把database1用戶下的數據導入到database2用戶下(數據文件,來源於從database1用戶中已導出的exp_database1_table_data_20180101.dmp)

5、執行導出命令(執行完下面的命令後,數據庫用戶database2下將會有表和數據,來源於database1)

expdp parfile = imp_database2_table_data.par

Linux服務器上的oracle數據導入和導出