打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
后期使用到的文档
ORACLE安装前期:

在这个阶段, 我们要作一些实质的东东了. 首先要建立oracle的用户与用户组:

# addgroup oinstall
# addgroup dba
# addgroup nobody
# useradd -g oinstall -G dba -p password -d /home/oracle -s /bin/bash oracle
# usermod -g nobody nobody

我是把oracle直接安装在了oracle用户下的, 所以没有再另建立目录与设置目录权限, 要不然, 请建立你想安装的oracle的目录, 然后把权限设置给oracle用户, 组设置给oinstall.

设置一下oracle的.bashrc, 添加如下参数:

export GST_ID3_TAG_ENCODING=[GBK,GB13000,UTF-8]

export JAVA_HOME=/usr/lib/jvm/java-6-sun

export JRE_HOME=$JAVA_HOME/jre

export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH

export ORACLE_BASE=/home/oracle/app/oracle
export ORACLE_HOME=/home/oracle/app/oracle/product/11.1.0/db_1
export PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_OWNER=oracle
export ORACLE_SID=orcl
export ORACLE_TERM=gnome-terminal

export LD_LIBRARY_PATH=/lib:/usr/lib:$ORACLE_HOME/lib
export LC_ALL=zh_CN.UTF-8
export LANG=zh_CN.UTF-8
export LANGUAGE=zh_CN:zh:en_CN:en
export NLS_LANG="SIMPLIFIED CHINESE"_CHINA.UTF8

当 然这些目录的路径, 请自己根据自己的喜好来设置, 那个语言编码部分, 请参考你自己的客户端使用的语言编码, 我是设置成UTF8的, 后面会说到这个的用处. 另, 网上说要设置 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:$ORACLE_HOME/lib/stubs / 而根据实际情况, 我发现这个是一定不能设置的, 要不然, 你会发现系统的比如ls啊之类的命令都不能使用了, 原因好像是11g会很神秘的把所有系统命令所用到的系统库, 都放一份在自己的lib目录下, 结果系统命令们要用到库时就会跑oracle的lib下找, 本来这也没什么, 就浪费一些硬盘空间吧, 但, 那些库居然有错, 造成这些命令根本不能用. 所以千万不要设置这个参数.

如果你现在直接用 su oracle 来运行安装程序, 你就会很惨的发现, 你的显示器居然是不满足oracle要求的, 通不过它的安装程序的检查, 这是怎么会事呢? 难道要登出, 然后用oracle登录来安装吗? 当然这也是一个解决办法, 不过这个办法太花时间了. 其实你只要运行下面这些命令就可以了.

# su
# xhost +
# exit
# su - oracle
$ export DISPLAY=:0.0

这段命令实际上是把xserver的权限管理关了. 让其它用户也可以使用你登录时用的xserver.

安装oracle:

这么一大段步骤后, 终于要安装了. 当你解完那个zip, 然后很高兴的 ./runInstaller 后, 你看见了一个都是框框框的很黄很暴力的界面, 于是你赶紧把它关了, 嗯,嗯.

这 个问题就是与java有关了, 你没有提供java虚拟机那些中文字体. 网上的这方面的中文资料都是10g的, 而虚拟机用的都是1.4, 如果你前面安装java时, 用的是apt-get install java的话, 那安装的应该是java1.6, 1.6与1.4的字体设置是不一样的, 而且你如果光设置了系统里的java的字体, 那安装是会显示出我们漂亮的中文, 但之后的数据库创建, 你又会看到框框框的很黄很暴力的界面了, 那次, 你要是关了, 你的劳动就白费啦.

这儿, 我们要分两个步骤来, 第一建立字体文件, 你可以找一个你喜欢的中文字体, 然后把它拷贝到/usr/share/fonts/zh_CN/TrueType中, 并命名为zysong.ttf. 第二步进入/usr/lib/jvm/java-6-sun/jre/lib下, 你就会看到很多的fontconfig, 打开 fontconfig.RedHat.properties.src , 找到

filename.-misc-zysong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1

这行, 看看是不是 /usr/share/fonts/zh_CN/TrueType/zysong.ttf , 如果不是, 那改为这个. 然后找 

awtfontpath.chinese-cn-iso10646

这行, 看看是不是 /usr/share/fonts/zh_CN/TrueType , 如果不是, 也改为这个.

可能要重启系统, 我方面我不是很清楚, 反正我是重启了, 然后运行 ./runInstaller 那个很黄很暴力的界面就变成了和谐的中文界面了. 

你 如果很欢快的直接用其的默认设置安装了一个数据库的话, 那么, 祝贺你, 你可能要重装oracle了, 因为, 你会发现, 在你在客户端显示出来的数据库的中文居然你都不认识了. 那是因为数据库里的中文的编码与你的客户端的编码可能不一样, 当然只是可能, 如果是一样的, 那就当我没说. 一般来说, 客户端会的编码会设置为

