oracle expdp自动导出数据,Oracle expdp数据泵远程导出

expdp数据泵

优点:支持并发多线程方式,可以远程导出,性能显著提高,可开并行parallel=n,比exp/imp实用工具相比,导出提高了10倍左右,导入提高了5倍左右。能根据备份时收集的元数据,自动创建用户、表对象,支持作业、表空间备份方式。

缺点:需要在服务器上面执行创建目录授权,expdp、exp都支持远程本地导出。

(exp不支持字段类型,BINARY_DOUBLE双精度二进制浮点类型number类型和浮点类型区别“number 十进制,BINARY_DOUBLE二进制(比number效率高,速度快,占用空间小的优点.但版本兼容性不好)”)

(expdp不支持网络链来加载long"保存文本类型"列,exp支持long的导出导入)

当出现”DB所在空间不足需要跨机器导出备份/恢复"时,需要用到expdp的远程导出,实现:只要在本地数据库 执行创建public link和dir及给对应的权限就可以将远程DB导出到本地路径。

具体实验如下,所有操作都在本地

SQL> create user test identified by test;

SQL> grant dba to test;

-->创建目录

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

-->创建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

****注意:要创建public database link 如果只创建 database link 只能再当前用户下访问链接库数据,但导出来报错

ORA-39001: 参数值无效

ORA-39200: 链接名称 "kfdb5" 无效。

ORA-02019: 未找到远程数据库的连接说明

具体解释:

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.

导出命令:

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 方法进行估计...

处理对象类型 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

. . 导出了 "SINOSOFT"."BASE_DICT"                      35.73 KB     683 行

已成功加载/卸载了主表 "TEST"."SYS_EXPORT_TABLE_01"

******************************************************************************

TEST.SYS_EXPORT_TABLE_01 的转储文件集为:   E:\DUMP_DIR\BASE_DICT.DMP

作业 "TEST"."SYS_EXPORT_TABLE_01" 已于 17:54:09 成功完成

扩展:

将导出得文件导入到本地数据库命令:impdp.exe test/test directory=dump_dir1 dumpfile=base_dict.dmp tables=base_dict   REMAP_SCHEMA=sinosoft:test

查看导入情况:

SQL> select * from tab;

TNAME                          TABTYPE  CLUSTERID

------------------------------ ------- ----------

SYS_IMPORT_TABLE_01                TABLE

SQL> select * from tab;

TNAME                          TABTYPE  CLUSTERID

------------------------------ ------- ----------

SYS_IMPORT_TABLE_01           TABLE   -->主表  在完成后数据库会自动删除主表(导出失败则否)

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;

【源于本人笔记】 若有书写错误,表达错误,请指正...

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值