Oracle12C数据自动同步

一、思路

  1. 在源数据库中建立一个远程数据库链
  2. 通过远程数据库链操作数据库数据表:先删除原始数据,插入最新数据
  3. 建立一个定时任务,定时调用任务:登录sqlplus 执行第二步操作

说明:此处以windows计划任务为例,linux中使用crontab定时任务;

当然此处思路为Oracle数据库自动同步,mysql数据库也可以参考同样思路

 二、建立数据库链

-- 1、进入PDB(SS_SYSRIGHT)中:
alter session set container=SS_SYSRIGHT; 

-- 2、赋予建立数据库链接的权限
grant create public database link to ss_sysright;


-- 3、建立数据库链接
create public database link LinkSafe
connect to ss_safe identified by "ss_safe@123"
using '(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.6.45)(PORT=1521))
)
(CONNECT_DATA=(SERVER=DEDICATED)
(SERVICE_NAME=ss_safe))
)';

此处使用数据库是Orcle12C,存在CDB\PDB模式,如不清楚请查阅资料。

非CDB\PDB模式,不需要切换模式。

三、sql操作语句 syncss_safe.sql

begin
  --1 事故管理 伤亡情况
  delete from T_ACC_CASUALTY@LinkEqu; 

  insert into T_ACC_CASUALTY@LinkEqu
  select * from "SS_SAFE"."T_ACC_CASUALTY"; 
  
      --2 隐患排查 隐患类别
  delete from T_HIDDAN_TYPE@LinkEqu; 

  insert into T_HIDDAN_TYPE@LinkEqu
  select * from "SS_SAFE"."T_HIDDAN_TYPE"; 

end;
/

quit;

 

四、Windows计划任务

1、建立一个任务文件 oracleBackUp.bat


@echo off & setlocal ENABLEEXTENSIONS 
:: ---------- 配置项 ----------  

:: 数据库服务器IP地址 
set ServerAddress=192.168.6.45:1521/

:: 要备份的数据库名称,多个用空格分隔 
set DATABASES=ss_safe

:: MySQL 用户名 
set USERNAME=SYS

:: MySQL 密码 
set PASSWORD=swai1234

:: 创建oracle逻辑目录sql文件地址
set CreateDirSql=C:\Users\test005\Desktop\OASync\sync
:: ---------- 以下请勿修改 ----------  

:: backup 
echo Start dump databases...  
for %%D in (%DATABASES%) do ( 

sqlplus %USERNAME%/%PASSWORD%@%ServerAddress%%%D as sysdba @%CreateDirSql%%%D
pause
) 
echo Done 
 
 

2、将任务加入windows计划中  cron_backup_add.bat

@echo off 

:: ------- 配置项 ------- 

:: 要执行的文件名(全路径)
set FILE=D:\bakDB\autoBak\oracle_winserver\oracleBackUp.bat 

:: 计划频率类型 
set FREQUENCY=DAILY 

:: 频率,与上面的计划频率类型对应 
set MODIFIER=1 

:: 该计划执行的时间(24 小时制) 
set DATETIME=17:00:00 

:: 计划的名字 
set NAME="Backup OracleDB Job" 

:: 计划执行用户,不建议修改 
set USER="System" 

:: ------- 以下请勿修改 ------- 

schtasks /Create /RU %USER% /SC %FREQUENCY% /MO %MODIFIER% /ST %DATETIME% /TN %NAME% /TR %FILE% 
pause 
 
:: 计划频率类型,可选项: 
:: MINUTE 分钟 
:: DAILY 天 
:: HOURLY 小时 
:: WEEKLY 周 
:: MONTHLY 月 

:: 频率,与上面的计划频率类型对应 
:: MINUTE: 1 到 1439 分钟 
:: HOURLY: 1 - 23 小时 
:: DAILY: 1 到 365 天 
:: WEEKLY: 1 到 52 周 
:: MONTHLY: 1 到 12,或 FIRST, SECOND, THIRD, FOURTH, LAST, LASTDAY 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

笑谈子云亭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值