两台数据库服务器 如何进行数据同步操作
这个要根据不同情况具体分析,有几种方案参考:
数据库A和数据库B是建立在两台独立的数据库服务器上,那么采用dblink方式是一种可行的方式,存在两个数据同步过程:
一、数据库A正常运行的时候需要将数据同步到备用库即数据库B;
二、数据库A不正常的时候启用数据库B,在数据库A恢复正常之前的数据更新都发生在数据库B,那么需要将数据库B的数据同步给数据库A。
第一种方式:前提是数据库A和数据库B本地网是24小时互通的同时对数据同步实时性有比较高的要求,那么可以建立DBLINK,在两个库都建触发器,不管当前在哪个库发生数据更新的时候实时同步数据到目标数据库;
第二种方式:如果数据同步的实时性要求不高,则可以通过定制存储过程的方式(给两个库的数据表加时间戳或者更新标志,)定时同步数据;
第三种方式:通过给两个数据库的数据表加更新标志字段,以第一种方式为主以满足实时性的要求,以第二种方式为辅弥补可能存在的触发器执行更新未成功的情况。
以上的方案都是从数据层面所做的处理,对于数据实时同步还是会存在一定的风险,那么双机热备应该说是最好的选择了。
如果是同一个mysql服务端的两个数据库同步可考虑下触发器,如果是不同端口的两个mysql服务端跟在两台服务器同步配置上没有区别。
数据库最好不要做主从,不然性能会降低很多的。
可以采取其他的方法撒,比如分布式存储。可以考虑下memcachedb,实现持久存储。
表结构一致的话,可以考虑映射表去实现来的(shell脚本定时同步,触发器),不过shell脚本会将环境搞的复杂一点,维护也会相对麻烦映射表具体实现(在要同步的数据库下创建相同的表结构):
1
2
3
4
5
6
7
8
CREATE TABLE table_name
(
column_name column_type
key
)
ENGINE=MYISAM DEFAULT CHARSET=utf8
CONNECTION="mysql://user:pwd@ip_address/db_name/table_name";
北京泰福特电子为您解答:
安装ntp,yum install ntp
Date 发现格式为EDT,我们需要修改为CST格式
[root@test ~]# mv /etc/localtime /etc/localtimebak
[root@test ~]# ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
[root@test ~]# date
并用ntpdate 2089111250,同步网上的一台ntp服务器同步时间
vi/etc/ntpconf,修改配置文件,使能同步网上的ntp服务器
我们这里使用的是centos7不同于以往linux的操作,对于开机自启动的调整,命令有所不同。 chkconfig --list查看非系统内置服务的自启动状态
systemctl enable ntpdservice //开机自启动
ntpq –p
表示目前使用的ntp server的状态
Ntpstat,可以看到已经同步了
显示所有已启动的服务 systemctl list-units --type=service
希望能帮助您,望采纳···
0条评论