MongoDB是C++开发的一款开源、无模式的文档型数据库,具有高性能、易部署、易使用、数据存储方便等特点;MongoDB采用Bson(binary json)的形式存储数据,无锁,无事务,有索引,支持集群和分片功,可动态增删结点。

实验环境:
系统:FreeBSD 8.1-RELEASE
版本:mongodb v1.6.6

安装:
  目前,官网上并没有FreeBSD下MongoDB的pkg包下载,所以FreeBSD下MongoDB的安装方式只有两种:ports方式和源码方式。其中Ports方式十分简单,但是由于网速等因数影响,可能要很久才能完成安装;而在MongoDB依赖包安装不全的的情况下,使用源码方式安装MongoDB相对会更为复杂。
1. Ports方式安装MongoDB:

  1. cd /usr/ports/databases/mongodb  
  2. make  
  3. make install 

  Ports方式安装MongoDB十分简单,就以上三条命令。但由于网络问题或Ports树太旧等原因可能会报错。如出现错误终止,请仔细观察错误代码,删除/usr/ports/distfiles/下未下载完成的文件或更新Ports树后重新Make。
  如果你有多台FreeBSD主机要安装MongoDB,而且这些主机的硬件平台几乎相同,为了提高工作效率,你可以将Ports方式安装的MongoDB、以及MongoDB的依赖包,打包成pkg包,然后通过scp方式复制到其他主机上使用pkg_add命令安,效率会成倍的提高。具体打包方式如下:

  1. cd /var/db/pkg 
  2. pkg_create -R -b mongodb-1.*   # 把*号换成版本号,-R参数为连同依赖包一起打包 
  3. ls *.tbz            # 查看打好的包 

  按以上方式打好包后,即可以拷贝到其他主机上,使用pkg_add mongodb-1.*.tbz进行安装。
2. 源码的方式安装:
①. 下载MongoDB:
打开www.mongodb.org/downloads页面,在最后一列找到你要需要版本的源码(我这里是v1.6.6),然后执行下列命令:

  1. #安装依赖包 
  2. cd /usr/ports/lang/spidermonkey && make && make install 
  3. cd /usr/ports/devel/scons && make && make install  #在弹出的窗口中选上"python" 
  4. cd /usr/ports/devel/boost-all && make && make install 
  5. cd /usr/ports/devel/libexecinfo && make && make install 
  6. cd /usr/ports/devel/pcre && make && make install    #官方的文档中没此项,会报错 
  7.  
  8. #下载,解压,编译 
  9. cd /usr/local 
  10. fetch http://downloads.mongodb.org/src/mongodb-src-r1.6.5.tar.gz 
  11. tar -zxvf mongodb-src-r1.6.5.tar.gz 
  12. mv mongodb-src-r1.6.5 mongodb-1.6.5 
  13. cd mongodb-1.6.5 
  14. scons .                # 然后等待完成 
  15.  
  16. # 设置环境变量 
  17. export PATH=$PATH:/usr/local/mongodb-1.6.5 

启动MongoDB服务:
  MongoDB的服务端运行模式有三种,分别是:单台模式、主从模式、分片模式。
1. 单台模式的Mongodb的启动

  1. mkdir -p /data/db  
  2. mongod --dbpath /data/db --logpath /data/db/db.log  --fork 
  3.  
  4. # 查看状态 
  5. mongo 127.0.0.1:27017 
  6. show dbs #显示数据库 
  7. help 

2. 主从(Master、Slave)模式的Mongodb的启动:
Master主机( ip为10.0.0.1):

  1. mongod --master --dbpath /data/master --logpath /data/master/master.log  --fork 
  2. cat /data/master/master.log 

Slave主机(ip为10.0.0.2):

  1. mongod --slave --dbpath /data/slave --logpath /data/slave/slave.log  --source 10.0.0.1:27017 --fork 
  2. cat /data/slave/slave.log 

测试:

  1. # 查看状态 
  2. mongo 10.0.0.1:27017 
  3. show dbs #显示数据库 
  4. help

3. 分片模式:
由于分片模式配置相对复杂,在另篇文章详细介绍。

相关网站:
1. MongoDB下载:www.mongodb.org/downloads
2. 各种平台的安装帮助: http://www.mongodb.org/display/DOCS/BUILDING
3. 他们在使用MongoDB: http://www.mongodb.org/display/DOCS/Production+Deployments
4. 开发驱动:http://www.mongodb.org/display/DOCS/Drivers

本日志由 Admin 于 2011-01-11 14:15:42 发表到 数据库 中,目前已经被浏览 2045 次,评论 44 次;

作者添加了以下标签: FreeBSDMongoDB

实验环境:
 操作系统:FreeBSD 8.0-RELEASE
 CPU构架:amd64
数据库版本:postgresql-8.4.5

1. 下载PostgreSQL安装包:
  在Web浏览器中打开http://www.postgresql.org/ftp/source/,找到要下载的源码包URL地址,然后执行如下命令:

  1. # cd /tmp 
  2. # fetch http://wwwmaster.postgresql.org/redir/391/f/source/v8.4.5/postgresql-8.4.5.tar.bz2 


 2. 编译安装PostgreSQL:

  1. # tar -jxvf postgresql-8.4.5.tar.bz2 
  2. # cd postgresql-8.4.5 
  3. # ./configure --prefix=/usr/local/PostgreSQL 
  4. # make && make install 


3. 初始化PostgreSQL数据库:

  1. # pw user add postgresql -s /bin/csh 
  2. # passwd postgresql 
  3. mkdir -p /data 
  4. chown postgresql /data/ 
  5. # su postgresql 
  6. # /usr/local/PostgreSQL/bin/initdb -D /database/ 

注: 在初始化PostgreSQL数据库时,为了以后的维护方便,建议将数据文件建立在目录下,如我这里的/data。数据库文件就在此目录下的base里,如/data/base/下。

4. 启动数据库:

  1. # nohup /usr/local/PostgreSQL/bin/postgres -D /database &  //启动数据库并后台运行 
  2. # /usr/local/PostgreSQL/bin/psql -l //列出所有数据库 
  3. # /usr/local/PostgreSQL/bin/psql postgres //登录到postgres数据库 
  4. # /usr/local/PostgreSQL/bin/createdb aiezu //建立database 


5. 疑难解答:
①. 问: 在"make && make install"时报以下错误:

  1. You must use GNU make to build PostgreSQL. 
  2. *** Error code 1 

答:在make时会用到gmake,所以请先用ports安装gmake,具体操作请参考相关文章。

②. 问: 在执行fetch命令时报如下错误:

  1. fetch: ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/make-3.81.tar.bz2: No address record 
  2. => Couldn't fetch it - please try to retrieve this 
  3. => port manually into /usr/ports/distfiles/ and try again. 
  4. *** Error code 1 

答:请检查FreeBSD是否正常连接网络,是否设置了IP地址,默认路由,DNS服务器。

③. 问: 执行/usr/local/PostgreSQL/bin/psql命令时:

  1. psql: FATAL:  database "postgresql" does not exist 

答: 引起此错误的原因是psql后面没有加数据库名时,FreeBSD默认会以$USER为数据库名进行连接。所以请在psql后面加上存在的数据库名。

④. 问: 执行/usr/local/PostgreSQL/bin/psql命令时:

  1. psql: could not connect to server: Connection refused  
  2.         Is the server running locally and accepting  
  3.         connections on Unix domain socket "/tmp/.s.PGSQL.5432"? 

答: 请确认postgresql数据库服务是否成功启动。

本日志由 Admin 于 2010-12-21 09:56:52 发表到 数据库 中,目前已经被浏览 1816 次,评论 34 次;

