oracle 使用imp 工具导出的时候需要指定一个导出文件保存路径,同样的。imp导入的时候也需要指定导入的文件,如果exp出来的文件特别大的时候 就会非常占据系统空间。
可以使用 管道 + ssh 实现不同主机之间数据导入导出,不产生落地文件
实验环境
A 主机 ip 地址 192.168.100.176 上面有oracle 实例 SDB1 数据库用户密码 oracle/oracle
B 主机 ip 地址 192.168.100.250 上面有oracle 实例 srcseabed 数据库用户密码seabed/seabed
B 主机上面有 table TEST100 需要导入到A主机 导出的时候不能有落地文件 A主机导入的时候也不能有落地文件
- 首先在B 主机上 建立一个管道文件, 用来给exp 导出的时候将数据存到管道里面
创建管道文件 在/home/oracle 下创建
mknod exppipe p
2.给管道文件授权
chmod 666 expipe
3.在B主机上执行exp导出数据,并指定保存到管道里面
exp oralce/oracle file=/home/oracle/expipe tables=TEST100
4.在A主机上也建立管道文件
创建管道文件 在/home/oracle 下创建
mknod imppipe p
5.给管道文件授权
chmod 666 imppipe
6.在A主机上执行imp导入数据
imp seabed/seabed file=/home/oracle/imppipe tables=TEST100
7.在B主机上使用管道 + ssh 将exp到exppipe 的数据通过ssh 传送到A主机的管道imppipe
dd if=/home/oracle/imppipe | ssh 192.168.100.176 dd of=/home/oracle/imppipe