
另外事务复制对表结构要求比较严格,需要有主键。如果需要整库同步,可以考虑使用数据库镜像,这对表没有太多要求。
通过备份方式也可以实现,SQL Server本身也提供了日志传送功能来通过备份进行同步,但是这样数据延迟就更大了,取决于备份恢复的频率,可能并不符合楼主需要。
复制和数据库镜像这两项技术都不是一两句话能说清楚的,详细信息可以查看微软MSDN文档
http://msdn.microsoft.com/zh-cn/library/bb500346%28v=SQL.100%29.aspx
http://msdn.microsoft.com/zh-cn/library/bb934127%28v=SQL.100%29.aspx
1.安装CentOS7.0yum install ssh 安装SSH协议yum install rsync (rsync是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件)service sshd restart 启动服务任务
2.配置Master无密码登录所有Salve,在Master机器上生成密码对
3.查看/home/hadoop/下是否有".ssh"文件夹,且".ssh"文件下是否有两个刚生产的无密码密钥对。
4.接着在Master节点上做如下配置,把id_rsa.pub追加到授权的key里面去。
5.设置SSH配置用root用户登录服务器修改SSH配置文件"/etc/ssh/sshd_config"的下列内容。设置完之后记得重启SSH服务,才能使刚才设置有效。
6.退出root登录,使用hadoop普通用户验证成功同步另一台服务器的数据
这个要根据不同情况具体分析,有几种方案参考:
数据库A和数据库B是建立在两台独立的数据库服务器上,那么采用dblink方式是一种可行的方式,存在两个数据同步过程:
一、数据库A正常运行的时候需要将数据同步到备用库即数据库B;
二、数据库A不正常的时候启用数据库B,在数据库A恢复正常之前的数据更新都发生在数据库B,那么需要将数据库B的数据同步给数据库A。
第一种方式:前提是数据库A和数据库B本地网是24小时互通的同时对数据同步实时性有比较高的要求,那么可以建立DBLINK,在两个库都建触发器,不管当前在哪个库发生数据更新的时候实时同步数据到目标数据库;
第二种方式:如果数据同步的实时性要求不高,则可以通过定制存储过程的方式(给两个库的数据表加时间戳或者更新标志,)定时同步数据;
第三种方式:通过给两个数据库的数据表加更新标志字段,以第一种方式为主以满足实时性的要求,以第二种方式为辅弥补可能存在的触发器执行更新未成功的情况。
以上的方案都是从数据层面所做的处理,对于数据实时同步还是会存在一定的风险,那么双机热备应该说是最好的选择了。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)