前言:
镜像机制是一种能够让运行在不同计算机上的两个或更多个MySQL服务器保持同步变化的机制。目前MySQL只支持“主-从”镜像关系。即只有一台主控制系统(可读写),所有的数据修改操作都必须在这台MySQL服务器上进行;有一台或多台从属系统(只读),它们有着与主控系统完全一样的数据,主控系统上的数据变化在经过一个短暂的延迟后也将会发生在它们身上。
“主-从”镜像关系中的数据同步是通过主控系统的二进制日志文件实现的;主控系统把自己执行过的SQL命令记载到自己的二进制日志文件里,从属系统则通过从主控系统的二进制日志文件读出SQL命令,并加以执行的办法来同步它们自己的数据库数据。“主-从”镜像机制不要求主控与从属系统都必须使用同一种操作系统。
MySQL复制功能在MySQL5.0以上版本比较稳定、而且性能也比较好。从其他用户测试与MySQL AB公司介绍可以获知,本人曾恶意地使用Update语句修改了一张表的所有数据(数据量:17万多条,主从机器都不在同一网段,主机-外网,从机为虚拟机(内网)),几乎没有感觉到时延。
另外,若企业使用MySQL复制特性,主要是出于安全性与速度方面的考虑,若读操作是导致数据库系统变慢的主要原因,建议大家还是先进行SQL优化与服务器配置优化,或增加内存与CPU。至于安全性方面,大家关注的可能是担心硬盘损坏等造成数据丢失,这种情况可以考虑使用RAID系统进行冗余存储,即硬盘数据建立镜像。
建议大家不要首先就考虑采用MySQL的镜像机制,投入的资金与取得的实际效果并不是最优的(引用大师的话:Michael Kofler)。
那什么情况下可以考虑采用镜像机制?我个人认为至少是这几点的结合体(因为我们必须为老板省钱且做好事情,才可能为公司创造更多价值,才可能发更多奖金,嘿嘿!)。
1> 主要是读操作影响数据库服务器性能,并不是SQL语句性能差,也不是程序性能差与服务器配置等的问题,确实访问量太多(主要指网站类型的,发财了!),使用MySQL群集解决负载的问题,公司不想投入那么多资金。这个是时候你可以考虑使用MySQL复制进行折中。
2> 需要进行在线分析处理(OLAP),但是数据库又要影响大量的事务处理(OLTP),,并且是需要实时数据分析,而且在线事务分析处理后的数据对公司的经营决策非常重要,这个时候你可以考虑用一台服务器作为从服务器(比较适合游戏公司)。
3> 为了数据的安全性、备份、用于查询操作。因为使用RAID只可能解决因硬盘损坏造成的数据损失,而不能防止操作系统崩溃、电源故障或其他类似意外。出现问题,可以立即把从机升级为主服务器,若限制了从机只能读的话,需要修改(还有权限信息是否也镜像过来了或是否一致)。若限制从机不能修改,则建议不要把mysql数据库镜像过来,还有就是可以把一些查询操作放在从机上执行,以及数据库的备份操作也可以放在从机上进行(比较适合游戏公司与中小型企业)。
金融以及对数据安全、影响性能要求高的企业或国家部门,肯定会采用群集的!以上是本人根据学习与实际工作写的东东,只是我个人的观点噢,是否合理还有待大家的实际检验,有不正确的地方还请大家指定。下面介绍复制的过程。
一、测试环境
主机:
主控机操作系统:FreeBSD
IP:10.21.0.5
MySQL版本:5.0.27
从属机操作系统:Linux AS3.0(安装在虚拟机上)
IP:192.168.0.229
MySQL版本:
在从属服务器上执行:
mysql> change master to master_host='10.21.0.3',master_user='eugene',master_password='2006eugene',master_log_file='ccxy_db.000008' ,master_log_pos=98;
Query OK, 0 rows affected (0.01 sec)
接着执行:
mysql> slave start;
Query OK, 0 rows affected (0.01 sec)
就可以解决,至于为什么会出现这样的问题,目前我无法解释(需要等待我找出更多证据后再告诉大家)。
在从属服务器上也可以设置某张或多张表的数据不进行复制,只要在my.cnf文件中添加:
replicate-wild-ignore-table=dbname.tablename
也可以限制不复制某个数据库:
replicate- ignore-db =dbname
注意:
在主服务器上设置了binlog-ignore-db就会把这些被列出来的数据库任何更改都不会写入二进制日志文件中的,若需要保留这些更改日志,请不要在主服务器上设置这个选项。而是在从属服务器的my.cnf文件中设置需要复制的数据库与不复制的数据库。
另外:使用复制功能应该根据用途不同与实际情况,考虑服务器之间的物理位置关系(指是否在同一域或同网段内等),因为网络传送会影响到你复制的速度,从而可能抵消一部分你为了提供系统响应的速度。
转载:http://blogold.chinaunix.net/u3/112114/showart_2504365.html
相关推荐
### MySQL复制设置步骤详解 MySQL复制机制是一种强大的技术,它允许不同计算机上的MySQL服务器之间保持数据的同步。本文将深入探讨MySQL复制的设置步骤,基于提供的文件内容,我们将重点讲解如何构建一个“主-从”...
下面将详细介绍MySQL复制的设置步骤,以及相关知识点。 1. **安装与配置** 在开始设置之前,确保所有参与复制的服务器都安装了相同版本的MySQL,并且配置文件(如my.cnf)已经根据需求进行了适当调整。例如,设置`...
需要注意的是,这里提供的是一套基础的安装流程,对于生产环境中的MySQL部署还需要进一步优化配置,例如设置复杂的root密码、开启SSL加密等安全措施,以及调整内存参数等以提高性能。 通过这篇文章的学习,相信您...
### MySQL 5.6 半同步复制步骤详解 #### 一、什么是半同步复制模式? 在深入了解半同步复制模式之前,我们首先回顾一下MySQL中的异步复制模式——MySQL的默认复制选项。在异步复制模式下,Master数据库将二进制...
Ubuntu 安装 MySQL 5.6 完整步骤说明 在本文中,我们将详细介绍在 Ubuntu 系统中...本文详细介绍了在 Ubuntu 系统中安装 MySQL 5.6 的完整步骤,从下载安装包到设置远程连接。按照这些步骤可以成功安装 MySQL 数据库。
压缩包文档描述的是设置MySQL主从复制的步骤。这个指南假定你已经有两台MySQL服务器(主服务器和从服务器),并且它们之间可以互相通信。
# 复制MySQL服务启动脚本 cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld # 将MySQL数据库的动态链接库共享至系统链接库 ln -s /usr/local/mysql/lib/libmysqlclient.so.20 /usr/lib/...
### MySQL主从复制步骤 #### 1. 准备工作 - 在主服务器上启用二进制日志并设置唯一的`server-id`。 - 确保主服务器和从服务器之间的网络连接畅通。 #### 2. 配置主服务器 - 编辑主服务器的`my.cnf`或`my.ini`文件...
根据提供的文件信息,本文将详细解释关于MySQL主从复制配置的关键知识点。 ### 一、主从复制概述 MySQL主从复制是一种数据复制技术,通过它可以在一个或多个服务器(从服务器)上复制另一个服务器(主服务器)的...
一步步完成了MySQL的下载、解压、用户及用户组创建、文件所有权设置、配置文件编辑、安装与初始化、服务启动、环境变量设置、获取初始密码、远程访问权限设置、创建软链接以及关闭防火墙等步骤,确保MySQL能够在...
MySQL复制系统主要可以实现以下几点策略: 1. 在线数据备份。企业可以专门部署一台slave服务器用于备份。当需要进行数据备份时,可以临时停止该slave上的数据复制进程,然后使用mysqldump工具或者直接拷贝数据文件...
本文将详细解释这两种复制方式的原理、配置步骤以及优缺点。 **一、MySQL主从复制** MySQL主从复制是指在一个MySQL集群中,数据在主服务器上写入后,会被自动复制到一个或多个从服务器上。这种复制模式分为三个...
7. 对于数据库的操作,如果已经正确地设置了环境变量,并且MySQL服务正常运行,可以使用mysql命令来进入MySQL的命令行编辑模式。在编辑模式下,可以进行创建数据库、创建表以及其他CRUD(创建、读取、更新、删除)...
在 Windows 环境下,搭建 MySQL 主从复制功能需要准备系统环境、安装 MySQL 服务、配置主从复制等步骤。 步骤一:准备系统环境 1. 准备一台 PC,安装 Windows XP 32 位操作系统。 2. 安装 MySQL 5.0。 步骤二...
MySQL主从切换是数据库高可用性架构中的常见操作,它涉及到数据复制、故障转移和负载均衡等关键概念。本文将详细解析这一过程,帮助你理解并掌握线上环境中MySQL主从切换的一般步骤。 首先,我们需要了解MySQL主从...