今天发现impdp命令有个特殊的用途,可以将数据库的一个用户迁移到另一台机器上的数据库的用户中。如果目标用户不存在,还可以对应的创建该用户。
下面就来看一下命令格式:
Impdp
username/passwd@dbsname remap_schema=userA:userB remap_tablespace=tbsA:tbsB network_link=dblink_to_userA_on_userB
说明:
Userid:
Username/passwd@dbsname。用户建议为system。
Remap_schema: userA:userB。数据库用户映射。
Remap_tablespace: tbsA:tbsB。默认表空间映射。
Schemas: userA。必须是dblink中指定用户。建议不指定。
Directory: 该种模式下,此参数指定的是日志文件的路径。如果不指定,则路径默认为data_pump_dir。
Network_link: 在备份库上创建的连接到目标机的dblink。
这样就能快速的把A库上的用户迁移到B库上。
不过有几个前提:
1、username:这个操作的数据库用户建议是system,如果是其他用户的话就需要有dba权限的用户才能执行;
2、dblink:必须能够连接到对应库上的数据库用户下。
20160715补充:
今天试验了下,不仅能按用户导入,还能按指定的表导入,即在原命令行后面加上tables=[table_name],即可。
20170206修正:
impdp命令补充必须的参数(directory=dmp_dir):
Impdp username/passwd@dbsname remap_schema=userA:userB remap_tablespace=tbsA:tbsB network_link=dblink_to_userA_on_userB directory=dmp_dir
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/12932950/viewspace-752301/
,如需转载,请注明出处,否则将追究法律责任。