Oracle11G数据泵导入导出-changxf-20140926 联系客服

发布时间 : 星期日 文章Oracle11G数据泵导入导出-changxf-20140926更新完毕开始阅读390b886b52d380eb62946dde

Oracle11G数据库命令:

1 进入SQLPLUS状态

1、 打开【附件】-【命令提示符】,以系统管理员的身份运行; 2、 输入sqlplus / as sysdba;

3、 回车执行语句,进入数据库;

2 用户管理

【说明】:在SQLPLUS状态下执行。

2.1 创建用户

CREATE USER yonghuming IDENTIFIED BY mima DEFAULT TABLESPACE NNC_DATA01 TEMPORARY TABLESPACE temp; 说明:

1、“yonghuming”——用户名称; 2、“mima”——用户密码;

2.2 授权用户:(一般授权)

GRANT connect,dba to yonghuming; 说明:

1、“yonghuming”——用户名称;

2.3 授权用户:(数据泵模式)

GRANT read,write on directory expdir to yonghuming; 说明:

1、“expdir”——数据泵创建的目录名称; 2、“yonghuming”——用户名称;

2.4 查看用户

select username from dba_users;

2.5 删除用户

drop user yonghuming(用户名) cascade;

3 数据泵操作

3.1 创建目录

1、在数据库实例上创建directory(sqlplus模式下执行)

CREATE OR REPLACE DIRECTORY 目录名称 AS '数据库服务器上的一个目录' 例如 CREATE OR REPLACE DIRECTORY expdir AS 'd:\\';

红字为要命名的目录名称,as后面为实际路径(windows环境),把需要导入的数据直接放入d盘目录下即可。

2、创建后可以用这个命令来查看已存在的目录 (查看所有)

select * from dba_directories; (查看制定目录名所在目录)

select * from dba_directories WHERE DIRECTORY_name='expdir';

3.2 创建用户并授权

CREATE USER yonghuming IDENTIFIED BY mima DEFAULT TABLESPACE NNC_DATA01 TEMPORARY TABLESPACE temp;

GRANT read, write ON DIRECTORY expdir TO orcle;

1、红字“expdir”为创建的目录;

2、蓝字” yonghuming”为需要被授权的用户名;

3.3 数据库备份导出

创建用户并授权后,在dos状态(非sqlplus下) 假设原用户名称为test:

expdp nc6/orcle@orcl schemas=nc6 dumpfile=nc6.dmp directory=expdir logfile=test.log;

3.4 数据库导入

创建用户并授权后,在dos状态(非sqlplus下)

【说明】:

1、使用数据泵语句导出的数据库,必须对应使用数据泵语句导入。

2、执行脚本前,需要把数据库文件如SYYNC611_FINAL-2.dmp考到本机D盘根下(创建的目录位置)。

1、 导出前导入后的数据库用户名称一致

impdp test/1@orcl(用户\\密码@实例名) directory=expdir(已经创建的目录) dumpfile=text.dmp(具体数据库名称) schemas=test(数据泵导出的用户名称);

2、 导出前导入后的数据库用户名称不一致,需要做用户名的映射

假设导出前用户名为test,导入的新用户名为test1:

impdp test1/1@orcl(用户\\密码@实例名) directory=expdir(已经创建的目录) dumpfile=text.dmp(具体数据库名称) schemas=test(数据泵导出的用户名称) remap_schema=test:test1(导出用户名:导入用户名);

其中:schemas是源用户 remap_schema中test是源用户 test1是将要导入的目的用户.

4 单表备份命令

create table 新表名 as select * from 旧表名

5 普通模式下导出导入

5.1 导出

exp test/1@orcl(用户名/密码@数据库实例名)file=D:\\test.dmp

5.2 导入

Imp test/1@orcl(用户名/密码@数据库实例名)file=D:\\test.dmp full=y

6 Oracle11g不能新增空表解决方法

说明:

在oracle 11g r2中,发现传统的exp脚本居然不能导出空的表,需要按照如下的步骤去操作。

6.1 原因:

Oracle 11g 新增了一个参数:deferred_segment_creation,含义是段延迟创建,默认是true。如果这个参数设置为true,你新建了一个表T1,并且没有向其中插入数据,那么这个表不会立即分配extent,也就是不占数据空间,只有当你insert数据后才分配空间,这样可以节省少量的空间。

6.2 解决办法:

当设置deferred_segment_creation 参数为FALSE后,无论是空表还是非空表,都分配segment,就可以用exp\\imp脚本操作数据库的导入导出 1、在sqlplus中,执行如下命令:

alter system set deferred_segment_creation=false; 2、查看参数值:

show parameter deferred_segment_creation; 如果参数值为false则表明修改成功。