当前位置:数据库 > Oracle >>

oracle imp、exp命令精简介绍

oracle imp、exp命令精简介绍
 
 对于数据的的迁移,特别是不同版本之间和不同系统之间的迁移,使用exp/imp可以完成,
当然,我们推荐使用expdp/impdp进行数据的导入,导出。下面我们简单讲讲exp、imp的基本操作
 
1 整个数据库的导出、导入
  
 a 导出、导入之前我们需要确认数据库的字符集,设置环境变量NLS_LANG
   export NLS_LANG=AMERICAN_AMERICA.UTF8(这是我的参数,具体的根据实际情况而定)
 
   #查询oracle字符集参数
    select * from v$nls_parameters
    select * from v$nls_parameters where parameter='NLS_CHARACTERSET';
    select value from nls_database_parameters t where t.PARAMETER='NLS_NCHAR_CHARACTERSET'
 b 执行导出命令,需要使用一定权限的用户,否则只会导出该用户拥有的对象
 
    exp system/root file=/backup/full.dmp log=/backup/full.log full=y
  
 c 进行导入命令
   
    imp system/root file=/backup/full.dmp log=/backup/full2.log full=y ignore=y
 
2 基于用户进行数据的导出、导入
   export NLS_LANG=AMERICAN_AMERICA.UTF8
 
   a 执行导出命令,使用对应的用户,可以指定owner,也可以不指定  但是不能指定full参数
     
     exp scott/root file=/backup/scott.dmp log=/backup/scott.log  或者
     exp system/root file=/backup/scott.dmp log=/backup/scott.log owner=scott
 
   b 如果没有用户和表空间,我们需要先创建指定的表空间和用户
      
      create tablespace "hsj"
      logging
      DATAFILE '/u01/oradata/orcl/heshengjun.ora' SIZE 500M REUSE EXTENT 
      MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT  AUTO ;
 
      创建用户
 
      create user hsj identified by root 
      default tablespace hsj 
      temporary tablespace temp;
 
   c 授予scott权限,具体用户根据自己的用户而定
 
 GRANT UNLIMITED TABLESPACE TO "SCOTT";
 GRANT CREATE DATABASE LINK TO "SCOTT";
 GRANT CREATE ANY TABLE TO "SCOTT";
 GRANT CREATE ANY TRIGGER TO "SCOTT";
 GRANT CREATE ANY VIEW TO "SCOTT";
 GRANT CREATE DATABASE LINK TO "SCOTT";
 GRANT CREATE PROCEDURE TO "SCOTT";
 GRANT CREATE TABLE TO "SCOTT";
 GRANT CREATE TABLESPACE TO "SCOTT";
 GRANT CREATE TRIGGER TO "SCOTT";
 GRANT DROP ANY TABLE TO "SCOTT";
 GRANT INSERT ANY TABLE TO "SCOTT";
 GRANT UPDATE ANY TABLE TO "SCOTT";
 GRANT CONNECT TO "SCOTT";
 GRANT RESOURCE TO "SCOTT";
 GRANT IMP_FULL_DATABASE to "SCOTT"
 GRANT DBA TO "SCOTT";
 
    d 执行导入命令
      
      imp scott/root file=/backup/scott.dmp log=/backup/scott2.log full=y
 
      或者
 
      imp scott/root file=/backup/scott.dmp log=/backup/scott2.log fromuser=scott touser=scott
 
  3 基于表对象的导出导入
    export NLS_LANG=AMERICAN_AMERICA.UTF8
    a 导出表 对象 demp 和emp
      #在linux系统下,对特殊符号转义
      exp scott/root file=/backup/table.dmp log=/backup/table.log tables=\(dept,emp\);
    b 导入表 对象 demp 和emp
      imp scott/root file=/backup/table.dmp log=/backup/table2.log full=y
 或者
      imp  scott/root file=/backup/table.dmp log=/backup/table2.log tables=\(dept,emp\);
 
 总结:对于其他参数,比如缓存 buffer,压缩 compress 都没有配置,有兴趣可以参考文档进行配置
 对于读取参数文件,将会在expdp、impdp中进行介绍
 
补充:对于数据库的迁移,务必设置相同的字符集。或者兼容的字符集
 
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,