各位高人,小弟初学oracle,现在遇到一个问题想请教大家。有两个数据库A和B,A和B分别装在不同的服务器上。
数据库A有表A1(A1_x, A1_y, A1_z),A2(A2_m, A2_n),且每天不停的会往这2个表中写入数据。
现在需要在每天晚上12点将当天新加入A1、A2中的A1_x, A1_z, A2_n的记录复制到数据库B中。如果不借助任何外部工具,只在oracle中手动写脚本的话需要怎么做啊?小弟初学,希望各位高人能解答得详细一点,谢谢!
数据库A有表A1(A1_x, A1_y, A1_z),A2(A2_m, A2_n),且每天不停的会往这2个表中写入数据。
现在需要在每天晚上12点将当天新加入A1、A2中的A1_x, A1_z, A2_n的记录复制到数据库B中。如果不借助任何外部工具,只在oracle中手动写脚本的话需要怎么做啊?小弟初学,希望各位高人能解答得详细一点,谢谢!
connect to username identified by password
using tns_name;dblink_name:自定义名称
username:用户名
password:密码
tns_name:tnsnames.ora文件中的网络服务别名
connect to 访问B机器数据库用户名 identified by 访问B机器数据库密码
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = B数据库地址)(PORT = B数据库端口))
)
(CONNECT_DATA =
(SERVICE_NAME = B数据库实例名)
)
)';在A机器上建立job schedule,实现每天自动处理A到B数据的处理。
create or replace procedure pro_test
as
begin
exception
end;4. 创建作业(比如每天凌晨2点执行)
variable jobnum number;
begin
dbms_job.submit(:jobnum,'pro_test;',sysdate,'trunc(sysdate)+1+2/24' );
commit;
end;
考虑实际问题还有,如果出现网络问题怎么办,数据量很大怎么办