今天遇到这样一个需求,就是想把两个oracle数据库服务器间的数据做个同步,就是想把数据库A中XXX表的数据导入到数据库B的XXX表中。
方法一:
用oracle 客户端工具,将A中的XXX导出,假设导出到a.csv中。然后将a.csv通过该工具再导入到B中XXX表即可。
以PL/SQL Developer为例,具体操作如下:
step1,导出A中的XXX表数据
1-1. 打开PL/SQL Developer,并连接到oracle数据库A。
1-2. 在PL/SQL Developer工具栏选择Tools->Export Tables...,打开Export Tables页。
1-3. 在Export Tables页中,选择你要导出的表,我们这里是XXX表。
1-4. 在Export Tables页中,设置Output file路径,如E:/a.csv,然后点击Export按钮,执行导出即可。
step2,导入B中的XXX表数据
2-1. 打开PL/SQL Developer,并连接到oracle数据库B。
2-2. 在PL/SQL Developer工具栏选择Tools->Import Tables...,打开Import Tables页。
2-3. 在Import Tables页中,设置Import file路径,如E:/a.csv,然后点击Import 按钮,执行导入即可。
方法二:
通过Database link+sql command,执行不同数据库服务间的数据导入。
以PL/SQL Developer为例,具体操作如下:
step1,在数据库服务器B中建立数据库服务器A的TNS链接。
1-1. 找到B中oracle的安装目录,打开C:/.../NETWORK/ADMIN/tnsnames.ora文件,添加数据库服务器A的TNS连接信息,如:
A=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = XXX.XXX.XXX.XXX)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = A)
)
)
step2,在数据库服务器B中建立数据库服务器A的database link。
2-1. 打开PL/SQL Developer,并连接到oracle数据库B。
2-2. 右键单击 Database links,选择new,新建一个A的databse link。
2-3. 在create database link页面中添加数据库A的登录信息。
详见附图
2-4. 编写数据导入的SQL command,例如
insert into XXX
(col1, col2, col3, col4)
select col1, col2, col3, col4 from XXX@A;执行该sql command,完成数据导入即可。