当前位置:文档之家› 数据库同步的两种方式

数据库同步的两种方式

数据库同步的两种方式
数据库同步的两种方式

SQL Server 2008 数据库同步的两种方式(发布、订阅)

上篇中说了通过SQL JOB的方式对数据库的同步,这一节作为上一节的延续介绍通过发布订阅的方式实现数据库之间的同步操作。发布订阅份为两个步骤:1、发布。2、订阅。首先在数据源数据库服务器上对需要同步的数据进行发布,然后在目标数据库服务器上对上述发布进行订阅。发布可以发布一张表的部分数据,也可以对整张表进行发布。下面分别介绍发布、订阅的过程。

一、发布。发布需要用实际的服务器名称,不能使用服务器的IP地址进行。能发布的信息包括【表】、【存储过程】、【用户函数】如果使用IP会有错误,如下图:具体发布过程如下:

1、找到数据库服务器下的【复制】--【本地发布】,选择【新建发布】。如下图:

2、选择待发布的数据库。如下图:

3、选择发布类型。这里选择的默认类型【快照发布】。几种发布类型的区别,SQL SERVER都在下面给出了说明。如下图:

4、选择待发布的类容。如下图:

上图中右侧就是筛选的SQL语句。

5、设置快照代理。如下图:

更改同步频率如下图:

6、设置代理安全性。如下图:

7、填写发布名称

8、完成发布。如下图:

二、订阅。订阅是对数据库发布的快照进行同步,将发布的数据源数据同步到目标数据库。具体订阅过程如下;

1、找到数据库服务器下的【复制】--【本地订阅】,选择【新建订阅】。如下图:

2、选择订阅的发布。如下图:

3、选择分发代理的位置;如下图:

4、选择订阅服务器上的存放同步过来的数据的一个或者多个目标数据库。如下图:

若要添加多个订阅数据库,则点击【添加订阅服务器】。如下图:

5、设置分发代理的安全性。如下图:

6、设置同步计划。如下图:

7、完成订阅。如下图:

这样就完成了发布与订阅的整个流程。

这里,和上节一起就介绍完了SQL Server数据库同步的两种方式,希望对你有用。

数据库与数据库进行对接SQL同步不同数据库的表

//192.168.2.9中dbo.test_hr表中的數據拋入192.168.3.127中dbo.test insert into OA_TO_HR.FlowMaster.dbo.test(id,a,b,c,d) (select * from dbo.test_hr) //在192.168.2.9中刪除192.168.3.127中dbo.test表中的數據 delete from OA_TO_HR.FlowMaster.dbo.test //在192.168.2.9中查詢192.168.3.127中dbo.test表中的數據 select * from OA_TO_HR.FlowMaster.dbo.test //192.168.3.127中dbo.test表中的數據拋入192.168.2.9中dbo.test_hr insert into OA_HR.ESHR.dbo.test_hr(id,a,b,c,d) (select * from dbo.test) //在192.168.3.127中刪除192.168.2.9中dbo.test表中的數據 delete from OA_HR.ESHR.dbo.test_hr //在192.168.3.127中查詢192.168.2.9中dbo.test表中的數據 select * from OA_HR.ESHR.dbo.test_hr 1、建立數據庫鏈接 MSDTC 服務需開啟 組件服務中的安全配置頁中的網絡訪問勾選 2、新建作業 現方式為將2.9服務器中表i_test數據寫入到2.34 ivan_t表中 insert into srv_link.rldata.dbo.ivan_t(uid,uname) (select*from dbo.i_test) select*from srv_link.rldata.dbo.ivan_t delete from srv_link.rldata.dbo.ivan_t

MySQL数据双向同步解决方案

1.mysql数据同步实现原理 即读写操作在两台服务器上进行,每台服务器即主也是从。当其中的任何一台服务器收到操作请求时,其进行相应的数据变化,并把变化的数据复制到另一台服务器中。 2.配置服务器master 初始服务器 通过mysql工具连接服务器master后,新建两个数据库audit,idm。导入初始化数据库文件,完成数据库的初始化 给用户授权 从开始菜单中打开mysql5的命令行,输入正确的密码,进入mysql控制台命令行模式后,输入如下命令: #授权来自192.168.0.189的backup用户拥有对所有库的复制数据的权限,该用户的密码设为123456 GRANT REPLICATION SLAVE ON *.* TO 'backup'@'192.168.0.189' IDENTIFIED BY '123456'; #刷新权限设置 FLUSH PRIVILEGES ; 修改配置文件 修改主目录中的my.inf文件,在mysqld下面加入如下内容 server-id = 1 log-bin=mysql-bin binlog-do-db = audit binlog-do-db = idm binlog-ignore-db = information_schema binlog-ignore-db = mysql binlog-ignore-db = test master-host = 192.168.0.189 master-user = backup master-password = 123456 master-port = 3306

