下载中心  |   网站地图  |   站内搜索  |   加入收藏
最新更新
安恒动态
产品信息
业界动态
技术文章


安恒公司 / 技术文章 / 安恒公司网管员手记 / 利用内存磁盘加速mysql --安恒网管员手记
利用内存磁盘加速mysql --安恒网管员手记
2006-06-26    刘世伟       阅读:

linux下shm是一种完美的内存磁盘虚拟技术, 你可以指定一个shm盘的大小, 但实际的占用不会固定为设置的大小,而是随着里面文件的大小,占用相应的宝贵的mem空间. 这些mem在也会在必要时被系统交换到硬盘上面去. 下面是使用shm虚拟存储将mysql的库运行在内存中的一个实例.

debian在默认下,/dev/shm建立虚拟存储,在/etc/default/tmpfs文件中可以修改shm的大小.

或者用命令 mount tmpfs /dev/shm -t tmpfs -o size=128m来建立shm虚拟存储.

好了,我们首先建立/dev/shm/php4 用于php的session 和tmp目录, 修改它的用户和组为www-data,以及访问权限700 修改php.ini让它们指向/dev/shm/php4. 还要修改apache2的启动脚本,让apache2启动之前,检查/dev/shm/php4是否存在,并建立.


mysql 的存储目录在/var/lib/mysql,一个库一个文件目录,如果只想让某些库运行在内存中,可以把相应目录用符号联接的方式,放到/dev/shm,

还有数据的备份和恢复,因为shm在关机后会丢失.所以应该在mysql的启动脚本,建立shm下的目录,并从备份复制文件到shm,在关闭脚本中,应该复制shm的数据到备份目录.

以anheng这个表为例,首先关闭mysql,以便直接操作/var/lib/mysql的文件,
关闭mysql
/etc/init.d/mysql stop
开备份目录/var/lib/mysql/anheng0
mkdir /var/lib/mysql/anheng0
chown mysql:mysql /var/lib/mysql/anheng0
chmod 770 /var/lib/mysql/anheng0
复制数据
cp /var/lib/mysql/anheng/* /var/lib/mysql/anheng0
chown mysql:mysql /var/lib/mysql/anheng0/*
chmod 770 /var/lib/mysql/anheng0/*
移动所有的数据到shm
mv /var/mysql/anheng /dev/shm/anheng
建立符号联接
ln -s /dev/shm/anheng /var/lib/mysql/anheng
启动mysql
/etc/init.d/mysql start
下一步修改/etc/init.d/mysql在启动部分最前面增加shm开目录和复制,要保证在mysql启动之前进行复制
if [ ! -e /dev/shm/anheng ]
then
echo mkdir /dev/shm/anheng
mkdir /dev/shm/anheng
chown mysql:mysql /dev/shm/anheng
chmod 770 /dev/shm/anheng
cp /var/lib/mysql/anheng0/* /dev/shm/anheng
chown mysql:mysql /dev/shm/anheng/*
chmod 660 /dev/shm/anheng/*

fi
在关闭部分最后面增加备份shm的脚本,要保证关闭之后再复制
cp /dev/shm/anheng/* /var/lib/mysql/anheng0
chown mysql:mysql /var/lib/mysql/anheng/*
chmod 660 /var/lib/mysql/anheng/*

还要增加定时任务,定时用mysqldump从anheng库向anheng0库覆盖数据.防止突然关机造成的数据丢失.
如果有一台远程的mysql服务器,对anheng库进行热备份,就更完美了.具体配置方式在 mysql热备份

责任编辑: 刘世伟

相关文章
Hp 激光打印机 P1008在linux下的驱动  08-01-16 - 阅: 17297
多款设备采用Qtopia软件,奇趣科技统领VoIP设备Linux开发平台  07-12-17 - 阅: 22190
debian下的无盘linux系统安装要点  07-12-09 - 阅: 16885
mysql的relay-bin  07-10-16 - 阅: 21924
mysql优化[转贴]  07-10-02 - 阅: 23921
linux下的后门检查程序rkhunter和杀毒程序clamav  07-04-22 - 阅: 76754
mysql数据库的2次灾难恢复实战  07-04-14 - 阅: 54953
linux下读写ntfs分区中文编码问题  07-03-11 - 阅: 15557
linux下的DV磁带视频采集和dvd刻录  07-02-13 - 阅: 84078
linux内核虚拟机 kvm  07-01-05 - 阅: 90059
linux下raid5磁盘阵列实施  06-03-13 - 阅: 99427
linux在安恒公司的应用 ---安恒网管员手记  06-01-16 - 阅: 144308
mysql 4.1+ 汉字乱码问题研究 --安恒网管员手记  05-09-15 - 阅: 128503
mysql 双机热备实战 --安恒网管员手记  05-04-20 - 阅: 99211
打印机共享器跟linux的连接 --安恒网管员手记  05-04-20 - 阅: 132857
Tcpdump命令的使用与示例——linux下的网络分析  05-04-08 - 阅: 159979
Linux下的网络协议分析工具-tcpdump快速入门手册  05-04-07 - 阅: 155816
e680i手机嵌入式linux 研究 --安恒网管员手记  05-03-13 - 阅: 109265
mysql的备份,备份,备份 --安恒网管员手记  05-01-12 - 阅: 73373
linux下vcd刻录 --安恒网管员手记  04-11-06 - 阅: 149647

Email给朋友 打印本文
版权所有·安恒公司 Copyright © 2004   iso.anheng.com.cn   All Rights Reserved    
推荐: 综合布线工作组博客       北京市海淀区首体南路9号 主语国际商务中心4号楼8层 (邮编100048) 电话:010-88018877