oracle expdp自动导出数据,Oracle expdp数据泵远程导出
expdp數(shù)據(jù)泵
優(yōu)點:支持并發(fā)多線程方式,可以遠(yuǎn)程導(dǎo)出,性能顯著提高,可開并行parallel=n,比exp/imp實用工具相比,導(dǎo)出提高了10倍左右,導(dǎo)入提高了5倍左右。能根據(jù)備份時收集的元數(shù)據(jù),自動創(chuàng)建用戶、表對象,支持作業(yè)、表空間備份方式。
缺點:需要在服務(wù)器上面執(zhí)行創(chuàng)建目錄授權(quán),expdp、exp都支持遠(yuǎn)程本地導(dǎo)出。
(exp不支持字段類型,BINARY_DOUBLE雙精度二進(jìn)制浮點類型number類型和浮點類型區(qū)別“number 十進(jìn)制,BINARY_DOUBLE二進(jìn)制(比number效率高,速度快,占用空間小的優(yōu)點.但版本兼容性不好)”)
(expdp不支持網(wǎng)絡(luò)鏈來加載long"保存文本類型"列,exp支持long的導(dǎo)出導(dǎo)入)
當(dāng)出現(xiàn)”DB所在空間不足需要跨機器導(dǎo)出備份/恢復(fù)"時,需要用到expdp的遠(yuǎn)程導(dǎo)出,實現(xiàn):只要在本地數(shù)據(jù)庫 執(zhí)行創(chuàng)建public link和dir及給對應(yīng)的權(quán)限就可以將遠(yuǎn)程DB導(dǎo)出到本地路徑。
具體實驗如下,所有操作都在本地
SQL> create user test identified by test;
SQL> grant dba to test;
-->創(chuàng)建目錄
SQL> create directory dump_dir AS 'E:\dump_dir';
SQL> select? DIRECTORY_NAME,DIRECTORY_PATH from dba_directories where directory_name='DUMP_DIR';
OWNER????DIRECTORY_NAME???DIRECTORY_PATH
-----------------------------------------------------------------------------------------------------------------------------------------------------
SYS?????DUMP_DIR????E:\dump_dir
-->創(chuàng)建DBLINK
SQL>? createpublicdatabase link kfdb7?connect to用戶identified by "密碼"?using '(DESCRIPTION =?(ADDRESS_LIST =?(ADDRESS = (PROTOCOL = TCP)(HOST = XX.XX.XX.XX)(PORT =1521端口號)))? (CONNECT_DATA =??(SERVER = DEDICATED)?? (SERVICE_NAME =SID)??)?)';
-->驗證dblink 有效性
SQL> conn test/test
已連接。
SQL> select * from tab;
未選定行
SQL> select count(*) from base_dict@kfdb57;
COUNT(*)
----------
683
****注意:要創(chuàng)建public database link 如果只創(chuàng)建 database link 只能再當(dāng)前用戶下訪問鏈接庫數(shù)據(jù),但導(dǎo)出來報錯
ORA-39001: 參數(shù)值無效
ORA-39200: 鏈接名稱 "kfdb5" 無效。
ORA-02019: 未找到遠(yuǎn)程數(shù)據(jù)庫的連接說明
具體解釋:
Use the CREATE DATABASE LINK statement to create a database link. A database link is a schema object in one database that enables you to access objects on another database. The other database need not be an Oracle Database system. However, to access non-Oracle systems you must use Oracle Heterogeneous Services.
After you have created a database link, you can use it to refer to tables and views on the other database. In SQL statements, you can refer to a table or view on the other database by appending @dblink to the table or view name. You can query a table or view on the other database with the SELECT statement. You can also access remote tables and views using any INSERT, UPDATE, DELETE, or LOCK TABLE statement.
To create a private database link, you must have the CREATE DATABASE LINK system privilege. To create a public database link, you must have the CREATE PUBLIC DATABASE LINK system privilege. Also, you must have the CREATE SESSION system privilege on the remote Oracle database. ? ?Oracle Net must be installed on both the local and remote Oracle databases.
導(dǎo)出命令:
E:\oracle\product\10.2.0\db_1\BIN>EXPDP.EXE?test/test?network_link=kfdb57 directory=DUMP_DIR1? dumpfile=base_dict.dmp tables='base_dict'
Export: Release 10.2.0.1.0 - Production on 星期一, 11 3月, 2013 17:51:56
Copyright (c) 2003, 2005, Oracle.? All rights reserved.
連接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
啟動 "TEST"."SYS_EXPORT_TABLE_01":??test/********?network_link=kfdb57 directory=DUMP_DIR1 dumpfile=base_dict.dmp tables='base_dict'
正在使用 BLOCKS 方法進(jìn)行估計...
處理對象類型 TABLE_EXPORT/TABLE/TABLE_DATA
使用 BLOCKS 方法的總估計: 64 KB
處理對象類型 TABLE_EXPORT/TABLE/TABLE
處理對象類型 TABLE_EXPORT/TABLE/INDEX/INDEX
處理對象類型 TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
處理對象類型 TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
處理對象類型 TABLE_EXPORT/TABLE/COMMENT
處理對象類型 TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
. . 導(dǎo)出了 "SINOSOFT"."BASE_DICT"????????????????????? 35.73 KB???? 683 行
已成功加載/卸載了主表 "TEST"."SYS_EXPORT_TABLE_01"
******************************************************************************
TEST.SYS_EXPORT_TABLE_01 的轉(zhuǎn)儲文件集為:?? E:\DUMP_DIR\BASE_DICT.DMP
作業(yè) "TEST"."SYS_EXPORT_TABLE_01" 已于 17:54:09 成功完成
擴展:
將導(dǎo)出得文件導(dǎo)入到本地數(shù)據(jù)庫命令:impdp.exe?test/test?directory=dump_dir1 dumpfile=base_dict.dmp tables=base_dict?? REMAP_SCHEMA=sinosoft:test
查看導(dǎo)入情況:
SQL> select * from tab;
TNAME????????????????????????? TABTYPE? CLUSTERID
------------------------------ ------- ----------
SYS_IMPORT_TABLE_01 ? ? ? ? ? ? ? ?TABLE
SQL> select * from tab;
TNAME????????????????????????? TABTYPE? CLUSTERID
------------------------------ ------- ----------
SYS_IMPORT_TABLE_01 ? ? ? ? ? TABLE ? -->主表? 在完成后數(shù)據(jù)庫會自動刪除主表(導(dǎo)出失敗則否)
BASE_DICT ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?TABLE
SQL> select * from tab;
TNAME????????????????????????? TABTYPE? CLUSTERID
------------------------------ ------- ----------
BASE_DICT????????????????????? TABLE
SQL> select count(*) from?base_dict;
COUNT(*)
----------
683
測試完畢后刪除dblink+directory
dropdirectory dump_dir;
drop?public?database?link?kfdb57;
【源于本人筆記】 若有書寫錯誤,表達(dá)錯誤,請指正...
總結(jié)
以上是生活随笔為你收集整理的oracle expdp自动导出数据,Oracle expdp数据泵远程导出的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 鱼我所欲也中心论点句子(鱼我所欲也中心论
- 下一篇: mybatis批量插入oracle报表达