,MySQL效力器的设计,为了此后维护,晋级备份的等闲和数据的平安性,最好将MySQL法式文件和数据离别安置在“差别的硬件”上。,//







MySQL效力器的设计


为了此后维护,晋级备份的等闲和数据的平安性,最好将MySQL法式文件和数据离别安置在“差别的硬件”上。


/   /
|    /usr                     <== 利用体系
|    /home/mysql              <== mysql主目次,为了等闲晋级,这只
硬盘1==>|                                 是一个最新版本目次的链接
|    /home/mysql-3.23.54/     <== 最新版本的mysql /home/mysql链接到这里
/home/mysql-old/         <== 从前运转的旧版本的mysql
/   /data/app_1/             <== 利用数据和启动剧本等
硬盘2==>|    /data/app_2/
/data/app_3/



MySQL效力的安置和效力的启动


MySQL通俗运用当前STABLE的版本:


固然即便不运用--with-charset=选项,我感受with-charset只在按字母排序的时分才有效,这些选项会对数据的迁移带来很多费事。


固然即便不运用innodb,innodb严重用于必要外键,事宜等企业级支撑,价钱是速度比MYISAM罕见量级的下降。


./configure --prefix=/home/mysql --without-innodb

make

make install


效力的启动和阻止


1 复制缺省的mysql/var/mysql到 /data/app_1/目次下。


2 MySQLD的启动剧本:start_mysql.sh


#!/bin/sh
rundir=`dirname "$0"`
echo "$rundir"
/home/mysql/bin/safe_mysqld --user=mysql --pid-file=
"$rundir"/mysql.pid --datadir="$rundir"/var "$@"-O
max_connections=500 -O wait_timeout=600 -O key_buffer=
32M --port=3402 --socket="$rundir"/mysql.sock &




注释:


--pid-file="$rundir"/mysql.pid --socket="$rundir"/mysql.sock --datadir="$rundir"/var


目的都是将响应数据和利用一时文件放在一同;

-O 前面通俗是效力器启动全局变量优化参数,偶然刻必要按照具体利用调整;

--port: 差别的利用运用PORT参数分布到差别的效力上去,一个效力可以提供的连接数通俗是MySQL效力的严重瓶颈;


修改差别的效力到差别的端口后,在rc.local文件中参加:


/data/app_1/start_mysql.sh

/data/app_2/start_mysql.sh

/data/app_3/start_mysql.sh


具体:必需写全路子


3 MySQLD的阻止剧本:stop_mysql.sh


#!/bin/sh
rundir=`dirname "$0"`
echo "$rundir"
/home/mysql/bin/mysqladmin -u mysql -S"$rundir"/mysql.sock shutdown




运用这个剧本的益处在于:


1 多个效力启动:关于差别效力只必要修改剧本中的--port[=端口号]参数。单个目次下的数据和效力剧本都是可以自力打包的。

2 一切效力响应文件都位于/data/app_1/目次下:比如:mysql.pid mysql.sock,当一台效力器上启动多个效力时,多个效力不会相互影响。但都放到缺省的/tmp/下则有可以被其他利用误删。

3 当硬盘1出结果此后,直接将硬盘2放到一台装好MySQL的效力器上就可以赶紧恢复效力(如果放到my.cnf里则还必要备份响应的设置文件)。


效力启动后/data/app_1/下响应的文件和目次分布如下:


/data/app_1/
start_mysql.sh 效力启动剧本
stop_mysql.sh 效力阻止剧本
mysql.pid 效力的过程ID
mysql.sock 效力的SOCK
var/ 数据区
mysql/ 用户库
app_1_db_1/ 利用库
app_1_db_2/
...
/data/app_2/
...




搜检一切的利用过程ID:

cat /data/*/mysql.pid


搜检所罕见据库的错误日志:

cat /data/*/var/*.err


团体倡导:MySQL的严重瓶颈在PORT的连接数上,因而,将表布局优化好此后,响应单个MySQL效力的CPU占用依旧在10%以上,就要思量将效力拆分到多个PORT上运转了。


效力的备份


固然即便运用MySQL DUMP而不是直接备份数据文件,以下是一个按weekday将数据轮循备份的剧本:备份的间隔和周期可以按照备份的需求确定


/home/mysql/bin/mysqldump -S/data/app_1/mysql.sock -umysql db_name | gzip -f>/path/to/backup/db_name.`data %w`.dump.gz


因而写在CRONTAB中通俗是:


15 4 * * * /home/mysql/bin/mysqldump -S/data/app_1/mysql.sock -umysql db_name | gzip -f>/path/to/backup/db_name.`data %w`.dump.gz


具体:


1 在crontab中'%'必要转义成'%'

2 按照日志统计,利用负载最低的时分通俗是在早上4-6点


先备份在当地然后传到近程的备份效力器上,可能直接树立一个数据库备份帐号,直接在近程的效力器上备份,近程备份只必要将以上剧本中的-S /path/to/msyql.sock改成-h IP.ADDRESS即可。


数据的恢复和体系的晋级


一样往常维护和数据迁移:在数据盘没有被毁坏的情形下,硬盘通俗是体系中寿命最低的硬件。而体系(包括利用体系和MySQL利用)的晋级和硬件晋级,都会碰着数据迁移的结果。

只需数据不乱,先装好效力器,然后直接将数据盘(硬盘2)安置上,只必要将启动剧本从新参加到rc.local文件中,体系就算是很好的恢复了。


灾难恢复:数据库数据本人被毁坏的情形下,确定毁坏的时间点,然后从备份数据中恢复。



版权声明:

原创作品,许可转载,转载时请务必以超链接形式标明文章 原始理由 、作者信息和本声明。不然将清查司法责任。