红旗Linux+Oracle10g
红旗Linux+Oracle10g
一、Oracle10g安装过程采用默认方式,安装后数据库的字符集是 WE8MSWIN1252。
这样会导致存入Oracle 10g 中的数据出现乱码。
解决的方法:在安装完Oracle 10g后,可以在sqlplus(即Oracle XE的run SQL command line)中修改字符集。
Oracle10g安装后,修改字符集操作如下:
1. connect system/jxdag as sysdba;
2. shutdown immediate;
3. startup mount;
4. alter system enable restricted session;
5. alter system set JOB_QUEUE_PROCESSES=0;
6. alter system set AQ_TM_PROCESSES=0;
7. alter database open;
8. alter database character set internal_use ZHS16GBK;
9. shutdown immediate;
10. startup;
备注:最好以自定义高级方式安装数据库。在安装过程中设置字符集。
红旗Linux自带一个Oracle的安装向导,省略了很多麻烦事情。
二、通过dbstart脚本设置Linux下oracle数据库是否自动启动。
1. 修改$ORACLE_HOME/bin下的dbstart文件如下所示,设置监听的路径:
ORACLE_HOME_LISTNER=$ORACLE_HOME
2. 修改/etc/oratab文件,设置Oracle的实例名。
格式为:$ORACLE_SID:$ORACLE_HOME:Y/N
例如:ORCL:/home/oracle/product/10.2.0/db_1:Y
如果设置为数据库不自启动,则是: ORCL:/home/oracle/product/10.2.0/db_1:N
这样就可以运行dbstart启动数据库和监听了。运行dbshut可以关闭数据库。
三、使用Oracle Enterprise Manager 10g Database Control。
切换到oracle用户下。
查看em状态:#emctl status dbconsole
启动em命令:#emctl start dbconsole
访问em: http://127.0.0.1:1158/em
四、用Oracle DBCA工具创新建数据库实例。
在root下su - oracle后,运行dbca后,会报一个错误:
---------------
Xlib: connection to ":0.0" refused by server
Xlib: No protocol specified
Exception in thread "main"
---------------
就是当前用户无法运行XServer程序。
解决办法:运行命令 #xhost local:oracle
会出现提示:
non-network local connections being added to access control list
这样用oracle身份就可以运行X程序了。
(local参数就是解决同一台机器的不同用户访问X的问题。)
使所有的用户能访问XServer,运行命令:#xhost +
出现提示:access control disabled, clients can connect from any host。
其实可以在图形界面中以oracle身份登录,然后在shell中运行dbca。
运行命令: #dbca,出现Oracle数据库的Database Configuration Assistant的欢迎界面。
接下来按照提示操作完成数据库实例创建即可。
在操作过程中注意数据库字符集的选择:ZHS16GBK。
五、设置Linux下的Web服务开机自启动。
Linux启动时,会自动执行/etc/rc.d目录下的程序。
设置自启动服务有两种方式可供参考:
1)以自启动服务脚本方式启动服务
以root身份,在/etc/rc.d/init.d/中编辑文件tongweb格式和内容如下:
------------------------------
#!/bin/bash
# chkconfig: 2345 98 5
# description: script to start/stop tongweb
case $1 in
start)
cd /home/tongweb/TW4.7/bin/
nohup /home/tongweb/TW4.7/bin/tongserver &
;;
stop)
cd /home/tongweb/TW4.7/bin/
/home/tongweb/TW4.7/bin/tongserver stop
;;
*)
echo "Usage: $0 (start|stop)"
exit 1
;;
esac
exit 0
------------------------------
然后更改权限:#chmod 775 tongweb
加入自动启动列表:#chkconfig –add tongweb
查看自动启动设置:#chkconfig –list tongweb
可以用如下命令启动和停止服务:
启动:#service tongweb start
或:#/etc/rc.d/init.d/tongweb start
停止:#service tongweb stop
或:#/etc/rc.d/init.d/tongweb stop
此时在红旗Linux的控制面板--服务中可以查看设置的服务状态。
或通过ntsysv来查看设置服务。
注意:文件格式,文件开头的注释部分不能省略。
#!/bin/bash
# chkconfig: 2345 98 5 --此行的2345参数表示在什么运行级别启动,启动序号(S98);关闭序号(K5)
# description: script to start/stop tongweb --此行为必需,服务描述信息
如果丢失文件开头描述信息,则在执行#chkconfig命令时会出现错误提示:服务不支持chkconfig。
2)初始化脚本启动服务方式
/etc/rc.d/rc.local是在完成初始化之后执行的,可以把启动服务的脚本写到里面,服务器启动时执行。
详细信息可参考rc.local文件开头的注释部分。
以root身份编辑rc.local文件,在最后加入如下命令:
#tongweb
export JAVA_HOME=/usr/java/jdk1.5.0_04/ --此处设置JAVA_HOME
cd /home/tongweb/TW4.7/bin/ --切换到服务目录
nohup /home/tongweb/TW4.7/bin/tongserver & --以后台方式执行服务
或者如下写法:
#tongweb
export JAVA_HOME=/usr/java/jdk1.5.0_04/ --此处设置JAVA_HOME
cd /home/tongweb/TW4.7/bin/ --切换到服务目录
su tongweb -c "nohup /home/tongweb/TW4.7/bin/tongserver &" --把要执行的命令作为一个参数传递级su
by JRQ
2008/09/11 于南昌