oracle数据泵 如何使用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq944417919/article/details/79637239
首先登陆oracle的linux后台,
切换到oracle用户   
su - oracle
然后登陆oracle后台
sqlplus / as sysdba


1.查看数据库的directory
select * from dba_directories;


2.建立特定的数据库directory
create or replace directory mydir as '/u01/directory';


3.把directory的权限赋予给特定用户
GRANT READ,WRITE ON DIRECTORY mydir TO jiwu;


4.然后退出oracle后台
exit
 进入linux界面,执行以下命令
expdp system/oracle schemas=jiwu directory=MYDIR dumpfile=expdpjiwu.dmp logfile=expdpjiwu.log  version=11.2.0.4.0; 导出特定用户的数据到特定directory中
expdp system/oracle directory=MYDIR dumpfile=system.dmp logfile=system.log  version=11.2.0.4.0; 数据库整个备份下来到data_pump_dir中 
如果在备份的时候报错 ORA-39002 等
看下是不是是directory 文件夹还没有建立,需要手动建立下,然后执行上面语句就不会报错了




5.登陆另一台oracle后台,把dmp文件传入文件夹中,删掉特定用户的用户数据,然后退出oracle后台
su - oracle
sqlplus / as sysdba
drop user jiwu cascade;   如果在删掉用户的时候报错,请参考下面
exit


ORA-01940: cannot drop a user that is currently connected
--查看用户的连接状况
select username,sid,serial# from v$session;
--status 为要删除用户的session状态,如果还为inactive,说明没有被kill掉,如果状态为killed,说明已kill。
select saddr,sid,serial#,paddr,username,status from v$session where username is not null and username='JIWU' and status!='KILLED';
--找到要删除用户的sid,和serial,并删除
alter system kill session '532,4562';


修改文件名 mv /u01/directory/expdpjiwu.dmp /u01/directory/expdpjiwu1.dmp
文件服务器对拷 scp /u01/directory/expdpjiwu.dmp [email protected]:/u01/directory/


6.impdp system/oracle schemas=jiwu directory=MYDIR table_exists_action=replace dumpfile=expdpjiwu.dmp  logfile=impdpjiwu.log version=11.2.0.4.0 TRANSFORM=segment_attributes:n; 把刚刚备份好的数据还原回去
7.完成

猜你喜欢

转载自blog.csdn.net/qq944417919/article/details/79637239