oracle备份一个用户并迁移

本文详细介绍了如何使用expdp和impdp命令在不同Oracle机器间迁移特定用户的所有数据库对象,包括表、表空间、索引等。通过示例演示了如何查看用户默认表空间、导出和导入用户信息,确保迁移过程顺利无误。

   今天用到了将oracle中一个用户下的所有信息导入到另一个机器中的用户下,例如有一台机器中某用户为aa,需要在另一台机器中将aa用户下的所有信息,如表、表空间、索引拷贝到本机的数据库上

首先查看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; 

另外执行oracle的脚本文件只需要@目录路径\文件名.sql即可



如果文章有什么错误或者有什么建议,欢迎提出,大家共同交流,一起进步

文章转载请注明出处,请尊重知识产权

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值