2012

2012年了!

上一次写blog还是去年的暑假,当时正准备考OCP,在深圳夏天的酷暑中,猫在那仅能容下10个人、且没有空调的教室下,写下了上一篇日志。原本想把学习Oracle过程中所有的笔记都记在这里,后来也许是因为的天气的原因吧,也没耐心坚持下来。现在想想,如果当时能积累下来十几篇笔记,现在我会不会看起来更像一个OCP呢?

今天心血来潮,把我的Linode全部翻新;ubuntu更新到11.10,更新了(L)NMP所有的组件;原本凌乱的目录结构也整理了一下;内存也重新优化了一遍。全部弄完一天下来感觉非常舒服。还是不折腾不舒服啊 :P

给这里换了一个新的theme,名字叫blogum,尽管看起来一片白茫茫的,但是我个人还是非常崇拜这种minimalistic,simplicity的感觉。

我是绝对不相信什么末日论的,但是却看了《2012》电影3遍,因为看到Steve Jobs、Dennis Ritchie等各界名人在2011年相继去世,还怀疑2012会不会是阴谋论;我真是太矛盾了。。。

Oracle手动建立数据库方法

1, 在$ORACLE_HOME/dbs目录下,创建新数据库的pfile文件,其中至少包括以下参数(假设新数据库叫bill),文件名为initbill.ora:
*.background_dump_dest='/ocp/bill/admin/bdump'
*.compatible='10.2.0.1.0'
*.control_files='/bak/bill/control01.ctl','/ocp/bill/control02.ctl'
core_dump_dest='/ocp/bill/admin/cdump'
*.db_name=bill
instance_name=bill
*.job_queue_processes=10
*.sga_max_size=419430400
*.sga_target=423624704
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='/ocp/bill/admin/udump'

2, 根据pfile,创建所需的相应目录

3, export ORACLE_SID=bill

4, sqlplus / as sysdba 登录

5, 在SQL提示符下,输入:
startup nomount pfile='initbill.ora';
由pfile启动数据库

6, 待oracle实例启动到nomount状态下,输入:
create spfile from pfile;
通过pfile创建spfile

7, 退出SQL提示符后,输入:
orapwd file=orapwbill password=oracle
创建新的密码文件

8, 在$ORACLE_HOME/dbs目录下创建手动建库的sql脚本createdb.sql,内容示例:
create database bill
maxinstances 2
maxlogfiles 32
maxlogmembers 5
maxdatafiles 200
maxloghistory 290
user sys identified by oracle
user system identified by oracle
character set utf8
national character set al16utf16
datafile '/ocp/bill/oradata/system.dbf' size 300m
sysaux datafile '/ocp/bill/oradata/sysaux.dbf' size 200m
undo tablespace UNDOTBS1 datafile '/ocp/bill/oradata/undotbs1.dbf'
size 200m
default temporary tablespace temp tempfile '/ocp/bill/oradata/temp
1.dbf' size 100m
logfile
group 1 '/ocp/bill/oradata/redo1.log' size 100m,
group 2 '/ocp/bill/oradata/redo2.log' size 100m
;

9, 在SQL提示符下,输入:
@createdb.sql
运行刚刚创建的脚本

10, 在SQL提示符下,输入:
create tablespace users datafile '/ocp/bill/oradata/users.dbf' size 200m;
创建users表空间

11, 在SQL提示符下,输入:
@?/rdbms/admin/catalog.sql
@?/rdbms/admin/catproc.sql

创建数据字典

EOF

在Ubuntu 10.10上安装nginx+php-fpm+mysql

经过两天的研究,在我的linode上安装了nginx, php-fpm和mysql.在这里记录一下整个过程,也给有需要的人分享.

先安装updates
sudo apt-get update
sudo apt-get upgrade --show-upgraded

然后装aptitude
sudo apt-get install aptitude

安装mysql,按照屏幕提示输入root密码
sudo aptitude install mysql-server

接着是nginx
sudo aptitude install python-software-properties
sudo add-apt-repository ppa:nginx/stable
sudo aptitude update
sudo aptitude install nginx

创建/var/www
mkdir /var/www

php-fpm和一些模块
sudo aptitude install php5-cgi php5-mysql php5-fpm php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl

修改fastcgi_params
sudo vi /etc/nginx/fastcgi_params

加入以下参数
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on;

附nginx的范例配置文件

最后,重启nginx和php-fpm
sudo /etc/init.d/nginx restart
sudo /etc/init.d/php5-fpm reload

使用Linode一周小记

上周五linode搞了个活动,早上9点开始前100位购买服务的人都可以获得100美金的礼金,可以用来付月租,因为还有时差的关系,于是我那天一大早就起来坐在电脑前等着抢,结果成功抢到,不过最后听说差不多130分钟后才卖完.

之前我一直推崇mediatemple,主要的原因是他们有很多大公司的客户,只是他们的(dv)的价格真是vps中的劳斯莱斯,实在无法接受,只好参加了大猫的合租(顺便说一句,大猫的合租一直都很稳定,推荐!).用了linode一个星期下来,我对他们的看法大大改观,最让我惊讶和感动的就是他们support的速度,我开了5个ticket,每个都在5分钟内就收到回复,其中有两个还是凌晨1点多开的.这点很值得称赞.linode library的文章非常全面,也浅显易懂,非常适合我这样的新手.

在这里做个小广告,如果你也对linode的服务感兴趣,不妨考虑填我的referral code,
aba73904570c8608451f2cb9557fbba0c721038e
这样我也可以获得一些小的收益,两全其美.

Update 1: 刚才跑了一遍unixbench,把分数贴上来

==============================================================
System Benchmarks Index Values BASELINE RESULT INDEX
Dhrystone 2 using register variables 116700.0 54276450.3 4650.9
Double-Precision Whetstone 55.0 9296.7 1690.3
Execl Throughput 43.0 4583.5 1065.9
File Copy 1024 bufsize 2000 maxblocks 3960.0 284893.6 719.4
File Copy 256 bufsize 500 maxblocks 1655.0 73340.2 443.1
File Copy 4096 bufsize 8000 maxblocks 5800.0 925806.9 1596.2
Pipe Throughput 12440.0 1688667.5 1357.4
Pipe-based Context Switching 4000.0 152433.9 381.1
Process Creation 126.0 7258.8 576.1
Shell Scripts (1 concurrent) 42.4 9079.2 2141.3
Shell Scripts (8 concurrent) 6.0 1190.2 1983.7
System Call Overhead 15000.0 1518083.0 1012.1
========
System Benchmarks Index Score 1152.0