replicate-do-db = audit replicate-do-db = idm master-connect-retry = 60 3.配置服务器slave 初始服务器 通过mysql工具连接服务器ha002后,新建两个数据库audit,idm。导入初始化数据库文件,完成数据库的初始化 给用户授权 从开始菜单中打开mysql5的命令行,输入正确的密码,进入mysql控制台命令行模式后,输入如下命令: #授权来自192.168.0.188的backup用户拥有对所有库的复制数据的权限,该用户的密码设为123456 GRANT REPLICATION SLAVE ON *.* TO 'backup'@'192.168.0.188' IDENTIFIED BY '123456'; #刷新权限设置 FLUSH PRIVILEGES ; 修改配置文件 修改主目录中的my.inf文件,在mysqld下面加入如下内容 server-id = 2 master-host = 192.168.0.188 master-user = backup master-password = 123456 master-port = 3306 relicate-do-db = audit replicate-do-db = idm master-connect-retry = 60 log-bin=mysql-bin binlog-do-db = audit binlog-do-db = idm binlog-ignore-db = information_schema

关于XX业务系统数据同步方案简介

关于XX业务系统数据同步方案简介

修订记录

目录 1. 概述 (4) 2. 数据分析现状 (5) 3. 数据同步方案 (6) 3.1. 理论分析 (7) 3.1.1. 理论值分析 (7) 3.1.2. 必要条件 (9) 3.1.3. 差集计算 (9) 3.2. 数据处理方案 (11) 3.2.1. 历史数据处理 (11) 3.2.2. 过渡性数据处理 (12) 3.2.3. 常规数据处理 (12) 3.3. 数据时效性 (12) 4. 未知性说明 (14)

1.概述 XX业务系统技术支持人员大部分时间均在进行数据统计分析,且基本是在正式环境中进行数据分析处理,而此举在实际操作中除会给生产系统带来诸多压力之外,还可能因为操作人员新建大量临时表时操作失误而出现删表或者删数据的情况。 针对上述情况并结合可视化分析系统的现有使用情况,做本建设性思考方案,旨在针对实际问题提出理论上的建设性方案。

2. 数据分析现状 XX 业务系统数据分析一直因为数据时效性而无法很好的使用Spark 集群,且目前已建设的可视化分析环境因为历史数据存在被修改的可能性而导致用之甚少。且当前XX 业务系统集群可视化分析环境采用按月(月中)更新、人工拷贝而后转由集群导入的方式,如下图1所示。 备份库 集群库 正式库人工拷贝系统同步 图1 – XX 业务系统数据同步示意图 该方式在实际操作中非常消耗人力、物力,且集群数据利用率极低(XX 业务系统版集群可视化环境几乎没人使用)。

3.数据同步方案 近期,在处理HBase数据同步至HDFS方案时,构思如下数据更新方案,如图2所示: 近期数据 差集 全量数据 Override Append 图2 – HBase数据迁移理论方案示意图 同理,将HBase替换成XX业务系统生产数据库,则会得到下图3所示方案示意图: 近期数据 差集 全量数据 Override Append Oracle 图3– XX业务系统数据迁移理论方案示意图 该方案是采用蚂蚁搬家的思路,若在此方案思路使用至XX业务系统数据同步中将会使数据从一个月的更新周期调整为一天,从而使集群数据更接近实时数据,从而为XX业务系统日常统计使用Spark集群提供了可能性。

Oracle数据库同步技术

基于Oracle数据库的数据同步技术大体上可分为两类:Oracle自己提供的数据同步技术和第三方厂商提供的数据同步技术。Oracle自己的同步技术有DataGuard,Streams,Advanced Replication和今年 刚收购的一款叫做GoldenGate的数据同步软件。第三方厂商的数据同步技术有Quest公司的SharePlex 和DSG的RealSync。下面对这些技术逐一进行介绍。 一、DataGuard数据同步技术 DataGuard是Oracle数据库自带的数据同步功能,基本原理是将日志文件从原数据库传输到目标数据库,然后在目标数据库上应用(Apply)这些日志文件,从而使目标数据库与源数据库保持同步。DataGuard 提供了三种日志传输(Redo Transport)方式,分别是ARCH传输、LGWR同步传输和LGWR异步传输。在上述三种日志传输方式的基础上,提供了三种数据保护模式,即最大性能(Maximum Performance Mode)、最大保护(Maximum Protection Mode)和最大可用(Maximum Availability Mode),其中最大保护模式 和最大可用模式要求日志传输必须用LGWR同步传输方式,最大性能模式下可用任何一种日志传输方式。 最大性能模式:这种模式是默认的数据保护模式,在不影响源数据库性能的条件下提供尽可能高的 数据保护等级。在该种模式下,一旦日志数据写到源数据库的联机日志文件,事务即可提交,不必等待日 志写到目标数据库,如果网络带宽充足,该种模式可提供类似于最大可用模式的数据保护等级。 最大保护模式:在这种模式下,日志数据必须同时写到源数据库的联机日志文件和至少一个目标库 的备用日志文件(standby redo log),事务才能提交。这种模式可确保数据零丢失,但代价是源数据库的可用性,一旦日志数据不能写到至少一个目标库的备用日志文件(standby redo log),源数据库将会被关闭。这也是目前市场上唯一的一种可确保数据零丢失的数据同步解决方案。 最大可用模式:这种模式在不牺牲源数据库可用性的条件下提供了尽可能高的数据保护等级。与最 大保护模式一样,日志数据需同时写到源数据库的联机日志文件和至少一个目标库的备用日志文件(standby redo log),事务才能提交,与最大保护模式不同的是,如果日志数据不能写到至少一个目标库的备用日志文件(standby redo log),源数据库不会被关闭,而是运行在最大性能模式下,待故障解决并将延迟的日志成功应用在目标库上以后,源数据库将会自动回到最大可用模式下。 根据在目标库上日志应用(Log Apply)方式的不同,DataGuard可分为Physical Standby(Redo Apply)和Logical Standby(SQL Apply)两种。 Physical Standby数据库,在这种方式下,目标库通过介质恢复的方式保持与源数据库同步,这种方 式支持任何类型的数据对象和数据类型,一些对数据库物理结构的操作如数据文件的添加,删除等也可支持。如果需要,Physical Standby数据库可以只读方式打开,用于报表查询、数据校验等操作,待这些操 作完成后再将数据库置于日志应用模式下。 Logical Standby数据库,在这种方式下,目标库处于打开状态,通过LogMiner挖掘从源数据库传 输过来的日志,构造成SQL语句,然后在目标库上执行这些SQL,使之与源数据库保持同步。由于数据 库处于打开状态,因此可以在SQL Apply更新数据库的同时将原来在源数据库上执行的一些查询、报表等操作放到目标库上来执行,以减轻源数据库的压力,提高其性能。 DataGuard数据同步技术有以下优势: 1)Oracle数据库自身内置的功能,与每个Oracle新版本的新特性(如ASM)都完全兼容,且不 需要另外付费; 2)配置管理较简单,不需要熟悉其他第三方的软件产品; 3)Physical Standby数据库支持任何类型的数据对象和数据类型;