export LC_ALL=zh_CN.UTF-8
export LANG=zh_CN.UTF-8
export LANGUAGE=zh_CN:zh:en_CN:en
export NLS_LANG="SIMPLIFIED CHINESE"_CHINA.UTF8

如 果你是如我一样设置了, 那么在安装oracle时, 请也设置一下数据库的编码格式为utf8. 当然, 你用其它编码的话, 也请安装库时将其数据库语言设置为你现在客户端的编码格式, 不过个人还是推荐UTF8, 那比什么 ZHS16GBK 什么的好多了, 而且发现一个事实是, 在LINUX上与其去改客户端的编码, 还不如直接重装数据库, 改数据库的编码, 特别是在什么数据都没有的新数据库服务器上呢. 当然如果您是牛人, 知道如何在数据库端为 ZHS16GBK时, 怎么设置客户端的话, 请给我来信(havasupai@gamil.com), 我会感激不尽的.

安装完了, 请使用一下sqlplus 试试你的中文是不是环境是不是好的.

安装后:

创建自启动脚本, 本脚本来自 wiki.ubuntu.org.cn 中孙高勇先生的  Oracle 10g for ubuntu 安装指南 这个文章. 

*  创建自启动脚本
创建 oracledb 脚本到/etc/init.d/oracledb,内容如下 

#!/bin/bash
#
# /etc/init.d/oracledb
#
# Run-level Startup script for the Oracle Instance, Listener, and
# Web Interface
export ORACLE_HOME=/opt/ora10
export ORACLE_SID=compiere
export PATH=$PATH:$ORACLE_HOME/bin
ORA_OWNR="oracle"
# if the executables do not exist -- display error
if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]
then
echo "Oracle startup: cannot start"
exit 1
fi
# depending on parameter -- startup, shutdown, restart
# of the instance and listener or usage display
case "$1" in
start)
# Oracle listener and instance startup
echo -n "Starting Oracle: "
su $ORA_OWNR -c "$ORACLE_HOME/bin/lsnrctl start"
su $ORA_OWNR -c $ORACLE_HOME/bin/dbstart
touch /var/lock/oracle
su $ORA_OWNR -c $ORACLE_HOME/bin/emctl start dbconsole
echo "OK"
;;
stop)
# Oracle listener and instance shutdown
echo -n "Shutdown Oracle: "
su $ORA_OWNR -c "$ORACLE_HOME/bin/lsnrctl stop"
su $ORA_OWNR -c $ORACLE_HOME/bin/dbshut
rm -f /var/lock/oracle
su $ORA_OWNR -c $ORACLE_HOME/bin/emctl stop dbconsole
echo "OK"
;;
reload|restart)
$0 stop
$0 start
;;
***)
echo "Usage: `basename $0` start|stop|restart|reload"
exit 1
esac
exit 0

设置权限,放到启动脚本中去

#chmod 755 /etc/init.d/oracledb
#update-rc.d oracledb defaults 99

这里, oracle的安装就都结束了, 这是我花了N个星期安装了N遍oracle 11g的心得, 其中大部分时间用于解决很黄很蓝图的框框框, 与客户端编码上, 如果你照本文作了还没有那个中文问题, 请给我发信(havasupai@gmail.com), 或这儿回复也行, 我会很感谢的




好了,至此,Oracle 11g就安装完了。重新登录后,你就可以使用oracle的命令了。 
(ORACLE_SID=orcl 是你安装时候设置的值) 

oracle@hardy:~$ export ORACLE_SID=orcl 
oracle@hardy:~$ sqlplus '/as sysdba' 

SQL*Plus: Release 11.1.0.6.0 - Production on Mon May 5 02:39:27 2008 

Copyright (c) 1982, 2007, Oracle. All rights reserved. 

Connected to: 
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production 
With the Partitioning, OLAP, Data Mining and Real Application Testing options 

SQL>connect /as sysdba 
Connected to an idle instance. 

SQL>startup 启动数据库命令。 

ORACLE instance started. 



Total System Global Area 418484224 bytes 

Fixed Size 1300324 bytes 

Variable Size 281020572 bytes 

Database Buffers 130023424 bytes 

Redo Buffers 6139904 bytes 

Database mounted. 

Database opened. 

oracle@hardy:~$ export ORACLE_SID=orcl 
oracle@hardy:~$ emctl start dbconsole 启动EM,地址为https://yourip:1158/em/console.这样你就可以通过IE登陆了。不过界面为乱码。呵呵!!解决方法自己在网上找吧!! 





2.确认安装成功

Linux下的Oracle在安装结束后是处于运行状态的。运行top –u oracle可以看到以Oracle用户运行的进程。在图形化界面下,运行$ORACLE_HOME/sqldeveloper/sqldeveloper.sh可以出现Oracle自带的免费Oracle管理客户端SQL Developer。试着连接刚安装的Oracle,连接成功。

