存档

2011年7月 的存档

公司主机新配置

2011年7月29日 没有评论

AMD Phenom羿龙II X6 1055T(2.8G/AM3/6M三缓/45纳米/125W)盒装
http://www.icson.com/Products/72265.html        ¥1099

GIGABYTE 技嘉 GA-880G-USB3 主板(AMD880G芯片组/AM3/AM3+)
http://www.icson.com/Products/164291.html     ¥648

WD西部数据 WD Caviar Blue WD5000AAKX SATA3接口台式机硬盘(500G/7200转/16M)            285元
http://www.icson.com/Products/129105.html

Kingston 金士顿 DDR3 1333 2G 台式机内存(窄条)
http://www.icson.com/Products/34067.html   ¥89 x3

CoolerMaster 酷冷至尊 战斧500 RS500-PCAPD3-CN 台式机电源
http://www.icson.com/Products/194202.html   ¥369

CoolerMaster 酷冷至尊 南海战神TC-220-KKN1机箱(黑色)  139元
http://www.icson.com/Products/43489.html

Dataland 迪兰恒进 HD6670 VORTEX 1G 显卡(Radeon HD6670芯片组/1024M/GDDR5)            ¥688
http://www.icson.com/Products/194966.html
总计:¥3495

 

http://www.icson.com/Products/142929.html
Samsung 三星 E2420L 23.6英寸宽屏液晶显示器        ¥1159

点距(mm)    0.272mm
色数            16.7M
亮度(cd/m2)    300cd/m2
对比度    DC      50000:1

分类: life 标签: ,

Linux Kernel 3.0 版本正式发布

2011年7月25日 没有评论

Linus 正式宣布 Linux Kernel 3.0 版本正式发布。

新功能有:

Btrfs:实现自动碎片整理、数据校验和检查,并且提升了部分性能。

添加 sendmmsg():提升约 UDP 发送性能 20%,接口发送性能 30%。

XEN dom0 支持。

增加 Cleancache 支持,

Berkeley 即时包过滤器,配合 libpcap/tcpdump 提升包过滤规则的运行效率。

支持通过 WLAN 唤醒。

实现非特殊授权的 ICMP_ECHO (ping 命令)。

setns() syscall 更好的命令空间处理。

添加 Alarm-timers,具有高精度计时器的特点,但是可以在通过 RFC 设备唤醒挂起状态的系统。

分类: linux 标签: ,

PHPMailer配置文件详解

2011年7月25日 2 条评论

PHPMailer 也是一个功能强大的邮件类

PHPMailer的主要功能特点:

支持邮件 s/mime加密的数字签名

支持邮件多个 TOs, CCs, BCCs and REPLY-TOs

可以工作在任何服务器平台,所以不用担心WIN平台无法发送邮件的问题的

支持文本/HTML格式邮件

可以嵌入image图像

对于邮件客户端不支持HTML阅读的进行支持

功能强大的发送邮件调试功能debug

自定义邮件header

冗余SMTP服务器支持

支持8bit, base64, binary, and quoted-printable 编码

文字自动换行

支持多附件发送功能

支持SMTP服务器验证功能

在Sendmail, qmail, Postfix, Gmail, Imail, Exchange 等平台测试成功

提供的下载文件中,包括内容详细的说明文档及示例说明,所以不用担心难于上手的问题!

PHPMailer 非常小巧、简单、方便、快捷

以上资料由Jiucool 翻译自phpmailer 官网,转载请注明!

PHPMailer的使用(这里以使用gmail smtp发送邮件为例,当然也支持sendmail pop 等其他方式):

首先到http://phpmailer.worxware.com/ 下载最新版本的程序包

下载完成后,找到class.phpmailer.php 、class.smtp.php两个类放到自己的目录下!

然后新建一个php文件这里命名为:phpmail_jiucool.php

phpmail_jiucool.php内容如下:

我直接将邮件发送模块写成一个函数postmail_jiucool_com(),大家使用的时候直接调用该函数即可,函数内容为:

 

分类: mail 标签:

检测php模块是否加载方法:

2011年7月21日 2 条评论

检测php模块是否加载方法:

 

1. 当然是phpinfo

<?

phpinfo();

?>

2.php -m

3.php -i

分类: PHP 标签:

Linux上的文本“浏览器”

