Oracle备份一个用户并迁移

2014-11-24 17:22:17 · 作者: · 浏览: 0

首先查看aa用户下的默认表空间,或者根据sysdba用户查看。


select username,default_tablespace from user_users; //当前用户
select user,default_tablespace from dba_users; //sysdba查询所有的用户和默认表空间


比如现在知道了aa用户的表空间是aatbs;

那么现在在cmd中执行,而不是在sqlplus中或者pl/sql中的SQL>执行


exp aa/aa@orcl file=C:\aa_bak.dmp full=y //全部导出;


然后在另外一个数据库中执行命令如下


sqlplus / as sysdba;
create tablespace aatbs datafile 'c:\oracle\product10.2.0\oradata\aa_bak.dbf' size 32M
autoextend on next 32M maxsize 2048M extent management local; --创建表空间,其中表空间名和刚才查询的表空间名一致
create user aa identified by aa default tablespace aatbs;
grant dba to aa;
--drop user aa cascade;
exit;


创建表空间的时候需要注意


1.datafile后的文件路径必须为单引号,我用了双引号不好使

2.另外需要设置默认的表空间,因为导出的备份文件中的表空间是aatbs,如果此时不指定表空间,导入备份文件的时候会因为创建表所在的表空间不一致而报错

然后切换到cmd中,执行

imp aa/aa@orcl file=c:\oracle\product10.2.0\oradata\aa_bak.dbf full=y;