2007年7月12日星期四

sudo 介绍

sudoers这个文件是由一个选择性的主机别名(host alias)节区,一个选择性的指令别名(command alias)节区以及使用者说明(user specification)节区所组成的。所有的指令别名或主机别名必须需以自己的关键字作为开始(Host_Alias/Cmnd_Alias)。
使用者说明节区格式:
使用者 接取群组 [: 接取群组 ]...
接取群组 ::= 主机象征 = [op]指令象征 [,[op]指令象征]...
主机象征 ::= 一个小写的主机名称或主机别名。
指令象征 ::= 一个指令或指令别名。
op ::= 逻辑的 '!' 否定运算元。
主机别名节区格式:
Host_Alias 主机别名 = 主机列表
Host_Alias ::= 这是一个关键字。
主机别名 ::= 一个大写的别名。
主机列表 ::= 以逗号间隔的一些主机名称。
指令别名节区格式:
Cmnd_Alias 指令别名 = 指令列表
Cmnd_Alias ::= 这是一个关键字。
指令别名 ::= 一个大写的别名。
指令列表 ::= 以逗号间隔的一些指令。
保留的别名“ALL”在“{Host,Cmnd}_Alias”里都可以使用。不要用“ALL”来定义一个别名,这个别名无效。注意到“ALL”暗示全部的主机和指令。
可以使用这个语法从整个范围中减掉一些项目:
user host=ALL,!ALIAS1,!/etc/halt...

log4j 简单配置

1.将log4j 的jar 置于 lib 下

2.log4j.properties置于 classes 下

3.log4j.properties

log4j.rootCategory=ERROR, file,console

log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout

#log4j.appender.console.layout.ConversionPattern= %t %p - %m %n

log4j.appender.file=org.apache.log4j.RollingFileAppender

log4j.appender.file.File=./example.log // D:\Program Files\netbeans-5.0\enterprise2\jakarta-tomcat-5.5.9\bin

log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern= %d{yyyy-MM-dd HH:mm:ss} : %t %p - %m %n
4. import=org.apache.commons.logging.Log;
% 3B import=org.apache.commons.logging.LogFactory;


5.Log logger = LogFactory.getLog(this.getClass());
logger.error("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");

2007年7月3日星期二

oracle 的数据类型

9i 的数据类型

名称 含义
Char 用于描述定长的字符型数据,长度<= 2000 字节
varchar2 用于描述变长的字符型数据,长度<= 4000 字节
nchar 用来存储Unicode字符集的定长字符型数据,长度<= 1000 字节
nvarchar2 用来存储Unicode字符集的变长字符型数据,长度<= 1000 字节
number 用来存储整型或者浮点型数值
Date 用来存储日期数据
Long 用来存储最大长度为2GB的变长字符数据
Raw 用来存储非结构化数据的变长字符数据,长度<= 2000 字节
Long raw 用来存储非结构化数据的变长字符数据,长度<= 2GB
rowid 用来存储表中列的物理地址的二进制数据,占用固定的10个字节
Blob 用来存储多达4GB的非结构化的二进制数据
Clob 用来存储多达4GB的字符数据
nclob 用来存储多达4GB的Unicode字符数据
Bfile 用来把非结构化的二进制数据存储在数据库以外的操作系统文件中
urowid 用来存储表示任何类型列地址的二进制数据
float 用来存储浮点数

