使用empdp和impdp导出和导入数据库的表

数据泵技术比原来导入/导出(imp,exp)技术快15-45倍。速度的提高源于使用了并行技术来读写导出转储文件。此命令只可用在服务端,客户端无法使用。

1.打开SQL plus

首先需要输入用户名和密码进行登录;

创建一个directory对象:create directory dpdata1 as 'd:\test\dump';

然后查看当前实例下有哪些导出目录可使用:select * from dba_directories;

最后登录一个管理员的账户来给目前的账户赋予读写的权限:grant read,write on directory dpdata1 to scott;

若想赋予全部的权限即管理员权限:grant dba to scott;

若重新创建一个新用户:create user username identified by password;

给新用户赋予登录的权限:grant connect,resource to username;

2.启用和禁用主键等

 

Type CodeType DescriptionActs On Level
CCheck on a tableColumn
ORead Only on a viewObject
PPrimary KeyObject
RReferential AKA Foreign KeyColumn
UUnique KeyColumn
VCheck Option on a viewObject
--删除所有主键约束 的Sql代码 
select 'alter table '||table_name||' drop constraint '||constraint_name||';' from user_constraints where constraint_type='R'
--alter table EMP drop constraint EMP_PK ;
--禁用所有主键约束的Sql代码
select 'alter table '||table_name||' disable constraint '||constraint_name||';' from user_constraints where constraint_type='R'
--alter table EMP disable constraint EMP_PK ;
--启用所有主键约束的Sql代码
select 'alter table '||table_name||' enable constraint '||constraint_name||';' from user_constraints where constraint_type='R'   
--alter table EMP enable constraint EMP_PK ;

禁用掉主键等后会使导入导出的速度提高。

3.导出数据

按表导出(可单个或多个):

expdp scott/admin@orcl directory=dpdata1 dumpfile=expdp.dmp tables=BONUS,emp,dept

结尾不要加分号;

按用户导出:expdp scott/admin@orcl directory=dpdata1 dumpfile=expdp.dmp schemas=scott

导出所有所有表:expdp scott/admin@orcl directory=dpdata1 dumpfile=expdp.dmp full=y

4.导入数据

impdp yyb/yyb@orcl directory=dpdata1 dumpfile=expdp.dmp remap_schema=scott:yyb exclude=user(用户已存在,最后不要加分号)

impdp yyb/yyb@orcl directory=dpdata1 dumpfile=expdp.dmp remap_schema=scott:yyb//用户不存在;

从scott用户导入到yyb用户。

5.拓展:

查询Oracle表是否有触发器:

select * from user_triggers where table_owner = 'xxx' and table_name = upper('table_name');

导出数据
1)按用户导
expdp scott/tiger@orcl schemas=scott dumpfile=expdp.dmp DIRECTORY=dpdata1;
2)并行进程parallel
expdp scott/tiger@orcl directory=dpdata1 dumpfile=scott3.dmp parallel=40 job_name=scott3
3)按表名导
expdp scott/tiger@orcl TABLES=emp,dept dumpfile=expdp.dmp DIRECTORY=dpdata1;
4)按查询条件导
expdp scott/tiger@orcl directory=dpdata1 dumpfile=expdp.dmp Tables=emp query='WHERE deptno=20';
5)按表空间导
expdp system/manager DIRECTORY=dpdata1 DUMPFILE=tablespace.dmp TABLESPACES=temp,example;
6)导整个数据库

expdp system/manager DIRECTORY=dpdata1 DUMPFILE=full.dmp FULL=y;

还原数据
1)导到指定用户下
impdp scott/tiger DIRECTORY=dpdata1 DUMPFILE=expdp.dmp SCHEMAS=scott;
2)改变表的owner
impdp system/manager DIRECTORY=dpdata1 DUMPFILE=expdp.dmp TABLES=scott.dept REMAP_SCHEMA=scott:system;
3)导入表空间
impdp system/manager DIRECTORY=dpdata1 DUMPFILE=tablespace.dmp TABLESPACES=example;
4)导入数据库
impdb system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y;
5)追加数据

impdp system/manager DIRECTORY=dpdata1 DUMPFILE=expdp.dmp SCHEMAS=system TABLE_EXISTS_ACTION

6删除数据

truncate table test;
truncate与delete的异同:
      TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少。
  DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。
  TRUNCATE TABLE 删除表中的所有行,但表结构及其列、约束、索引等保持不变。新行标识所用的计数值重置为该列的种子。如果想保留标识计数值,请改用 DELETE。

expdp和impdp是Oracle数据库提供的工具,用于进行数据的导出导入操作。下面是使用expdp和impdp工具进行数据导入导出的步骤: 1. 导出数据(使用expdp): - 打开命令行窗口或终端,并登录到Oracle数据库。 - 运行以下命令来导出数据: ``` expdp username/password@database_name DIRECTORY=directory_name DUMPFILE=dumpfile_name LOGFILE=logfile_name ``` 其中,`username`是要导出数据的用户,`password`是用户的密码,`database_name`是数据库的名称,`directory_name`是导出文件的目录,`dumpfile_name`是导出文件的名称,`logfile_name`是日志文件的名称。 - 根据需要,可以添加其他选项来指定要导出、模式、数据过滤条件等。 2. 导入数据(使用impdp): - 打开命令行窗口或终端,并登录到Oracle数据库。 - 运行以下命令来导入数据: ``` impdp username/password@database_name DIRECTORY=directory_name DUMPFILE=dumpfile_name LOGFILE=logfile_name ``` 其中,`username`是要导入数据的用户,`password`是用户的密码,`database_name`是数据库的名称,`directory_name`是导入文件的目录,`dumpfile_name`是导入文件的名称,`logfile_name`是日志文件的名称。 - 根据需要,可以添加其他选项来指定要导入、模式、数据过滤条件等。 需要注意的是,导出导入的用户需要具有相应的权限才能执行这些操作。另外,导出导入的文件可以是二进制文件(.dmp)或压缩文件(.dpb)。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雨中深巷的油纸伞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值