Akawa

ETY001的博客

用sudo apt-get install mongodb安装了mongodb后,总是启动失败,查看log日志,发现了以下错误:

1
2
3
***** SERVER RESTARTED *****

/usr/bin/mongod: symbol lookup error: /usr/bin/mongod: undefined symbol: _ZN7pcrecpp2RE4InitEPKcPKNS_10RE_OptionsE

从搜索引擎上找不到,最后,在MongoDB官网上找到一个方法又重新装了一遍就可以用了,是用的10gen编译的deb包安装的,不过貌似官方推荐源码编译安装。

具体安装10gen的方法如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
The Ubuntu package management tool (i.e. dpkg and apt) ensure package consistency and authenticity by requiring that distributors sign packages with GPG keys. Issue the following command to import the 10gen public GPG Key:

**sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10**

Create a **/etc/apt/sources.list.d/10gen.list** file and include the following line for the 10gen repository.
**deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen**

Now issue the following command to reload your repository:
sudo apt-get update

Install Packages
Issue the following command to install the latest stable version of MongoDB:
**sudo apt-get install mongodb-10gen**

今天读完了《黑客与画家》的第一章,上次那篇读书笔记1是记录的译者写的序,一般看书我都是先看序,这里往往是一本书的精髓所在。我读书的速度依旧是很慢,即便是这一章在一年前,看过电子书版的。不得不说,即便是一年以后再看这一章,我依旧是和当年读这一章时的想法是一样的,感觉作者的一席话解释了自己脑袋中的各种为什么?

第一章讲的是书呆子为什么不受欢迎,虽然短短的十来页,但是我还是觉得,里面很多现象总结的很对,其中一点最为重要就是书呆子们其实并非是呆,而是因为对于和其他人相比,书呆子们追求的目标不同罢了。“书呆子不受欢迎的真正原因,是他们脑子里想着别的事情。他们的注意力都放在读书或者观察世界上面,而不是放在穿衣打扮、开晚会上面”。另外作者也阐述了为啥聪明的小孩在青少年时期,比如11岁到17岁,有着一生中最糟糕的人生经历,那是因为“11岁前,小孩的生活由家长主导,其他孩子的影响有限。孩子们不是不关心小学里其他同学的想法,但是后者不具有决定性影响”。在这一点上,我是深有感触,我的确是没有感到小学是痛苦,因为那时自己脑袋并没有很多东西,父母的指挥是你做事情的参照标尺,所以,小学可以用过的很幸福来形容,但是真正恶心的是从初三转学开始,我觉得我的生活就发生了很大的变化。

阅读全文 »

保罗 格雷厄姆的创业哲学,他的创业公式是:

1、搭建原型
2、上线运营(别管bug)
3、收集反馈
4、调整产品
5、成长壮大

他鼓励创业公司快速发布产品,以尽早验证创意是否可行。
一定要关注用户需要什么,这样才有办法将一个坏项目变成好项目。
创始人的素质比好的创意更重要一些。
创始成员人数最好不要超过3个。

今天开始上服务器上实战了,不得不说在虚拟机的演习跟在服务器上的实战差距还是很大的。现在说遇到的问题:

1、一共两台2U的服务器,其中一台2U机器的一个网卡貌似挂掉了,现在把心跳线合并进了另外那个RIP的网卡。其实这个网卡有问题,还是因为通过网络安装系统的时候发现的。

2、每个服务器上一共有8块硬盘,每块1个T,其中之前服务器的每块硬盘都是用过的,而我在做drbdadm create-md的时候,提示下面的错误:

`md_offset
al_offset
bm_offset
Found ext3 filesystem which uses
Device size would be truncated, which
would corrupt data and result in
‘access beyond end of device’ errors.
You need to either

  • use external meta data (recommended)
  • shrink that filesystem first
  • zero out the device (destroy the filesystem)
    Operation refused.
    Command ‘drbdmeta`

看意思是原来的分区的文件系统还存在,没法初始化成drbd设备,用下面这条命令处理下:

#dd if=/dev/zero bs=1M count=1 of=/dev/sda1; sync

然后再执行create-md,我是执行了两边才成功的,如下:

[root@node2 ~]# drbdadm create-md zentao v08 Magic number not found v07 Magic number not found v07 Magic number not found v08 Magic number not found Writing meta data... initialising activity log NOT initialized bitmap New drbd meta data block sucessfully created. [root@node2 ~]# drbdadm create-md zentao v07 Magic number not found v07 Magic number not found You want me to create a v08 style flexible-size internal meta data block. There apears to be a v08 flexible-size internal meta data block already in place on /dev/sdd1 at byte offset 1000202235904 Do you really want to overwrite the existing v08 meta-data? [need to type 'yes' to confirm] yes

Writing meta data…
initialising activity log
NOT initialized bitmap
New drbd meta data block sucessfully created.

3、再就是我的drbd一直是secondery/unknown,更改了一下syncer的100M为10M后可以了。又出现了这个问题,发现其实是防火墙导致的节点之间通信失败。

很久木有大半夜的写技术文章了,最早可以追溯到四年前的大一上学期,在网吧,周边一圈打游戏看电影聊天的人,就我自己拿着本ASP,在敲代码。。。。

扯远了,接着昨天把heartbeat跑通后(貌似准确的来说是前天了。。。现在是16号凌晨了。。暂且就当做是15号吧o(︶︿︶)o),今天下午恶补和复习了n多的知识,比如LVM,硬盘分区之类的,然后晚上开工了,整个过程参考了这篇文章,http://linux.chinaunix.net/techdoc/database/2008/10/28/1041372.shtml。

这篇文章已经说的很详细了,只是说一下我在实现中遇到的问题和解决方法。

总的来说今天基本上没有遇到什么问题,一切很顺利,首先要说的是,我用的centos5.3,在DRBD官网上看到,centos5以上的可以用yum install drbd kmod-drbd 来安装软件和模块,瞬间就感到很幸福,但是在我实践的时候,并没有成功,提示kmod版本冲突,经过思考和观察,我试了下yum install drbd82 kmod-drbd82就成功了,应该是源里面只有8.2版本的吧。。。

貌似就这一条。。。

再就是现在还没有解决的问题就是两台机器都重启后,两台机器都处于secondary状态,不解中,感觉好像是heartbeat的haresource配置文件配置的不对,还在调试。

2:54补充:果然是haresource的问题。。。。shell命令和IP间掉了个空格。。。

最近在搞双机热备,准备用heartbeat和DRBD来实现,由于之前没有接触过,于是想先逐个研究下,然后再集成起来。

在自己本上搭了两个虚拟机,具体环境是

centos5.3系统,
一键lnmp包,
VIP:192.168.1.150,
RIP1:192.168.1.190,心跳IP1:192.168.2.190,
RIP2:192.168.1.191,心跳IP2:192.168.2.191。

从昨天晚上8点一直折腾到今天5点终于是做好了。下面就是相关的总结:

1、安装heartbeat我是直接用的yum,这个就挺好用的,也不用担心安装顺序,系统自动按顺序安装,只是注意一点,就是第一次安装的时候,一共安装3个包,第三个包才是heartbeat,但是程序会在安装第三个包的时候报错,提示hacluster用户已存在,这个时候,你直接再来一遍yum install heartbeat就安装好了。。。在这里我卡住了1个多小时,现在还没有仔细考虑是什么原因。

2、配置方面的文章,网上有很多,经过我的实验过程,我觉得这一篇还是不错的,我也是看了这一篇文章后,才知道是什么原因卡住了我10多个小时。文章地址:http://sushan.blog.51cto.com/3532080/733484

3、haresource这个配置文件,主从节点是一样的。这个之前我配错了,所以卡住了10个多小时,具体的错误表现是,主从节点都绑定了VIP。

4、如果你是先安装了一台虚拟机,并且配置好了heartbeat后,通过复制得到从节点的话,那么你需要在从节点卸载掉heartbeat,然后删除/var/lib/heartbeat目录,然后再重装heartbeat,因为uuid会有冲突。

HeartBeat安装
[root@ha ~]# yum -y install heartbeat
安装过程中会报错:
useradd: user hacluster exists
error: %pre(heartbeat-2.1.3-3.el5.centos.i386) scriptlet failed, exit status 9
error: install: %pre scriptlet failed (2), skipping heartbeat-2.1.3-3.el5.centos
退出后,再次执行:
[root@ha ~]# yum -y install heartbeat

vim /etc/network/interfaces

找到对应的网卡加入相关的信息,比如:

auto eth0
iface eth0 inet static
address 192.168.1.101
netmask 255.255.255.0
gateway 192.168.1.1
network 192.168.1.0
broadcast 192.168.1.255

这个方法很多。 记录一个简单的。

mb_strlen($str, ‘GBK’);

缺点是要安装mb库。

不过这个还是有部分问题待解决。

GB码编码规则是这样的:每个汉字由两个字节构成,第一个字节的范围从0XA1-0XFE,共96种。第二个字节的范围分别为0XA1-0XFE,共96种。利用这两个字节共可定义出 96 * 96=8836种汉字。实际共有6763个汉字。
BIG5码编码规则是这样的:每个汉字由两个字节构成,第一个字节的范围从0X81-0XFE,共126种。第二个字节的范围分别为 0X40-0X7E,0XA1-0XFE,共157种。也就是说,利用这两个字节共可定义出 126 * 157=19782种汉字。这些汉字的一部分是我们常用到的,如一、丁,这些字我们称为常用字,其BIG5码的范围为0XA440-0XC671,共 5401个。较不常用的字,如滥、调,我们称为次常用字,范围为 0XC940-0XF9FE,共7652个,剩下的便是一些特殊字符。

安全点的方法。

function StrLenW($str)
{
$count = 0;
$len = strlen($str);
for($i=0; $i<$len; $i++,$count++)
if(ord($str[$i])>=128)
$i++;
return $count;
}

采自八点半的阿布

0%