Linux导入导出Oracle数据库

最近需要迁移数据库,但这是小编第一次导出导入数据库,所以总结了一下,方便记忆。

一 导出

1.在Linnux服务器上如果不是oracle用户,则要切换到oracle用户。

   命令如下:

    su - oracle

2.exp导出工具

    exp导出工具将数据库中数据备份压缩成一个二进制系统文件,可以在不同OS间迁移。

    exp导出工具又分为交互式命令行方式非交互式命令行方式 .非交互式更便捷,直接就导出了

    (1)交互式命令行方式

    exp username(用户名)/password(口令)@servicename(数据库服务名)

    例如

    $exp  ttt/123@sername
    Enter array fetch buffer size: 4096 > 回车
    Export file: expdat.dmp > t.dmp  导出的文件名 

       (1)E(ntire database), (2)U(sers), or (3)T(ables): (2)U > 3

       1:整个数据库  2:所有的用户,schema  3:所有的表

    Export table data (yes/no): yes > no

    是否导出表中的数据
    Compress extents (yes/no): yes > 回车

    是否压缩

   Export done in US7ASCII character set and UTF8 NCHAR character set
   server uses AL32UTF8 character set (possible charset conversion)
   About to export specified tables via Conventional Path ...

   Table(T) or Partition(T:P) to be exported: (RETURN to quit) > t  要导出的表名

   . . exporting table                       t
   Table(T) or Partition(T:P) to be exported: (RETURN to quit) >要导出的表名n
   Table(T) or Partition(T:P) to be exported: (RETURN to quit) > 回车
   Export terminated successfully without warnings. 

   (2)非交互式命令行方式

        exp username/password@service_name file=/home/oracle/databasename.dmp

         username:用户名

         password:密码

         service_name:数据库的服务名

         file:要导出数据库文件的路径

二 导入

     1.在要导入的oracle数据库上创建相应的用户,只有拥有IMP_FULL_DATABASE和DBA权限的用户才能做整个数据库导入。

      create user username identified by password
      grant dba to username

     2.导入前Linux服务器切换到oracle用户

         su - oracle

     3.imp导入工具

       导入工具imp也分交互式和非交互式,没有其他需求可以直接使用非交互式导入进去,更便捷

      (1)交互式命令行方式

      $ imp

      Username: username
      Password:  password

      Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
      With the Partitioning, OLAP, Data Mining and Real Application Testing options

      Import data only (yes/no): no >

      是否只导入数据

      Import file: expdat.dmp > /t/t.dmp

      导入数据库文件的路径

      Enter insert buffer size (minimum is 8192) 30720>

      输入插入缓冲区大小(最小为 8192 )

      Export file created by EXPORT:V10.02.01 via conventional path
      import done in ZHS16GBK character set and AL16UTF16 NCHAR character set
      export client uses US7ASCII character set (possible charset conversion)
      export server uses UTF8 NCHAR character set (possible ncharset conversion)
      List contents of import file only (yes/no): no >

      只列出导入文件的内容

      Ignore create error due to object existence (yes/no): no > yes

      由于对象已存在, 忽略创建错误

      Import grants (yes/no): yes >

      导入权限

      Import table data (yes/no): yes >

      导入表数据

      Import entire export file (yes/no): no > yes

      导入整个导出文件

      . importing XXXXXXobjects into XXXXXX
      . . importing table              "t"       2775 rows imported
      Import terminated successfully with warnings. 

       (2)非交互式命令行方式

       $ imp usrname/password file = t.dmp full=y 

三 注意事项

     1.oracle数据库导出时老是遇到一错误.ora-12641:验证服务无法初始化

        这个问题的标准代码应该为 tns-12641(ora-12500到ora-12699的错误,应该是tns-12500到tns-12699).

        网络问题,从网络方面着手 

        将sqlnet.ora文件中的SQLNET.AUTHENTICATION_SERVICES = (TNS)

        修改为SQLNET.AUTHENTICATION_SERVICES = (none

     2.数据泵技术是Oracle Database 10g 中的新技术,它比原来导入/导出(imp,exp)技术快15

  -45倍。速度的提高源于使用了并行技术来读写导出转储文件。

        expdp/impdp和exp/imp的区别:

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

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

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

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

     3.导入导出方式

                其实除了传统方式:exp/imp和数据泵方式:expdp/impdp,直接使用第三方工具:

        PL/sql Develpoer也可以导出导入,用工具相对来说更便捷,但长时间应用会对其产生依赖,降低对代码执行原理的理解

四 总结

        小编是用exp/imp导出导入的,所以没有对expdp/impdp做详细描述,大家有兴趣、有需要的

可以再去查查看。学无止境呀,每隔一段时间就会接触到一些新的内容,只能去接受,去了解,把

遇到过的问题及处理方式都记录下来,下次遇到能更快捷的处理,我真是一点也不懂Java呀!


        

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值