MySQL双机热备份实施方案_第1页
MySQL双机热备份实施方案_第2页
MySQL双机热备份实施方案_第3页
MySQL双机热备份实施方案_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、mysql 双机热备份实施方案1、mysql 数据库没有增量备份的机制,当数据量太大的时候备份是一个很大的问题。还好 mysql 数据库提供了一种主从备份的机制,其实就是把主数据库的所有的数据同时写到备份数据库中。实现mysql 数据库的热备份。2、要想实现双机的热备首先要了解主从数据库服务器的版本的需求。要实现热备 mysql 的版本都要高于 3.2 ,还有一个基本的原则就是作为从数据库的数据库版本可以高于主服务器数据库的版本,但是不可以低于主服务器的数据库版本。 mysql的双机热备份是基于mysql 内部复制功能,建立在两台或者多台以上的服务器之间, 通过它们之间的主从关系, 是插入主数

2、据库的数据同时也插入到从数据库上, 这实现了动态备份当前数据库的功能。下面细说一下主从热备份的步骤:假设主服务器 a(master) 、从服务器为 b(slave) a:04 b:69 1. 主服务器授权授权副服务器可以连接主服务器并可以进行更新。这是在主服务器上进行的,创建一个 username和 password 供副服务器访问时使用。 在 mysql 命令行下输入 mysql grant replication slave on *.* to backup 69 identified by 123456;这里创建了一个帐号

3、backup 用于 slave 访问 master 来更新 slave 数据库。2. 数据复制将 master 上已有的数据复制到slave 上, 以便主从数据库建立的时候两个数据库的数据保持一致。在 master 上导出数据 mysql flush tables with read lock; d:developmysqlbin mysqldump u root -p cartrader d:cartrader.sql mysql unlock tables 在 slave 上导入数据 mysqluse cartrader mysqlsource d:cartrader.sql 另外也可以使

4、用 load data from master语句将主服务器的数据传输到副服务器,但使用上有些限制。注意:在执行数据复制的过程中,要确保不能对主服务器执行更新操作。不推荐使用!3. 配置主服务器修改 master 上 mysql 的根目录下的 my.ini配置文件,在选项配置文件中赋予主服务器一个 server-id,该 id 必须是 1 到 223-1 范围内的唯一值。主服务器和副服务器的 server-id不能相同。另外,还需要配置主服务器, 使之启用二进制日志,即在选项配置文件中添加log-bin启动选项。 mysqld server-id=1 #唯一值,并不能与副服务器相同 log-b

5、in = bin_log #日志文件以 binary_log为前缀 , 如果不给 log-bin赋值,日志文件将以 #master-server-hostname为前缀 binlog-ignore-db= mysql,test,information_schema #日志文件跳过的数据库(可选属性 ) binlog-do-db= cartrader #日志文件操作的数据库 ( 可选属性,默认所有数据库的相关操作都写入二进制日志文件) 注意:如果主服务器的二进制日志已经启用,关闭并重新启动之前应该对以前的二进制日志进行备份。重新启动后,应使用reset master语句清空以前的日志。原因:ma

6、ster 上对数据库 cartrader的一切操作都记录在日志文件中,然后会把日志发给 slave , slave 接收到 master 传来的日志文件之后就会执行相应的操作,使 slave 中的数据库做和 master 数据库相同的操作。所以为了保持数据的一致性,必须保证日志文件没有脏数据。4. 重启 master 配置好以上选项后,重启mysql 服务,新选项将生效。现在,所有对数据库中信息的更新操作将被写进日志中。5. 配置 slave 在副服务器上的 mysql 选项配置文件中添加以下参数。 mysqld server-id=2 #唯一并与主服务器上的server-id不同。 mast

7、er-host= 04 #主服务器的主机名或者ip 地址 master-port=3306 master-user=root master-password=123456 # 复制操作要针对的数据库 ( 可选,默认为全部 ) replicate-do-db=cartrader # 如果主副服务器间连接经常失败,需增加master-retry-count和master-connect-retry #master-retry-count #连接重试的次数 #master-connect-retry #连接失败后等待的秒数 master-retry-count = 999 ma

8、ster-connect-retry = 60 6. 重启 slave 副服务器上 mysql 服务重启后,还在数据目录中创建一个文件,其中包含所有有关复制过程的信息( 连接主服务器的相关信息及与主服务器交换数据的相关信息 )。在初次启动以后,副服务器将检查这个文件,以得到相关信息。如果想修改复制选项, 删除 并重启 mysql 服务,在启动过程中使用选项配置文件中的新选项进行重新创建了文件。将主服务器上备份好的数据库脚本文件(cartrader.sql)导入到副服务器数据库中,以便保证主 - 副服务器上进

9、行复制操作的起点一样。7. 查看 master mysqlshow master status #查看 master 的状态与设置的是否一致(在master 上)8查看 slave 一般重启了 slave 之后,自动就会开启复制功能, 可以通过下面的语句查看 mysqlshow slave status #在 slave 上如果显示 waiting for master to send event 的话就表示已经启动了,反之就运行 mysqlstart slave #启动 slave 在 show slave status的命令输出后,应该包含slave_io_running 对应的值为 ye

10、s ,slave_sql_running对应的值为 yes ,如下图所示,只有这样才保证主从机能正常备份。 mysqlstop slave #暂时停止主从热备份注: 以上的配置方式只能实现a-b, 即数据由 a(master) 转移到 b(slave) ,不能由 b转移到 a,这样的话对 b做的任何操作就不会被同步到数据库a中。当然也可以通过把 a设置成 slave 和 master,把 b设置成 slave 和 master 从而实现对 a或者 b的任何改动都会影响到另外一方。配置同上,在此不在论述。= 1. 如果 binlog 已经产生,可以通过 sql 命令行清除:/* * 要清理日志,

11、需按照以下步骤: * 1 在每个从属服务器上,使用show slave status来检查它正在读取哪个日志。 * 2 使用 show master logs获得主服务器上的一系列日志。 * 3 在所有的从属服务器中判定最早的日志。这个是目标日志。如果所有的从属服务器是更新的,这是清单上的最后一个日志。 * 4 制作您将要删除的所有日志的备份。 (这个步骤是自选的, 但是建议采用。) * 5 清理所有的日志,但是不包括目标日志。 */ # 必须拥有 reload 权限, 此 命令将删除列于索引文件中的所有binlog ,把binlog 索引文件重新设置为空,并创建一个新的 binlog (在以前版本中,被称为 flush master)reset master; #清除指定的 binlog purge master logs to mysql-bin.010; # 清除指定日期之前

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论