ITPub博客

首页 > 数据库 > Oracle > ORACLE 10G以上 在同一数据库中复制用户下的所有表

ORACLE 10G以上 在同一数据库中复制用户下的所有表

原创 Oracle 作者:germany006 时间:2015-10-22 11:15:46 0 删除 编辑
1、用户USER01,对DIRECTORY有读写权限,数据库与操作系统分别设置与创建好对应的路径及目录
2、授权,例如临时授予DBA权限,用完再收回
3、导出USER01例子:

expdp USER01/USER01  DIRECTORY=DUMP_TEST DUMPFILE=USER01.dmp SCHEMAS=USER01
注:如果是用sys用户导出的用户数据,包括用户创建、授权部分,用自身用户导出则不含这些内容

可以查询用户使用的默认表空间
select username,default_tablespace from dba_users where username='USER01';
查到USER01使用的默认表空间是DATA01

4、创建用户USER02,授权
create user USER02 identified by USER02;
grant connect,resource to USER02;
grant dba to USER02; 
grant read,write on directory DUMP_TEST to USER02;

5、创建USER02默认表空间
create tablespace DATA02 add datafile '/oradata/USER02.dbf' size 5M autoextend on next 5M maxsize 50M; 
alter user USER02 default tablespace DATA02;

6、将USER01用户下的数据全部导入到表空间DATA02(原来为DATA01表空间下)下
impdp USER02/USER02 DIRECTORY=DUMP_TEST DUMPFILE=USER01.dmp  remap_schema=USER01:USER02



如果是在WINDOWS环境下,需要注意环境变量,或者直接在bin目录下执行命令。
而如果要在CMD上使用SYSDBA用户来执行命令,需以以下格式执行:
expdp \"/ as sysdba\"  DIRECTORY=DUMP_TEST DUMPFILE=USER01.dmp SCHEMAS=user01
impdp \"/ as sysdba\"  DIRECTORY=DUMP_TEST DUMPFILE=USER01.dmp remap_tablespace=user01:user02




来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/28371090/viewspace-1815566/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
ORACLE,MYSQL,POSTGRESQL,SQLSERVER,MONGODB,TIDB,DB2,REDIS,本博客只为记录自己学习总结,不代表完全准确。

注册时间:2013-03-06

  • 博文量
    776
  • 访问量
    1038315