Linux导入导出Oracle数据库(二)

前言 

        上次提了一嘴可以用数据泵技术导出导入,也就是用expdp/impdp做导出导入,马上就用到了,在详细做一些介绍吧 !   

为什么

expdp/impdp和exp/imp的区别:

        exp和imp是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用。

        expdp和impdp是服务端的工具程序,他们只能在Oracle服务端使用,不能在客户端使用。

        imp只适用于exp导出的文件;impdp只适用于expdp导出的文件。

        对于10g以上的服务器,使用exp通常不能导出0行数据的空表,而此时必须使用expdp导出。

        导出时可以加上版本version。

是什么

        数据泵技术是Oracle Database 10g 中的新技术,它比原来导入/导出(imp,exp)技术快15-45倍。速度的提高源于使用了并行技术来读写导出转储文件。

怎么用   

一,expdp导出
        1.登录
                // 首先切换到oracle用户
                su - oracle
                //以sysdba的方式登录
                sqlplus / as sysdba
        2.DIRECTORY对象
                //查询DIRECTORY对象
                SELECT * FROM dba_directories;
                //如果不存在则创建
                CREATE OR REPLACE DIRECTORY dump_dir AS                 '/home/oracle/app/oracle/admin/orcl';
                //指定用户赋予在该目录的操作权限
                GRANT read,write ON DIRECTORY data_dir TO user1;
                //退出sysdba
                exit;
        3.执行导出
                1:“full=y”,全量导出数据库;
                        expdp 用户名/密码@实例名 dumpfile=expdp.dmp directory=dump_dir full=y                         logfile=expdp.log;

                2:schemas按用户导出;
                        expdp 用户名/密码@实例名 schemas=user1 dumpfile=expdp.dmp                         directory=dump_dir logfile=expdp.log;

                3:导出表;
                        expdp 用户名/密码@实例名 tables=table1,table2 dumpfile=expdp.dmp                         directory=dump_dir logfile=expdp.log;

二,impdp导入
        1.确定之前导出的dmp文件位置,或者选择要导出的dmp文件放到指定位置
        2.参照expdp导出步骤,建立逻辑目录
                impdp user2/password@orcl directory=dump_dir remap_schema=user1:user2                 dumpfile=expdp.dmp logfile=expdp.log;
        3.执行导入
                1:“full=y”,全量导入数据库;
                        impdp 用户名/密码@实例名 directory=dump_dir dumpfile=expdp.log full=y;

                2:同名用户导入,从用户A导入到用户A;
                        impdp 用户名/密码@实例名 schemas=用户名 directory=dump_dir                         dumpfile=expdp.dmp logfile=impdp.log;

                3:从A用户中把表table1和table2导入到B用户中;
                        impdp 用户名/密码@实例名 tables=A.table1,A.table2 remap_schema=A:B                         directory=dump_dir dumpfile=expdp.dmp logfile=impdp.log;

                4:追加数据;
                        impdp 用户名/密码@实例名 directory=dump_dir dumpfile=expdp.dmp                         schemas=system table_exists_action=replace logfile=impdp.log; 

总结

         书到用时方恨少,没做过的工作总是需要去查资料。其实使用expdp/impdp导出主要是想导

出时加上一个version,要考虑版本兼容的问题。学到老活到老,文章中有什么问题欢迎大家指

正,不止是这一篇文章,主要是为了总结一些技巧、方法,方便下次巩固,要不过两天我就忘了,

真实一点都不会Java呀!

                

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值