源数据库:
id/1@127.0.0.1:1521/ora11g
其中“id”为源数据库用户的用户名;”1”位用户密码;”127.0.0.1”为服务器地址;”1521”为端口号;”ora11g”为数据库实例名。由以上信息唯一确定一个数据库用户。
Step1:建立一个数据库用户
-----su – oracle (连接到oracle用户下)
-----sqlplus/ as sysdba
-----create user USERID identified by PSWORD default tablespace DATA temporary tablespace TEMP;(USERID 用户名;PSWORD 密码;DATA数据库表空间;TEMP 临时表空间)
Step2:赋予权限
-----grant connect,dba to USERID;
-----gran tread,write on directory CW to USERID;(CW 日志相对路径)
Step3:赋予dblink权限
-----grant create public database link to USERID(但其实在第二步时候赋予的dba权限中,已包含dblink权限,所以这一步骤没必要进行)
Step4:创建一个dblink
-----create public database link LINKID connect to id identified by "1"using '127.0.0.1:1521/ora11g'; (LINKID dblink名;id用户名;1 密码;127.~11gDBSERVER)
-----exit;
Step5:dblink导入导出
-----impdp USERID/PSWORD network_link=LINKID remap_schema=id:USERID directory=CW logfile=file.log;(USERID/PSWORD目标数据库用户名密码;LINKID dblink名; id:USERID 目标:源; CW 日志相对路径;file.log 导入导出日志路径)
当然,对于Step3~Step5除了dblink方式导入导出外,还可以使用导出文件方式进行导入导出,而二者的区别在于dblink方式中间文件不需要落地,直接类似于网络传输一步到位。而对于导出文件方式顾名思义,就是先将源文件导出来,再将导出的文件导入到目标中
而针对于导入导出方式还有两种方法exp/imp与expdp/impdp
exp/imp方式:
导出:----- exp id/1@127.0.0.1:1521/ora11g owner=id file=c:\test.dmp log=testexp.log buffer=20480000 statistics=none
导入:----- imp USERID/PSWORD@127.0.0.1:1521/ora11g from user=id to user=USERID file=:\test.dmp log=f:testimp.log buffer=20480000
Expdp/impdp方式:
导出:----- expdp id/1 dumpfile=test.dmp logfile=testexp.log directory=CW parallel=2
导入:----- impdp USERID/PSWORD dumpfile=test.dmp logfile=testimp.log directory=CW parallel=2 remap_schema=id:USERID
至于exp与expdp之间的区别则是前者可与跨数据库服务器导入导出,如从127.0.0.1导入到192.168.1.1.
而后者只能在同一数据库服务器下进行导入导出操作。
这点从二者的导入导出代码可以略见一斑