oracle exp 导入导出,Oracle导入导出操作指导-exp与imp

oracle 数据库导入到处

类似mysql 的mysqldump 和mysql 导入

命令 exp imp

使用

获取帮助

exp help=y

imp help=y

数据库示例:

~~~

create tablespace tzpf_dev_test datafile 'tzpf_dev_test.dbf' size 1024M autoextend on next 50M maxsize 8092M;

create temporary tablespace tzpf_dev_test_temp tempfile 'tzpf_dev_test_temp.dbf' size 1024m autoextend on next 50m maxsize 8000m extent management local;

create user tzpf_dev_test identified by 123456 default tablespace tzpf_dev_test temporary tablespace tzpf_dev_test_temp;

grant connect,resource,dba to tzpf_dev_test;

~~~

导出原理

导出数据库

8be61516713c82ae071b6a508fd02dba.png

Export_start

672012a2aa8d6fbd6d0bb2a847b6f403.png

ExpModes

cb253efa3a6cbaf12abe449210056fee.png

ExpOpts

504e41a0e4d36c38bc7e4aca8aa775de.png

ExpOpts_continued

8d08e779d3832ad733404bf6a8d799fd.png

导入原理

69eb301e0d128ad88e9da9c25cadffc1.png

b987322f1d2c1a7ece268c44bfd3e69d.png

ab4d74e61e620d6fe7dfb0a4a4932291.png

94380206524214e4130f09a5dcdd3f56.png

9c4e0be838d2710099cf89f54569c3d7.png

4b1d6334ed228403a7a5adb638d7adf2.png

3edfc9a71d279f636cb90f2d2b0f0f87.png

0e1b32c537c537bd5268445048453dbf.png

0c58b676db61816acab1204ae1d9d758.png

exp 导出

查看表大小

SELECT SUM(BYTES)FROM USER_SEGMENTS WHERE SEGMENT_TYPE ='TABLE';

exp 导出空表

echo "SELECT 'ALTER TABLE '||table_name||' ALLOCATE EXTENT;' FROM user_tables WHERE segment_created = 'NO';"|sqlplus abc/test | grep "ALTER TABLE" | sqlplus abc/test

~~~

可用

echo "SELECT 'ALTER TABLE '||table_name||' ALLOCATE EXTENT;' FROM user_tables WHERE segment_created = 'NO'; " | sqlplus ftpf_dev/123456 | grep "ALTER TABLE" | sqlplus ftpf_dev/123456

~~~

命令格式

exp username/password@instance file=filename full=y grants=y indexs=y log=logfile

导出 abc账户下的数据库

exp abc/test1234 file=abc.dmp full=y

expdp导出

expdp username/password dumpfile=test.dmp

imp 导入

imp test/123456 file=abc.dmp full=y fromuser=test1 touser=test tables=t1 ignore=y

impdp 导入

帮助

impdp help=y

开始导入

impdp username/password dumpfile=test.dmp

修改导出dmp 文件表空间

方法1

exp 导出后 使用 vim 打开 dmp 文件

然后: 3,$ s/表空间名/新表空间/g wq 写入

imp 导入 登陆用户 检查 select table_name,tablespace_name from user_tables; #查询当前用户所有表 所在表空间

方法二

1、修改UAT环境user用户的表空间名为PRD环境对应的表空间名:(修改之前记得备份)

select username,default_tablespace from dba_users where username=upper('ftpf_dev'); # 查询用户的表空间名

select table_name,tablespace_name from user_tables where tablename='TABLENAME'; # 查询某个表在那个表空间下

select table_name,tablespace_name from user_tables; #查询当前用户所有表 所在表空间

#ALTER TABLESPACE irtc RENAME TO FTPF_DEV1; 修改表空间名 TO的表空间名必须不存在

ALTER TABLESPACE FTPF_DEV RENAME TO FTPF_DEV1; #修改FTPF_DEV 表空间命为 FTPF_DEV1 FTPF_DEV1表空间不能存在 不然报错

2、导出UAT环境user用户:

EXP user/pwd@TNS_UAT BUFFER=64000 FILE=D:\SCHEMA_USER.dmp OWNER=USER

3、将导出的dmp文件导入给PRD环境的user用户:

IMP user/pwd@TNS_PRD BUFFER=64000 FILE=D:\SCHEMA_USER.dmp FROMUSER=USER TOUSER=USER

4、还原UAT环境user用户的表空间名:

ALTER TABLESPACE TBSP_PRD RENAME TO TBSP_UAT

5、OK,方法二完成。

数据重新导入

查询用户的默认表空间命及临时表空间命

select lower(username),lower(default_tablespace),lower(temporary_tablespace) from dba_users where username = upper('fcpf_dev');

导出数据库

exp fcpf_dev/fcpf_dev file=fcpf_dev_0719.dmp

如果导入非 fcpf_dev 用户就需要修改表空间命

参考 修改导出dmp 文件表空间

删除用户 需要导入的数据库

drop user fcpf_dev CASCADE;

重新创建需要导入数据库的用户

create user fcpf_dev identified by 123456 default tablespace FCPF temporary tablespace temp; # 写入上面查到的用户默认表空间及临时表空间吗命

grant connect,resource,dba to fcpf_test ; #授权

导入数据库

imp fcpf_dev/123456 fromuser=fcpf_dev touser=fcpf_test file=fcpf_dev_0719.dmp

附件列表

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值