`
ollevere
  • 浏览: 261249 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Oracle exp imp导出导入实例

阅读更多

一. 导出工具 exp

1. 它是操作系统下一个可执行的文件 存放目录/ORACLE_HOME/bin

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

 

它有三种模式:
       a.  用户模式: 导出用户所有对象以及对象中的数据;

     

exp  username/password@XE owner=xxx  file=d:\xxx_20130223.dmp;

 
       b.  表模式: 导出用户所有表或者指定的表;

 

 

exp  username/password@XE owner=xxx  file=d:\xxx_20130223.dmp TABLES=(SONIC);

 
       c.  整个数据库: 导出数据库中所有对象。

 

 

exp  username/password@XE   file=d:\xxx_20130223.dmp FULL=Y;

 

 

二.导入工具 imp

1. 它是操作系统下一个可执行的文件 存放目录/ORACLE_HOME/bin

imp导入工具将EXP形成的二进制系统文件导入到数据库中.

它有三种模式:
       a.  用户模式: 导入用户所有对象以及对象中的数据;

 

imp  username/password@XE fromuser =xxx touser =xxx file=d:\xxx_20130223.dmp;

 
       b.  表模式: 导入用户所有表或者指定的表;

 

 

imp  username/password@XE fromuser =xxx file=d:\xxx_20130223.dmp TABLES=(SONIC);

 
       c.  整个数据库: 导入数据库中所有对象。

 

 

imp  username/password@XE file=d:\xxx_20130223.dmp FULL=Y;

 

 

三.导入导出实例

操作步骤:

oracle sqlplus连接说明:

cmd
sqlplus /nolog
conn sys/root@IBMSPRO as sysdba       //conn system/admin@ORCL
提示“已连接。” 表示连接成功

 

1.从 A 上导出数据文件到指定目录(目录名称自己定义,只要自己能找到就行,和用户名没有关系)

 

exp xxx/xxx@IBMS_40 owner=ibms  file=d:\ibms_40_20130223.dmp;

 

2.在A机器上查看用户默认表空间,以便导入时创建一样的表空间  

 

 

select username,default_tablespace from dba_users where username ='ibms';

 

3.查看用户使用的表空间 

 

 

select DISTINCT owner ,tablespace_name from dba_extents where owner like 'ibms';

 

 

4.查看表空间对应的数据文件,以便在B上创建大小合适的数据文件。

 

select file_name,tablespace_name from dba_data_files where tablespace_name  in ('IBMS-DATA','IBMS-DATAB');  //'IBMS-DATA','IBMS-DATAB'为上面查询出的表空间

 

5.检查B机器的表空间,看是否存在IBMS-DATA,IBMS-DATAB

select name from v$tablespace where name in ('IBMS-DATA','IBMS-DATAB');
查找不到,说明没有这个两个表空间,需要创建。

 

6.要导入数据的server没有IBMS-DATA,IBMS-DATAB表空间。创建

CREATE  TABLESPACE "IBMS-DATA" LOGGING DATAFILE  'D:\oracle\app\oracle\product\10.2.0\oradata\ibmspro\mytbs01.dbf'   SIZE 500M  AUTOEXTEND  ON   NEXT  32M  EXTENT MANAGEMENT LOCAL;
CREATE  TABLESPACE "IBMS-DATAB" LOGGING DATAFILE  'D:\oracle\app\oracle\product\10.2.0\oradata\ibmspro\mytbs02.dbf'   SIZE 500M  AUTOEXTEND  ON   NEXT  32M  EXTENT MANAGEMENT LOCAL;

 

7.在服务器B上查找用户是否已经存在

select username from dba_users where username='ibms';

接下来分为两种情况,如果不存在那么按照 [一] 方法,如果存在按照 [二]

【一】创建用户

create user ibms identified by Test2passwd default tablespace cmis temporary tablespace temp profile default;

【二】如果用户存在

drop user ibms cascade; (删除用户及其拥有的所有对象)

#此时如果这个用户在连接,drop会出错,必须先杀掉用户的session,然后再drop user

SELECT 'alter system kill session '''||SID||','||SERIAL#||''' immediate;' FROM V$SESSION WHERE USERNAME='ibms';

#(如果用户正在连接,构建命令并杀掉)

 

create user ibms identified by ibmspasswd default tablespace IBMS-DATA temporary tablespace IBMS-DATA IBMS-DATAB default;(创建用户)
grant connect,resource to ibms; (授权)

--放开所有表空间
--grant unlimited tablespace to ibms;
--给所有权限
--grant resource,connect,dba to ibms;

 

8.把文件从A机器上拷贝到B机器上。

9.最后在A机器上按用户导入数据

imp xxx/xxx@IBMSPRO fromuser=ibms touser=ibms file=d:\xxx_20130223.dmp ignore=y

 

 

四.导入可能出现的问题:

(1) imp和exp使用的字符集不同

      如果字符集不同, 导入会失败, 可以改变unix环境变量或者NT注册表里NLS_LANG相关信息.

      导入完成后再改回来.

 

(2) imp和exp版本不能往上兼容

imp可以成功导入低版本exp生成的文件, 不能导入高版本exp生成的文件

根据情况我们可以用

imp username/password@connect_string

说明: connect_string 是在/ORACLE_HOME/network/admin/tnsnames.ora

   定义的本地或者远端数据库的名称

注意事项:

UNIX: /etc/hosts           要定义本地或者远端数据库服务器的主机名

win2000:  winnt\system32\drivers\etc\hosts

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics