搜档网
当前位置:搜档网 › mysql数据库主主同步方案

mysql数据库主主同步方案

mysql数据库主主同步方案
mysql数据库主主同步方案

Mysql 数据库主主(master-master)同步方案

一、MySQL同步概述

1.MySQL数据的复制的基本介绍

目前MySQL数据库已经占去数据库市场上很大的份额,其一是由于MySQL数据的开源性和高性能,当然还有重要的一条就是免费~不过不知道还能免费多久,不容乐观的未来,但是我们还是要能熟练掌握MySQL数据的架构和安全备份等功能,毕竟现在它还算是开源界的老大吧!

MySQL数据库支持同步复制、单向、异步复制,在复制的过程中一个服务器充当主服务,而一个或多个服务器充当从服务器。主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环。这些日志可以记录发送到从服务器的更新。当一个从服务器连接主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置。从服务器接收从那时起发生的任何更新,然后封锁并等待主服务器通知新的更新。

请注意当你进行复制时,所有对复制中的表的更新必须在主服务器上进行。否则,你必须要小心,以避免用户对主服务器上的表进行的更新与对从服务器上的表所进行的更新之间的冲突。

单向复制有利于健壮性、速度和系统管理:

健壮性:主服务器/从服务器设置增加了健壮性。主服务器出现问题时,你可以切换到从服务器作为备份。

速度快:通过在主服务器和从服务器之间切分处理客户查询的负荷,可以得到更好的客户响应时间。SELECT查询可以发送到从服务器以降低主服务器的查询处理负荷。但修改数据的语句仍然应发送到主服务器,以便主服务器和从服务器保持同步。如果非更新查询为主,该负载均衡策略很有效,但一般是更新查询。

系统管理:使用复制的另一个好处是可以使用一个从服务器执行备份,而不会干扰主服务器。在备份过程中主服务器可以继续处理更新。

2.MySQL数据复制的原理

MySQL复制基于主服务器在二进制日志中跟踪所有对数据库的更改(更新、删除等等)。因此,要进行复制,必须在主服务器上启用二进制日志。

每个从服务器从主服务器接收主服务器已经记录到其二进制日志的保存的更新,以便从服务器可以对其数据拷贝执行相同的更新。

认识到二进制日志只是一个从启用二进制日志的固定时间点开始的记录非常重要。任何设置的从服务器需要主服务器上的在主服务器上启用二进制日志时的数据库拷贝。如果启动从服务器时,其数据库与主服务器上的启动二进制日志时的状态不相同,从服务器很可能失败。

将主服务器的数据拷贝到从服务器的一个途径是使用LOAD DATA FROM MASTER语句。请注意LOAD DATA FROM MASTER目前只在

所有表使用MyISAM存储引擎的主服务器上工作。并且,该语句将获得全局读锁定,因此当表正复制到从服务器上时,不可能在主服务器上进行更新。当我们执行表的无锁热备份时,则不再需要全局读锁定。

MySQL数据复制的原理图大致如下:

从上图我们可以看出MySQL数据库的复制需要启动三个线程来实现:其中1个在主服务器上,另两个在从服务器上。当发出START SLAVE时,从服务器创建一个I/O线程,以连接主服务器并让它发送记录在其二进制日志中的语句。主服务器创建一个线程将二进制日志中的内容发送到从服务器。该线程可以识别为主服务器上SHOW PROCESSLIST的输出中的Binlog Dump线程。从服务器I/O线程读取主服务器Binlog Dump线程发送的内容并将该数据拷贝到从服务器数

据目录中的本地文件中,即中继日志。第3个线程是SQL线程,是从服务器创建用于读取中继日志并执行日志中包含的更新。

在前面的描述中,每个从服务器有3个线程。有多个从服务器的主服务器创建为每个当前连接的从服务器创建一个线程;每个从服务器有自己的I/O和SQL线程。

这样读取和执行语句被分成两个独立的任务。如果语句执行较慢则语句读取任务没有慢下来。例如,如果从服务器有一段时间没有运行了,当从服务器启动时,其 I/O线程可以很快地从主服务器索取所有二进制日志内容,即使SQL线程远远滞后。如果从服务器在SQL线程执行完所有索取的语句前停止,I/O 线程至少已经索取了所有内容,以便语句的安全拷贝保存到本地从服务器的中继日志中,供从服务器下次启动时执行。这样允许清空主服务器上的二进制日志,因为不再需要等候从服务器来索取其内容。

3.主主同步机制

在主从同步的基础上继续完善,把从机当做主机,主机当做从机再按主从同步的方式配置一次就是主主同步。

二、实践

1.安装环境(测试环境)

主数据库(下文叫数据库A)

Ip:192.168.105.54

数据库:Mysql5.7 安装包mysql-installer-community-5.7.9.1.msi 系统:window server 2012 r2 standard

主数据库(下文叫数据库B)

Ip:192.168.105.244

数据库:Mysql5.7 安装包mysql-installer-community-5.7.9.1.msi 系统:window server 2012 r2 standard

2.mysql安装配置

AB主机下载mysql并安装配置,参考地址如下:

https://www.sodocs.net/doc/1317780435.html,/article/a17d528535dd808098c8f286.h tml

注意:安装完成之后修改安装文件下的my-default.ini文件为my.ini(此文件为mysql的配置文件)。

mysql环境配置

计算机右键点击‘属性’,系统界面选择‘高级系统设置’,系统属性界面选择‘环境变量配置’,系统属性界面下的系统变量,点击新建按钮

a.新建系统变量名称:MYSQL_HOME,值:C:\Program Files\MySQL\MySQL Server 5.7;

b.系统变量选择path环境变量,编辑path在其后添加%MYSQL_HOME%\bin;

c. 测试mysql

1)启动命令行模式,方式一:键盘win+r,输入cmd;方式二:开始按钮查找cmd,点击命令提示符;

2)启动mysql服务,方式一:命令行输入net start mysql;方式二:windows server下启动任务管理器,点击服务栏,找到mysql 服务手动开启。 Win7下计算机右键选择‘管理’,点击服务和应用程序,点击服务,找到mysql服务手动开启。

3)命令行,输入命令mysql –uroot –p;提示输入密码,进入mysql,输入quit;退出mysql。

4)关闭mysql服务,方式一:命令行输入net stop mysql;方式二:windows server下启动任务管理器,点击服务栏,找到mysql 服务手动关闭。 Win7下计算机右键选择‘管理’,点击服务和应用程序,点击服务,找到mysql服务手动关闭。

3.AB主机配置Mysql Server启动Binary Logging

在A的my.ini文件(C:\Program Files\MySQL\MySQL Server 5.7,默认情况一般在C:\ProgramData\MySql\MySql Server 5.6\my.ini)中添加如下配置信息

[mysqld]

log-bin="C:\ProgramData\MySQL\MySQLServer

5.7_01\log-bin\log-bin.log"

server-id=1

B的my.ini文件中添加如下配置信息

[mysqld]

log-bin="C:\ProgramData\MySQL\MySQLServer

5.7_01\log-bin\log-bin.log"

server-id=2

4.AB重启mysql

AB为Replication创建用户User,并赋予权限

进入mysql,输入命令

grant replication slave on *.* to repl@192.168.105.244 identified by 'repl' ;

repl分别为用户名和密码,根据自己需要修改。

@后为另外一台主机的ip地址。

5. 查看两台Mysql Server当前bin log的位置

(因为我们只需要同步两个server从当前状态之后的操作)

5.1分别在两台机器上执行如下命令:

FLUSH TABLES WITH READ LOCK;

SHOW MASTER STATUS;

A会得到如下结果

B得到的结果:

图中File表示当前的binary log文件名,Position是表示Binary log文件的当前位置,呆会replication应该是从这个位置开始。6.释放lock

在两台机器上执行如下命令:Unlock Tables.让两台MySql可以正常进行数据库操作。

7. 设置Slave Replication

7.1 启动A的slave replication。

7.1.1 执行命令stop slave

7.1.2 执行如下命令

Change master to master_host='192.168.105.244',master_user='repl',master_por t=3306,master_password='repl',master_log_file='log-bin.0000 08',master_log_pos=450;

7.1.3执行start slave

7.1.4查看slave的状态,执行Show Slave Status\G;

A显示如下:

Slave_io_running和slave_sql_running显示yes,表示正确。

7.2 启动B上的slave replication

7.2.1执行 stop slave

7.2.2执行如下命令

change master to master_host='192.168.105.54',master_user='repl',master_port =3306,master_password='repl',master_log_file='log-bin.00000 6',master_log_pos=451;

7.2.3执行start slave

7.2.4查看slave的状态,执行Show Slave Status\G;

B显示如下:

Slave_io_running和slave_sql_running显示yes,表示正确。

8. 测试replication效果

8.1在A上执行

mysql> create database repltest;

mysql> use repltest;

mysql> create table person(id int,name varchar(255)); mysql> insert into person values(1,’jensen’);

8.2在B上执行:

mysql> use repltest;

mysql> select * from person; 验证在A上插入的记录已经同步现B上

8.3在B上插入一条记录

ins ert into person values(2,’jack’);

8.4 A上显示

select * from person;

9. 自增冲突解决方式

对于自增ID列,两台Server同步时会因为值一样而造成冲突。解决方案:利用mysql的auto_increment_increment()和auto_increment_offset来限定每台server生成的ID限定在一定范围内(如:104生成奇数ID,103生成偶数ID)。

auto_increment_offset表示自增长字段从那个数开始,他的取值范围是1 .. 65535

auto_increment_increment表示自增长字段每次递增的量,其默认值是1,取值范围是1 .. 65535

在主主同步配置时,需要将两台服务器的auto_increment_increment 增长量都配置为2,而要把auto_increment_offset分别配置为1和2.

命令如下:

mysql> SET @@auto_increment_increment=2;

mysql> SET @@auto_increment_offset=1;

这样才可以避免两台服务器同时做更新时自增长字段的值之间发生冲突。

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

MySQL5.6.14下载、安装及配置安装图文教程

