快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

澳门威泥斯人_酒文化网进入



1. 小序

MySQL是一个高速率、高机能、多线程、开放源代码,建立在客户/办事器(Client/Server)布局上的关系型数据库治理系统(RDBMS)。它始于1979年,最初是Michael Widenius为瑞典TcX公司创建的UNIREG数据库系统,当时的UNIREG没有SQL(Structured Query Language布局化查询说话)接口,限定了它的利用。1996年5月,Widenius开拓出了MySQL的最第一版本,开始在Internet上公开发行。MySQL的开拓职员从一开始就不停关注它的机能,为此不惜特点集,直到本日,MySQL依然维持素质,以高速率高机能为重要原则。

跟着光阴的推移,MySQL也加入了大年夜型数据库产品的高档特点,如存澳门威泥斯人储历程、视图、触发器等,使其在企业级数据库系统中开始被支配利用[1澳门威泥斯人]。2008年10月,SUN公司收购了MySQL AB公司,开始进入开源领域。随着重量级操作系统Solaris的开源,SUN MySQL在数据库市场占领的份额将会进一步前进。是以,在临盆情况中支配具有负载均衡功能的MySQL办事器集群,对付前进企业数据库利用系统的速率、稳定性及可伸缩性具有很大年夜的现实意义,也可以有效低落利用系统的投本钱钱。本文将以FreeBSD 7.0-Release操作系统为例,使用MySQL数据库的复制(Replication)特点,简要先容支配MySQL办事器集群的实现措施和相关留意事变。

2. 系统模型

本集群的布局澳门威泥斯人为一个主MySQL办事器(Master)办事器与多个从属MySQL办事器(Slave)建立复制(replication)连接,主理事器与从属办事器实现必然程度上的数据同步,多个从属办事器存储相同的数据副本,实现数据冗余,供给容错功能。支配开拓利用系统时,对数据库操作代码进行优化,将写操作(如UPDATE、INSERT)定向到主理事器,把大年夜量的查询操作(SELECT)定向到从属办事器,实现集群的负载均衡功能。假如主理事器发生故障,从属办事器将转换角色成为主理事器,使利用系统为终端用户供给不间断的收集办事;主理事器规复运行后,将其转换为从属办事器,存储数据库副本,继承对终端用户供给数据查询检索办事。

3. 支配实现

本文以一台主理事器带三台从属办事器为例,简要先容MySQL办事器集群的实现规划和详澳门威泥斯人细措施步骤。

3.1 系统支配

因为FreeBSD系统对机械硬件要求较低,出于低落系统支配资源斟酌,主理事器和从属办事器操作系统均采纳FreeBSD 7.0-Release,并采纳最小化定制安装,完成今后系统占用磁盘空间仅为254M(不计swap分区所占空间,它随详细机械内存容量的变更而变更)。为充分发挥系统硬件机能,MySQL数据库采纳源代码编译安装。

3.1.1 安装FreeBSD系统

在主理事器和从属办事器上安装FreeBSD 7.0-Release,详细安装措施步骤不是本文主要内容,在此略过,如有疑问可以参考FreeBSD系统手册。必要阐明的是为方便用户系统运行时代的掩护治理,要打开系统的SSH办事功能,系统安装设置设置设备摆设摆设时代容许root用户远程登录,正常运行今后要关闭root用户的远程登录功能。在/etc/ssh/sshd_config设置设置设备摆设摆设文件中对PermitRootLogin设置为yes为容许root用户远程登录到系统,设置为no即为不容许。改动保存文件后履行kill –HUP `cat /var/run/sshd.pid`敕令即可重启sshd守护进程,使设置生效[2]。上述操作必要root用户权限。

3.1.2 编译安装MySQL

到MySQL的官方网站http://www.mysql.com下载MySQL数据库的安装源代码压缩包,本例下载的是mysql-5.1.30.tar.gz,以root用户身份登录到系统,开始安装MySQL数据库系统。

因为在对MySQL进行源代码编译安装时要求应用GNU的C编译器,而FreeBSD系统本身供给的不是该编译器,是以用户必须下载安装GNU C编译器[3]。把下载的gnumake-3.81.tar.gz解压安装,按如下步骤即可安装GNU C编译器:

[root@FreebsdMaster/softwares]# tar –zxvf gnumake-3.81.tar.gz

[root@FreebsdMaster /softwares]# cd make-3.81

[root@FreebsdMaster /softwares/make-3.81]# ./configure ; make; make install; make clean

(4). 变动/app/mysql5目录及文件属性

[root@FreebsdMaster /app]# chmod –R mysql mysql5

[root@FreebsdMaster /app]# chgrp –R mysql mysql5

阐明:/app/mysql5为MySQL数据库系统所在目录,假如用户支配的利用系统数据量极大年夜,可以将数据库系统目录设在大年夜容量磁盘阵列上。磁盘阵列设置与详细机械硬件相关性很大年夜,详细操作设置参考详细硬件系统阐明和FreeBSD操作手册。不借助第三方软件,FreeBSD 7.0-Release系统可以设置设置设备摆设摆设RAID0、RAID1磁盘阵列。

(5). 安装MySQL系统初始数据库

[root@FreebsdMaster /softwares/ mysql-5.1.30]# ./scripts/mysql_install_db.sh

--basedir=/app/mysql5 –-data-dir=/app/mysql5/data

留意:必须斟酌Unix系统的文件权限特点,首先给mysql_install_db.sh脚本添加可履行属性,否则安装脚本无法履行。履行chmod +x ./scripts/mysql_install_db.sh敕令即可。参数--basedir=/app/mysql5和--datadir=/app/msyql5/data为必加参数,否则脚本运行报错退出,无法安装系统初始数据库mysql和测试数据库test,mysql数据库包孕系统权限设置表,没有这些表数据库办事进程mysqld将无法启动。

(6). 再次变动/app/mysql5目录及其文件属性

[root@FreebsdMaster /app]# chmod –R root mysql5

[root@FreebsdMaster /app]# chmod –R mysql mysql5/data

这样做是为了包管系统安然,防止经由过程MySQL系统破绽的入侵行径。MySQL以mysql用户身份运行,对/data目录具有完全造访权限,对其它目录则只有系统治理员根据必要设置的造访权限,确保FreeBSD系统的安然。这里必要分外提醒用户留意的是要确保mysqld文件(MySQL的守护进程,位于/app/mysql5/libexec目录下)没有设置setuid标志位,假如设置了该标志位,入侵者对其它文件就具有其不应有的权限。详细缘故原由参考关于Unix系统安然的手册,本文对这个问题不再赘述。

(2). 进行其它设置,增强系统安然性

用户可根据以下一样平常安然准则设置自己的FreeBSD系统。

◆选择一个好的密码并予以妥善保护。

◆对付敏感文件采纳适当安然等级的加密算法进行加密。对付敏感级别不是很高的文件采纳系统自带的crypt对象加密;对付敏感度极高的文件则应用专用加密对象,如PGP、GPG进行纰谬称加密,前进加密文件的防进击能力。

◆仔细设置文件造访权限,达到保护文件目的。

◆保护好自己的.profile文件。恰当设置.profile文件的造访权限,确保只有自己能造访。

◆仔细掩护已设置setuid或setgid标志位的任何法度榜样。

◆禁止不加警备地脱离已注册终端。任何时刻都必须按老例正常退出系统,先履行clear清屏敕令,防止其它用户看到操作痕迹,再履行exit敕令退出终端。

◆警备特洛伊木马法度榜样。精确设置PATH变量的检索顺序,确保系统目录位于当前目录的前面。

◆警备病毒的入侵。

◆监控近来一次注册光阴,确保没有他人盗用自己的帐号。

分外提示:对付临盆情况的办事器,必然要包管办事器的物理安然,安然步伐再完善的系统,一旦被入侵者物理打仗,所有的安然步伐将形同虚设!

Unix系统安然是一个很大年夜的课题,本文只是说起了一些最肤浅的知识,详细内容用户可以参考相关册本或网上资本。为确保Unix系统的设置设置设备摆设摆设具有高度的安然性,可以应用Internet安然中间(Center for Internet Security,CIS)供给的安然测试对象Benchmarks或评估对象Scoring Tools,查验澳门威泥斯人和监控系统设置设置设备摆设摆设的安然性 [4]。

