|
|
作者: yreqab 出自: |
之前一直觉oracle复杂,不如mysql简单好用(虽然mysql也没有学好)。工作需要在机器上装oracle服务器,学习使用。oracle设计思路和mysql差别巨大,其间参考了众多帖子,终于搞好了。
安装oracle 10g 1. 增加swap分区 安装需要1G的swap分区,如果不够的话 $dd if=/dev/zero of=/tmp/tmp.swap bs=1M count=100 $chmod 600 /tmp/tmp.swap $mkswap /tmp/tmp.swap $sudo swapon /tmp/tmp.swap
查看 swap分区: swapon -s
安装完毕,恢复swap $swapoff /tmp/tmp.swap $rm /tmp/tmp.swap
2. 创建用户 要用oracle用户安装,安装好后,同样用oracle用户启动。 $addgroup oinstall $addgroup dba $addgroup nobody
$useradd -g oinstall -G dba -d /home/oracle -m -s /bin/bash oracle $usermod -g nobody nobody
$sudo passwd oracle
3. 创建目录 oracle安装在此。 $mkdir -p /opt/ora10 $chown -R oracle:oinstall /opt/ora10 $chmod -R 775 /opt/ora10
4. 修改内核参数
$sudo vim /etc/sysctl.conf
添加: kernel.shmmax = 3147483648 kernel.shmmni = 4096 kernel.shmall = 2097152 kernel.sem = 250 32000 100 128 fs.file-max = 65536 net.ipv4.ip_local_port_range = 1024 65000
$sudo vim /etc/security/limits.conf
添加: oracle soft nofile 65536 oracle hard nofile 65536 oracle soft nproc 16384 oracle hard nproc 16384
让修改生效: $sudo sysctl -p
创建链接: $ln -s /usr/bin/awk /bin/awk $ln -s /usr/bin/rpm /bin/rpm $ln -s /usr/bin/basename /bin/basename
5. 设置用户环境
$su - oracle $vim ~/.bash_profile
增加: if [ -f ~/.bashrc ]; then . ~/.bashrc fi
$vim ~/.bashrc 增加: export ORACLE_BASE=/opt/ora10 export ORACLE_HOME=/opt/ora10 export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin:$PATH export ORACLE_OWNER=oracle export ORACLE_SID=tmp export ORACLE_TERM=xterm
设置数据库的sid为tmp
6. 安装准备
$sudo vim /etc/redhat-release
添加: Red Hat Linux release 3.1 (drupal)
确定java环境可以显示中文,如果不行: /usr/lib/jvm/java-6-sun/jre/lib/fonts 下面建立个 fallback的文件夹 拉一个中文字体进去就可以了。
7. 安装
用oracle用户登录X
进入安装文件目录, ./runInstaller -jreLoc /usr/lib/jvm/java-6-sun/jre/
采用默认设置, 选择创建一个数据库,全局数据库名:tmp,SID:tmp
设置一些管理用户的密码: 用户:sys, system,sysman, dbsnmp 密码:aaron
最后:sudo /opt/ora10/root.sh 一切默认即可。
安装完成后,oracle自动启动。 注销oracle用户,用系统主用户(我是aaron)登录,可以访问 Enterprise Manager 10g Database Control URL:
用户名:sys 密码:aaron 链接身份:sysdba
启动数据库 安装好oracle之后,不会每次自动启动。启动过程是: 1. 切换到oracle用户:su - oracle 2. 启动lisener: $ORACLE_HOME/bin/lsnrctl start 3. 启动db: $ORACLE_HOME/bin/dbstart
启动问题: Failed to auto-start Oracle Net Listene using /ade/vikrkuma_new/oracle/bin/tnslsnr
解决方法: 修改$ORACLE_HOME/bin/dbstart的78行为 ORACLE_HOME_LISTNER=$ORACLE_HOME
4. 启动em touch /var/lock/oracle $ORACLE_HOME/bin/emctl start dbconsole
问题: Timezone mismatch: The agentTZRegion value (GMT) in /opt/ora10/aaron-pc_tmp/sysman/config/emd.properties does not match the current environment TZ setting(). The dbconsole cannot run with this mismatch.
解决方法: $emctl resetTZ agent $emctl start dbconsole 就可以启动成功了。
经过1-3步之后就可以通过sqlplus连接数据库了,如果需要在浏览器上访问,需要启动第4步。
5. 用sys用户登录之后startup实例,才可以用其他用户登录 $su - oracle $sqlplus "sys/aaron as sysdba" SQL>startup SQL>quit $sqlplus "staimsp/staimsp"
启动脚本 oracle占用资源比较多,不设置默认启动,写启动脚本,用的时候再启动。
------------------------------------------------------------- #!/bin/bash #name: runoracle.sh
if [ $UID != 1002 ] then echo "should run by user 'oracle'" exit 1 elif [ $# != 1 ] then echo "Usage: `basename $0` start|stop|restart" exit 2 fi
case "$1" in start) echo -n "Starting Oracle:" $ORACLE_HOME/bin/lsnrctl start $ORACLE_HOME/bin/dbstart touch /var/lock/oracle $ORACLE_HOME/bin/emctl start dbconsole echo echo "OK!" ;;
stop) echo -n "Shutdown Oracle:" $ORACLE_HOME/bin/lsnrctl stop $ORACLE_HOME/bin/dbshut rm -f /var/lock/oracle $ORACLE_HOME/bin/emctl stop dbconsole echo echo "OK!" ;;
restart) $0 stop $0 start ;;
*) echo "Usage: `basename $0` start|stop|restart" exit 2
esac exit 0 ------------------------------------------------------------- 脚本放到/home/oracle/bin中,用oracle用户启动 $su - oracle $runorcale.sh
启动之后用sys用户startup数据库: $sqlplus "sys/aaron as sysdba" SQL>startup
然后就可以用了。
QA 1. 导入中文数据乱码问题解决方法: $vim /home/oracle/.bashrc 增加: export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK" 即可。 | |
阅读(1115) | 评论(0) | 转发(0) |