红旗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 于南昌

你可能感兴趣的:(oracle,linux,SQL Server,脚本,bash)