已经在redhat的oracle用户上安装了oracle数据库,但是想在同一个redhat上新建一个专门的用户来负责这个项目,这样就可以针对这个项目写一些专门的环境配置,而不用顾忌把数据库环境破坏。
按照教程需要做的就是两步,一是放开数据库安装路径的权限,这样就可以跨用户使用
使用命令:chmod 777 /home/oracle_11/app/ -R
二是配置用户的环境变量,将下载oracle时配置的环境变量再配置一遍,并添加自己所需的环境变量。
打开home/project01/.bash_profile文件,添加以下变量
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=PROD
export PATH=./:$ORACLE_HOME/bin:$PATH
###以上的四条都是数据库的环境配置
export LD_LIBRARY_PATH=./lib:$HOME/lib:/usr/lib:$ORACLE_HOME/lib
###这一条是配置动态库
###export NLS_LANG=AMERTCAN_AMERTCA.ZHS16GBK这一条教程当中是有的,但是我如果加上这个配置,就运行不起来了,可能是因为我默认的oracle字符集是utf8
注:其中每一条环境变量前需要加入expert,expert的作用就是配置环境变量,在本次登录的时间内有效。
其中的HOME宏定义就是家目录,路径如下/home/project01/。
并且想要让这个新用户project01连上数据库,还需要在数据库安装用户oracle下启动startup,并且开启TNS。
而且在调试的过程中我还更改了listener.ora网络配置文件,添加了如下段
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = PROD) //可以使用select * from global_name; 在数据库下查看,我认为就是SID
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1) //数据库安装目录
(SID_NAME = PROD) //我理解是可以随意取,只是一个辨别作用。
)
)
我觉得我这个配置有问题,我的理解是这个用户其实和oracle用户的地位是一样的,可以看做数据库的服务器,但是从后来的理解来看登录不了数据库的系统用户,并且每次登录用户都必须在用户密码后@SID,并且教程中的程序用不了。