这时需要重启服务器,看服务器重启后,Oracle是否可以正常启动。以Root用户运行reboot命令可以重启Linux,重启完成后,默认情况下Oracle并不像Windows中的Oracle那样注册成服务,随机器一起启动的,所以需要手动敲入命令来启动。启动方式:以oracle用户登录运行以下语句:

1,进入sqlplus:

sqlplus /nolog

2,以sysdba的身份连接到数据库,并启动Oracle数据库引擎:

SQL> conn /as sysdba

SQL> startup

3,退出sqlplus,运行Listener

SQL> exit

$ lsnrctl start

这样数据库的TNS也启动了,可以通过网络连接数据库了。一般情况下就启动这两个就够了,如果想用Oracle提供的EM来管理Oracle的话还需要启动EM控制台,运行如下命令:

$ emctl start dbconsole

这样就可以通过https://servername:1158/em/console来访问EM控制台了。

这里我在实际操作中运行sqlplus出现了错误,大致如下:

sqlplus / as sysdba

sqlplus: error while loading shared libraries: /u01/app/oracle/product/11.1.0/db_1/lib/libnnz11.so: cannot restore segment prot after reloc: Permission denied

网上也有很多人遇到了这个问题,原来是SELinux在作怪,我采用的解决办法是禁止掉SELinux:

更改/etc/sysconfig/selinux 文件的内容为 SELINUX=disabled,然后重启服务器。

好像这个办法不是很好,也有说的解决办法是使用chcon 命令

示例: chcon -t texrel_shlib_t /usr/local/rsi/idl_6.1/bin/bin.linux.x86/*.so

另外我在启动Listener时也报错TNS-12555: TNS:permission denied

后来网上搜了下,发现是oracle用户就无法进入/var/tmp/.oracle文件夹,方法很简单,执行:chmod 777 /var/tmp/.oracle 之后就ok了.

还有,我在启动EM控制台的时候又遇到了错误:Environment variable ORACLE_UNQNAME not defined. Please set ORACLE_UNQNAME to database unique name.

设置了这个变量后(运行export ORACLE_UNQNAME=xxxx实例名)后,再启动EM控制台,又出现了新的错误:OC4J Configuration issue. /u01/app/oracle/product/11.2.0/db_1/oc4j/j2ee/OC4J_DBConsole_xxxx not found.没有这个文件?去查了一下,确实是没有这样一个文件存在,怎么办呢?其实很简单,运行:

emca -config dbcontrol db

根据向导重新配置一下就可以了。

3.配置Oracle为开机自启动

虽然说Oracle作为服务器不会经常关机,但是偶尔重启一下,每次都要去手动启动Oracle还是太麻烦了,希望的是能够像在Windows中一样,每次开机的时候自动启动Oracle,只需要将Oracle配置为Linux的服务就可以了。操作如下:

1,以root用户建立/etc/rc.d/init.d/oracle11g脚本文件,内容如下(环境变量设置根据实际情况进行修改):

#!/bin/bash 

# chkconfig: 35 95 1 
# description: init script to start/stop oracle database 11g, TNS listener, EM 



# match these values to your environment:

ORACLE_BASE=/home/oracle_11/app 
ORACLE_HOME=$ORACLE_BASE/oracle/product/11.2.0/db_1 
ORACLE_SID=BRDWDEV 
ORACLE_UNQNAME=BRDWDEV 
PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin 
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib 
LANG=C

export ORACLE_BASE ORACLE_HOME ORACLE_SID ORACLE_UNQNAME PATH LD_LIBRARY_PATH LANG

# see how we are called: 
case $1 in 
start) 
su - oracle<<EOO 
lsnrctl start 
sqlplus /nolog<<EOS 
connect / as sysdba 
startup 
EOS 
emctl start dbconsole 
EOO 
;;

stop) 
su - oracle<<EOO 
lsnrctl stop 
sqlplus /nolog<<EOS 
connect / as sysdba 
shutdown immediate 
EOS 
emctl stop dbconsole 
EOO 
;;

*) 
echo "Usage: $0 {start|stop}" 
;; 
esac

2,以root用户执行以下命令

chmod 755 /etc/rc.d/init.d/oracle11g

chkconfig --add oracle11g

3, 重启服务

service oracle11g stop

service oracle11g start

这样在开关机的时候oracle自动启动和停止。

另外,还有说,需要修改/etc/oratab这个文件,将最后的N改为Y,如下:

xxxxTEST:/home/oracle_11/app/oracle/product/11.2.0/db_1:Y

最后,我们要测试一下这个自启动是否真的有效,重启一下服务器吧,过几分钟后,可以看到客户端可以正常连接到Oracle了。Oracle环境配置成功!

【出自博客园深蓝居,转载请注明作者出处】
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
(2)说说oracle的字符集设置与乱码
Linux里Oracle client客户端简便安装
Redhat AS4上安装64位Oracle9204
常见linux问题
Linux下Oracle 10g乱码解决方案
实拍:合璧操作系统 HybridOS 运行在 RK3308 开发板上
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服