大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
1、导出导入表和数据,最快的还是在plsql工具里选择导出导入然后就可以了,第一步选择导入。
成都创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于成都网站设计、网站建设、莱阳网络推广、小程序设计、莱阳网络营销、莱阳企业策划、莱阳品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联公司为所有大学生创业者提供莱阳建站搭建服务,24小时服务热线:13518219792,官方网址:www.cdcxhl.com
2、第二步选择你要导出的表。
3、然后选择SQL插入,选择如图所示,where字句可以添加限制条件的导出表数据。
4、然后数据和表结构都导出到对应的文件了 。
1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中\x0d\x0a exp system/manager@TEST file=d:\daochu.dmp full=y\x0d\x0a2 将数据库中system用户与sys用户的表导出\x0d\x0a exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)\x0d\x0a3 将数据库中的表table1 、table2导出\x0d\x0a exp system/manager@TEST file=d:\daochu.dmp tables=(table1,table2) \x0d\x0a4 将数据库中的表table1中的字段filed1以"00"打头的数据导出\x0d\x0a exp system/manager@TEST file=d:\daochu.dmp tables=(table1) query=\" where filed1 like '00%'\"\x0d\x0a \x0d\x0a 上面是常用的导出,对于压缩我不太在意,用winzip把dmp文件可以很好的压缩。\x0d\x0a 不过在上面命令后面 加上 compress=y 就可以了
迄今为止 导出/导入工具集仍是跨多个平台转移数据所需劳动强度最小的首选实用工具 尽管人们常常抱怨它速度太慢 导入只是将每条记录从导出转储文件中读出来 然后使用常见的 INSERT INTO 命令将其插入到目标表中 因此导入可能是个很慢的过程 这一点并不让人感到吃惊
进入 Oracle Data Pump Oracle Database g 中的导出/导入工具包的更新更快的同类工具 它被设计来成倍地加速这个过程
Data Pump 反映了整个导出/导入过程的彻底革新 它不是使用常见的 SQL 命令 而是应用专用 API 来以更快得多的速度加载和卸载数据 在我的测试中 我看到导出性能比在直接模式下提高了 倍 导入过程性能提高了 倍 此外 与使用导出实用工具不同 它还能够只取出特定类型的对象(如过程)
Data Pump 导出
这个新的实用工具称为 expdp 以和原来的导出 exp 区分开 在本例中 我们将用 Data Pump 来导出一个大表 CASES 大小约为 GB Data Pump 在服务器端使用文件处理来创建和读取文件 因此 目录作为位置使用 在这种情况下 我们将使用文件系统 /u /dpdata 来保存转储文件
create directory dpdata as /u /dpdata ; grant read write on directory dpdata to ananda;
接下来 我们将导出数据
expdp ananda/abc tables=CASES directory=DPDATA dumpfile=expCASES dmp job_name=CASES_EXPORT
让我们来分析该命令的各个部分 用户 ID/口令组合 表和转储文件参数的意义是显而易见的 与原来的导出不同 文件是在服务器(不是客户端)上创建的 位置由目录参数值 DPDATA 指定 它指向之前创建的 /u /dpdata 这个进程还在目录参数指定的位置上创建一个日志文件(同样在服务器上) 默认地 这个进程使用一个名称为 DPUMP_DIR 的目录 因此可以创建它来代替 DPDATA
注意上面的参数 job_name 这是个特殊的参数 在原来的导出中没有 所有的 Data Pump 工作都通过作业来完成 Data Pump 作业 — 与 DBMS 作业不同 — 只是服务器进程 它代表主进程处理数据 主进程(称为主控制进程)通过高级队列 (AQ) 来协调这项工作 它通过在运行期内创建的一个特殊的表(称为主表)来实现这个目的 在我们的例子中 如果您在 expdp 运行时检查用户 ANANDA 的模式 您将注意到一个表 CASES_EXPORT 的存在(对应参数 job_name) 当 expdp 结束时 这个表被丢弃
导出监控
当 Data Pump Export (DPE) 运行时 按 Control C 它将阻止消息在屏幕上显示 但不停止导出进程本身 相反 它将显示 DPE 提示符(如下所示) 进程现在被认为处于 交互式 模式
Export
这种方法允许在这个 DPE 作业上输入几条命令 要查看概要 在提示符下使用 STATUS 命令
Export status Job:CASES_EXPORT Operation:EXPORT Mode:TABLE State:EXECUTING Degree: Job Error Count: Dump file:/u /dpdata /expCASES dmp bytes written = Worker Status: State EXECUTING Object Schema:DWOWNER Object Name:CASES Object Type:TABLE_EXPORT/TBL_TABLE_DATA/TABLE/TABLE_DATA Completed Objects: Total Objects: Completed Rows:
记住 这只是状态显示 导出在后台工作 要继续在屏幕上查看消息 从 Export 提示符下使用命令 CONTINUE_CLIENT
并行操作
您可以通过 PARALLEL 参数为导出使用一个以上的线程来显著地加速作业 每个线程创建一个单独的转储文件 因此参数 dumpfile 应当拥有和并行度一样多的项目 您可以指定通配符作为文件名 而不是显式地输入各个文件名 例如
expdp ananda/abc tables=CASES directory=DPDATA dumpfile=expCASES_%U dmp parallel= job_name=Cases_Export
注意 dumpfile 参数拥有一个通配符 %U 它指示文件将按需要创建 格式将为 expCASES_nn dmp 其中 nn 从 开始 然后按需要向上增加
在并行模式下 状态屏幕将显示四个工作进程 (在默认模式下 只有一个进程是可见的 )所有的工作进程同步取出数据 并在状态屏幕上显示它们的进度
分离访问数据文件和转储目录文件系统的输入/输出通道是很重要的 否则 与维护 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 DM started with pid= OS id= to execute SYS KUPM$MCP MAIN( CASES_EXPORT ANANDA ); kupprdp:worker process DW started with worker id= pid= OS id= to execute SYS KUPW$WORKER MAIN( CASES_EXPORT ANANDA ); kupprdp:worker process DW started with worker id= pid= OS id= 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 ( ));
PROGRAM 列将对应警报日志文件中的名称显示进程 DM (为主进程)或 DW (为工作进程) 如果一个工作进程使用了并行查询 比如说 SID 您可以在视图 V$PX_SESSION 中看到它 并把它找出来 它将为您显示从 SID 代表的工作进程中运行的所有并行查询会话
select sid from v$px_session where qcsid = ;
从视图 V$SESSION_LONGOPS 中可以获得其它的有用信息来预测完成作业将花费的时间
select sid serial# sofar totalwork from v$session_longops where opname = CASES_EXPORT and sofar != totalwork;
列 totalwork 显示总工作量 该列的 sofar 数量被加和到当前的时刻 — 因而您可以用它来估计还要花多长时间
Data Pump 导入
不过 数据导入性能是 Data Pump 真正出色的地方 要导入先前导出的数据 我们将使用
impdp ananda/abc directory=dpdata dumpfile=expCASES dmp job_name=cases_import
导入进程的默认行为是创建表和所有相关的对象 然后在表已存在时产生一个错误 如果您想把数据添加到一个现有的表中 您可以在上述命令行中使用 TABLE_EXISTS_ACTION=APPEND
和使用 Data Pump 导入一样 在进程中按 Control C 将进入 Date Pump Import (DPI) 的交互模式 同样 提示符是 Import
处理特定对象
您是否有过只需要从一个用户导出特定的过程 以在一个不同的数据库或用户中重新创建这些过程的情况?与传统的导出实用工具不同 Data Pump 允许您只导出特定类型的对象 例如 以下命令让您只导出过程 而不导出其它任何东西 — 不导出表 视图 甚至函数
expdp ananda/iclaim directory=DPDATA dumpfile=expprocs dmp include=PROCEDURE
要只导出一些特定的对象 — 比如说 函数 FUNC 和过程 PROC — 您可以使用
expdp ananda/iclaim directory=DPDATA dumpfile=expprocs dmp include=PROCEDURE:\ =\ PROC \ \ FUNCTION:\ =\ FUNC \ \
这个转储文件充当了源对象的一个备份 您甚至可以用它来创建 DDL 脚本 以供之后使用 一个称为 SQLFILE 的特殊参数允许创建 DDL 脚本文件
impdp ananda/iclaim directory=DPDATA dumpfile=expprocs dmp sqlfile=procs sql
该指令在 DPDATA 指定的目录中创建一个名称为 procs sql 的文件 并将对象的脚本包含在导出转储文件中 这种方法帮助您快速地在另一个模式中创建源对象
利用参数 INCLUDE 允许您从转储文件中定义要包含或排除的对象 您可以使用子句 INCLUDE=TABLE: LIKE TAB% 来仅导出那些名称以 TAB 开头的表 类似地 您可以使用结构 INCLUDE=TABLE: NOT LIKE TAB% 来排除所有名称以 TAB 开头的表 作为另一种选择 您可以使用 EXCLUDE 参数来排除特定的对象
lishixinzhi/Article/program/Oracle/201311/17547
Oracle导出导出有两中方式:一、利用exp imp导出导入;二、利用Oracel数据泵expdp impdp导出导入。
一、利用exp imp导出导入
exp imp 语法如下:
exp:
1) 将数据库orcl完全导出
exp system/manager@orcl file=d:\orcl_bak.dmp full=y
2) 将数据库中system用户的表导出
exp system/manager@orcl file=d:\system_bak.dmp owner=system
3) 将数据库中表table1,table2导出
exp system/manager@orcl file=d:\table_bak.dmp tables=(table1,table2)
4) 将数据库中的表customer中的字段mobile以"139"开头的数据导出
exp system/manager@orcl file=d:\mobile_bak.dmp tables=customer query=\"where mobile like '139%' \"
imp:
1) 将备份文件bak.dmp导出数据库
imp system/manager@orcl file=d:\bak.dmp
如果数据表中表已经存在,会提示错误,在后面加上ignore=y就可以了。
2) 将备份文件bak.dmp中的表table1导入
imp system/manager@orcl file=d:\bak.dmp tables=(table1)
exp imp导出导入数据方式的好处是只要你本地安装了Oracle客户端,你就可以将服务器中的数据导出到你本地计算机。同样也可以将dmp文件从你本地导入到服务器数据库中。但是这种方式在Oracle11g版本中会出现一个问题:不能导出空表。Oracle11g新增了一个参数deferred_segment_creation,含义是段延迟创建,默认是true。当你新建了一张表,并且没用向其中插入数据时,这个表不会立即分配segment。
解决办法:
1、设置deferred_segment_creation参数为false后,无论是空表,还是非空表,都分配segment。
在sqlplus中,执行如下命令:
SQLalter system set deferred_segment_creation=false;
查看:
SQLshow parameter deferred_segment_creation;
该值设置后,只对后面新增的表起作用,对之前建立的空表不起作用,并且注意要重启数据库让参数生效。
2、使用 ALLOCATE EXTEN
使用 ALLOCATE EXTEN可以为数据库对象分配Extent,语法如下:
alter table table_name allocate extent
构建对空表分配空间的SQL命令:
SQLselect 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0
批量生成要修改的语句。
然后执行这些修改语句,对所有空表分配空间。
此时用exp命令,可将包括空表在内的所有表导出。
二、利用expdp impdp导出导入
在Oracle10g中exp imp被重新设计为Oracle Data Pump(保留了原有的 exp imp工具)
数据泵与传统导出导入的区别;
1) exp和imp是客户端工具,他们既可以在客户端使用,也可以在服务端使用。
2) expdp和impdp是服务端工具,只能在Oracle服务端使用。
3) imp只适用于exp导出文件,impdp只适用于expdp导出文件。
expdp导出数据:
1、为输出路径建立一个数据库的directory对象。
create or replace directory dumpdir as 'd:\';
可以通过:select * from dba_directories;查看。
2、给将要进行数据导出的用户授权访问。
grant read,write on directory dumpdir to test_expdp;
3、将数据导出
expdp test_expdp/test_expdp directory=dumpdir dumpfile=test_expdp_bak.dmp logfile=test_expdp_bak.log schemas=test_expdp
注意:这句话在cmd窗口中运行,并且最后不要加分号,否则会提示错误。因为这句话是操作系统命令而不是SQL。
impdp导入数据:
1、给将要进行数据导入的用户授权访问。
grant read,write on directory dumpdir to test_impdp;
2、将数据导入
impdp test_impdp/impdp directory=dumpdir dumpfile=test_expdp_bak.dmp remap_schema=test_expdp:test_impdp
1、首先通过tode创建或者克隆新的数据库用户,如下图所示。
2、导出目标表准备好,空表无法导出表结构,然后打开运行命令,导出目标用户test所有数据库相关信息,如下图所示。
3、输入完成后,点击键盘上的回车,等待一会如下图所示。
4、最后导入目标用户new所有数据库相关信息,如下图所示。
5、最后如下图所示,就导出完成了。