最近确实有点纠结

Filed in 心情手札

许多事有的时候不想强硬,但是不强硬有的时候无法做成事情
所以,当你有资本强硬的时候,要尽量为自己争取最大的利益
就这样吧,希望事情能有完美的解决办法

开站了

Filed in 心情手札

终于开站了,说实话,过程还是挺曲折的。

小站的名字叫echo lubao echo字典中的解释是发布、公开。

而echo对一个网络开发者 更是有着格外特殊的意义。

发了几篇以前自己写的技术文章,先冲冲门面,以后会陆续更新的。

先这样,还希望大家多多支持我

从数据库的原理及备份方案

Filed in 服务器Tags:

主从服务器技术,又叫数据库复制,是一种从一个服务器到多个服务器的异步同步技术,同步延时视主服务器的负载而定
数据库复制的技术细节如下:

1、主服务器把数据更新记录到二进制日志中
2、从服务器把主服务器的二进制日志拷贝到自己的中继日志中
3、从服务器重做中继日志的时间,把更新应用到自己的数据库上。

复制不光可以复制,由于他的短延时的特性(通常几秒钟)还可以做数据库负载均衡
通常网上使用的方法是DNS轮询,即通过DNS服务器返回不同的ip,已达到负载均衡的目的
但是,介于咱们学校的DNS服务器实在是不给力,和外部的DNS通信太慢,所以,改方式不适用与极速
第二个方案是做主从服务器读写分离,当然也有多种办法,有些插件变可以实现这项功能,但是由于极速特殊情况的存在,不利于控制
于是,选用使用php代码的方式,来控制读写分离,这样,易于控制和合理的调整

关于备份我的想法:
从刚才的分析可以看出,复制基本上可以解决服务器的备份问题,但是存在一种较为特殊的情况
那就是,当对主服务器误操作的时候,复制会立刻将修改更新的从服务器上,这样就比较麻烦
所以,即使有了主从服务器,还是需要对数据库进行定期的备份
备份的方式据我了解有以下四种

1、冷备份:
通过对frm文件、共享表空间文件、ibd文件、重做日志文件进行直接拷贝即可。由于mylisam只需要对frm和ibd进行拷贝即可,所以一般人会忽视共享表空间文件和重做日志文件,导致其余类型的数据库无法启动(而且说实在话,我还真不知道这两种文件在什么地方……)
而且该方法必须停止数据库进程,否则极易出现数据表损坏的情况,所以叫冷备份。(某个开着数据库备份的大大自弹小鸡鸡谢罪吧)
2、逻辑备份
即使用mysqlddump命令,
个人比较推崇这种方法产生,该方法不需要停掉数据库(停掉数据库这个语句也执行不起来……)
生产的是sql文件,跨平台性强,易于导入,
但是有个小小的问题,由于该语句相当于selet语句的原理,所以在出现update的语句是可能会造成排队现象
比较适合在深夜执行
3、热备份
顾名思义,和冷备份相对,可以在不停止数据库的情况下进行备份,而且不会影响到sql语句,是一种非常优秀的备份方式
但是有个比较大的问题,官方提供的ibbackup插件是收费的,啦啦啦啦啦啦……
当然有一种叫做XtraBackup的替代方案,还可以实现增量备份,不过没有实验过,可以考虑试试~
4、硬盘镜像
改方案必须使用LVM的硬盘模式,使用写时复制的技术,不会对原硬盘数据的读写造成任何的影响,是一种非常值得考虑的技术
当然,由于是全盘镜像,会对硬盘造成极大的压力,只一点不得不考虑

先写这么多吧,其实这个假期主要是对innodb进行了大量的研究,结果发现这个技术只有当内存超过数据库大小是才能体现出最高的效率
内存太贵了,so,放弃了……
还是主从数据库吧……

极速架设全过程(续)

Filed in 服务器Tags: , , ,

上接幽大的帖子

