August 11, 2010
可扩展性设计之数据切分
"\u003cp\u003e可能很多读者朋友在网上或者杂志上面都已经多次见到关于数据切分的相关文章了, 只不过在有些文章中称之为数据的 Sharding 。其实不管是称之为数据的 Sharding 还是数据的切分,其概念都是一样的。简单来说,就是指通过某种特定的条件,将我们存放在同一个数据库中的数据分散存放到多个数据库(主机)上面,以达到分散单台设备负载的效果。 数据的切分同时还可以提高系统的总体可用性,因为单台设备 Crash 之后,只有总体数据的某部分不可用,而不是所有的数据。\u003c/p\u003e\n\u003cp\u003e数据的切分( Sharding )根据其切分规则的类型,可以分为两种切分模式。\n\u003cstrong\u003e垂直(纵向)切分:\u003c/strong\u003e 一种是按照不同的表(或者 Schema )来切分到不同的数据库(主机)之上,这种切可以称之为数据的垂直(纵向)切分;\n\u003cstrong\u003e水平(横向)切分:\u003c/strong\u003e 另外一种则是根据表中的数据的逻辑关系,将同一个表中的数据按照某种条件拆分到多台数据库(主机)上面,这种切分称之为数据的水平(横向)切分。\u003c/p\u003e\n\u003cp\u003e垂直切分的最大特点就是规则简单,实施也更为方便,尤其适合各业务之间的耦合度非常低,相互影响很小,业务逻辑非常清晰的系统。在这种系统中,可以很容易做到将不同业务模块所 …\u003c/p\u003e"
August 7, 2010
FreeBSD+Rsync文件同步
"\u003cp\u003e\u003cstrong\u003e一.服务端和客户端安装一样\u003c/strong\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003ewoody-207#cd /usr/ports/net/rsync\nwoody-207#make install\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e\u003cstrong\u003e二.配置rsync服务端\u003c/strong\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e****woody207# vi /usr/local/etc/rsyncd.conf\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e添加以下内容\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[www]\ncomment = web server backup\npath = /www\nauth users = woody\nuid = nobody\ngid = nogroup\nsecrets file = /usr/local/etc/rsyncd.secrets\nread\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e\u003cstrong\u003e启动rsync的daemon模式\u003c/strong\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003evi /usr/local/etc/rc.d/rsyncd\n修改这一行内容,使用IPV4协议\ncommand_args=”-4 –daemon”\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e\u003cstrong\u003e系统服务配置\u003c/strong\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e****#echo ‘rsyncd_enable=”YES”’ \u0026raquo; /etc/rc.conf\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e\u003cstrong\u003e启动服务\u003c/strong\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e****woody-207# /usr/local/etc/rc.d/rsyncd start\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e\u003cstrong\u003e检查Rsync daemon …\u003c/strong\u003e\u003c/p\u003e"
August 7, 2010
[教程]freebsd中使用rsync同步文件
"\u003cp\u003ersync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了——remote sync\n它的特性如下:\n可以镜像保存整个目录树和文件系统。\n可以很容易做到保持原来文件的权限、时间、软硬链接等等。\n无须特殊权限即可安装。\n优化的流程,文件传输效率高。\n可以使用rcp、ssh等方式来传输文件,当然也可以通过直接的socket连接。\n支持匿名传输,以方便进行网站镜象。\u003c/p\u003e\n\u003cp\u003e测试环境freebsd6.3 server:192.168.1.3 client:192.168.1.4\n\u003cstrong\u003e1、server端配置(备份源服务器)\u003c/strong\u003e\n安装rsync\n#cd /usr/ports/net/rsync\n#make install clean\n安装成功后编辑rsync的配置文件\n#vi /usr/local/etc/rsyncd.conf\n加入以下内容\u003c/p\u003e\n\u003cp\u003e[test] #rsync区段的设定名称\ncomment = test rsync backup #注释\npath = /var/www/htdocs/ #需要同步的数据所在路径\nauth users …\u003c/p\u003e"
August 7, 2010
rsync从linux到linux的文件同步备份
"\u003cp\u003e\u003cstrong\u003e一、环境\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e需要备份文件的服务器(服务器端):192.168.1.201 (RHEL 5)\u003c/p\u003e\n\u003cp\u003e接收备份文件的服务器(客户端):192.168.1.202 (CENTOS 5)\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e二、安装配置\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e1.服务器端的配置\u003c/p\u003e\n\u003cp\u003eA、采用系统默认安装的rsync 编辑/etc/rsyncd.conf文件,如果没有则新建一个。 vi /etc/rsyncd.conf #[globale] strict modes= yes #check passwd file port= 873 #default port logfile= /var/log/rsyncd.log pidfile= /var/run/rsyncd.pid max connections= 4 #[modules] [testlink] #备份模块 uid= root gid= root path= /usr/local/apache/htdocs/testlink/upload_area #要备份的目录 read only= no host allow= * auth users= wwyhy secrets file= …\u003c/p\u003e"
August 7, 2010
Linux/FreeBSD下配置Subversion同步Web文件夹手记
"\u003cp\u003e\u003cstrong\u003e下载安装subversion-1.6.9.tar.gz\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e1\u0026gt; svnserve配置\u003c/p\u003e\n\u003cp\u003e1.1 创建仓库存放目录\u003c/p\u003e\n\u003cp\u003emkdir -p /opt/svn/repos\u003c/p\u003e\n\u003cp\u003echown -R svn:svn /opt/svn/\u003c/p\u003e\n\u003cp\u003e2\u0026gt; 启动svn\u003c/p\u003e\n\u003cp\u003esvnserve -d –listen-host=0.0.0.0 –listen-port=3190 -r /data/repos\u003c/p\u003e\n\u003cp\u003e3\u0026gt; 创建SVN仓库\u003c/p\u003e\n\u003cp\u003esvnadmin create /opt/svn/repos/abc\u003c/p\u003e\n\u003cp\u003evim /opt/svn/repos/abc/conf/passwd\u003c/p\u003e\n\u003cp\u003e4\u0026gt; 新增访问用户名和密码\u003c/p\u003e\n\u003cp\u003e格式如下\u003c/p\u003e\n\u003cp\u003e[users]\u003c/p\u003e\n\u003cp\u003eroger=123456#用户名=密码\u003c/p\u003e\n\u003cp\u003e5\u0026gt; 修改 svnserve.conf\u003c/p\u003e\n\u003cp\u003e#vi /opt/svn/repos/abc/conf/svnserve.conf\u003c/p\u003e\n\u003cp\u003e#password-db = passwd为password-db = passwd //使用密码文件\u003c/p\u003e\n\u003cp\u003e#anon-access = read 为 anon-access = read //匿名可以读取,如果设置必须输入密码才能 …\u003c/p\u003e"
August 3, 2010
Cacti进阶应用一:汇总流量图-将数据合并后作图
"\u003cp\u003e在使用Cacti方便快捷的建立监控图时,往往根据实际应用必须监控几台甚至上百台服务器的汇总流量图来观察该应用服务器组的总流量等指标。\u003c/p\u003e\n\u003cp\u003e这里我们就来介绍如何用cacit快速的建立汇总流量图,其他汇总图建立方法相同;\n\u003cstrong\u003e一、创建CDEF\u003c/strong\u003e\n1、点击cacti左边菜单中的graph Management下的CDEFs\n2、点击CDEF‘s右边的add,增加一个名为Turn All Data into Bits项\u003c/p\u003e\n\u003cp\u003e3、在CDEF Items表格中点击add,输入如下图:依次创建以下三个Items;\n[\u003cimg src=\"https://blogstatic.haohtml.com//uploads/2023/09/4.jpg\" alt=\"\"\u003e][1]\u003c/p\u003e\n\u003cp\u003e[\u003cimg src=\"https://blogstatic.haohtml.com//uploads/2023/09/5.jpg\" alt=\"\"\u003e][2]\u003c/p\u003e\n\u003cp\u003e[\u003cimg src=\"https://blogstatic.haohtml.com//uploads/2023/09/6.jpg\" alt=\"\"\u003e][3]\u003c/p\u003e\n\u003cp\u003e4、完成后如下图:\n[\u003cimg src=\"https://blogstatic.haohtml.com//uploads/2023/09/7.jpg\" alt=\"\"\u003e][4]\nCDEF item创建完成。\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e二、创建new graph\u003c/strong\u003e\n1、点击cacti左边菜单中的graph Management\u003c/p\u003e\n\u003cp\u003e2、在右边点击add出现如下图,直接选择create\n[\u003cimg src=\"https://blogstatic.haohtml.com//uploads/2023/09/1.jpg\" alt=\"\"\u003e][5]\u003c/p\u003e\n\u003cp\u003e3、在Graph Configuration表格中的title输入新图的名字;如IDC all interface traffic in(bits/sec)\u003c/p\u003e\n\u003cp\u003e4、表格最下的选项Vertical Label是纵轴的标识,这里我们填入Bits Per …\u003c/p\u003e"
August 1, 2010
MySQL模式 : Strict Mode
"\u003cp\u003e\u003cstrong\u003eI. Strict Mode阐述\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e根据 mysql5.0以上版本 strict mode (STRICT_TRANS_TABLES) 的限制:\u003c/p\u003e\n\u003cp\u003e1).不支持对not null字段插入null值\u003c/p\u003e\n\u003cp\u003e2).不支持对自增长字段插入”值,可插入null值\u003c/p\u003e\n\u003cp\u003e3).不支持 text 字段有默认值\u003c/p\u003e\n\u003cp\u003e看下面代码:(第一个字段为自增字段)\u003c/p\u003e\n\u003cp\u003e$query=”insert into demo values(”,’$firstname’,’$lastname’,’$sex’)”;\u003c/p\u003e\n\u003cp\u003e上边代码只在非strict模式有效。\u003c/p\u003e\n\u003cp\u003e$query=”insert into demo values(NULL,’$firstname’,’$lastname’,’$sex’)”;\u003c/p\u003e\n\u003cp\u003e上边代码只在strict模式有效。把空值”换成了NULL.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eII.让数据库支持Strict Mode\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e1.对数据库结构进行以下改进来支持strict mode:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\n\u003cp\u003e给所有not null字段都设置非null默认值,字符串默认值为 ”,数值默认值为 0,日期默认值为 ‘0000-00-00 00:00:00’\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e去掉text字段的默认值\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e规范化改进: …\u003c/p\u003e\u003c/li\u003e\u003c/ol\u003e"
August 1, 2010
Cacti的常用插件
"\u003cp\u003e\u003cstrong\u003e一、Cacti的插件框架PIA\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e1、PIA\u003c/strong\u003e\n要想让Cacti支持更多的插件,那么首先要安装PIA(Cacti-Plugin),下面是PIA与其它插件之间的框架图\n\u003ca href=\"http://blog.haohtml.com/wp-content/uploads/2010/08/cacti-pia.jpg\"\u003e\u003cimg src=\"http://blog.haohtml.com/wp-content/uploads/2010/08/cacti-pia.jpg\" alt=\"\"\u003e\u003c/a\u003e\nPIA的下载地址:http://www.cactiusers.org/index.php\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://blog.haohtml.com/wp-content/uploads/2010/08/cacti-plugin-0.8.7g-PA-v2.8.tar.gz\"\u003ecacti-plugin-0.8.7g-PA-v2.8.tar\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e将压缩包里的文件解压放在cacti目录里,导入pa.sql脚本.然后在”User Management”里的admin用户启用”plugin Management “权限.这时可以在左侧菜单看到”\u003cstrong\u003ePlugin Management\u003c/strong\u003e“菜单.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e2、PIA的安装\u003c/strong\u003e\n主要有以下几个步骤\ntar -zvxf cacti-plugin-arch.tar.gz\npatch -PI -N \u0026lt; cacti-plugin-arch.diff\nmysql -ucacti -p2010 \u0026lt; pa.sql\n修改includesl/config.php下的\n$canfiig[‘url_path’] = “/cacti/”;\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e二、Cacti的常用插件\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e1、Thold插件\u003c/p\u003e\n\u003cp\u003e功能:基于上下界线 …\u003c/p\u003e"
July 30, 2010
snmpwalk常用语法
"\u003cp\u003e在日常监控中,经常会用到snmp服务,而snmpwalk命令则是测试系统各种信息最有效的方法,现总结一些常用的方法如下:\u003c/p\u003e\n\u003cp\u003e1、snmpwalk -c public -v 1 -m ALL 192.168.30.49.1.3.6.1.2.1.25.1 得到取得windows端的系统进程用户数等\u003c/p\u003e\n\u003cp\u003e2、snmpwalk -c public -v 1 -mALL 192.168.30.49 .1.3.6.1.2.1.25.2.2 取得系统总内存\u003c/p\u003e\n\u003cp\u003e3、snmpwalk -c public -v 1-m ALL 192.168.30.49 hrSystemNumUsers\u003c/p\u003e\n\u003cp\u003e4、snmpwalk -c public -v 1 -m ALL192.168.30.49 .1.3.6.1.2.1.4.20 取得IP信息\u003c/p\u003e\n\u003cp\u003e5、snmpwalk -v 2c -c public192.168.30.49 system 查看系统信息\u003c/p\u003e\n\u003cp\u003e6、snmpwalk -v 1 192.168.30.49 -c public ifDescr1、snmpwalk -v 2c -c public …\u003c/p\u003e"
July 30, 2010
用cacti来监控windows 服务器,snmp服务在windows的配置
"\u003cp\u003e\u003cstrong\u003e监控客户端windows2003服务器的snmp服务配置(202.96.209.2)\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e(1)、打开“控制面板”—“添加删除程序”—“添加删除组建”,在“管理和监视工具”中选中“简单网络管理协议(snmp)”,点击“下一步”,开始安装,在安装过程中需要i386文件.\u003c/p\u003e\n\u003cp\u003e(2)、打开“开始”—“程序”—“管理工具”—“服务”,找到“snmp service”,右键打开“属性”,选择“安全”,在“接受团体名称”处,点“添加”,在“团体名称”处写入你的cacti使用的community,选中“接受来自这些主机的snmp数据包”,默认值为“localhost”,点击“编辑”,将“localhost”改为\u003cstrong\u003ecacti监控服务器的实际 ip地址\u003c/strong\u003e.(指定要接收哪些主机的snmp数据,这里要填写上运行cacti程序的服务器ip地址)\u003c/p\u003e\n\u003cp\u003e(3)、还需要安装SNMP Informant-STD 1.6 软件下载地址: \u003ca href=\"http://www.wtcs.org/informant/download.htm\"\u003ehttp://www.wtcs.org/informant/download.htm\u003c/a\u003e\n有防火墙的要开通UDP端口161(可以在cmd命令行下输入:netstat -an 来查看udp协议的161端口 …\u003c/p\u003e"
July 29, 2010
[教程]cacti for windows 安装
"\u003cp\u003e本文章前提为配置好了apache(iis)+php+mysql这些基本的需要。\u003c/p\u003e\n\u003cp\u003e安装snmp服务,需要windows光盘或i386目录的文件。在”安全”标签设置好团体字后重新启动snmp服务。主要防火墙对udp 161开放权限一定要做好,不要将161完全暴露在公网上,最好只对特定的IP或子网开放。(可以用netstat -an命令查看udp协议的161端口是否在监听)\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ecacti相关软件下载:\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e1.cacti下载: \u003ca href=\"http://www.cacti.net/downloads/\"\u003ehttp://www.cacti.net/downloads/\u003c/a\u003e\n2.Cygwin下载: \u003ca href=\"http://www.cygwin.com/setup.exe\"\u003ehttp://www.cygwin.com/setup.exe\u003c/a\u003e\n3.rrdtool下载(1.2X): \u003ca href=\"http://www.cacti.net/downloads/rrdtool/win32/\"\u003ehttp://www.cacti.net/downloads/rrdtool/win32/\u003c/a\u003e\n4.net-snmp下载: \u003ca href=\"http://sourceforge.net/projects/net-snmp/files/\"\u003ehttp://sourceforge.net/projects/net-snmp/files/\u003c/a\u003e(注意下载的是net-snmp binaries的EXE安装文件,这里使用win32下的文件)\n5.Spine(原来好像是cactid)下载: …\u003c/p\u003e"
July 27, 2010
用linux上的cacti去监控windows服务器
"\u003cp\u003e另篇相同的教程: \u003ca href=\"http://blog.haohtml.com/index.php/archives/4850\"\u003ehttp://blog.haohtml.com/index.php/archives/4850\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e以前一直用cacti或者mrtg来监控交换机流量,很少用来监控服务器,最近突然有个任务需要监控windows服务器,一般刚装好的cacti,里面的监控设置都是基于交换机和linux的,没有专门监控windows的选择,于是研究了一下,和大家分享一下经验。另外我的cacti是安装的debian linux上,有些安装命令不适合其他linux上,请大家注意。\u003c/p\u003e\n\u003cp\u003e操作系统:debian 5\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e1.安装mysql\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eapy-get install mysql-server-5.0\u003c/p\u003e\n\u003cp\u003e安装时会提示你输入mysql root密码\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e2.安装apache和php\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eapt-get install apache2 libapache2-mod-php5 php5 php5-gd php5-mysql php5-cli php5-common php5-snmp php-net-socket\u003c/p\u003e\n\u003cp\u003ephp5-gd是关系到绘图\u003c/p\u003e\n\u003cp\u003ephp5-mysql和数据库有关系\u003c/p\u003e\n\u003cp\u003ephp-net-socket这个有时候cacti …\u003c/p\u003e"
July 27, 2010
PHP Warning: date() [function.date]: It is not safe是什么问题
"\u003cp\u003e\u003cstrong\u003e在用PHP5.3以上的PHP版本时,只要是涉及时间的会报一个”\u003c/strong\u003e PHP Warning: date() [function.date]: It is not safe to rely on the system’s timezone settings. You are \u003cem\u003erequired\u003c/em\u003e to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected ‘UTC’ for ‘8.0/no DST’ instead in **“这样的错。如何解决呢?**\u003cstrong\u003e实际上,从 PHP 5.1.0 ,当对使用date()等函数时,如果timezone设置不正确,在每一次调用时间函数时,都会产生\u003ccode\u003eE_NOTICE\u003c/code\u003e 或者 \u003ccode\u003eE_WARNING\u003c/code\u003e …\u003c/strong\u003e\u003c/p\u003e"
July 27, 2010
FreeBSD7.0安装cacti监控
"\u003cp\u003eFreeBSD 7.0-RELEASE-i386\u003c/p\u003e\n\u003cp\u003e# cd /usr/ports/net-mgmt/net-snmp \u0026amp;\u0026amp; make install clean\n# cd /usr/ports/net-mgmt/cacti \u0026amp;\u0026amp; make install clean\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eucd-snmp不选\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e# make pretty-print-run-depends-list\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eThis port requires package(s) “mysql-client-5.0.67_1” to run.\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e# cd /usr/ports/databases/mysql50-server \u0026amp;\u0026amp; make install clean\n# echo ‘mysql_enable=”YES”‘ \u0026raquo; /etc/rc.conf\n# /usr/local/etc/rc.d/mysql-server start\n# mysqladmin –user=root create cacti\n# echo “GRANT ALL ON cacti.* TO …\u003c/p\u003e"
July 26, 2010
[教程]freebsd下安装cacti教程
"\u003cp\u003e\u003cstrong\u003e一、安装mysql51-server\u003c/strong\u003e\ncd /usr/ports/database/mysql51-server\u003c/p\u003e\n\u003cp\u003emake with-debug=no with-client-ldflags=-all-static with-mysqld-ldflags=-all-static witch-assembler=yes with-pthread=yes enable-thread-safe-client=yes install clean\nmake install clean\u003c/p\u003e\n\u003cp\u003ecp /usr/local/share/mysql/my-small.cnf /usr/local/etc/my.cnf\u003c/p\u003e\n\u003cp\u003ecd /\nmkdir mysql\nchmod 777 /mysql\nee /usr/local/etc/my.cnf\u003c/p\u003e\n\u003cp\u003e[client]\nport = 3389\nsock = /mysql/mysql.sock\ndefault-character-set = utf8\n[mysqld]\nport = 3389\nsock = /mysql/mysql.sock …\u003c/p\u003e"