Monthly Archives: 三月 2010

CouchDB介绍


什么是CouchDB

文档数据库服务器,可通过RESTful JSON API访问
点对点,模式自由
分布式,强大的增量复制、双向冲突检测和管理
具备查询,建立索引的功能,提供面向表的报告引擎,并可以使用Javascript来查询

CouchDB不是什么?

关系型数据库
关系型数据库的替代方案
面向对象的数据库,或者更具体地说,这意味着要作为一个面向对象编程语言的一个无缝的持久层。

主要特征
文档型
一个CouchDB文档是包含命名字段的对象,字段的值可以是字符,数字,日期或者列表或者是Map。举个例子
“Subject”: “这是一个CouchDB”
“Author”: “couchdb.apache.org”
“PostedDate”: “5/23/2006″
“Tags”: ["Documents", "Views", "Distributed"]
“Intro”: “分布式,文档结构的数据库服务器.”
在这个例子当中,Subject包含”这是一个CounchDB”的字段。Tags是包含”Documents”,”Views”,”Distributed”的列表
一个CounchDB 数据库相当于这些文档的集合,每一个文档通过唯一ID来标识
视图
为了解决这一结构添加到半结构化数据的问题,CouchDB通过Javascrip集成浏览模式来描述。视图是在数据库里面进行集成和描述文档,是建立在需求聚集,合并和描述数据库文档的一种方法。视图是动态建立,不影响原始文件,在相同的数据基础上,你可以根据自己的需求建立各种不同的视图形式
自由模式
CouchDB不像SQL数据库那样用来存储结构严密,相互关联的数据;CounchDB的设计目的是存储大量的半结构化,面向文档的数据。CouchDB 极大的简化了面向文档的应用程序开发工作.
分布式
CouchDB是一个同等访问的分布式数据库系统,任何数量的CouchDB主机(服务器或离线客户端)都可以有独立的”同一个数据库副本的副本”,应用程序可以有完整的数据库交互(查询,添加,编辑,删除).当重新联机或按照日程安排,数据库的更改会被复制双向定向。
CouchDB具有内置的冲突检测和管理,以及快速的增量复制进度,只复制文件和自上次复制后改变的字段。大多数应用程序不需要特别的计划采取分布式的更新和复制的优势。
不同于传统的数据库试图去集成多繁杂的分布式数据库特性,CouchDB是经过精心慎重的设计,建造和集成。文档,视图,安全和复制模型,特殊目的的查询语句,高效率和强大的磁盘布局都是经过精心整合为一个可靠和有效率的系统
CouchDB 应用
CouchDB适合于邮件系统,文档系统,CMS,地址本,电话本等

查询MySQL已有的用户的三种方法


查询MySQL已有的用户的方法
mysql -h ip -uroot -p123 -e ” 放以下的查询”
select * from mysql.User \G
select distinct(User) from mysql.user;

select db,host,user from mysql.User
对于MySQL DBA 来说,查阅mysql的用户信息是最平常不过的操作了,这里提供几种方法查看
mysql -h ip -uroot -p123 -e ” 放以下的查询”
select * from mysql.User \G
select distinct(User) from mysql.user;
select db,host,user from mysql.User

python 使用OptionParser的时候使用中文出错的解决过程


今天在使用OptionParser的时候,在填写帮助信息的时候使用了中文,却发现报了一系列的错误
代码如下
#!/usr/bin/env python
#coding:UTF-8
import ConfigParser,sys
try:
from optparse import OptionParser
except ImportError:
try:
from optik import OptionParser
except ImportError:
raise ImportError, ‘Requires Python 2.3 or the Optik option parsing library.’
parser = OptionParser()
parser.add_option(”-f”,”–file”,dest=”name”,
help=”帮助信息”,metavar=”FILE”)
parser.add_option(”-q”,”–quit”,
action =”store_false”,dest=”verbose”,default=”True”,
help=”帮助信息”)
(options,args) = parser.parse_args()
错误信息
File “get-parser-cn.py”, line 23, in <module>
(options,args) = parser.parse_args()
File “/usr/lib/python2.5/optparse.py”, line 1387, in parse_args
stop = self._process_args(largs, rargs, values)
File “/usr/lib/python2.5/optparse.py”, line 1431, in _process_args
self._process_short_opts(rargs, values)
File “/usr/lib/python2.5/optparse.py”, [...]

Slave落后于Master的检查步骤


前两天一直好好的master-slave,突然出现了几个slave复制严重落后于master的情况,在CU的论坛发了个帖子问大伙slave落后于master的原因分析,一哥们给的答复很专业
“落后的原因一般是master的写压力比较大,因为mysql的同步使用两个线程,一个读取bin-log,一个应用这些log,但是master上一般是多个线程写,所以压力大的时候,会造成从服务器一个线程写入不能及时完成,就会造成落后master了