3.2.2 MySQL数据库系统设置设置设备摆设摆设

为了能使上述系统实现一对多的主从复制(replication)和冗余机制,还必要对以上四个MySQL办事器进行一些需要的设置设置设备摆设摆设。

[mysqld]

log-bin=mysql-master-bin

server-id=1

在其它三台Slave机械的设置设置设备摆设摆设文件/etc/my.cnf文件写入如下内容:

[mysqld]

server-id=int

此中,int为一大年夜于1且互不相等的正整数,如2,3,4等。务需要精确设置每个机械上的/etc/my.cnf设置设置设备摆设摆设文件,尤其是server-id不能有重复,这是一对多半据库复制能否成功的关键[5]!

设定好上述/etc/my.cnf文件后启动Master上的MySQL数据库办事时就自动开启了二进制更新日志功能。在Slave上启动MySQL时要加上--log-bin参数,即可开启二进制更新日志功能。在Slave机械上启动MySQL办事的敕令如下:

# /app/mysql5/bin/mysqld_safe --user=mysql --log-bin &

这样做的目的为了实现冗余容错功能。当主理事器Master呈现故障竣事办事时,在预转换角色成为Master的Slave上履行STOP SLAVE; RESET MASTER SQL语句,在其它两台Slave上履行CHANGE MASTER TO SQL语句,履行STOP SLAVE; RESET MASTER SQL语句的Slave办事器即转换成新的Master,另外两台机械则重新的Master复制数据库数据(复制的是更新UPDATE、INSERT等操作,并不是简单的copy),从而实现冗余容错。

3.3 系统实现

完成上述筹备后可以开始实现MySQL数据库的一对多复制,对利用系统的数据库造访代码进行优化,使更新操作UPDATE、INSERT等SQL语句定向到Master办事器,查询检索SELECT语句定向到Slave办事器,从而实现负载均衡;当主理事器Master呈现故障竣事办事时,经由过程办事器角色转换实现冗余容错;上述所有办事器经由过程高速核心互换机连接在一路,协同事情,供给集群(Cluster)机能。下面,本文就此举一简例,详细阐明实现(Implementation)步骤。

记下File和Position两个参数的值,从属办事器Slave为了复制(replication)连接到主理事器Master时要用到这两个参数,假如参数与此不符将导致复制(replication)掉败!

(5). 开释主理事器表级写入锁定

mysql>UNLOCK TABLES;

至此,主理事器解除写入锁定,一对多复制筹备事情已整个完成,筹备吸收Slave的复制(replication)连接。

3.3.2 筹备从属办事器

(1). 竣事从属办事器的MySQL数据库办事

# /app/mysql5/bin/mysqladmin –uroot –p shutdown

Enter password:

输入MySQL系统root用户密码,MySQL办事竣事。

(2). 简单copy数据库初始数据

在从属办事器上履行ftp操作,造访主理事器,下载/tmp/mysql-data.tar文件,在/app/mysql5/data目录下履行如下操作,把初始数据copy到Slave办事器:

[root@FreebsdSlave1 /app/mysql5/data]# tar –xvf /tmp/msyql-data.tar

其它两台Slave办事器履行同样操作,实现数据库初始数据的简单copy。

(3). 重启从属办事器上的MySQL数据库办事

# /app/mysql5/bin/mysqld_safe –-user=mysql –-log-bin &

从属办事器已启动,同时启动二进制更新日志功能,为角色转换做好筹备。

(4). 登录到从属办事器Slave的MySQL客户端

# /app/mysql/bin/msyql –uroot -p

(5). 启动从属办事器上的复制(replication)线程

mysql> CHANGE MASTER TO

-> MASTER_HOST='192.168.1.100',

-> MASTER_USER='repl',

-> MASTER_PASSWORD='g00r002b',

-> MASTER_LOG_FILE=' mysql-master-bin.000001',

-> MASTER_LOG_POS=1027;

Query OK, 0 rows affected (0.00 sec)

mysql> START SLAVE;

Query OK, 0 rows affected (0.00 sec)

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

您可能还会对下面的文章感兴趣: