ubuntu 8.10 安装Oracle 10G 企业版综合指南

ubuntu 8.10 安装Oracle 10G 企业版综合指南

首先把系统更新到最新(可能有一个包libaio1需要手工安装)

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/product/10.2.0/db_1
export PATH=$ORACLE_HOME/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环境可以显示中文,如果不行:
方法很简单,就是在java安装目录下放进去一个中文字体即可。

cd $JAVA_HOME/jre/lib/fonts

  sudo mkdir fallback

  cd fallback

  sudo ln -s /usr/share/fonts/truetype/wqy/wqy-zenhei.ttf(把某个中文字体链接进 fallback 目录,我选了最新的文泉驿夸父字体)

  sudo mkfontdir

  sudo mkfontscale
把$JAVA_HOME/替换成实际的路径

7. 安装
用oracle用户登录X
进入安装文件目录,
./runInstaller -jreLoc $JAVA_HOME/jre/
把$JAVA_HOME/替换成实际的路径

在安装过程中,请使用 Advanced Installation,然后一路按默认的设置进行往下设置,在安装的后期,系统提示需要用 root 用户去运行两个脚本文件orainstRoot.sh和root.sh,不要点击ok按钮,这个时候再打开一个终端,用root用户登录,按提示执行那两个脚本,执行完后再点击ok按钮。
最后可以安装成功。


8. 手工启动:
设置oracle10g环境变量:
export ORACLE_HOME=/opt/ora10/product/10.2.0/db_1
export PATH=$ORACLE_HOME/bin:$PATH

报错:ORA-12162: TNS:net service name is incorrectly specified
解决办法:设置SID:export ORACLE_SID=tmp

1)启动监听器:
:~$ lsnrctl
LSNRCTL> start
停止监听器:
LSNRCTL> stop

2)sqlplus登录oracle10:
:~$ sqlplus /nolog
SQL> conn /as sysdba

3)启动数据库:
SQL> startup
停止数据库
SQL> shutdown

4)启动控制台:
:~$ emctl start dbconsole
可以使用web访问:
http://localdomain:1158/em/

停止控制台:
:~$ emctl start dbconsole

5)启动isqlplus:

先切换到oracle用户,再执行下面的语句:

$ isqlplusctl start
http://localdomain:5560/isqlplus/
需要在http://localdomain:1158/em/ 中先创建一个非dba用户,才可以登录http://localdomain:5560/isqlplus/

9. 在/home/oracle中建启动脚本:
1)用oracle用户新建文件:vi runoracle.sh
文件内容如下:
#!/bin/bash
#name: runoracle.sh

export ORACLE_HOME=/opt/ora10
export PATH=$ORACLE_HOME/bin:$PATH

if [ $UID != 1001 ]
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:"

lsnrctl start
dbstart
touch /var/lock/oracle
emctl start dbconsole
isqlplusctl start
echo
echo "OK!"
;;

stop)
echo -n "Shutdown Oracle:"
lsnrctl stop
dbshut
rm -f /var/lock/oracle
emctl stop dbconsole
isqlplusctl stop
echo
echo "OK!"
;;

restart)
$0 stop
$0 start
;;

*)
echo "Usage: `basename $0` start|stop|restart"
exit 2

esac
exit 0

保存文件


2)修改权限:chmod 755 runoracle.sh

3)要启动的时候先切换到oracle用户:
su - oracle
再输入:
./runoracle.sh start

如果启动oracle10g报错:
Failed to auto-start Oracle Net Listene using /ade/vikrkuma_new/oracle/bin/tnslsnr
解决办法:
用oracle用户编辑dbstart文件
vi /opt/ora10/bin/dbstart
将ORACLE_HOME_LISTNER=/ade/vikrkuma_new/oracle改为:
export ORACLE_HOME_LISTNER=$ORACLE_HOME
保存退出,ok

如果要通过web方式使用sqlplus,
需要在http://localdomain:1158/em/ 中先创建一个非dba用户,
再使用新增加的用户登录http://localdomain:5560/isqlplus/


10. oracle 10g字符集查看:
SQL> col value$ format a40
SQL> select name,value$ from props$;


11. 如果使用sqlplus查询表的中文是乱码,可以按照以下办法解决:
1)先查看数据库的字符集:
select name,value$ from props$ where name like 'NLS_CHAR%';
显示如下:
NAME VALUE$
------------------------------ ----------------------------------------
NLS_CHARACTERSET AL32UTF8

2)在终端中设置NLS_LANG的值和数据库一致:
export NLS_LANG=american_america.AL32UTF8
再登录sqlplus就不会有乱码了。
其原理是保持客户端和服务器端字符集一致。


3)可以编辑 bash_profile 文件进行永久设置
vi .bash_profile
加入以下语句:
export NLS_LANG=american_america.AL32UTF8

字符集的设置要注意,如果设置错了是登录不了sqlplus的。
通常不建议永久设置。另外,使用web方式是不错的选择。

再重新登录sqlplus:
sqlplus /nolog
conn /as sysdba ---以管理员身份登录
conn user/password@sid ---以其他用户登录
(登录不要使用 sqlplus "user/password as sysdba",这样会报错,按照我上面的)


安装过程参考了
http://www.linuxidc.com/Linux/2008-05/12707.htm
http://wiki.ubuntu.org.cn/index.php?tit ... iant=zh-cn


一些教程忽略了许多细节问题,这是我使用后遇到的问题和已经解决的问题,希望可以帮到大家。

http://forum.ubuntu.org.cn/viewtopic.php?t=170399

你可能感兴趣的:(oracle,sql,ubuntu,vim,bash)