VI常用命令

  • 命令模式
    • 移动光标
      • h 或 向左方向键(←) → 光标向左移动一个字元
      • j 或 向下方向鍵(↓) → 光标向下移动一个字元
      • k 或 向上方向鍵(↑) → 光标向上移动一个字元
      • l 或 向右方向鍵(→) → 光标向右移动一个字元
      • [Ctrl] + [f] → 屏幕『向下』移动一页,相当于 [Page Down]按键
      • [Ctrl] + [ b ] → 屏幕『向上』移动一页,相当于 [Page Up] 按键
      • n → n 表示『数字』。按下数字后再按空白鍵,光标会向右移动这一行的 n 个字元
      • 0 → 数字『 0 』:移动到这一行的最前面字元处
      • $ → 移动到这一行的最后面字元处
      • G → 移动到这个文件的最后一行
      • nG → n 为数字。移动到这个文件的第 n 行(可配合 :set nu)
      • gg → 移动到这个文件的第一行,相当于 1G
      • n → n 为数字。光标向下移动 n 行


    • 查找与替换
      • /word → 向光标之下查找一个名称为 word 的字符串。如想查找 eric4ever 字符串,输入 /eric4ever 即可
      • ?word → 向光标之上查找一个名称为 word 的字符串
      • n → 『重复前一个查找的动作』
      • N → 与 n 刚好相反,为『反向』进行前一个查找动作
      • :n1,n2s/word1/word2/g → n1 与 n2 均为数字。在第 n1 与 n2 行之间查找 word1 字符串,并将该字符串替换为 word2。如:在 1 到 9 行之间查找 eric4ever 并替换为 ERIC4EVER 则:『:1,9s/eric4ever/ERIC4EVER/g』
      • :1,$s/word1/word2/g → 从第一行到最后一行查找 word1 字符串,并将该字符串替换为 word2
      • :1,$s/word1/word2/gc → 从第一行到最后一行查找 word1 字符串,并将该字符窗替换为 word2,替换前显示提示对话框是否确认替换


    • 删除、复制与粘贴
      • x, X → 在一行字当中,x 为向后刪除一个字元 (相当于 [del] 按键), X 为向前刪除一个字元(相当于 [backspace] 按键)
      • dd → 刪除光标所在的那一整列
      • ndd → n 为数字。刪除光标所在的向下 n 列
      • yy → 复制光标所在的那一行
      • nyy → n 为数字。复制光标所在的向下 n 列
      • p, P → p 为将已复制的内容粘贴在光标下一行上,P 则为粘贴在光标的上一行
      • u → 还原前一个动作
      • [Ctrl]+r → 重做上一个动作
      • . → 小数点,意思是重复前一个动作


  • 编辑模式
    • i, I → 插入:在目前的光标所在处插入输入的文字,已存在的文字会向后退; 其中, i 为『从目前光标所在处插入』, I 为『在目前所在行的第一個非空白字元处开始插入』
    • a, A → a 为『从目前光标所在的下一个字元处开始插入』, A 为『从光标所在行的最后一个字元处开始插入』
    • o, O → o 为『在目前光标所在的下一行处插入新的一行』, O 为『在目前光标所在处的上一行插入新的一行』
    • r, R → r 为『取代光标所在的那一个字元』, R 为『一直取代光标所在的文字,直到按下 ESC 为止』
    • Esc → 退出编辑模式,回到一般模式中



  • 末行指令模式
    • :w → 将编辑的文件写入到硬盘上
    • :q → 退出 vi
    • :wq → 保存后退出,若为 :wq! 则为强制保存为退出
    • :set nu → 显示行号
    • :set nonu → 取消显示行号

2007年6月27日星期三

linux 下oracle10g 的安装

Installing Oracle 10g R2 on Ubuntu Edgy


  1. Login to ubuntu from your usual administrative account which has sudo access
  2. Make sure you have enough ram, swap space and disk space as per oracle requirements.
  3. Install the required packages (first make sure ‘universe’ is enabled in your sources.list):
    • sudo apt-get install build-essential libaio rpm lesstif2-dev alien
  4. Create the users and groups oracle needs:
    • sudo groupadd oinstall
    • sudo groupadd dba
    • sudo groupadd nobody
    • sudo useradd -g oinstall -G dba,nobody -d /opt/oracle -s /bin/bash oracle
  5. Set oracle user’s password
    • sudo passwd oracle
  6. Create the directory for the software installation and assign ownership to oracle:oinstall
    • sudo mkdir /opt/oracle
    • sudo chown -R oracle:oinstall /opt/oracle
    • sudo chmod -R 775 /opt/oracle
  7. In another console, login as oracle to make sure it works fine, then logout.
  8. Append user oracle’s .bashrc with PATH and ORACLE:BASE,HOME and SID information
    • sudo vi /opt/oracle/.bashrc
    • export ORACLE_BASE=/opt/oracle
    • export ORACLE_HOME=$ORACLE_BASE/product/10gR2
    • export ORACLE_SID=orcl
    • export PATH=$PATH:$ORACLE_HOME/bin
  9. Make sure the correct kernel parmeters are appended to /etc/sysctl.conf
    • kernel.shmall = 2097152
    • kernel.shmmax = 2147483648
    • kernel.shmmni = 4096
    • kernel.sem = 250 32000 100 128
    • net.core.rmem_default = 262144
    • net.core.rmem_max = 262144
    • net.core.wmem_default = 262144
    • net.core.wmem_max = 262144
    • fs.file-max = 65536
    • net.ipv4.ip_local_port_range = 1024 65000
  10. Set the kernel parameters or reboot
    • /sbin/sysctl -p
  11. Set /etc/security/limits.conf
    • * soft nproc 2047
    • * hard nproc 16384
    • * soft nofile 1024
    • * hard nofile 65536
  12. Create symbolic links and camoflage Kubuntu to look more like an enterprise rpm based distro because the oracle installer is expecting rhel, sles or asianux based distros.
    • sudo ln -s /usr/bin/awk /bin/awk
    • sudo ln -s /usr/bin/rpm /bin/rpm
    • sudo ln -s /lib/libgcc_s.so.1 /lib/libgcc_s.so
    • sudo ln -s /usr/bin/basename /bin/basename
  13. Mount the Oracle10g CD and run the installer
    • /runInstaller -ignoreSysPrereqs
  14. Installation will be uneventful provided above steps are followed
  15. Enable the oracle user to dbshut, dbstart and lsnrctl start
    • sudo vi /etc/oratab and change :N to :Y

All Done!


Oracle 10g Enterprise / Standard Edition on Ubuntu 5.10 Breezy