欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

oracle数据泵导入导出部分用户

程序员文章站 2022-05-13 12:46:52
问题描述:需要将140服务器中的tbomnew实例下的部分用户导入到118服务器下的tbompx实例中,本次导入导出的两个数据库均为19C 部分用户名:CORE,MSTDATA,BOMMGMT,CFGMGMT,CHGMGMT,CUST,integration 1.导入指定140服务器的实例名tbom ......

问题描述:需要将140服务器中的tbomnew实例下的部分用户导入到118服务器下的tbompx实例中,本次导入导出的两个数据库均为19c

部分用户名:core,mstdata,bommgmt,cfgmgmt,chgmgmt,cust,integration

 

1.导入指定140服务器的实例名tbomnew,先查询一下这个服务器上的实例名,可以用监听查询,因为这个库中有很过实例名,所以要先导入所需要的实例名。

 oracle数据泵导入导出部分用户

 

 

[oracle@t-bomdb dpdump]$ export oracle_sid=tbomnew

[oracle@t-bomdb dpdump]$

[oracle@t-bomdb dpdump]$

[oracle@t-bomdb dpdump]$ echo $oracle_sid

tbomnew

 oracle数据泵导入导出部分用户

 

 

2.首先查询服务器有没有创建用于备份的dumpfile之类的

sql> select * from dba_directories;    查询数据字典查看一下dumpfile的名称,属于sys用户,名字,以及路径,如果没有可以创建一个目录

 oracle数据泵导入导出部分用户

 

 

3.开始导出需要导出的部分用户,加上logfile可以看到运行日志,清晰的可以看到导出的过程

[oracle@t-bomdb ~]$ expdp "'/ as sysdba'" directory=data_pump_dir dumpfile=20200104users.dmp schemas=core,mstdata,bommgmt,cfgmgmt,chgmgmt,cust,integration logfile=20200104users.log

 oracle数据泵导入导出部分用户

 

 oracle数据泵导入导出部分用户

 

 

 

4.将导出的dmp文件传输到118目标服务器的文件夹下

[oracle@t-bomdb ~]$ scp /oracle/admin/tbomnew/dpdump/20200114users.dmp root@10.66.225.118:/oracle/admin/tbompx/dpdump/

 oracle数据泵导入导出部分用户

 

 

5.scp传输过来的文件进行imdpd导入,下边的红色部分不用在意

 oracle数据泵导入导出部分用户

 

 oracle数据泵导入导出部分用户

 

 

 

 

6.但是值得注意的这里的文件权限是root,需要手动授权dmp文件属主为 oracle:oinstall

[root@tldbompx03 dpdump]# chown -r oracle:oinstall 20200114users.dmp

[root@tldbompx03 dpdump]#

[root@tldbompx03 dpdump]#

[root@tldbompx03 dpdump]# ll

total 14720

-rw-r----- 1 oracle oinstall 15065088 jan 14 10:41 20200114users.dmp

-rw-r--r-- 1 oracle oinstall      492 jan 14 10:42 20200114users.log

-rw-r----- 1 oracle oinstall      151 dec 20 16:14 dp.log

 

7.impdp导入,可以看到导入的一个过程

[oracle@tldbompx03 ~]$ impdp "'/ as sysdba'" directory=data_pump_dir dumpfile=20200114users.dmp logfile=20200114users.log

 oracle数据泵导入导出部分用户

 

 

8.查看到导入过来的一个过程

 oracle数据泵导入导出部分用户

 

 

本次导入导出需要注意的地方是,使用的连接工具是xshell,在140服务器下打开一个sqlplus的窗口进行准备工作,导入的实例是tbomnew,但是又新开了一个窗口,采用的是默认的实例名tbom,由于新开的窗口没有确认实例名,所以导致传输的数据是另一个实例下的。

导出错误数据的解决方法为删除已经导入的用户,一定要确认ip与实例名。

drop user core cascade;

drop user mstdata cascade;

drop user bommgmt cascade;

drop user cfgmgmt cascade;

drop user chgmgmt cascade;

drop user cust cascade;

drop user integration cascade;