作者添加了以下标签: FreeBSDPostgreSQL

  今天在Linux下装了Oracle 10g数据库,装好后将Linux系统语言切换为中文后,发现Oracle的em(Enterprise Manager)、dbca(database configuration assistant)中文界面、按钮全为方块或乱码,十分让人头痛。通过Google,百度查找原因,经过多次尝试,终于解决看到了em、dbca界面看到了可爱的中文。


先介绍一下我的系统坏境:

操作系统Red Hat Enterprise Linux AS 5
Oracle版本10.1.0.3 (10g)
$LANGzh_CN.UTF-8
$ORACLE_HOME/opt/oracle/product/10.1.0/Db_1/


em,dbca中文方块乱码问题具体解决方法:
一、安装简体中文字体包fonts-chinese-3.02-9.6.el5:
  我们首先得安装rhel5.0系统DVD中自带的中文字体包fonts-chinese-3.02-9.6.el5.noarch.rpm,这是至关重要的。如果没有安装此字体包,简体中文字体文件/usr/share/fonts/zh_CN/TrueType/zysong.ttf和/usr/share/fonts/chinese/TrueType/zysong.ttf就不存在的,中文显示就更无从说起了。
二、 设置Linux系统语言坏境:

  1. export LANG=zh_CN.UTF-8 

三、 拷贝替换font.properties文件,执行下面两条命令:

  1. # cd $ORACLE_HOME/jre/1.4.2/lib/    
  2. # cp font.properties.zh_CN.Redhat8.0 font.properties  
  3. //注:也可以用font.properties.zh_CN_UTF8.Redhat,font.properties.zh_CN.*替换font.properties。 

执行完这两条命令后,尝试启动Java控制台,查看是否解决中文方块问题:

  1. # ../bin/ControlPanel 

如果已经不再是方块,则跳过第四步,否则继续按第4步操作。
四、 修改第三步复制替换的font.properties文件,将文件中的最后一行:

  1. filename.-misc-zysong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1=/usr/share/fonts/zh_CN/TrueType/zysong.ttf 

改为

  1. filename.-misc-zysong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1=/usr/share/fonts/chinese/TrueType/zysong.ttf 

文件中的最后一行指向的即为中文字体文件,确认文件是否存在。
、按三、四步的操作,重新拷贝建立$ORACLE_HOME/jdk/jre/lib/下的字体设置文件。执行完此步骤后,dbca、netca等基于Java的程序的中文乱码方块问题得到解决。
、清除按钮gif图片cache并重启服务(针的Web界面的管理程序):

  1. searchctl stop  
  2. emctl stop dbconsole  
  3. isqlplusctl stop  
  4. rm -rf $ORACLE_HOME/oc4j/j2ee/oc4j_applications/applications/isqlplus/isqlplus/cabo/images/cache/zhs/*.gif  
  5. rm -rf $ORACLE_HOME/oc4j/j2ee/oc4j_applications/applications/em/em/cabo/images/cache/zhs/*.gif  
  6. searchctl start  
  7. emctl start dbconsole  
  8. isqlplusctl start 

打开下面URL进行测试:

  1. Ultra Search URL:  
  2. http://yourip:5620/ultrasearch  
  3.  
  4. Ultra Search Administration Tool URL:  
  5. http://yourip:5620/ultrasearch/admin  
  6.  
  7. iSQL*Plus URL:  
  8. http://yourip:5560/isqlplus  
  9.  
  10. iSQL*Plus DBA URL:  
  11. http://yourip:5560/isqlplus/dba  
  12.  
  13. Enteprise Manager 10g Database Control URL:  
  14. http://yourip:5500/em 

经过以上步骤的操作,彻底解决了Linux下Oracle数据库em、dbca、netca中文界面、按钮方块乱码问题。

本日志由 Admin 于 2010-07-20 20:31:05 发表到 数据库 中,目前已经被浏览 4177 次,评论 28 次;

作者添加了以下标签: LinuxOracle