说明 5.6.14是一个稳定的发布版本,比较稳定的,安装包比5.5大很多,因为集成了32位和64位的,网上有人做过测试,性能比5,5强很多,于是果断选5.6,下面开始安装. 下载及安装MySQL 自MySQL版本升级到5.6以后,其安装及配置过程和原来版本发生了很大的变化,下面详细介绍5.6版本MySQL的下载、安装及配置过程。 s 图1.1 MySQL5.6 目前针对不同用户,MySQL提供了2个不同的版本: MySQL Community Server:社区版,该版本完全免费,但是官方不提供技术支持。 MySQL Enterprise Server:企业版,它能够高性价比的为企业提供数据仓库应用,支持ACID事物处理,提供完整的提交、回滚、崩溃恢复和行级锁定功能。但是该版本需付费使用,官方提供电话及文档等技术支持。 目前最新的MySQL版本为MySQL 5.6,可以在官方网站(https://www.sodocs.net/doc/1317780435.html,/downloads/)上面下载该软件。在下图1.2所示的MySQL官网上单击右下角的“MySQL Installer 5.6”超链接,然后按照提示一步步操作就可以将MySQL软件下载到本地计算机中了。注意这里我们选择的是数据库版本是“Windows (x86, 32-bit), MSI Installer”,如下图1.3所示。 图1.2 MySQL官方网站 图1.3 选择MySQL版本 MySQL下载完成后,找到下载到本地的文件,按照下面所示的步骤双击进行安装: 步骤1:双击MySQL安装程序(mysql-installer-community-5.6.10.1),会弹出如下图1.4所示的欢迎窗口。

关于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集群提供了可能性。

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.sodocs.net/doc/1317780435.html, create samp_db %mysqldump samp_db | mysql -h https://www.sodocs.net/doc/1317780435.html, samp_db #直接恢复到另一个服务器上使用--add-drop-table选项告诉服务器将DROP TABLE IF EXISTS语句写入备份文件,这样当我们以后用来恢复数据库时,如果表已经存在,你

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.sodocs.net/doc/1317780435.html, 虽然重新生成了https://www.sodocs.net/doc/1317780435.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.sodocs.net/doc/1317780435.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'

虚拟机CentOS下MySQL的安装与配置

CentOS下MySQL的安装与配置 一、mysql是关系型数据库,可以去官网下载rpm包安装,但是也可以直接用yum 二、卸载原有的mysql 输入命令:# rpm –qa | grep mysql //查看是否安装了mysql。 使用# rpm –e mysql //普通删除模式。 # rpm –e –nodeps mysql //强力删除模式,若上个命令删除时有提示依赖项,次命 令可以强力删除。 三、通过yum安装mysql # yum list | grep mysql //查看yum提供的mysql可以下载的版本 然后# yum install –y mysql-server mysql mysql-deve // 安装mysql、mysql-server、mysql-deve即客户端和服务器

安装完毕! 四、mysql的初始化 安装完mysql后,就会多处一个mysqld的服务,此就是数据库服务,可以输入# service mysqld start 命令启动mysqld服务。第一次启动会有很多提示信息,那是在进行初始化配置,下一次启动就不会有了,就像: 我们在使用mysql数据库的时候,都要先启动mysqld,我们可以将mysqld服务设置成开机启动,免得每次我们都要去启动一下。通过# chkconfig mysqld on 设置 Mysql安装完后只有一个root管理员账户,没有密码,我们可以为root帐号设置密码(这个为mysql的root账户,不是linux的root账户)# mysqladmin –u root password ‘new pw’然后通过mysql –u root –p 命令登陆我们的mysql 五、mysql的主要配置文件 1、/etc/https://www.sodocs.net/doc/1317780435.html,f这是mysql的主配置文件 我们可以查看一下一些信息

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.sodocs.net/doc/1317780435.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.sodocs.net/doc/1317780435.html,f /etc/https://www.sodocs.net/doc/1317780435.html,f [root@localhost mysql55]# vi /etc/https://www.sodocs.net/doc/1317780435.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

安装和配置MySQL服务器

安装和配置MySQL数据库服务器模块 Lab1:源码安装MySQL服务器 实验要求: 1)通过源码安装MySQL服务器,要求安装到/usr/local/mysql目录,配置文件目录为/etc。 2)设置开机时自动运行MySQL服务器。 3)关闭rpm软件安装MySQL服务器(如果存在)。 实验时间:60分钟 实验步骤: 1、进入/root/lamp_software目录,找到mysql-6.0.4-alpha.tar.gz,并解压源码文件。如下所示。 [root@localhost lamp_software]#tar-zxf mysql-6.0.4-alpha.tar.gz-C/usr/local [root@localhost lamp_software]#cd/usr/local/ [root@localhost local]#ls bin games lib mysql-6.0.4-alpha sbin src etc include libexec RealPlayer share 2、配置mysql源码安装文件,设置MySQL安装到/usr/local/mysql目录,配置文件目录为/etc/目录。 [root@localhost local]#cd mysql-6.0.4-alpha [root@localhost mysql-6.0.4-alpha]#./configure--prefix=/usr/local/mysql--sysconfdir=/etc/ 3、编译mysql源码 [root@localhost mysql-6.0.4-alpha]#make 显示以下信息,表示编译成功。 /bin/chmod+x bench-count-distinct-t /bin/mv bench-count-distinct-t bench-count-distinct make[1]:Leaving directory`/usr/local/mysql-6.0.4-alpha/sql-bench' Making all in win make[1]:Entering directory`/usr/local/mysql-6.0.4-alpha/win' make[1]:Nothing to be done for`all'. make[1]:Leaving directory`/usr/local/mysql-6.0.4-alpha/win' 4、安装mysql服务器 [root@localhost mysql-6.0.4-alpha]#make install 显示以下信息,表示编译成功。 make[2]:Leaving directory`/usr/local/mysql-6.0.4-alpha/sql-bench' make[1]:Leaving directory`/usr/local/mysql-6.0.4-alpha/sql-bench' Making install in win make[1]:Entering directory`/usr/local/mysql-6.0.4-alpha/win' make[2]:Entering directory`/usr/local/mysql-6.0.4-alpha/win'

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

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

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

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