http://bitpt.cn/uc/home/space.php?uid=25&do=blog&id=386

配置好服务器后,需要配置教育网的源,然后yum update。

安装好apache,php,mysql。php升级为5.2以上的版本,因为极速中的部分函数php5.3不支持,所以不要往5.3升。

因为我的专长在php编程上,所以很多东西写得不是很详细,希望幽冥大大来补充一下

配置好php后,开始安装极速所需要php扩展

1.eaccelerator(自己没装过,幽大来一下补充)

2.memcache

在终端命令行内以root权限运行一下命令

wget http://pecl.php.net/get/memcache-3.0.4.tgz
tar zxvf memcache-3.0.4.tgz
cd memcache-3.0.4
/usr/bin/phpize
./configure –with-php-config=/usr/bin/php-config
make
make install

完成!

这里有个小技巧,如果你不知道某条命令的位置可以用 locate命令查询,如果是文件则用whereis查询。由于Linux是文件系统,所以通常所用的东西都能用whereis查出

例如:whereis phpize

3.magicwand

wget ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick.tar.gz

tar xvfz ImageMagick.tar.gz

cd ImageMagick-6.6.0

./configure

make

makeinstall

wget http://www.magickwand.org/download/php/MagickWandForPHP-1.0.8.tar.gz
tar xvfz MagickWandForPHP-1.0.8.tar.gz
cd MagickWandForPHP-1.0.8
/usr/phpize
./configure –with-php-config=/usr/bin/php-config
make
make install

完成!

把之前备份的httpd.conf和php.ini文件拷到该在的位置,详见幽大的帖子

在网站路径下建一个test.php文件,输入

<?php

phpinfo();

?>

关闭保存。

在地址栏中打开,查看是否安装了一下扩展
eAccelerator
short_open_tag
gd
iconv
magickwand
mbstring
memcache
mysql
mysqli

如果是从源上直接update的php,可能会缺少mbtring库

我的解决办法是

先下载和你的php同版本的php的gz包

这里以php5.2.10为例

tar xvfz php5.2.10.tar.gz

cd php5.2.10/ext/mbstring
usr/bin/phpize
./configure –with-php-config=/usr/bin/php-config
make
make install

完成!

下面安装memcached,就是memcache的服务端

wget http://monkey.org/~provos/libevent-1.4.10-stable.tar.gz

tar xvfz libevent-1.4.10-stable.tar.gz
cd libevent-1.4.10-stable.tar.gz

./configure

make
make install

wget http://memcached.googlecode.com/files/memcached-1.4.4.tar.gz

tar xvfz memcached-1.4.4.tar.gz

cd memcached-1.4.4.tar.gz

./configure –with-libevent=/usr/local/lib/

make

make test

如果提示缺少某个文件(忘了文件名了用*.*表示吧)

cp /usr/local/lib/*.* /usr/lib/
make install

完成!

以root权限运行

/usr/local/bin/memcached -d -m 100 -u root -l 127.0.0.1 -p 11211 -c 1024 -P /tmp/memcached.pid

此时注意看SELinux的报错,里面有一个11211的,按照它上面的提示,键入一段话,把httpd访问除80以外的其他端口的权限打开。

然后再运行上面那行命令开启memcached。

插件终于装完了,太不容易了!

在/dev/shm文件夹下建立三个文件分别为

cgbtcache、session、tmp建立权限为777

因为之前配置文件中的配置,这样就把缓存移入到内存中了

然后设置网站访问权限

chown -R apache:apache 网站物理路径

chmod -R 700 网站物理路径

最后,访问一下网站试试吧!在聊天室里随便输入点什么,看看是否显示,如果不显示,则去检查memcached是否开启,memcache是否安装

 

最近评论
Click to view/hide
 
Click to view/hide
2011年三月
« 3月   1月 »
 123456
78910111213
14151617181920
21222324252627
28293031  
站点功能
Click to view/hide