首  页 | 资讯中心 | 网络学院 | 天新汽车 | 天新手机 | 天新游戏 | 软件开发 | 考试认证
品 牌 机 | 笔 记 本 | 服 务 器 | 天新数码 - DC - DV - MP3 - MP4 - GPS - TV | 数字家庭
硬件 DIY - 主板 - CPU - 内 存 - 硬 盘 - 显示器 - 显卡 - 光驱 - 机箱 - 键鼠 - 网络设备
办公设备 | 打 印 机 | 扫 描 仪 | 投 影 仪 | 一 体 机 | 传 真 机 | 路 由 器 | 交 换 机
软件下载 | 驱动下载 | 游戏下载 | 源码下载 | 教程下载 | 站长在线 | 产品中心 | 报价中心
开发首页 | 开发语言 | .Net开发 | Java开发 | Web开发 | 数据库开发 | 移动开发 | 游戏开发 | 企业开发 | 操作系统 | 软件工程
VB VC Delphi PB BCB C++ - ASP.net C# VB.net - J2EE J2SE J2ME EJB - ASP PHP JSP CGI - MSSQL Oracle DB2 MySQL - CodingLife
  数据库开发首页 | 数据库基础 | SQL Server | Oracle | IBM DB2 | Sybase | MySQL/Postgrsql | Access | 数据库问题
  您现在的位置:天新网 > 软件开发 > 数据库开发 > MySQL/Postgrsql
详细讲解MySQL数据库双机热备的配置方法
http://dev.21tx.com 2008年05月14日 赛迪网 Andy

每日文章精萃
.Net:语音合成与识别技术在C#中的应用 Java:Hibernate二级缓存攻略
ASP:监测你的站点使用多少session和appli PHP:PHP 编码规范(22)
JSP:JSP语法-Taglib指令 CGI:CGI教程(10)CGI 规范之三
VB:窗体迁移大法 VC:一步一步学习STL标准模板库

  MySQL数据库双机热备的配置方法:

  ◆1.MySQL数据库没有增量备份的机制,当数据量太大的时候备份是一个很大的问题。还好MySQL数据库提供了一种主从备份的机制,其实就是把主数据库的所有的数据同时写到备份数据库中。实现MySQL数据库的热备份。

  ◆2.要想实现双机的热备首先要了解主从数据库服务器的版本的需求。要实现热备MySQL的版本都要高于3.2,还有一个基本的原则就是作为从数据库的数据库版本可以高于主服务器数据库的版本,但是不可以低于主服务器的数据库版本。

  ◆3.设置主数据库服务器:

  ·a.首先查看主服务器的版本是否是支持热备的版本。然后查看my.cnf(类Unix)或者my.ini(Windows)中mysqld配置块的配置有没有log-bin(记录数据库更改日志),因为MySQL的复制机制是基于日志的复制机制,所以主服务器一定要支持更改日志才行。然后设置要写入日志的数据库或者不要写入日志的数据库。这样只有您感兴趣的数据库的更改才写入到数据库的日志中。

  server-id=1 //数据库的id这个应该默认是1就不用改动

  log-bin=log_name //日志文件的名称,这里可以制定日志到别的目录 如果没有设置则默认主机名的一个日志名称

  binlog-do-db=db_name //记录日志的数据库

  binlog-ignore-db=db_name //不记录日志的数据库

  以上的如果有多个数据库用","分割开

  然后设置同步数据库的用户账号

  mysql> GRANT REPLICATION SLAVE ON *.*

  -> TO 'repl'@'%.mydomain.com' IDENTIFIED BY 'slavepass';

  4.0.2以前的版本, 因为不支持REPLICATION 要使用下面的语句来实现这个功能

  mysql> GRANT FILE ON *.*

  -> TO 'repl'@'%.mydomain.com' IDENTIFIED BY 'slavepass';

  设置好主服务器的配置文件后重新启动数据库

  ·b.锁定现有的数据库并备份现在的数据

  锁定数据库

  mysql> FLUSH TABLES WITH READ LOCK;

  备份数据库有两种办法一种是直接进入到MySQL的data目录然后打包你需要备份数据库的文件夹,第二种是使用mysqldump的方式来备份数据库但是要加上"--master-data " 这个参数,建议使用第一种方法来备份数据库

  ·c.查看主服务器的状态

  mysql> show master status\G;

  +---------------+----------+--------------+------------------+

  | File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

  +---------------+----------+--------------+------------------+

  | mysql-bin.003 | 73 | test | manual,mysql |

  +---------------+----------+--------------+------------------+

  记录File 和 Position 项目的值,因为以后要用。

  ·d.然后把数据库的锁定打开

  mysql> UNLOCK TABLES;

  ◆4.设置从服务器

  a.首先设置数据库的配置文件

  server-id=n //设置数据库id默认主服务器是1可以随便设置但是如果有多台从服务器则不能重复。

  master-host=db-master.mycompany.com //主服务器的IP地址或者域名

  master-port=3306 //主数据库的端口号

  master-user=pertinax //同步数据库的用户

  master-password=freitag //同步数据库的密码

  master-connect-retry=60 //如果从服务器发现主服务器断掉,重新连接的时间差

  report-host=db-slave.mycompany.com //报告错误的服务器

  b.把从主数据库服务器备份出来的数据库导入到从服务器中

  c.然后启动从数据库服务器,如果启动的时候没有加上"--skip-slave-start"这个参数则进入MySQL中

  mysql> slave stop; //停止slave的服务

  d.设置主服务器的各种参数

  mysql> CHANGE MASTER TO

  -> MASTER_HOST='master_host_name', //主服务器的IP地址

  -> MASTER_USER='replication_user_name', //同步数据库的用户

  -> MASTER_PASSWORD='replication_password', //同步数据库的密码

  -> MASTER_LOG_FILE='recorded_log_file_name', //主服务器二进制日志的文件名(前面要求记住的参数)

  -> MASTER_LOG_POS=recorded_log_position; //日志文件的开始位置(前面要求记住的参数)

  e.启动同步数据库的线程

  mysql> slave start;

  查看数据库的同步情况吧。成功同步!

  查看主从服务器的状态

  mysql> SHOW PROCESSLIST\G //可以查看mysql的进程看看是否有监听的进程

  如果日志太大清除日志的步骤如下:

  1.锁定主数据库

  mysql> FLUSH TABLES WITH READ LOCK;

  2.停掉从数据库的slave

  mysql> slave stop;

  3.查看主数据库的日志文件名和日志文件的position

  show master status;

  +---------------+----------+--------------+------------------+

  | File | Position | Binlog_do_db | Binlog_ignore_db |

  +---------------+----------+--------------+------------------+

  | louis-bin.001 | 79 | | mysql |

  +---------------+----------+--------------+------------------+

  4.解开主数据库的锁

  mysql> unlock tables;

  5.更新从数据库中主数据库的信息

  mysql> CHANGE MASTER TO

  -> MASTER_HOST='master_host_name', //主服务器的IP地址

  -> MASTER_USER='replication_user_name', //同步数据库的用户

  -> MASTER_PASSWORD='replication_password', //同步数据库的密码

  -> MASTER_LOG_FILE='recorded_log_file_name', //主服务器二进制日志的文件名(前面要求记住的参数)

  -> MASTER_LOG_POS=recorded_log_position; //日志文件的开始位置(前面要求记住的参数)

  6.启动从数据库的slave

  mysql> slave start;

  

