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. 创建
要用用户安装,安装好后,同样用用户启动。
$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环境可以显示中文,如果不行:
方法很简单,就是在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
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/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访问:
停止控制台:
:~$ emctl start dbconsole
5)启动isqlplus:
先切换到oracle用户,再执行下面的语句:
$ isqlplusctl start
需要在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",这样会报错,按照我上面的)
- 最新评论