mysql数据库主主同步方案

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

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

MySQL5.6版本安装及配置过程

编辑者:Vocabulary 下面详细介绍5.6版本MySQL的下载、安装及配置过程。 图1.1 MySQL5.6 目前针对不同用户,MySQL提供了2个不同的版本: MySQL Community Server:社区版,该版本完全免费,但是官方不提供技术支持。 MySQL Enterprise Server:企业版,它能够高性价比的为企业提供数据仓库应用,支持ACID事物处理,提供完整的提交、回滚、崩溃恢复和行级锁定功能。但是该版本需付费使用,官方提供电话及文档等技术支持。 目前最新的MySQL版本为MySQL 5.6,可以在官方网站https://www.sodocs.net/doc/1317780435.html,/downloads/下载该软件。下图1.2所示的MySQL官网上单击图片上的“Download”超链接或点击左边标记处,然后按照提示一步步操作就可以将MySQL软件下载到本地计算机中了。注意这里我们选择的是数据库版本是“Windows (x86, 32-bit), MSI Installer”,如下图1.3所示。 图1.2 MySQL官方网站

图1.3 选择MySQL版本 当点击download后会弹出如下页面: 注:下载MySql要求注册:<用户可注册或不注册>,如果不想注册就点击左下角标记处—点击后就弹出如图中下载提示->点击保存文件开始下载。 MySQL下载完成后,找到下载到本地的文件,按照下面所示的步骤双击进行安装:步骤1:双击MySQL安装程序(mysql-installer-community-5.6.10.1)会弹出如下图1.4所示: 图1.4 MySQL欢迎界面

步骤2:单击图1.4中的“Install MySQL Products”文字,会弹出的用户许可证协议窗口,如下图1.5所示: 图1.5 用户许可证协议窗口 步骤3:选中“I accept the license terms”的前面的选择框,然后点击【Next】按钮,会进入查找最新版本界面,效果如下图1.6所示: 图1.6 查找最新版本窗口 步骤4:单击【Execute】按钮,会进入安装类型设置界面,效果如下图1.7所示。 图1.7 安装类型设置窗口

MySQL详细安装图解

MySQL详细安装图解 我们以mysql-5.0.27-win32.exe为例,双击解压缩,运行“setup.exe”,出现如下界面 MySQL安装向导启动,按“Next”继续 选择安装类型,有“Typical(默认)”、“Complete(完全)”、“Custom(用户自定义)”三个选项,我们选择“Custom”,有更多的选项,也方便熟悉安装过程

在“Developer Components(开发者部分)”上左键单击,选择“This feature, and all subfeatures, will be installed on local hard drive.”,即“此部分,及下属子部分内容,全部安装在本地硬盘上”。在上面的“MySQL Server(MySQL服务器)”、“Client Programs(MySQL客户端程序)”、“Documentation(文档)”也如此操作,以保证安装所有文件。点选“Change...”,手动指定安装目录。 填上安装目录,我的是“F:\Server\MySQL\MySQL Server 5.0”,也建议不要放在与操作系统同一分区,这样可以防止系统备份还原的时候,数据被清空。按“OK”继续。

Back返回刚才的界面,按“Next”继续 确认一下先前的设置,如果有误,按“Back”返回重做。按“Install”开始安装。

正在安装中,请稍候,直到出现下面的界面 这里“Create a new free https://www.sodocs.net/doc/1317780435.html, account”是询问你是否要注册一个https://www.sodocs.net/doc/1317780435.html,的账号,或是“Login to https://www.sodocs.net/doc/1317780435.html,”使用已有的账号登陆https://www.sodocs.net/doc/1317780435.html,,一般不需要了,点选“Skip Sign-Up”,按“Next”略过此步骤。

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