上一篇: 讲解查看MySQL数据库错误码的三个方法
下一篇: 教你快速掌握MySQL数据库的双向加密方式

编辑推荐
相关内容
·MySQL Proxy─官方MySQL连接池和代理工具
·快速掌握 MySQL数据库中触发器的应用
·数据从MySQL迁移到 Oracle的注意事项
·保护MySQL数据库中重要数据全攻略
·细化解析:带你轻松接触 校对效果的示例
·教你轻松了解MySQL数据库中的结果字符串
·教你轻松了解MySQL数据库中的CONVERT()
·解析:带你轻松的接触用于元数据的 UTF8
·MySQL数据库管理员迅速回答常见问题汇总
·MySQL管理员帮你了解CREATE和REVOKE语句
·MySQL数据库中如何解决分组统计的问题
·MyISAM引擎和Heap引擎执行速度的性能测试
·MyISAM引擎与InnoDB引擎性能的简单测试
·解析:校对确定 较为复杂的一些特殊情况
·解析:轻松掌握 字符串文字字符集和校对
·让MySQL数据库自动恢复的具体操作
·MySQL优化简明指南
·学习MySQL常用操作命令
·用MySQL创建数据库和数据库表
·MySQL数据库技术(27)
最近更新
人气最热
·讲解查看MySQL数据库错误码的三个方法
·教你快速掌握MySQL数据库的双向加密方式
·实例讲解MySQL数据库密码的恢复与重设
·MySQL编码与建表时编码不一样的解决方法
·MySQL数据库常见的出错代码及出错信息
·使用实例管理器轻松管理多个MySQL实例
·带你轻松接触MySQL数据库的异常处理
·由浅入深讲解MySQL数据库索引的选择性
·循序渐进讲解MySQL数据库的性能调整
·MySQL性能调整之my.cnf文件的配置方法
·Mysql入门系列:在UNIX上安装MySQL
·Mysql入门系列:MYSQL创建、删除、索引和更
·Mysql入门系列:MySQL教程(1)
·MySQL数据库的用户账号管理基础知识 (1)
·MySQL 5.0 新特性教程 存储过程:第二讲
·在MySQL数据库中使用C执行SQL语句 (1)
·推荐:怎样在tomcat5中配置mysql数据源
·Mysql入门系列:MySQL服务器的启动和关闭
·MySQL Cluster(MySQL 集群) 初试
·MySQL 5.0 新特性--存储过程

 
·[硬件]网络扩展:24口千兆智能交换机选购
·[数码]爆料!长虹ZARVA 以拇指尺寸打造酷品MP3
·[汽车]三菱帕杰罗V77价格可优惠万元 现价42.8
·[开发]ASP实现结构化列举并查看某路径下所有
·[资讯]掮客自曝中关村卖场黑幕 笔记本利润二
·[游戏]天堂2:谈谈CK的方方面面
·[本本]本本每天推荐:口袋里的笔电 索尼TX46C
·[办公]多实用!12大品牌打印机驱动下载大全(
·[手机]适用于W900等手机 索爱原装电池到
·[考试]年薪20万"招聘属狗"人才惹争议
·[学院]技巧:实战排除两台打印机不能同时工作
·[娱乐]sheep
 

关于我们 | 联系我们 | 广告服务 | 工作机会 | 版权声明 | 欢迎投稿 | 网站地图
Copyright © 2000-2008 , www.21tx.com , All Rights Reserved .
© 晨新科技 版权所有 Created by TXSite.net