2011年7月21日 没有评论

从elinks开始,回想了一下Linux下基于ncurses库的“浏览器”,有如下几种:

lynx :最经典的,不用说了

w3m :用的和知道的人好像比较少。

elinks :昨天刚看到的,据说是替代lynx的程序。

links :指向elinks的软链接。

htmlview :一个shell角本,不能算是文件浏览器,他是一个探测程序,使用探测到的程序打开URL,在文本终端上,总是使用文件浏览器打开URL。

分类: linux 标签: , , , ,

linux history显示时间

2011年7月20日 没有评论

要想让history命令输出带有时期的格式,只需要设置HISTTIMEFORMAT环境变量就可以了,其时间格式描述和date命令是一致的,比如

#export HISTTIMEFORMAT=”%F %T ”

[root@localhost tools]# history

1 2007-03-27 11:18:40 rpm -qf /usr/sbin/lvscan

2 2007-03-27 11:18:40 sl

3 2007-03-27 11:18:40 ls

4 2007-03-27 11:18:40 df

5 2007-03-27 11:18:40 df -h

6 2007-03-27 11:18:40 cd /tmp

分类: linux 标签: ,

电子商务–运维工程师招聘

2011年7月20日 没有评论

运维工程师招聘
岗位职责
1、负责公司所有服务器的维护、监控和故障处理等日常工作,保证服务器的稳定运行;
2、对运维平台进行日常的例行维护,推动运维技术的发展,提升运维工作的效率;
3、协助团队运维系统架构的设计、实施。

 

岗位要求
1、熟悉常见centos、redhat、ubuntu等linux操作系统;
2、熟悉apache、nginx、lighttpd、tomcat和IIS等常用web服务器的安装、优化和维护;
3、熟悉squid、varnish和trafficserver等缓存代理服务器的安装、优化和维护;
4、熟悉cacti和nagios等监控系统的安装和基本维护;
5、掌握shell/perl/php/python中的一种或两种脚本编程语言;
6、熟悉Oracle数据库的安装、优化和基本维护;
7、具有较强的责任心及良好的团队合作精神,积极主动、认真踏实、有良好自学能力和独立解决问题的能力。

 

有意向的同学发简历到  mujian@luckcart.com

分类: life 标签: , ,