再后来和公司的前辈讨论了下,总结了如下几个检查步骤
1. 在slave 执行show full processlist ,这个是最直接的方法,发现了Master端对一个大表的某个字段执行了update操作
2. 使用iostat来检查slave的io负载情况(也就是上面那哥们所说的写操作的检查了)
前两天一直好好的master-slave,突然出现了几个slave复制严重落后于master的情况,在CU的论坛发了个帖子问大伙slave落后于master的原因分析,一哥们给的答复很专业
“落后的原因一般是master的写压力比较大,因为mysql的同步使用两个线程,一个读取bin-log,一个应用这些log,但是master上一般是多个线程写,所以压力大的时候,会造成从服务器一个线程写入不能及时完成,就会造成落后master了

再后来和公司的前辈讨论了下,总结了如下几个检查步骤
1. 在slave 执行show full processlist ,这个是最直接的方法,发现了Master端对一个大表的某个字段执行了update操作
2. 使用iostat来检查slave的io负载情况(也就是上面那哥们所说的写操作的检查了)

这几天读的书 <<不抱怨的世界2--关系决定命运>> & <<晨间日记的奇迹>>


偶然在看到豆瓣的一个活动,朗诵<<不抱怨的世界2–关系决定命运>>,是浙江青年时报发起的一个活动,主题是”讨论<<不抱怨的世界2-关系决定命运>> 是否为狗尾续貂”。
之前看过一位师姐的blog介绍不抱怨的世界这本书,但没去了解这本书,这两天抽了点时间看,收获还是蛮大的
摘录一些不错的内容
当有些事情打扰你时,你可以说:“您或许还不知道……”用一种中立的、不带感*彩的方式表达你的想法
说出你的要求,不要害怕被拒绝。你会惊讶地发现,当你礼貌地询问时,人们还是很乐意配合的。试一下这样说“我需要……”和“能请你……吗?”
当你可以看透那些痛苦的过往,并且真诚地跟对方说一句“谢谢你给了我这种经历”时,你就知道自己已真正原谅此人了。只有拒绝争斗,才可能不再遭受他人攻击
<<晨间日记的奇迹>>
一句话描述这本书,告诉我们记晨间日记的好处以及如何坚持记晨间日记
作者是一位日本人,曾在东京创立了一所教育研究所,在该教育研究所的学生中,有不少知名的企业顾问和国际演员的子女.
看完了这个书后,通过搜索引擎,我找到了一款软件,这个软件的作者是在看完了这本书后编写了这个软件,涵盖了人际关系,家庭,朋友,人生的梦想,健康,饮食,锻炼,阅读,理财工作,快乐和惊喜,操作非常简单
从今天起,我也开始写晨间日记了
偶然在看到豆瓣的一个活动,朗诵<<不抱怨的世界2–关系决定命运>>,是浙江青年时报发起的一个活动,主题是”讨论<<不抱怨的世界2-关系决定命运>> 是否为狗尾续貂”。
之前看过一位师姐的blog介绍不抱怨的世界这本书,但没去了解这本书,这两天抽了点时间看,收获还是蛮大的
摘录一些不错的内容

当有些事情打扰你时,你可以说:“您或许还不知道……”用一种中立的、不带感*彩的方式表达你的想法
说出你的要求,不要害怕被拒绝。你会惊讶地发现,当你礼貌地询问时,人们还是很乐意配合的。试一下这样说“我需要……”和“能请你……吗?”
当你可以看透那些痛苦的过往,并且真诚地跟对方说一句“谢谢你给了我这种经历”时,你就知道自己已真正原谅此人了。只有拒绝争斗,才可能不再遭受他人攻击

<<晨间日记的奇迹>>
一句话描述这本书,告诉我们记晨间日记的好处以及如何坚持记晨间日记
作者是一位日本人,曾在东京创立了一所教育研究所,在该教育研究所的学生中,有不少知名的企业顾问和国际演员的子女.
看完了这个书后,通过搜索引擎,我找到了一款软件,这个软件的作者是在看完了这本书后编写了这个软件,涵盖了人际关系,家庭,朋友,人生的梦想,健康,饮食,锻炼,阅读,理财工作,快乐和惊喜,操作非常简单

从今天起,我也开始写晨间日记了

最近的动态


最近的动态
关键词:资源整合
最近在做一个公司产品数据库的资源整合项目,看起来很复杂,其实也不难,是把分散的数据库资源整合到一个平台,对其他数据库管理的相关工具提供最新的配置信息
,可以提高DBA进行数据库维护工作的效率
特点
1.和原有的资源管理方式不一样的是,以后DBA不需要为管理多个数据库的时候需要输入不同的IP地址等头痛了
2.同时支持对镜像库的进度进行web查询,方便开发人员和相关的人员查看复制进度
3.可以检测数据库维护工作的规范性,即检测产品库+历史库+镜像库+性能统计+备份日志
关键词:资源整合
最近在做一个公司产品数据库的资源整合项目,看起来很复杂,其实也不难,是把分散的数据库资源整合到一个平台,对其他数据库管理的相关工具提供最新的配置信息,可以提高DBA进行数据库维护工作的效率
特点
1.和原有的资源管理方式不一样的是,以后DBA不需要为管理多个数据库的时候需要输入不同的IP地址等头痛了
2.同时支持对镜像库的进度进行web查询,方便开发人员和相关的人员查看复制进度
3.可以检测数据库维护工作的规范性,即检测产品库+历史库+镜像库+性能统计+备份日志