数据库实时同步技术解决方案 一、前言 随着企业的不断发展,企业信息化的不断深入,企业内部存在着各种各样的异构软、硬件平台,形成了分布式异构数据源。当企业各应用系统间需要进行数据交流时,其效率及准确性、及时性必然受到影响。为了便于信息资源的统一管理及综合利用,保障各业务部门的业务需求及协调工作,常常涉及到相关数据库数据实时同步处理。基于数据库的各类应用系统层出不穷,可能涉及到包括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等,也可以是不同数据模型的数据库,如关系、模式、层次、网络、面向对象,函数型数据库共同组成一个异构数据库系统。 三、数据库同步技术

浅谈Oracle 数据库之间数据同步方案

随着信息技术的飞速发展,企业信息化建设的不断深入,使得企业业务系统数量不断增加。这时,各业务系统之间数据交互,各子业务系统与核心业务系统之间数据交互,诸如此类场景的应用需求不断出现。因此,IT部门应对此类需求的压力越来越大。比较突出的问题,主要有实时性与性能的冲突,数据交互方案的安全性与健壮性等。下面浅谈下Oracle数据库之间数据同步方案,不涉及方案的好坏选择,可供参考。 Oracle 提供的数据同步方案: 1,比较原始的,触发器/Job + DBLINK的方式,可同步和定时刷新。 2,物化视图刷新的方式,有增量刷新和完全刷新两种模式,定时刷新。 3,高级复制,分为多主复制和物化视图复制两种模式。其中多主复制能进行双向同步复制和异步复制,物化视图用于单向复制,定时刷新,与2类似。 4,流复制,可实时和非实时同步。 5,GoldenGate复制,Oracle新买的复制产品,后面应该会取代流复制。它不仅能提供Oracle数据库之间的数据复制支持,还支持在不同种数据库之间的数据同步,也可设置实时和非实时同步。 6,DataGurd,此技术主要用于灾备方案,不过在最新11gR2版本中加入了备库实时应用日志,同时能open 提供read only访问的功能。因此,可以作为读写分离,或者作为report数据库,降低系统负载的一个好的方案。 其中上面1,2,3,是采用Oracle数据库内部的机制来实现,而4,5,6是采用挖掘数据库日志的方式实现的。因此,后面3中方式在性能上会更好些。 第三方提供的数据同步方案: 主要根据实现机制分为两大类: 1,采用挖掘数据库日志的方式实现 市场上用的比较多的,如Quest SharePlex, DSG RealSync 。此类软件与Oracle 新收购的GoldenGate 工具类似。 2,采用相关软件在存储级进行复制 IBM,EMC等存储厂商可以实现,使用第三方存储管理软件,如Veritas Replication也可实现。此类方式应用场景与上面6类似。

MySql_5.5安装配置图解说明(亲身安装超详细)

MySql5.5安装详细说明打开MySql5.5安装文件开始: 点击Next 打上勾,再点击Next

点击Custom,说明如下: Typical(典型安装) Installs the most common program features.Recommended for most users. 意思是:安装最常用的程序功能。建议大多数用户使用。 Custom(自定义安装) Allows uers to choose which program features will be installed and where they will be installed.Recommended for advanced users. 意思是:允许用户选择安装的程序功能和安装的位置,建议高级用户使用。 Complete(完全安装) All program features will be installed.Requires the most disk space. 意思是:将安装所有的程序功能,需要最多的磁盘空间。

这里就要详细说明一下: 点一下Developer Components左边的+按钮,会看到带的图标,这代表这里的内容不会 被安装到本地硬盘上。带有图标的都是默认安装到本地硬盘上的。 Developer Components(开发者部分): 用左键单击向下的小箭头选择Entire feature will be installed on local hard drive。 意思是:即此部分,以及下属子部分内容全部安装在本地硬盘上。 MySQL Server(mysql服务器):照上面的做。 Client Programs(mysql客户端程序) :照上面的做。 Documentation(文档) :照上面的做。 Server data files(服务器数据文件):照上面的做。 Debug Symbols(调试符号):照上面的做。 这样操作,以保证安装所有文件,如果是图标的就不用去管它,操作完再点击Next。 点击Install

