Ubuntu8.04下安装oracle10g企业版手记

来源:互联网 发布:高晓松 前妻 沈欢 知乎 编辑:程序博客网 时间:2024/05/16 19:18

   


我在ubuntu8.04上安装oracle 10g(企业版)的亲身实践如下:
1。安装必须的包
apt-get install gcc make binutils lesstif2 libc6 libc6-dev rpm libmotif3 libaio1 libstdc++5 alien
2 创建用户
 在很多教程中都用命令去创建用户。但我发现用命令去创建的用户,在图形界面下用得不甚理想,所以用图形界面的用户管理器增加一下新组叫dba,然后再增加一个普通桌面的用户叫oracle(按默认的设置即可),接着用命令增加一个组及用户

addgroup nobody
usermod -g nobody nobody
3 修改相关设置
(1)
设置swap区(这一步我没做)
Oracle10g至少需要500M的内存和400M的交换空间,要查看swap区是否足够大小,用 fdisk -l 命令去查,如果小于400M的空间,那么就要增加swap的大小 重设交换分区可以使用如下操作:
dd if=/dev/zero of=tmp_swap bs=1k count=900000
chmod 600 tmp_swap
mkswap tmp_swap
swapon tmp_swap
完成安装以后,可以释放这个空间:
swapoff tmp_swap
rm tmp_swap
count 值是根据你需要调整的交换分区大小而定。
修改 sysctl.conf
添加如下的行到/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
修改 limits.conf
添加如下的行到/etc/security/limits.conf中:
* soft nproc 2407
* hard nproc 16384

* soft nofile 1024
* hard nofile 65536
(4)让修改生效
修改了以上文件后,必须让其生效,或重启系统,或切换到 root 用户下用以下的方式改变内核运行参数: sysctl -p
(5)产生相应的软连接
创建一个文件如 kk,内容如下:
#!/bin/bash
ln -s /usr/bin/awk /bin/awk
ln -s /usr/bin/rpm /bin/rpm
ln -s /usr/bin/basename /bin/basename
mkdir /etc/rc.d
ln -s /etc/rc0.d /etc/rc.d/rc0.d
ln -s /etc/rc2.d /etc/rc.d/rc2.d
ln -s /etc/rc3.d /etc/rc.d/rc3.d
ln -s /etc/rc4.d /etc/rc.d/rc4.d
ln -s /etc/rc5.d /etc/rc.d/rc5.d
ln -s /etc/rc6.d /etc/rc.d/rc6.d
ln -s /etc/init.d /etc/rc.d/init.d
创建后,切换到 root 用户去执行一下。
(6)创建RedHat的版本声明文件
在/etc/redhat-release中添加以下语句,以使安装程序认为正在一个RedHat的系统上安装:
Red Hat Linux release 3.1 (drupal)
(7)修改环境变量
编辑 /home/oracle/.bashrc,增加以下export 的内容。 (注意,在Ubnutu 7.04中用户的profile文件已改名为~/.profile,有很多安装教程都是用 ~/.bash_profile,在7.04中不行的)
export ORACLE_HOME=/opt/ora10

export ORACLE_OWNER=oracle
export ORACLE_SID=ora1
export ORACLE_TERM=xterm
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin:$PATH
4 开始安装
注销原来的用户,改用oracle用户登录。用env查看一下环境变量是否生效。 然后进行/ora_ins_disk中进行安装
cd /home/oracle/downloads/database // oracle是我创建的用户,我把oracle 10g的安装    //包放置于downloads目录下,解压缩得到database文件
./runInstaller //注意 ubuntu 8.04使用的默认语言是英文,中文会出现乱码等问题

在安装过程中,请使用 Advanced Installation,然后一路按默认的设置进行往下设置,到窗单名为 “Specify Database Configuration Options”的时候,要修改以下设置: Database Character Set 中选择 Simplified Chinese ZHS16GBK 在安装的后期,系统提示需要用 root 用户去运行两个脚本文件orainstRoot.sh和root.sh,安装完毕后,Oracle是正常启动着的,你可以试一下连接数据库,同时也可以使用浏览器去设置一下Oracle,(url:http: //localhost:1158/em/)(Oracle 10g与之前的版本都不一样,使用WEB页的企业管理器来代替以前的C/S版JAVA企业管理器)
5设置自启动(花了我很多功夫)
 创建脚本文件 /etc/init.d/oracledb,
sudo gedit /etc/init.d/oracledb
 使用root用户修改/etc/oratab 文件:
$ gedit /etc/oratab
 ora1:/opt/ora10:N
改为:
 ora1:/opt/ora10:Y
也就是将最后的N改为Y
 使用Oracle用户修改$Oracle_HOME/bin/dbstart文件:

$ su oracle
$ cd $Oracle_HOME/bin
$ gedit dbstart
找到 Oracle_HOME_LISTNER=.....这行, 修改成
Oracle_HOME_LISTNER=/opt/ora10
或者直接修改成:
Oracle_HOME_LISTNER=$Oracle_HOME
注意:是修改,不是增加,可是使用gedit的查找功能查找:
Oracle_HOME_LISTNER,然后进行修改,修改后保存
 测试运行 dbshut, dbstart 看能否启动Oracle 服务及listener服务:
1.修改dbstart和dbshut的日志文件的权限:
#cd  /etc/ora10
# sudo chown  oracle:oracle startup.log
# sudo chown  oracle:oracle  shutdown.log
 .执行相应的脚本进行测试
 $ su oracle
$cd $Oracle_HOME/bin
$./dbstart (./dbshut)
$ ps -efw | grep ora_
$ lsnrctl status
$ ps -efw | grep LISTEN | grep -v grep
创建服务
$su - root
# cd /etc/rc.d/init.d/
# gedit oradbstart
复制如下脚本内容到/etc/init.d/oracledb 文件:
#!/bin/bash
# description: Startup Script for Oracle Databases
# /etc/init.d/oracledb
export Oracle_BASE=/opt/ora10/
export Oracle_HOME=/opt/ora10/
export Oracle_SID=ora1
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/dbstart"
touch /var/lock/Oracle
su - $ORA_OWNR -c "$Oracle_HOME/bin/emctl start dbconsole"
su - $ORA_OWNR -c "$Oracle_HOME/bin/isqlplusctl start"
echo "OK"
;;
stop)
# Oracle listener and instance shutdown
echo -n "Shutdown Oracle: "
su - $ORA_OWNR -c "$Oracle_HOME/bin/emctl stop dbconsole"
su - $ORA_OWNR -c "$Oracle_HOME/bin/isqlplusctl stop"
su - $ORA_OWNR -c "$Oracle_HOME/bin/dbshut"
su - $ORA_OWNR -c "$Oracle_HOME/bin/lsnrctl stop"
rm -f /var/lock/Oracle
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

 

原创粉丝点击