通过触发器实现数据库的即时同步

通过触发器实现数据库的即时同步 --即时同步两个表的实例: --测试环境:SQL2000,远程主机名:xz,用户名:sa,密码:无,数据库名:test --创建测试表,不能用标识列做主键,因为不能进行正常更新 --在本机上创建测试表,远程主机上也要做同样的建表操作,只是不写触发器 if exists (select * from dbo.sysobjects where id = object_id(N'[test]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [test] create table test(id int not null constraint PK_test primary key ,name varchar(10)) go --创建同步的触发器 create trigger t_test on test for insert,update,delete as set XACT_ABORT on --启动远程服务器的MSDTC服务 exec master..xp_cmdshell 'isql /S"xz" /U"sa" /P"" /q"exec master..xp_cmdshell ''net start msdtc'',no_output"',no_output --启动本机的MSDTC服务 exec master..xp_cmdshell 'net start msdtc',no_output --进行分布事务处理,如果表用标识列做主键,用下面的方法 BEGIN DISTRIBUTED TRANSACTION delete from openrowset('sqloledb','xz';'sa';'',test.dbo.test) where id in(select id from deleted) insert into openrowset('sqloledb','xz';'sa';'',test.dbo.test) select * from inserted commit tran go --插入数据测试 insert into test select 1,'aa' union all select 2,'bb' union all select 3,'c' union all select 4,'dd' union all select 5,'ab' union all select 6,'bc' union all select 7,'ddd' --删除数据测试 delete from test where id in(1,4,6)

MYSQL四种备份方法总结

MYSQL四种备份方法总结 Mysql数据库备份主要有4种方法: 1、mysqldump 2、直接拷贝(cp、tar,gzip,cpio) 3、mysqlhotcopy 4、同步复制 mysqldump生成能够移植到其它机器的文本文件,缺省地,文件内容包含创建正在倾倒的表的CREATE语句和包含表中行数据的INSERT语句。也就是说,mysqldump产生的输出可在以后用作mysql的输入来重建数据库。mysqldump比直接拷贝要慢些。 使用直接拷贝,如果正在备份的表正被读写就容易导致表损坏,而且不建议对isam表使用直接拷贝的方法来备份,因为ISAM表只能在相似的硬件结构的机器上拷贝。 1、mysqldump备份: 使用方法:mysqldump [OPTIONS] database [tables] 输出文件的开头看起来象这样: # MySQL Dump 6.0 # # Host: localhost Database: samp_db #--------------------------------------- # Server version 3.23.2-alpha-log # # Table structure for table 'absence' # CREATE TABLE absence( student_id int(10) unsigned DEFAULT '0' NOT NULL, date date DEFAULT '0000-00-00' NOT NULL, PRIMARY KEY (student_id,date) ); # # Dumping data for table 'absence' # INSERT INTO absence VALUES (3,'1999-09-03'); INSERT INTO absence VALUES (5,'1999-09-03'); INSERT INTO absence VALUES (10,'1999-09-08'); ...... 文件剩下的部分有更多的INSERT和CREATE TABLE语句组成。例: %mysqldump samp_db >/opt/mysqldatabak/samp_db.2006-5-15 %mysqldump samp_db | gzip >/usr/archives/mysql/samp_db.1999-10-02.gz #产生压缩备份 %mysqldump samp_db student score event absence >grapbook.sql #备份数据库的某些表 %mysqladmin -h https://www.doczj.com/doc/d910405625.html, create samp_db %mysqldump samp_db | mysql -h https://www.doczj.com/doc/d910405625.html, samp_db #直接恢复到另一个服务器上使用--add-drop-table选项告诉服务器将DROP TABLE IF EXISTS语句写入备份文件,这样当我们以后用来恢复数据库时,如果表已经存在,你

数据库同步

一个是远程SQLServer数据库,一个是本地SQLServer数据库 回答 验证码:换一张 登录并发表取消 回答 dhy40022008-11-18 10:15:22 下介绍实现复制的步骤。(以快照复制为例) 准备工作: 1.在发布服务器上,新建一个共享目录,做为发布的快照文件的存放目录,操作: 我的电脑--D:\ 新建一个目录,名为: PUB --右键这个新建的目录 --属性--共享 --选择"共享该文件夹"(另外还可以通过"权限"按纽来设置具体的用户权限 --确定 2.设置SQL代理(SQLSERVERAGENT)服务的启动用户 开始--程序--管理工具--服务 --右键SQLSERVERAGENT --属性--登陆--选择"此账户" --输入".\Administrator",或者选择其他系统管理员 --"密码"中输入该用户的密码 3.设置SQL Server身份验证模式,解决连接时的权限问题 企业管理器 --右键SQL实例--属性

--安全性--身份验证 --选择"SQL Server 和Windows" --确定 4.在发布服务器和订阅服务器上互相注册 企业管理器 --右键SQL Server组 --新建SQL Server注册... --下一步--可用的服务器中,输入你要注册的远程服务器名--添加 --下一步--连接使用,选择第二个"SQL Server身份验证" --下一步--输入用户名和密码 --下一步--选择SQL Server组,也可以创建一个新组 --下一步--完成 lixiaohui11520012008-11-20 10:29:07 假设你的远程SQLServer数据库和你的本地是局域网,不知道sqlServer里面有没有dblin k(oracle中有,oracle就是用DBLink实现数据库同步的)。 ai000052009-10-04 08:05:07 MSSQL数据同步利用数据库复制技术实现数据同步更新(来自网络,也是非常完美的教程) 复制的概念 复制是将一组数据从一个数据源拷贝到多个数据源的技术,是将一份数据发布到多个存储站点上的有效方式。使用复制技术,用户可以将一份数据发布到多台服务器上,从而使不同的服务器用户都可以在权限的许可的范围内共享这份数据。复制技术可以确保分布在不同地点的数据自动同步更新,从而保证数据的一致性。 SQL复制的基本元素包括 出版服务器、订阅服务器、分发服务器、出版物、文章 SQL复制的工作原理 SQLSERVER主要采用出版物、订阅的方式来处理复制。源数据所在的服务器是出版服务器,负责发表数据。出版服务器把要发表的数据的所有改变情况的拷贝复制到分发服务器,分发服务器包含有一个分发数据库,可接收数据的所有改变,并保存这些改变,再把这些改变分发给订阅服务器 SQLSERVER复制技术类型 SQLSERVER提供了三种复制技术,分别是: 1、快照复制(呆会我们就使用这个) 2、事务复制 3、合并复制

mysql数据库同步跳过临时错误

mysql数据库同步跳过临时错误 slave stop; set GLOBAL SQL_SLAVE_SKIP_COUNTER=1; slave start; 几个跟热备有关的mysql命令:(需要在mysql命令行界面或query ) stop slave #停止同步 start slave #开始同步,从日志终止的位置开始更新。 show slave status #查看同步状态 SET SQL_LOG_BIN=0|1 #主机端运行,需要super权限,用来开停日志,随意开停,会造成主机从机数据不一致,造成错误 SET GLOBAL SQL_SLAVE_SKIP_COUNTER=n # 客户端运行,用来跳过几个事件,只有当同步进程出现错误而停止的时候才可以执行。 RESET MASTER #主机端运行,清除所有的日志,这条命令就是原来的FLUSH MASTER RESET SLAVE #从机运行,清除日志同步位置标志,并重新生成https://www.doczj.com/doc/d910405625.html, 虽然重新生成了https://www.doczj.com/doc/d910405625.html,,但是并不起用,最好,将从机的mysql进程重启一下,LOAD TABLE tblname FROM MASTER #从机运行,从主机端重读指定的表的数据,每次只能读取一个,受timeout时间限制,需要调整timeout时间。执行这个命令需要同步账号有 reload 和super权限。以及对相应的库有select权限。如果表比较大,要增加net_read_timeout 和 net_write_timeout的值 LOAD DATA FROM MASTER #从机执行,从主机端重新读入所有的数据。执行这个命令需要同步账号有reload和super权限。以及对相应的库有select权限。如果表比较大,要增加net_read_timeout 和 net_write_timeout的值 CHANGE MASTER TO master_def_list #在线改变一些主机设置,多个用逗号间隔,比如CHANGE MASTER TO MASTER_HOST='https://www.doczj.com/doc/d910405625.html,', MASTER_USER='replication', MASTER_PASSWORD='bigs3cret' MASTER_POS_WAIT() #从机运行 SHOW MASTER STATUS #主机运行,看日志导出信息 SHOW SLAVE HOSTS #主机运行,看连入的从机的情况。 SHOW SLAVE STATUS (slave) SHOW MASTER LOGS (master) SHOW BINLOG EVENTS [ IN 'logname' ] [ FROM pos ] [ LIMIT [offset,] rows ] PURGE [MASTER] LOGS TO 'logname' ; PURGE [MASTER] LOGS BEFORE 'date'

基于同步的数据共享实现方案概论

基于同步的数据共享实现方案概论 摘要随着企业IT系统架构进入“互联网+”时代,企业应用软件也越来越多地采用分布式数据库进行数据存储。企业数据的共享是IT系统中重要的一个环节,如何实现数据分布式存储架构的数据共享就成为一个重要的课题了,特别是大批量的数据共享就显得尤为重要,本文就数据分布式存储后基于数据同步方案的数据共享技术进行方案设计。 关键词分布式数据库;数据共享;数据分发;分布式缓存 前言 在分布式系统架构中,数据分布式存储,提升了数据库的水平扩展能力,但是受限分布式数据库的特性,分布式数据库数据分散存储,缺乏传统Oracle数据库的DBLink链路数据共享机制、也难以像传统的集中数据一样进行复杂的关联,给数据共享带来了不少的困难。 1 需求及思路 分布式系统架构中,从web、服务到数据存储按照分布式系统架构设计方法,各层实现分布式能力。其中,数据分布式存储是整个架构的基础。数据分布式存储:按照高内聚的原则,对数据按照时间、功能、ID等维度进行垂直和水平切分,分片存储。 在分布式数据存储中,数据分散存储,为支持业务实现,需要考虑数据的快速发布,主要的数据分发场景:①配置类数据同步给周边系统,②全局配置类数据更新發布到分布式缓存。 借鉴互联网架构经验,数据的共享主要有两种方式:一是数据服务化,二是数据同步冗余方式,对于大批量的数据共享通常为提升应用性能,部分全局的数据在分布式数据节点中都保存,但是一旦数据库的数据发生变化,通知每个分布的服务更新内存数据,修改后需要同步给其他所有的数据库节点。 2 总体方案 数据同步主要包括获取变化数据和数据发布两个环节: (1)获取变化数据,需要能够通过数据变化事件等方式获取变化的数据,常用方案: ①通过时间戳+版本号识别;②通过应用同步写入数据变化事件记录;③通过数据库日志生成数据变更事件。

数据库实时同步技术解决方案

数据库实时同步技术解决方案 一、前言 随着企业的不断发展,企业信息化的不断深入,企业内部存在着各种各样的异构软、硬件平台,形成了分布式异构数据源。当企业各应用系统间需要进行数据交流时,其效率及准确性、及时性必然受到影响。为了便于信息资源的统一管理及综合利用,保障各业务部门的业务需求及协调工作,常常涉及到相关数据库数据实时同步处理。基于数据库的各类应用系统层出不穷,可能涉及到包括ACCESS、SQLSERVER、ORACLE、DB2、MYSQL等数据库。目前国内外几家大型的数据库厂商提出的异构数据库复制方案主要有:Oracle的透明网关技术,IBM的CCD表(一致变化数据表)方案,微软公司的出版者/订阅等方案。但由于上述系统致力于解决异构数据库间复杂的交互操作,过于大而全而且费用较高,并不符合一些中小企业的实际需求。 本文结合企业的实际应用实践经验,根据不同的应用类型,给出了相应的数据库实时同步应用的具体解决方案,主要包括: (1) SQLSERVER 到SQLSERVER 同步方案 (2) ORACLE 到SQLSERVER 同步方案 (3) ACCESS 到SQLSERVER/ORACLE 同步方案

二、异构数据库 异构数据库系统是相关的多个数据库系统的集合,可以实现数据的共享和透明访问,每个数据库系统在加入异构数据库系统之前本身就已经存在,拥有自己的DMBS。异构数据库的各个组成部分具有自身的自治性,实现数据共享的同时,每个数据库系统仍保有自己的应用特性、完整性控制和安全性控制。异构数据库的异构性主要体现在以下几个方面: 1、计算机体系结构的异构 各数据库可以分别运行在大型机、小型机、工作站、PC嵌入式系统中。 2、基础操作系统的异构 各个数据库系统的基础操作系统可以是Unix、Windows NT、Linux等。 3、DMBS本身的异构 可以是同为关系型数据库系统的Oracle、SQL Server等,也可以是不同数据模型的数据库,如关系、模式、层次、网络、面向对象,函数型数据库共同组成一个异构数据库系统。 三、数据库同步技术

SQL SERVER 2008数据库同步复制

SQL Server 2008数据库复制实现数据库同步备份 SQL Server 2008数据库复制是通过发布/订阅的机制进行多台服务器之间的数据同步,我们把它用于数据库的同步备份。这里的同步备份指的是备份服务器与主服务器进行实时数据同步,正常情况下只使用主数据库服务器,备份服务器只在主服务器出现故障时投入使用。它是一种优于文件备份的数据库备份解决方案。 在选择数据库同步备份解决方案时,我们评估了两种方式:SQL Server 2008的数据库镜像和SQL Server 2008数据库复制。数据库镜像的优点是系统能自动发现主服务器故障,并且自动切换至镜像服务器。但缺点是配置复杂,镜像数据库中的数据不可见(在SQL Server Management Studio中,只能看到镜像数据库处于镜像状态,无法进行任何数据库操作,最简单的查询也不行。想眼见为实,看看镜像数据库中的数据是否正确都不行。只有将镜像数据库切换主数据库才可见)。如果你要使用数据库镜像,强烈推荐killkill写的SQL Server 2005 镜像构建手册,我们就是按照这篇文章完成了数据库镜像部署测试。 最终,我们选择了SQL Server 2008数据库复制。 下面通过一个示例和大家一起学习一下如何部署SQL Server 2008数据库复制。 测试环境:Windows Server 2008 R2 + SQL Server 2008 R2(英文版),两台服务器,一台主数据库服务器CNBlogsDB1,一台备份数据库服务器CNBlogsDB2。 复制原理:我们采用的是基于快照的事务复制。主数据库服务器生成快照,备份库服务器读取并加载该快照,然后不停地从主数据库服务器复制事务日志。见下图:

Mysql数据库安装及生产环境下主从库同步配置

Mysql数据库安装及生产环境下主从库同步配置

目录 1安装M YSQL数据库...................................................................................................................................... 2生产环境下M Y SQL数据库主从同步配置................................................................................................. 2.1 主数据库配置 (5) 2.2 从数据库配置 (5) 3监控服务器............................................................................................................................................... 3.1 监控主数据库服务器 (6) 3.2 监控从数据库服务器 (6)

1安装Mysql数据库 安装环境: 系统:CentOS-6.6-x86_64 数据库:MySQL-server-5.5.42-1.el6.x86_64;MySQL-client-5.5.42-1.el6.x86_64 1.SSH方式登录到MySQL服务器 2.创建存放安装文件的目录 [root@localhost /]# mkdir -p /sw/mysql55 3.上传安装文件到上一步创建的目录 4.检查是否已安装过MySQL [root@localhost /]# rpm -qa | grep -i mysql MySQL-client-5.5.42-1.el6.x86_64 MySQL-server-5.5.42-1.el6.x86_64 5.如果已安装则移除,否则请跳过此步 [root@localhost /]# yum -y remove MySQL-server-5.5.42-1.el6.x86_64 [root@localhost /]# yum -y remove MySQL-client-5.5.42-1.el6.x86_64 删除老版本mysql的开发头文件和库 rm -fr /usr/lib/mysql rm -fr /usr/include/mysql rm -fr /var/lib/mysql rm -f /etc/https://www.doczj.com/doc/d910405625.html,f 6.安装MySQL [root@localhost /]# cd /sw/mysql55/ [root@localhost mysql55]# rpm -ivh MySQL-server-5.5.42-1.el6.x86_64.rpm Preparing... ########################################### [100%] 1:MySQL-client ########################################### [100%] [root@localhost mysql55]# rpm -ivh MySQL-client-5.5.42-1.el6.x86_64.rpm Preparing... ########################################### [100%] 1:MySQL-server ########################################### [100%] 7.配置MySQL [root@localhost mysql55]# cp /usr/share/mysql/https://www.doczj.com/doc/d910405625.html,f /etc/https://www.doczj.com/doc/d910405625.html,f [root@localhost mysql55]# vi /etc/https://www.doczj.com/doc/d910405625.html,f [client] #password = your_password port = 8819 socket = /var/lib/mysql/mysql.sock default-character-set=utf8 [mysqld] port = 8819 socket = /var/lib/mysql/mysql.sock lower_case_table_names=1

SQL数据库同步方法-详细操作手册(含图)

SQL数据库同步方法-详细操作手册(含图) 一、同步前提 注意:使用合并复制时sql2000不允许更改两边的数据库结构。即两边数据库结构要一样(表数,列数等一致),默认第一次同步源会覆盖目标。有些数据库本身的触发器里含有alter 语句,“这种语句和复制(无论哪种)有冲突”(微软)。要建议用户修改这种语句。 合并复制的效果:源和目标无论哪方修改以前的数据或增加新数据均会同步给对方。 二、新建用户 发布服务器,订阅服务器都创建一个同名的windows用户,并设置相同的密码,做为发布快照文件夹的有效访问用户 我的电脑--控制面板--管理工具--计算机管理--用户和组--右键用户--新建用户--建立一个隶属于administrator组的登陆windows的用户 三、新建共享 我的电脑--D:\ 新建一个目录,名为: PUB --右键PUB目录--属性--共享--选择"共享该文件夹"--通过"权限"按纽来设置具体的用户权限,保证第一步中创建的用户具有对该文件夹的所有权限,推荐为everyone 有所有权限--确定 测试:从各自两边“运行”输入“\\对方主机名\pub”,就可以匿名访问并新增或修改文件的话就说明配置成功;另外还要从各自两边数据库的“查询分析器”登陆对方数据库,使用远端机器名,可以登陆的话说明配置成功。 如果不能用\\对方主机名\pub访问,则在网卡属性中添加NETBIOS协议。 在cmd的dos下要求能ping远端机器名,返回的结果要能转换成远端的ip地址信息。 如不能ping通,则需要修改本地的localhost文件。

在\windows\systenm32\dirver\etc目录下hosts.msn文件(用记事本打开)中添加如下内容: 127.0.0.1 localhost 远端ip 远端机器名 四、设置代理服务 设置SQL代理(SQLSERVERAGENT)服务的启动用户(发布/订阅服务器均做此设置) 开始--程序--管理工具--服务 --右键SQLSERVERAGENT --属性--登陆--选择"此账户" --输入或者选择第一步中创建的windows登录用户名 --"密码"中输入该用户的密码 完成该步骤设置后要将SQLSERVERAGENT服务设置为自动启动。 五、互相注册 4.在发布服务器和订阅服务器上互相注册 企业管理器 --右键SQL Server组 --新建SQL Server注册... --下一步--可用的服务器中,输入你要注册的远程服务器名--添加 --下一步--连接使用,选择第二个"SQL Server身份验证" --下一步—SQL输入用户名和密码

数据中心同步平台建设方案

数据中心同步平台建设 方案 Hessen was revised in January 2021

数据中心同步平台建设方案 第一章概述 平台建设背景 当前政府、企业的信息化的状况是,各政府和企业一般都设计和建设了属于机构、业务本身的应用、流程以及数据的信息处理系统,独立、异构、涵盖各自业务内容的信息处理系统,系统设计建设的时期不同、业务模式不同,信息化建设缺乏有效的总体规划,重复建设;缺乏统一的设计标准,大多数系统都是由不同的厂商在不同的平台上,使用不同的语言进行开发的,信息交互共享困难,存在大量的信息孤岛和流程孤岛。为了有效整合分散异构的信息资源,消除“信息孤岛”现象,提高政府和企业的信息化水平。宇思公司要开发的数据共享交换平台,主要目的是有效整合分散异构系统的信息资源,消除“信息孤岛”现象,提高政府和企业的信息化水平,灵活实现不同系统间的信息交换、信息共享与业务协同,加强信息资源管理,开展数据和应用整合,进一步发挥信息资源和应用系统的效能,提升信息化建设对业务和管理的支撑作用。 要求新构建的数据共享交换平台要遵循标准的、面向服务架构(SOA)的方式,基于先进的企业服务总线ESB技术,遵循先进技术标准和规范,为跨地域、跨部门、跨平台不同应用系统、不同数据库之间的互连互通提供包含提取、转换、传输和加密等操作的数据交换服务,实现扩展性良好的“松耦合”结构的应用和数据集成;同时要求数据共享交换平台,能够通过分布式部署和集中式管理架构,可以有效解决各节点之间数据的及时、高效地上传下达,在安

全、方便、快捷、顺畅的进行信息交换的同时精准的保证数据的一致性和准确性,实现数据的一次 数据共享交换平台-设计方案 采集、多系统共享;要求数据交换平台节点服务器适配器的可视化配置功能,可以有效解决数据交换平台的“最后一公里”问题,快速实现不同机构、不同应用系统、不同数据库之间基于不同传输协议的数据交换与信息共享,为各种应用和决策支持提供良好的数据环境。要求数据共享交换平台能够把各种纷繁复杂的数据系统集成在一起完成特定业务,提供同构数据、异构数据之间的数据抽取、格式转换、内容过滤、内容转换、同异步传输、动态部署、可视化管理监控等方面功能,支持的数据包括各主流数据库(如Oracle、SQL Server、MySQL等)、地理空间数据(如卫星影像、矢量数据)、常规文件(word、excel、pdf)等各种格式,并可以根据用户需求定制开发特定业务服务。 应用场景 场景一:中国科学院电子学研究所的信息交换需求 实现各个数据中心间的数据库层面的数据共享交换,各中心之间是双向的、实时的数据交换,各数据节点的数据库是同构的数据库系统(即Oracle),数据的类型是基于数据库表格的规则数据,字段类型包含BLOB字段类型。目前各数据节点的数据结构(表)是相同的,主要是一表对一表的数据交换,数据抽取和过滤需求比较简单。目前数据共享交换是通过Oracle GoldenGate数据库同步工具来实现的。 用户具体需求包括:

数据库同步更新

数据库同步更新 一、两类方法实现数据库实时更新 1、简单表更新可通过创建触发器实现时时更新,如果数据量大的话,不建议此类。x 2、数据量大的话,可通过数据库复制技术实现。 二,方法概述: 复制是将数据或数据库对象从一个数据库复制和分发到另外一个数据库,并进行数据同步,从而使源数据库和目标数据库保持一致。使用复制,可以在局域网和广域网、拨号连接、无线连接和 Internet 上将数据分发到不同位置以及分发给远程或移动用户。 一组SQL SERVER2005复制有发布服务器、分发服务器、订阅服务器(图1 复制服务器之间的关系图)组成,他们之间的关系类似于书报行业的报社或出版社、邮局或书店、读者之间的关系。以报纸发行为例说明,发布服务器类似于报社,报社提供报刊的内容并印刷,是数据源;分发服务器相当于邮局,他将各报社的报刊送(分发)到订户手中;订阅服务器相当于订户,从邮局那里收到报刊。在实际的复制中,发布服务器是一种数据库实例,它通过复制向其他位置提供数据,分发服务器也是一种数据库实例,它起着存储区的作用,用于复制与一个或多个发布服务器相关联的特定数据。每个发布服务器都与分发服务器上的单个数据库(称作分发数据库)相关联。分发数据库存储复制状态数据和有关发布的元数据,并且在某些情况下为从发布服务器向订阅服务器移动的数据起着排队的作用。在很多情况下,一个数据库服务器实例充当发布服务器和分发服务器两个角色。这称为“本地分发服务器”。订阅服务器是接收复制数据的数据库实例。一个订阅服务器可以从多个发布服务器和发布接收 数据。 (图1) 复制有三种类:事务复制、快照复制、合并复制。

事务复制是将复制启用后的所有发布服务器上发布的内容在修改时传给订阅服务器,数据更改将按照其在发布服务器上发生的顺序和事务边界,应用于订阅服务器,在发布内部可以保证事务的一致性。快照复制将数据以特定时刻的瞬时状态分发,而不监视对数据的更新。发生同步时,将生成完整的快照并将其发送到订阅服务器。合并复制通常是从发布数据库对象和数据的快照开始,并且用触发器跟踪在发布服务器和订阅服务器上所做的后续数据更改和架构修改。订阅服务器在连接到网络时将与发布服务器进行同步,并交换自上次同步以来发布服务器和订阅服务器之间发生更改的所有行。 1、复制实例 这里以配置一个事务复制来说明复制配置过程。 试验在同一台机器的二个实例间进行,实例名分别是SERVER01、SERVER02 。将SERVER01配置发布服务器和分发服务器(也就是前面提到的“本地分发服务器”),SERVER02配置为 订阅服务器。在本例中将SERVER01中一个DBCoper库中person表作为发布的数据,在发布前请确保person表有主键、SQL SERVER 代理自动启动、发布数据库是日志是完整模式。第一步:完全备份SERVER01 DBCopy数据库,在SERVER02上恢复DBCopy数据库(复制前的同步,使用发布的源和目标数据一致) 第二步:在SERVER01上设置发布和分发A 在SERVER01的复制节点—>本地发布右键选择新建订阅(图2) ()(图2) B B 在新建发布向导中首先要求选择分发服务器,本例选择本机作为分发服务器,选择默认值。(图3)

mysql数据库主主同步方案

Mysql 数据库主主(master-master)同步方案 一、MySQL同步概述 1.MySQL数据的复制的基本介绍 目前MySQL数据库已经占去数据库市场上很大的份额,其一是由于MySQL数据的开源性和高性能,当然还有重要的一条就是免费~不过不知道还能免费多久,不容乐观的未来,但是我们还是要能熟练掌握MySQL数据的架构和安全备份等功能,毕竟现在它还算是开源界的老大吧! MySQL数据库支持同步复制、单向、异步复制,在复制的过程中一个服务器充当主服务,而一个或多个服务器充当从服务器。主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环。这些日志可以记录发送到从服务器的更新。当一个从服务器连接主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置。从服务器接收从那时起发生的任何更新,然后封锁并等待主服务器通知新的更新。 请注意当你进行复制时,所有对复制中的表的更新必须在主服务器上进行。否则,你必须要小心,以避免用户对主服务器上的表进行的更新与对从服务器上的表所进行的更新之间的冲突。 单向复制有利于健壮性、速度和系统管理: 健壮性:主服务器/从服务器设置增加了健壮性。主服务器出现问题时,你可以切换到从服务器作为备份。

速度快:通过在主服务器和从服务器之间切分处理客户查询的负荷,可以得到更好的客户响应时间。SELECT查询可以发送到从服务器以降低主服务器的查询处理负荷。但修改数据的语句仍然应发送到主服务器,以便主服务器和从服务器保持同步。如果非更新查询为主,该负载均衡策略很有效,但一般是更新查询。 系统管理:使用复制的另一个好处是可以使用一个从服务器执行备份,而不会干扰主服务器。在备份过程中主服务器可以继续处理更新。 2.MySQL数据复制的原理 MySQL复制基于主服务器在二进制日志中跟踪所有对数据库的更改(更新、删除等等)。因此,要进行复制,必须在主服务器上启用二进制日志。 每个从服务器从主服务器接收主服务器已经记录到其二进制日志的保存的更新,以便从服务器可以对其数据拷贝执行相同的更新。 认识到二进制日志只是一个从启用二进制日志的固定时间点开始的记录非常重要。任何设置的从服务器需要主服务器上的在主服务器上启用二进制日志时的数据库拷贝。如果启动从服务器时,其数据库与主服务器上的启动二进制日志时的状态不相同,从服务器很可能失败。 将主服务器的数据拷贝到从服务器的一个途径是使用LOAD DATA FROM MASTER语句。请注意LOAD DATA FROM MASTER目前只在

相关主题
文本预览
相关文档 最新文档