2.27.2009

MySQL生产中Tips

1、my.cnf的检查工具
mytop mysqlreport

2、允许mysql query caches

3、Optimize tables 的效果比服务器调整更好一点,如果不能确定优化对象,启动slow query log

4、my.cnf参数调优
key_buffer = 20%-50% Physical Ram
du -sh */*.MYI 检查index的大小,可以作为决定key_buffer大小的依据

5、调整服务器参数
set global key_buffer_size=128*1024*1024 (即128M)
可直接生效
修改my.cnf
下次启动后生效

5、更多

2.26.2009

MySQL Replication Tips

MySQL的Replication已经很成熟了。下面总结一下生产中的一些小技巧

1、从Master上来过滤一些数据库,即忽略test,scratch数据库,不进行Rep
binlog-ignore-db=test,scratch
或者
binlog-ignore-db=test
binlog-ignore-db=scratch

2、如果只想同步某一或几个数据库,可以只制定需要Repl的数据库名
binlog-do-db=catalog
binlog-do-db=users
binlog-do-db=sessions

3、如果某些SQL语句导致Repl出现问题,可以使用如下方法:
SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;
SLAVE START SQL_THREAD;

4、从Slaves上过滤数据库,只同步某一些数据库(users)。
replicate-do-db=users
阻止temporary数据库同步的设置方法:
replicate-ignore-db=temporary

Labels:

2.25.2009

TripWire-系统完整性检查工具

今晚看iptables的书的时候,看到TripWire,以前也看过。但是没怎么注意
正好做了一下实验
http://sourceforge.net/projects/tripwire/
下载安装
wget http://nchc.dl.sourceforge.net/sourceforge/tripwire/tripwire-2.4.1.2-src.tar.bz2
tar xvf tripwire-2.4.1.2-src.tar.bz2
cd tripwire-2.4.1.2-src
./configure –prefix=/srv/tripwire && make && make install

初始化数据库
/srv/tripwire/sbin/tripwire -m i
检测某个软件的完整性
/srv/tripwire/sbin/tripwire -m c
e.g. sudo /srv/tripwire/sbin/tripwire -m c /bin/echo
Integrity checking objects specified on command line…
……..
Total objects scanned: 1
Total violations found: 0
……..

具体用法:
Database Initialization: tripwire [-m i|--init] [options]
Integrity Checking: tripwire [-m c|--check] [object1 [object2...]]
Database Update: tripwire [-m u|--update]
Policy Update: tripwire [-m p|--update-policy] policyfile.txt
Test: tripwire [-m t|--test] –email address

Labels:

《大道至简》小感

看了3天,当时在公司内部论坛看到的。虽然自己不是编程人员。呵呵

感觉讲了很多道的东西,看不是很懂,但是也有不少收获。
他讲了好几个故事,也看了相关典故。我从一个系统的侧面感触一些东西。

作者虽然是在讲编程的道,但是很多东西也是解决问题的过程。
编程何尝不是解决问题的过程的,从学的不好的编程到项目到软件工程
从小到达,一种系统的管理和解决问题的思考。

值得有志成为项目经理的程序员一读,不管从以后的开发上还是管理上感觉都
会有不少的收获。

Labels:

2.22.2009

OpenVZ on F8

我的系统是fedora8

关于openvz的安装:

1.第一步我们为了要安装openvz呢,我们需要把openvz的数据库添加到yum中:

cd /etc/yum.repos.d

wget http://download.openvz.org/openvz.repo

rpm –import http://download.openvz.org/RPM-GPG-Key-OpenVZ

2.在安装时要选择适合你的数据库:

yum search ovzkernel

然后安装它yum install ovzkernel……

3.为了在系统开启时选择正确的内核我们修改一下启动是的名称:

vi /etc/grub/grub.conf

修改这个文件哦

default=0

timeout=5

splashimage=(hd0,0)/boot/grub/splash.xpm.gz

hiddenmenu

title Fedora OpenVZ (2.6.18-92.1.18.el5.028stab060.2)

root (hd0,0)

kernel /boot/vmlinuz-2.6.18-92.1.18.el5.028stab060.2 ro root=LABEL=/ rhgb quiet acpi=force apm=power-off

initrd /boot/initrd-2.6.18-92.1.18.el5.028stab060.2.img

4.安装一些openvz的工具:

yum install vzctl vzquota

5.打开sysctl.conf文件设置一些参数:

vi /etc/sysctl.conf

net.ipv4.ip_forward = 1 (这个东东我们老大说没有设置是不会上网的哦)
net.ipv4.conf.default.proxy_arp = 0
net.ipv4.conf.all.rp_filter = 1
kernel.sysrq = 1
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.all.send_redirects = 0
net.ipv4.icmp_echo_ignore_broadcasts=1
net.ipv4.conf.default.forwarding=1

6.接着运行sysctl -p 在修改/etc/vz/vz.conf文件使neigthbour_devs=all

7.需要把selinux给禁用了,

vi /etc/sysconfig/selinux

selinux=disabled

selinuxtype=targeted

8.接着重启系统一下 reboot

9.重启之后再看看你的内核把 uname -r

10.openvz已经安装好了,接下来的事情就是要安装(template)模板了

http://wiki.openvz.org/Download/template/precreated

满地都是。下载到/vz/template/cache下边

11.创建一个cente os5 系统

12. 创建一个操作系统的template

vzctl create 101 –ostemplate fedora-9-i386-minimal –config vps.basic

呵呵就是把那个.tar.gz去了使用前边的名字。

13.设置101开启

vzctl set 101 –onboot yes –save

14.设置101的名字和ip地址

vzctl set 101 –hostname test.example.com –save

vzctl set 101 –ipadd 192.168.0.101 –save

设置成你的局域网的ip地址哦

15.设置101 的sock号以及他的dns server

vzctl set 101 –numothersock 120 –save

vzctl set 101 –nameserver 213.133.98.98 –nameserver 213.133.99.99 –nameserver 213.133.100.100 –nameserver 145.253.2.75 –save

16.开启101

vzctl start 101

17.设置101的密码

vzctl exec 101 passwd

18.进入101

vzctl enter 101

19.退出101

exit

20.停止101

vzctl stop 101

21.重启101

vzctl restart 101

22.把101删除了

vzctl destroy 101

23.查看openvz各个系统的状态

vzlist -a

Labels:

2.17.2009

Linux-Vserver安装笔记

http://linux-vserver.org/ 官方网站
具体不同系统的安装方法:
http://linux-vserver.org/Documentation

这里我在CentOS 5.1上安装
http://linux-vserver.org/Installation_on_CentOS

过程:
1、vi /etc/yum.repos.d/dhozac-vserver.repo
内容

[dhozac-vserver]
name=Linux-VServer related packages for CentOS $releasever - $basearch
baseurl=http://rpm.hozac.com/dhozac/centos/$releasever/vserver/$basearch
gpgkey=http://rpm.hozac.com/conf/keys/RPM-DHOZAC-GPG-KEY
2、yum update yum 更新yum
3、yum install kernel 重启系统
4、安装Vserver工具
yum install util-vserver{,-core,-lib,-sysv,-build}
5、/etc/init.d/vprocunhide start
6、安装GuestOS(斜体字是可变内容)
当然了,如果你知道快的源,可以自己更改一下源
/usr/lib/util-vserver/distributions/centos5/yum.repos.d/CentOS-Base.repo
命令创建虚拟主机
vserver enlampv1 build -m yum –context 42\
–hostname enlampv1.enlamp.cn \
–interface eth0:192.168.1.11/24 — -d centos5
7、安装yum
vyum enlampv1 — install yum
vserver enlampv1 pkgmgmt internalize
8、启动虚拟机
vserver enlampv1 start
vserver enlampv1 enter 进入系统
没有vi,呵呵,echo修改各个文件了。像/etc/reslove.conf等文件。

Labels:

2.16.2009

Proxmox-虚拟技术的选择

用过Vmware,Openvz. 个人是偏向Openvz的。
今天看到一个更好的Proxmox,感觉它结合了Openvz的优点,
并且还有了Openvz不具备的东西,就是你可以自己安装Guest OS了。
怎么感觉有点像广告啊,闲话不多说了。开工

系统需求: 64bit,如果要支持自己安装GuestOS,那么CPU需要支持Inter VT/AMD V技术
我的测试机器是CPU: AMD Athlon(tm) 64 X2 Dual Core Processor 5200+ RAM: 1G

千万注意:Proxmox是需要一个干净的系统的,如果不干净它会把你的系统删
光光的,所以一定要是测试机器,切记!!!

下载地址 http://pve.proxmox.com/wiki/Downloads
我这里用的是Proxmox VE 1.1
刻录成盘->安装到测试机器 整个过程也就是30分钟吧(当然了下载不算了)。

奇怪的事:
[Mon Feb 16 15:59:42 2009] [error] [client 192.168.90.183] File does not exist: /var/www/pve/qemu/VncViewer.class, referer: https://10.0.0.165/qemu/vnc-direct.htm?cid=0&veid=101
竟然没有VncViewer.class,找个来用吧,vnc-java里面就有,我这里传上来了。
wget http://www.enlamp.cn/soft/VncViewer.class

现在就可以用了,记得你的Proxmox的IP地址吧。
我的是 https://10.0.0.165
帐号是root 密码是安装过程中设置的

登录成功了,创建虚拟机,然后剩下的你应该都知道了吧。管理起来很简单的
截了几张图,Win那个不知道算不算侵权。Hoho
“小二,上图片!”

Labels:

Apache之userdir

Apache有个userdir的模块
http://httpd.apache.org/docs/2.2/howto/public_html.html

以前没用过,想用一下,可是就是很403,日志也是简单的
Permission denied: access to /~username denied

后来在另一台用yum安装的服务器上找到答案。
# The path to the end user account ‘public_html’ directory must be
# accessible to the webserver userid. This usually means that ~userid
# must have permissions of 711, ~userid/public_html must have permissions
# of 755, and documents contained therein must be world-readable.
# Otherwise, the client will only receive a “403 Forbidden” message.

具体操作过程就是 
#chmod -R 711 /home/*
#cd /home/username/
#chmod 755 -R public_html

一切正常了。

Labels:

2.15.2009

Linux技巧

Q:如何禁用 gnome 的 最近的文档
A:
$rm .recently-used.xbel
$mkdir .recently-used.xbel

Q:安装gd-2.0.35出错
gd-2.0.35]# make
cd . && /bin/sh /root/gd-2.0.35/config/missing –run aclocal-1.9 -I config
aclocal:configure.ac:64: warning: macro `AM_ICONV’ not found in library
cd . && /bin/sh /root/gd-2.0.35/config/missing –run automake-1.9 –foreign
cd . && /bin/sh /root/gd-2.0.35/config/missing –run autoconf
configure.ac:64: error: possibly undefined macro: AM_ICONV
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
make: *** [configure] Error 1
A: yum install -y fontconfig && yum install -y gettext-devel

2.04.2009

MySQL Sandbox(沙盒)

Sandbox (computer security), a virtual container in which untrusted programs can be safely run
Sandbox (software development), an online environment in which code or content changes can be tested without affecting the original system –From Wikipedia, the free encyclopedia
沙盒:在这里理解为一个模拟的容器,可以安全运行,而不影响其他程序(MySQL)

官方网站:http://launchpad.net/mysql-sandbox/
使用MySQL Sandbox可以测试一些新老的MySQL特性,而不影响系统和已经运行的程序
使用说明:
http://forge.mysql.com/wiki/MySQL_Sandbox

经过测试,感觉不错,只需要下载Mysql_sandbox和MySQL源码包,就可以了。
比较适合想测试MySQL一些特殊功能的朋友。