首先,假设你已经编写了通过手动运行一个程序,进行更新的方法。
接下来,你要编写一个带有时间(Timer)控件程序,将该程序运行,该程序利用Timer控件不断检查时间是否满足你说的定时,一到时间,就去运行前面说的手动更新的程序。
import javautilTimer;
import javautilTimerTask;
public class Test extends TimerTask {
public static void main(String[] args) {
Timer timer = new Timer();
Test t=new Test();
//程序运行后立刻执行任务,每隔1000ms执行一次
timerschedule(t, 0, 1000);
}
@Override
public void run() {
Systemoutprintln("在此处调用插入数据库的方法");
}
}
1、采用java定时器完成每天定时将一个数据写到另一个数据库中
2、由于数据比较大写入的过程就不采用java实现、采用oracle存储过程完成2000w数据的插入,这样性能比起java实现要快很多。
3、不同数据库之间的访问可以采用oracle的dblink实现!!
如果是sql server 可以用调度定时自动复制或更新到另一个数据库。
ORECAl等其他大型数据库类似做法。
小型数据库的话只能编程了,比如delphi。用时间控件来实现
一、实现思路与应用场景
1 中间数据库
i 新建一个数据库以及数据库管理员账号,并赋予且仅赋予该账号管理该数据库的所有权限。
ii 设置定时任务定期向该数据库推送表数据。
2 应用场景
i 向第三方提供数据的一种方式,安全性高,不适宜应用于对数据及时性要求高的项目。
二、 应用原理
当中间数据库中的表名与当前数据库中的表名相同时,数据表内的数据会被覆盖;
如果中间数据库的表在sql中不存在,则不受影响
三、具体实现
1 创建用户
CREATE USER `user_name`@`%` IDENTIFIED BY 'password';
2 赋予权限
grant all privileges on 想授权的数据库 to 'user_name'@'%';
flush privileges; 刷新权限
3 定时任务
i 数据库表的导出与导入命令
/usr/bin/mysqldump -h 202202202202 -u dbuser -pdbuser --single-transaction slave > tablesql
/usr/bin/mysql -u dbuser -pdbuser database_name < /home/mysql/tablesql
ii 创建sql文件的临时存放目录
mkdir /home/mysql
iii 脚本编写
#!/bin/bashTIME=`date +%Y%m%d%H`rm -rf /home/mysql//usr/bin/mysqldump -h 172168102129 -u dbuser -pdbuser --single-transaction database_name > /home/mysql/table_$TIMEsql/usr/bin/mysql -u dbuser -pdbuser database_name < /home/mysql/table_$TIMEsql
iv cron定时任务
将脚本report_syncsh 保存到/usr/bin下:
mv report_syncsh /usr/bin
增加计划任务(每天中午11点执行一次)
crontab -e(确保crontab安装)
00 11 /usr/bin/report_syncsh
————————————————
版权声明:本文为CSDN博主「yangxinyujy」的原创文章,遵循 CC 40 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:>
以上就是关于怎么将服务器的数据,每天定时更新到本地数据库全部的内容,包括:怎么将服务器的数据,每天定时更新到本地数据库、编写一个java定时器 每隔5秒钟向数据库表中添加一条数据 求助应该咋写啊 求具体代码、2个oracle数据库,需每天定时将一个数据库的数据写入到另外一个数据库,数据总量每天在2000w行左右等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)