zoukankan      html  css  js  c++  java
  • Linux服务器下对Oracle数据库expdp(导出)和impdp(导入)

          紧接上篇文章,Oracle数据库架构已经创建完成,我的需求是:将老服务器上的数据库迁移到新的数据库上

    这就用到impdp(导入)操作。

    要想实现对新数据库的impdp(导入)工作,

    首先需要从老的数据库上做expdp(导出)操作,命令如下:

          expdp 用户名/密码 schemas=iirspublish dumpfile=导出数据库名.dmp DIRECTORY=目录名 logfile=导出日志.log

         备注:schemas,你用“用户 user”来理解就很容易了,每个模式(user)下可以有一套互不干扰的对象。

        你如果想要访问其他模式的对象,需要指定schema的name,实际就是指定username。

    下面这些步骤是我在实际工作中实践过的,

    准备工作:首先用Xshell连接到Linux服务器,并切换至oracle账号,

    [root@localhost ~]# su - oracle

    Last login: Fri Jul 21 13:49:22 CST 2017 on pts/1    (成功切换

    [oracle@localhost ~]$ sqlplus sys/ as sysdba

    切换到

    SQL>

    然后依次执行如下命令:

    1、sys用户登录创建目录

    SQL>create directory dir_iirsuserbaknew as '/u01/app/oracle/oradata'; (创建目录并分配存放路径)

    2、sys用户下创建表空间

    SQL>create tablespace IIRSUSER datafile '/u01/app/oracle/oradata/IIRSUSER01' size 100m Autoextend on next 100m,'/u01/app/oracle/oradata/IIRSUSER02' size 100m Autoextend on next 100m Extent management local uniform size 200k;(创建表空间,设置文件自动增长空间大小)

    3、sys用户下创建用户

    SQL>create user iirsuser identified by "iirsuser" Default tablespace IIRSUSER Temporary tablespace temp; (创建用户名,设置密码,并指明默认表空间和临时表空间)

    SQL>grant dba,connect,resource to iirsuser; (给用户授予dba、基础、开发权限)

    4、sys用户下

    SQL>Grant read,write on directory dir_iirsuserbaknew to iirsuser;  (将目录的读写权限授予用户)

    5、DOS下Impdp还原                                                        

    [oracle@localhost ~]$impdp iirsuser/"iirsuser"@orcl directory=dir_iirsuserbaknew dumpfile=ExpIirspublish20170814.dmp remap_tablespace=IIRSPublish:IIRSUSER remap_schema=iirspublish:iirsuser logfile=impdbiirspublish20170814.log transform=oid:n

    第5步需要退出(exit)SQL命令行至Oracle账号下执行。

    需要解释的是:

    impdp 用户名/"密码"@sid directory=目录 dumpfile=老数据库expdp得到的实例名.dmp remap_tablespace=老数据库空间名:新数据库空间名 remap_schema=老数据库用户名:新数据库用户名 logfile=impdb日志名.log transform=该参数可以去掉,应用于适用对象的元数据转换

    需要强调的是:

    问题1:如果你在操作的过程中忘记了自己建的目录,可以用命令(select * from dba_directories;)查询;

    问题2:如果想删除新还原好的数据库实例,那么需要执行以下操作

    1)、首先删除用户

    -----drop USER c#iirsuser CASCADE;

    2)、其次删除表空间包括表空间的内容和数据文件

    -----drop tablespace IIRSUSER including contents and datafiles cascade constraints;

    3)、最后删除目录

    -----drop directory dir_iirsuserbaknew;

  • 相关阅读:
    Android上传文件到服务器(转)
    Android -- 利用Broadcast开启Service(转)
    【转】实践最有效的提高Android Studio运行、编译速度方案
    Android Studio3.x新的依赖方式(implementation、api、compileOnly)
    Drawable子类之——StateListDrawable (选择器)
    解决android studio引用远程仓库下载慢(JCenter下载慢)
    跳槽季,面试官:能接受加班吗?
    PHP 底层的运行机制与原理
    PHP程序员如何突破成长瓶颈
    VirtualBox启动虚拟机报错0x80004005
  • 原文地址:https://www.cnblogs.com/boboc/p/7359100.html
Copyright © 2011-2022 走看看