RsyncServer: PID 2340: `RsyncServer service stopped, exit status: 11

2011年7月20日 没有评论

报错:

RsyncServer: PID 2340: RsyncServer' service stopped, exit status: 11

事件查看器:

事件类型:    信息
事件来源:    RsyncServer
事件种类:    无
事件 ID:    0
日期:        2011-7-20
事件:        9:11:10
用户:        test\files
计算机:    test
描述:
事件 ID ( 0 )的描述(在资源( RsyncServer )中)无法找到。本地计算机可能没有必要的注册信息或消息 DLL 文件来从远程计算机显示消息。您可能可以使用 /AUXSOURCE= 标识来检索词描述;查看帮助和支持以了解详细信息。下列信息是事件的一部分: RsyncServer: PID 2340:
RsyncServer’ service stopped, exit status: 11.

解决方法:

1. delete the .pid file in the cwrsync directory under program files

2. start the service

分类: windows 标签:

如何去除文件中的^M

2011年7月19日 没有评论

近日拷贝了一个Windows日志文件到Linux中,用vi打开一看,发现每一行的结尾都有一个”^M”。在linux中试了一下,这个符号通过Ctrl+M可以按出来。

那如何去除文件中的^M呢?其实很简单,用Linux中的sed可以很轻易的办到:

1、sed -e ‘s/.$//’ sourcefile > newfile

2    sed -i ‘s/.$//’ sourcefile

3.  dos2unix sourcefile

还有的方法是将上面的”.”换成”^M”,不过这个符号一定要手工按出来(一般是Ctrl+V或者Ctrl+M),不能通过键盘上的^和M来进行输入。

 

分类: linux 标签: ,

编译php5.3.6出现问题cannot open shared object file

2011年7月19日 没有评论

 

 

php-fpm启动报错:

Starting php_fpm /usr/local/webserver/php/bin/php-cgi: error while loading shared libraries: libmysqlclient.so.16: cannot open shared object file: No such file or directory failed。

报错信息指示libmysqlclient.so.16没有找到。

进入/usr/local/mysql/lib/ 目录查看,呵呵,还真没有,只有一个libmysqlclient.so.16.0.0 。于是我建立了一个软件链接来指向libmysqlclient.so.16。

再次启动php-fpm,问题解决了。

听有些网友说问题仍然存在,那可以试试其它网友的解决方案,在/usr/lib/下建立个软链接:

 

如果不行,往下看

export LD_LIBRARY_PATH=”/usr/local/mysq/lib:$LD_LIBRARY_PATH”

加上这句后在去安装编译就ok了。

 

安装GD时make出现错误configure.ac:64: error: possibly undefined macro: AM_ICONV

2011年7月19日 没有评论

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] 错误 1

解决方案:

安装gettext   (yum tar 都可以)

http://www.gnu.org/software/gettext/下载gettext

tar zxvf gettext-0.17.tar.gz

cd gettext-0.17

./configure

make

make install

yum install gettext gettext-devel

 

安装完gettext重新配置编译安装GD

 

分类: linux 标签: ,

IDE,SATA 和 SCSI,SAS,FC,SSD 硬盘的主要区别

2011年7月18日 没有评论

IDE是俗称的并口,SATA是俗称的串口,这两种硬盘是个人电脑和低端服务器常见的硬盘。SCSI是”小型计算机系统专用接口”的简称,SCSI硬盘就是采用这种接口的硬盘。SAS就是串口的SCSI接口。一般服务器硬盘采用这两类接口,其性能比上述两种硬盘要高,稳定性更强,但是价格高,容量小,噪音大。

IDE的英文全称为“Integrated Drive Electronics”,即“电子集成驱动器”,它的本意是指把“硬盘控制器”与“盘体”集成在一起的硬盘驱动器。把盘体与控制器集成在一起的做法减少 了硬盘接口的电缆数目与长度,数据传输的可靠性得到了增强,硬盘制造起来变得更容易,因为硬盘生产厂商不需要再担心自己的硬盘是否与其它厂商生产的控制器 兼容。对用户而言,硬盘安装起来也更为方便。IDE这一接口技术从诞生至今就一直在不断发展,性能也不断的提高,其拥有的价格低廉、兼容性强的特点,为其 造就了其它类型硬盘无法替代的地位。IDE代表着硬盘的一种类型,但在实际的应用中,人们也习惯用IDE来称呼最早出现IDE类型硬盘ATA-1,这种类 型的接口随着接口技术的发展已经被淘汰了,而其后发展分支出更多类型的硬盘接口,比如ATA、Ultra ATA、DMA、Ultra DMA等接口都属于IDE硬盘。

SATA(Serial ATA)口的硬盘又叫串口硬盘,是未来PC机硬盘的趋势。2001年,由Intel、APT、Dell、IBM、希捷、迈拓这几大厂商组成的Serial ATA委员会正式确立了Serial ATA 1.0规范。2002年,虽然串行ATA的相关设备还未正式上市,但Serial ATA委员会已抢先确立了Serial ATA 2.0规范。Serial ATA采用串行连接方式,串行ATA总线使用嵌入式时钟信号,具备了更强的纠错能力,与以往相比其最大的区别在于能对传输指令(不仅仅是数据)进行检查, 如果发现错误会自动矫正,这在很大程度上提高了数据传输的可靠性。串行接口还具有结构简单、支持热插拔的优点。串口硬盘是一种完全不同于并行ATA的新型 硬盘接口类型,由于采用串行方式传输数据而知名。相对于并行ATA来说,就具有非常多的优势。首先,Serial ATA以连续串行的方式传送数据,一次只会传送1位数据。这样能减少SATA接口的针脚数目,使连接电缆数目变少,效率也会更高。实际上,Serial ATA 仅用四支针脚就能完成所有的工作,分别用于连接电缆、连接地线、发送数据和接收数据,同时这样的架构还能降低系统能耗和减小系统复杂性。其 次,Serial ATA的起点更高、发展潜力更大,Serial ATA 1.0定义的数据传输率可达150MB/s,这比最快的并行ATA(即ATA/133)所能达到133MB/s的最高数据传输率还高,而在Serial ATA 2.0的数据传输率达到300MB/s,最终SATA将实现600MB/s的最高数据传输率。
参见: http://baike.baidu.com/view/14194.htm

SCSI的英文全称为“Small Computer System Interface”(小型计算机系统接口),是同IDE(ATA)完全不同的接口,IDE接口是普通PC的标准接口,而SCSI并不是专门为硬盘设计的接口,是一种广泛应用于小型机上的高速数据传输技术。SCSI接口具有应用范围广、多任务、带宽大、CPU占用率低,以及热插拔等优点,但较高的价格使得它很难如IDE硬盘般普及,因此SCSI硬盘主要应用于中、高端服务器和高档工作站中。
参见: http://baike.baidu.com/view/611524.htm

SAS(Serial Attached SCSI) 即串行连接 SCSI ,是新一代的 SCSI 技术,和现在流行的 Serial ATA(SATA) 硬盘相同,都是采用串行技术以获得更高的传输速度,并通过缩短连结线改善内部空间等。 SAS 是并行 SCSI 接口之后开发出的全新接口。此接口的设计是为了改善存储系统的效能、可用性和扩充性,并且提供与 SATA 硬盘的兼容性。
参见: http://baike.baidu.com/view/196833.html

FC是基于Fabric Channel环路协议基础上的串行技术,通过给后端磁盘提供带宽2.0Gbit/s或者4.0Gbit/s的FC环路来进行磁盘的连接;FC线缆的连接 距离远,比较容易扩展,是目前广泛采用的磁盘通道连接技术之一;FC接口速率虽然能到2.0Gbit/s或者4.0Gbit/s,但由于FC磁盘通道工作 于环路模式下,一个光纤环路在同一时间只能实现单个磁盘的I\O,导致FC带宽不能被充分利用,并且影响到磁盘并行访问的性能。

SSD(solid state disk)固态硬盘,目前的硬盘(ATA 或 SATA)都是磁碟型的,数据就储存在磁碟扇区里,固态硬盘数据就储存在芯片里。

分类: life 标签: , , , , ,

nginx搭建flv、mp4流媒体服务器

2011年7月15日 2 条评论

一、FLV视频发布方式简介

FLV视频有两总发布方式

1、  HTTP方式

这种方式要下载FLV视频文件到本地播放,一旦FLV视频文件下载完成,就不会消耗服务器的资源和带宽,但是拖动功能没有RTMP/RTMP流媒体方式强大,很多视频网站都是用HTTP方式实现的,如:YouTube,土豆,酷6等

2、  RTMP/RTMP流媒体方式

这种方式不用下载FLV视频文件到本地,可以实时的播放flv文件,可以任意拖拽播放进度条,但是比较消耗服务器的资源,

二、使用nginx来搭建flv流媒体服务器

1、使用nginx来搭建flv流媒体服务器简介

nginx中的Flv Stream模块能实现flv流媒体的功能,而且支持flv视频进度条拖拽,另外nignx还可以作为方向代理服务器代理后端基于Flash Media Server或者Red5的RTMP/RTMP流媒体服务器

2、  下面我们就来搭建一个完整的nginx流媒体服务器

1)、Nginx服务器的安装

#安装zlib

tar xzvf zlib-1.2.3.tar.gz

cd zlib-1.2.3

./configure

make && make install

#安装pcre

tar zxvf pcre-7.9.tar.gz

cd pcre-7.9

./configure –prefix=/usr/local/pcre

make && make install

#添加mp4支持模块

wget http://h264.code-shop.com/download/nginx_mod_h264_streaming-2.2.7.tar.gz

tar -zxvf nginx_mod_h264_streaming-2.2.7.tar.gz

#安装nginx

groupadd www

useradd -g www www

tar xzvf nginx-0.8.34.tar.gz

cd nginx-0.8.34

./configure –add-module=../nginx_mod_h264_streaming-2.2.7 –with-http_ssl_module –with-pcre=/root/zhang/nginx/pcre-7.9 –with-zlib=/root/zhang/nginx/zlib-1.2.3 –user=www –group=www –prefix=/usr/local/nginx –with-http_flv_module –with-http_stub_status_module

make && make install

2)、安装yamdi

yadmi的作用是为flv文件添加关键帧,才能实现拖动播放

#下载yadmi

wget http://sourceforge.net/projects/yamdi/files/yamdi/1.4/yamdi-1.4.tar.gz/download

#安装yadmi

tar xzvf yamdi-1.4.tar.gz

cd yamdi-1.4

make && make install

使用方法:yamdi -i input.flv -o out.flv

给input.flv文件 添加关键帧,输出为out.flv文件

3)、配置nginx

vi /usr/local/nginx/conf/nginx.conf 添加以下内容(根据自身情况修改):

user  www www;

worker_processes 30;

error_log  /usr/local/nginx/logs/error.log  crit;

pid        /usr/local/nginx/logs/nginx.pid;

events {

use epoll;

worker_connections      65535;

}

http {

include       mime.types;

default_type  application/octet-stream;

log_format main  ‘$remote_addr – $remote_user [$time_local] ‘

‘”$request” $status $bytes_sent ‘

‘”$http_referer” “$http_user_agent” ‘

‘”$gzip_ratio”‘;

keepalive_timeout  60;

server_names_hash_bucket_size  128;

client_header_buffer_size    32k;

large_client_header_buffers  4 32k;

access_log off;

gzip on;

gzip_min_length  1100;

gzip_buffers     4 8k;

gzip_types       text/plain;

output_buffers   1 32k;

postpone_output  1460;

client_header_timeout  3m;

client_body_timeout    3m;

send_timeout           3m;

sendfile                on;

tcp_nopush              on;

tcp_nodelay             on;

#####################################################################

server {

listen       80;

server_name  192.168.1.105;

root    /usr/local/nginx/html/flv_file/;

limit_rate_after 5m;    ####在flv视频文件下载了5M以后开始限速
limit_rate 512k;         ####速度限制为512K

index   index.html;

charset utf-8;

location ~ \.flv {

flv;

}

location ~ \.mp4$ {
mp4;
}

error_page   500 502 503 504  /50x.html;

location = /50x.html {

root   html;

}

}

}

4)、基本上已经设置完毕,但是此时我们测试的时候还需要一个支持拖拽播放的flash播放器,开源的JW Player就可以实现这样的功能,我将编译的播放器上传上来,供大家下载:

下载链接:http://blogimg.chinaunix.net/blog/upfile2/100607142612.rar

下载播放器后,上传到上面设置的/usr/local/nginx/html/flv_file/目录下,闭关把flv视频文件也放到该目录下!

5)、启动nginx后测试:

http://192.168.1.105/player.swf?type=http&file=test1.flv

说明: #我的ip是192.168.1.105

#player.swf是我的JW Player播放器

#http是表示居于http分发方式

#test1.flv是我的flv视频文件

 

分类: linux 标签: ,

CentOS 6.0 DVD下载

2011年7月9日 没有评论

CentOS 6 下载

转载:http://ahuang.org/96  阿黄小站

CentOS 6 发布

俄罗斯(Russia):

i386:
update:CentOS-6.0-i386-bin-DVD.iso 4.4G
update:CentOS-6.0-i386-netinstall.iso 173M
x86_64:
update:CentOS-6.0-x86_64-netinstall.iso 211M
update:CentOS-6.0-x86_64-bin-DVD1.iso 3.9G
update:CentOS-6.0-x86_64-bin-DVD2.iso 1.1G

美国(USA):

i386:
update:CentOS-6.0-i386-bin-DVD.iso 4.4G
update:CentOS-6.0-i386-netinstall.iso 173M
x86_64:
update:CentOS-6.0-x86_64-netinstall.iso 211M
update:CentOS-6.0-x86_64-bin-DVD1.iso 3.9G
update:CentOS-6.0-x86_64-bin-DVD2.iso 1.1G

日本(Japan):

i386:
update:CentOS-6.0-i386-bin-DVD.iso 4.4G
update:CentOS-6.0-i386-netinstall.iso 173M
x86_64:
update:CentOS-6.0-x86_64-netinstall.iso 211M
update:CentOS-6.0-x86_64-bin-DVD1.iso 3.9G
update:CentOS-6.0-x86_64-bin-DVD2.iso 1.1G

国内(China):

东北大学镜像站点,提供种子文件。
i386:
update:CentOS-6.0-i386-bin-DVD.torrent
update:CentOS-6.0-i386-bin-DVD.iso 4.4G
update:CentOS-6.0-i386-netinstall.iso 173M
x86_64:
update:CentOS-6.0-x86_64-bin-DVD.torrent
update:CentOS-6.0-x86_64-netinstall.iso 211M
update:CentOS-6.0-x86_64-bin-DVD1.iso 3.9G
update:CentOS-6.0-x86_64-bin-DVD2.iso 1.1G

中科大镜像站点,提供种子文件、MD5 SUN。
i386:
update:CentOS-6.0-i386-bin-DVD.torrent
update:CentOS-6.0-i386-bin-DVD.iso 4.4G
update:CentOS-6.0-i386-netinstall.iso 173M
x86_64:
update:CentOS-6.0-x86_64-bin-DVD.torrent
update:CentOS-6.0-x86_64-netinstall.iso 211M
update:CentOS-6.0-x86_64-bin-DVD1.iso 3.9G
update:CentOS-6.0-x86_64-bin-DVD2.iso 1.1G

网易镜像站点,提供种子文件、MD5 SUN。
i386:
update:CentOS-6.0-i386-bin-DVD.torrent
update:CentOS-6.0-i386-bin-DVD.iso 4.4G
update:CentOS-6.0-i386-netinstall.iso 173M
x86_64:
update:CentOS-6.0-x86_64-bin-DVD.torrent
update:CentOS-6.0-x86_64-netinstall.iso 211M
update:CentOS-6.0-x86_64-bin-DVD1.iso 3.9G
update:CentOS-6.0-x86_64-bin-DVD2.iso 1.1G

MD5 SUN
d7e57d6edaca1556d5bad2fa88602309 CentOS-6.0-i386-bin-DVD.iso
65731c29c49630dea6cde103d02ccffb CentOS-6.0-i386-netinstall.iso
7c148e0a1b330186adef66ee3e2d433d CentOS-6.0-x86_64-bin-DVD1.iso
43f23c3e5f166b53867988fe223e98cc CentOS-6.0-x86_64-bin-DVD2.iso
d13da95c29e585ee15cf403b89468243 CentOS-6.0-x86_64-netinstall.iso
至此,国内镜像已经全部更新。

搜狐镜像已经同步完毕了

http://mirrors.sohu.com/centos/6.0/isos/

CentOS 6.0镜像站点列表:http://mirror.centos.org/centos/6.0/isos/

附上rhel 6.0 地址
http://rhel.ieesee.net/uingei/

密码不满足密码策略的要求

2011年7月6日 没有评论

由于域的规约而导致的问题,问题在于密码设定不符合策略组的规约。此时需要到域策略中设置响应选项来降低密码的复杂度。(默认的复杂度需要至少7字符,且包含多个字母和数字)

Windows Server 2003解决办法是:

选择 开始>程序>管理工具>域安全策略>帐户策略>密码策略

密码必须符合复杂性要求:由“已启用”改为“已禁用”;

密码长度最小值:由“7个字符”改为“0个字符”

使此策略修改生效有如下方法:

1、等待系统自动刷新组策略,约5分钟~15分钟
2、重启域控制器(若是修改的用户策略,注销即可)
3、使用gpupdate命令
仅刷新计算机策略:gpupdate/target:computer
仅刷新用户策略:gpupdate/target:user
二者都刷新:gpupdate

Windows Server 2008不一样的是, 管理员不能从本地策略组中将其密码策略修改, 而需要从GPM(Group Policy Management)”组策略管理器”中进行修改. 步骤如下:

Windows Server 2008中, 打开GPM(Group Policy Management)方法: 依次选择start(开始)->Administrator Tools(管理者工具)->Group Policy Management(组策略管理器)->Run as administrator/Open(使用管理员权限打开)

开启GPM之后, 依次展开树状节点:

Forest: [YOUR DOMAIN NAME(你的域名)]->domain(域)->[YOUR DOMAIN NAME(你的域名)]->Group Policy Object(组策略对象). 右键点击Default Domain Policy(默认域策略), 选择Edit(编辑)

以上操作后将打开Group Policy Management Editor(组策略管理器)对话框, 依次展开树状节点: Computer Configuration(计算机配置)->Windows Settings(Windows设置)->Security Settings(安全设置)->

Account Policy(允许策略)->Password Policy(密码策略) 可以看到关于密码的策略设定, 只要将倒数第二项: Password must meet complexity requirments(密码复杂度)项目设成disable即可. 其余的策略因情况而设定.

最后选择start->run(运行), 输入gpupdate强制更新组策略设置 .等待命令行结束之后即可完成.

分类: windows 标签: ,

关系数据库还是NoSQL数据库

2011年7月4日 没有评论

转载:http://www.infoq.com/cn/news/2011/01/relation-db-nosql-db

作者 孙立 发布于 2011年1月22日

上一篇简单的说明了为什么要使用NoSQL。接下来我们看下如何把NoSQL引入到我们的项目中,我们到底要不要把NoSQL引入到项目中。

在过去,我们只需要学习和使用一种数据库技术,就能做几乎所有的数据库应用开发。因为成熟稳定的关系数据库产品并不是很多,而供你选择的免费版本就 更加少了,所以互联网领域基本上都选择了免费的MySQL数据库。在高速发展的WEB2.0时代,我们发现关系数据库在性能、扩展性、数据的快速备份和恢 复、满足需求的易用性上并不总是能很好的满足我们的需要,我们越来越趋向于根据业务场景选择合适的数据库,以及进行多种数据库的融合运用。几年前的一篇文 章《One Size Fits All – An Idea Whose Time Has Come and Gone》就已经阐述了这个观点。

当我们在讨论是否要使用NoSQL的时候,你还需要理解NoSQL也是分很多种类的,在NoSQL百花齐放的今天,NoSQL的正确选择比选择关系数据库还具有挑战性。虽然NoSQL的使用很简单,但是选择却是个麻烦事,这也正是很多人在观望的一个原因。

NoSQL的分类

NoSQL仅仅是一个概念,NoSQL数据库根据数据的存储模型和特点分为很多种类。

类型 部分代表 特点
列存储 Hbase 

Cassandra

Hypertable

顾名思义,是按列存储数据的。最大的特点是方便存储结构化和半结构化数据,方便做数据压缩,对针对某一列或者某几列的查询有非常大的IO优势。
文档存储 MongoDB 

CouchDB

文档存储一般用类似json的格式存储,存储的内容是文档型的。这样也就有有机会对某些字段建立索引,实现关系数据库的某些功能。
key-value存储 Tokyo Cabinet / Tyrant 

Berkeley DB

MemcacheDB

Redis

可以通过key快速查询到其value。一般来说,存储不管value的格式,照单全收。(Redis包含了其他功能)
图存储 Neo4J 

FlockDB

图形关系的最佳存储。使用传统关系数据库来解决的话性能低下,而且设计使用不方便。
对象存储 db4o 

Versant

通过类似面向对象语言的语法操作数据库,通过对象的方式存取数据。
xml数据库 Berkeley DB XML 

BaseX

高效的存储XML数据,并支持XML的内部查询语法,比如XQuery,Xpath。

以上NoSQL数据库类型的划分并不是绝对,只是从存储模型上来进行的大体划分。它们之间没有绝对的分界,也有交差的情况,比如Tokyo Cabinet / Tyrant的Table类型存储,就可以理解为是文档型存储,Berkeley DB XML数据库是基于Berkeley DB之上开发的。

NoSQL还是关系数据库

虽然09年出现了比较激进的文章《关系数据库已死》,但是我们心里都清楚,关系数据库其实还活得好好的,你还不能不用关系数据库。但是也说明了一个事实,关系数据库在处理WEB2.0数据的时候,的确已经出现了瓶颈。

那么我们到底是用NoSQL还是关系数据库呢?我想我们没有必要来进行一个绝对的回答。我们需要根据我们的应用场景来决定我们到底用什么。

如果关系数据库在你的应用场景中,完全能够很好的工作,而你又是非常善于使用和维护关系数据库的,那么我觉得你完全没有必要迁移到NoSQL上面, 除非你是个喜欢折腾的人。如果你是在金融,电信等以数据为王的关键领域,目前使用的是Oracle数据库来提供高可靠性的,除非遇到特别大的瓶颈,不然也 别贸然尝试NoSQL。

然而,在WEB2.0的网站中,关系数据库大部分都出现了瓶颈。在磁盘IO、数据库可扩展上都花费了开发人员相当多的精力来优化,比如做分表分库 (database sharding)、主从复制、异构复制等等,然而,这些工作需要的技术能力越来越高,也越来越具有挑战性。如果你正在经历这些场合,那么我觉得你应该尝 试一下NoSQL了。

选择合适的NoSQL

如此多类型的NoSQL,而每种类型的NoSQL又有很多,到底选择什么类型的NoSQL来作为我们的存储呢?这并不是一个很好回答的问题,影响我们选择的因素有很多,而选择也可能有多种,随着业务场景,需求的变更可能选择又会变化。我们常常需要根据如下情况考虑:

  1. 数据结构特点。包括结构化、半结构化、字段是否可能变更、是否有大文本字段、数据字段是否可能变化。
  2. 写入特点。包括insert比例、update比例、是否经常更新数据的某一个小字段、原子更新需求。
  3. 查询特点。包括查询的条件、查询热点的范围。比如用户信息的查询,可能就是随机的,而新闻的查询就是按照时间,越新的越频繁。

NoSQL和关系数据库结合

其实NoSQL数据库仅仅是关系数据库在某些方面(性能,扩展)的一个弥补,单从功能上讲,NoSQL的几乎所有的功能,在关系数据库上都能够满足,所以选择NoSQL的原因并不在功能上。

所以,我们一般会把NoSQL和关系数据库进行结合使用,各取所长,需要使用关系特性的时候我们使用关系数据库,需要使用NoSQL特性的时候我们使用NoSQL数据库,各得其所。

举个简单的例子吧,比如用户评论的存储,评论大概有主键id、评论的对象aid、评论内容content、用户uid等字段。我们能确定的是评论内 容content肯定不会在数据库中用where content=’’查询,评论内容也是一个大文本字段。那么我们可以把 主键id、评论对象aid、用户id存储在数据库,评论内容存储在NoSQL,这样数据库就节省了存储content占用的磁盘空间,从而节省大量IO, 对content也更容易做Cache。

NoSQL代替MySQL

在某些应用场合,比如一些配置的关系键值映射存储、用户名和密码的存储、Session会话存储等等,用NoSQL完全可以替代MySQL存储。不但具有更高的性能,而且开发也更加方便。

NoSQL作为缓存服务器

MySQL+Memcached的架构中,我们处处都要精心设计我们的缓存,包括过期时间的设计、缓存的实时性设计、缓存内存大小评估、缓存命中率等等。

NoSQL数据库一般都具有非常高的性能,在大多数场景下面,你不必再考虑在代码层为NoSQL构建一层Memcached缓存。NoSQL数据本身在Cache上已经做了相当多的优化工作。

Memcached这类内存缓存服务器缓存的数据大小受限于内存大小,如果用NoSQL来代替Memcached来缓存数据库的话,就可以不再受限于内存大小。虽然可能有少量的磁盘IO读写,可能比Memcached慢一点,但是完全可以用来缓存数据库的查询操作。

规避风险

由于NoSQL是一个比较新的东西,特别是我们选择的NoSQL数据库还不是非常成熟的产品,所以我们可能会遇到未知的风险。为了得到NoSQL的好处,又要考虑规避风险,鱼与熊掌如何兼得?

现在业内很多公司的做法就是数据的备份。在往NoSQL里面存储数据的时候还会往MySQL里面存储一份。NoSQL数据库本身也需要进行备份(冷 备和热备)。或者可以考虑使用两种NoSQL数据库,出现问题后可以进行切换(避免出现digg使用Cassandra的悲剧)。

总结

本文只是简单的从MySQL和NoSQL的角度分析如何选择,以及进行融合使用。其实在选择NoSQL的时候,你可能还会碰到关于CAP原则,最终一致性,BASE思想的考虑。因为使用MySQL架构的时候,你也会碰到上面的问题,所以这里没有阐述。

关于作者

孙立,目前在凤凰网负责底层组的研发工作。曾就职于搜狐和ku6。多年互联网从业经验和程序开发,对分布式搜索引擎的开发,高并发,大数据量网站系 统架构优化,高可用性,可伸缩性,分布式系统缓存,数据库分表分库(sharding)等有丰富的经验,并且对运维监控和自动化运维控制有经验。开源项目 phplock,phpbuffer的作者。近期开发了一个NOSQL数据库存储INetDB,是NoSQL数据库爱好者。他的新浪微博是:http://t.sina.com.cn/sunli1223

分类: DB 标签: ,