SqlServer数据库同步方案详解

SqlServer数据库同步是项目中常用到的环节,若一个项目中的数据同时存在于不同的数据库服务器中,而这些数据库需要被多个不同的网域调用时,配置SqlServer数据库同步是个比较好的解决方案。SqlServer数据库同步的配置比较烦锁,下面对其配置详细步骤进行介绍: 一、数据复制前提条件 1. 数据库故障还原模型必需为完全还原模型。 2. 所有被同步的数据表都必须要用主键。 3. 发布服务器、分发服务器和订阅服务器必须使用计算机名称来进行SQLSERVER服务器的注册。 4. SQLSERVER必需启动代理服务,且代理服务必需以本地计算机的帐号运行。 二、解决前提条件实施步骤 1. 将数据库故障还原模型调整为完全还原模型。具体步骤如下: 打开SQLSERVER企业管理器à选择对应的数据库à单击右键选择属性à选择”选项”à 故障还原模型选择完全还原模型。 2. 所有被同步的数据表都必须要用主键。(主要指事务复制)如果没有主键的数据表,增加一个字段名称为id,类型为int 型,标识为自增1的字段。 3. 发布服务器、分发服务器和订阅服务器必须使用计算机名称来进行SQLSERVER服务器的注册。 在企业管理器里面注册的服务器,如果需要用作发布服务器、分发服务器和订阅服务器,都必需以服务器名称进行注册。不得使用IP地址以及别名进行注册,比如LOCAL, “.”以及LOCALHOST等。

如果非同一网段或者远程服务器,需要将其对应关系加到本地系统网络配置文件中。文件的具体位置在%systemroot%\system32\drivers\etc\hosts 配置方式: 用记事本打开hosts文件,在文件的最下方添加IP地址和主机名的对应关系。如图: SQLSERVER必需启动代理服务,且代理服务必需以本地计算机的帐号运行。 启动SQLSERVER代理的方法:我的电脑à单击右键”管理”à服务à SQLSERVERAGENT 将其设为自动启动。如图:

如何设置MySQL同步(Replication)

MySQL 提供了数据库的同步功能,这对我们实现数据库的冗灾、备份、恢复、负载均衡等都是有极大帮助的。本文描述了常见的同步设置方法。 一、准备服务器 由于MySQL不同版本之间的(二进制日志)binlog格式可能会不一样,因此最好的搭配组合是Master的MySQL版本和Slave的版本相同或者更低,Master的版本肯定不能高于Slave版本。 本文中,我们假设主服务器(以下简称Master)和从服务器(以下简称Slave)的版本都是5.0.15,操作系统是Linux Ubuntu 5.0.x。 假设同步Master的主机名为:rep1,Slave主机名为:rep2,2个MySQL的basedir目录都是/usr/local/mysql,datadir都是:/usr/local/mysql/data。 二、设置同步服务器 1、设置同步Master 每个同步服务器都必须设定一个唯一的编号,否则同步就不能正常运行了。接下来开始修改https://www.sodocs.net/doc/1317780435.html,f,增加以下几行: server-id = 1 log-bin set-variable=binlog-ignore-db=mysql 然后在Master上增加一个账号专门用于同步,如下: mysql>GRANT REPLICATION SLAVE ON *.* TO rep@rep2 IDENTIFIED BY 'rep'; 如果想要在Slave上有权限执行"LOAD TABLE FROM MASTER"或"LOAD DATA FROM MASTER" 语句的话,必须授予全局的FILE 和SELECT 权限: mysql>GRANT FILE,SELECT,REPLICATION SLAVE ON *.* TO rep@rep2 IDENTIFIED BY 'rep';

相关主题