Archive for category 数据库应用

MongoDB的分发模式和部署

MongoDB是近期一直在研究的No-SQL,作为No-SQL来说,Mongo做的反而更像传统的关系型数据库,可以利用弱关系进行查询。作为网站应用来说,毫不客气地说,如果你的查询复杂程度到了MongoDB无法支持的程度,只能说明你的数据结构设计的有问题。

作为No-sql的强项,MongoDB的数据分发/同步机制相对比MySQL灵活的多,支持传统上的主从同步和趋向于高性能的ShareSet,而且对于程序端来说改动相对较小,代价几乎可以不计。现在就从这两种分发机制方式说起。

Read the rest of this entry »

, ,

No Comments

从Redis的数据丢失说起

碰到一个悲催的事情:一台Redis服务器,4核,16G内存且没有任何硬件上的问题。持续高压运行了大约3个月,保存了大约14G的数据,设置了比较完备的Save参数。而就是这台主机,在一次重起之后,丢失了大量的数据,14G的数据最终只恢复了几百兆而已。

正常情况下,像Redis这样定期回写磁盘的内存数据库,丢失几个数据也是在情理之中,可超过80%数据丢失率实在太离谱。排除了误操作的可能性之后,开始寻找原因。

Read the rest of this entry »

, ,

No Comments

Redis的主从复制

作为MySQL对于Web应用的优化之一,主从复制(Master-slaver)是普遍被接受的,Redis作为当下一个no-sql的解决方案,很自然的将这个特性引入。同时将“操作便捷”作为一大目标,Redis的主从复制更为简单,甚至不需要额外的操作,完全可以在两台热机之间进行。

Read the rest of this entry »

,

No Comments

Mysql Innodb的两种表空间方式

要说表空间,Mysql的表空间管理远远说不上完善。换句话说,事实上Mysql根本没有真正意义上的表空间管理。Mysql的Innodb包含两种表空间文件模式,默认的共享表空间和每个表分离的独立表空间。只要在my.cnf里面增加innodb_file_per_table=1就可以从共享表空间切换到独立表空间。当然对于已经存在的表,则需要执行alter table MY_TABLE engine=innodb命令迁移数据。

Read the rest of this entry »

No Comments

从SQL到NoSQL

之前接触到的基于LAMP平台的网站,凡是稍微有一点量上去的,在数据结构的设计上总是离不开“拆库拆表”。同样,作为网站的数据结构设计,很少会出现类似ERP系统才会应用到的函数(function)、存储过程(procudce)、触发器(trigger)什么的——曾经看过有ERP系统的所有逻辑都是通过这3者保存在数据库端的。加上MySQL本身的一些因素,用之前一个朋友的话说:“Mysql在网站中的地位更多的是一个数据容器,而不是完整意义上的数据库。”

Read the rest of this entry »

, , , ,

No Comments

Hadoop的单机部署

 

要说最近最热的云计算,不得不提Hadoop。这个项目就是为集群运算而生的。依赖于它的项目n多,个人感觉hadoop已经逐渐成为一个“基于Java的分布式运算中间件”。

这里安装的hadoop为ver 0.21.0版本,包含了HDFS分布式文件系统。平台为老一套的Ubuntu 1104 server for amd64。

既然是Java Base的,首先要准备jdk环境。默认1104已经把java从apt中剔除了——跟oracle收购sun不无关系,尽管openjdk还在,我还是建议安装sun-jdk。具体实现如下:

Read the rest of this entry »

, , , ,

No Comments

Ubuntu上Coreseek+php的安装

Coreseek是一个基于sphinx引擎,支持与mmseg中文分词模块合作完成中文的全文搜索引擎。相对sql这类操作,Coreseek负载可谓是微不足道。当然类似的索引服务器还有给予Java的solr等。我选择coreseek的主要原因之一是他可以通过配置后可以与现有的mysql客户端兼容,并可以直接嵌入到mysql中成为mysql的引擎之一。

首先,下载安装包,我选择的是最新的stable版, 不过不客气的说,即便是coreseek的stable版本,不论是从稳定性、兼容性还是灵活性上都不能算是完善,至少无法跟apache这类经典应用相提并论。

Read the rest of this entry »

, , , , , ,

No Comments

运维的CAP原则

小站上的 文章大多以实际操作为主,这次就介绍点理论吧。

曾经跟几个同行聊起了数据库这边的容错方案,有朋友发过类似的牢骚:“网站(或者数据库)做了负载均衡,可用性提高了,单点故障也不怕了,但数据的同步总是慢半拍,无法适用某些应用。如果要求完全解决一一致性的麻烦,就只能到回去。”

Read the rest of this entry »

,

1 Comment

LAMP的常用扩展安装

之前已经弄过许多篇关于LAMP搭建的东西,都是基于最简单包的,这次说说几个比较常用扩展的安装:

Read the rest of this entry »

, , , , , , ,

No Comments

高负载的Lamp架构

记得那时是2005年10月,开源小站刚上线不久的一篇文章。那时的我还仅仅将网站的高可用性和大负载,大流量集中在“堆硬件”的层面上。包括之后的一篇文档,似乎也没有逃脱这个范畴。之后由于工作内容的关系,始终没有再继续探讨这个问题。仅仅只在一篇关于GAE的文章中讲述了一下架构的趋势。

时隔了5年多,不妨回头重新从新的高度上说说LAMP结构的网站如何支撑尽可能大的负载。同样说明,本文代表站长Litrin的个人意见,欢迎共同探讨,但喷子慎入。

Read the rest of this entry »

, , , , ,

No Comments