在ubuntu 8.04下安装Oracle 11g

 
oracle 11g 数据库虽然提供了linux x86的版本,但是支持的linux版本只有Red Hat,Novell and Solaris 这几个,debian 和 ubuntu 不在支持之列,所以在ubuntu下安装就相对麻烦一些,请照着下文的方法一步一步的安装,不要急躁,每一步都要认真作(我开始装的时候就是有点急,用自 己的方法简化了其中几步,结果。。。。安装失败-_-b )。

我的系统:ubuntu 8.04 desktop (32位) 内存:2G

本文是"Installing Oracle 11g on Ubuntu 8.04 LTS (Hardy Heron)"文章翻译和注解,是一个外国牛人写的,原文:
http://www.pythian.com/blogs/968/installing-oracle-11g-on-ubuntu-804-lts-hardy-heron
如果不愿意看E文的可以看我下面的翻译:黑字是原文翻译,
红字是我的注解 蓝色为终端输入输出
(转载注明出处: )

共9步:

Step 1
下载和安装 Ubuntu 8.04 Hardy Heron (x86-32位) 版。略。

Step 2
下载Oracle 11g: Download Oracle 11g for Linux (x86, 32-bit).
现不要急着解压,一会我会告诉你解压在哪的。

Step 3
修改X server 的默认设置,点菜单的System -> Administration -> Login Window(系统->管理->登录窗口),选择“Security(安全)”选项卡,取消“Deny TCP connections to the Xserver(拒绝TCP连接到X服务器)”的勾,重启Xserver(或者重启系统)。然后在终端输入:
coolhty@coolhty-sm:~$ xhost +127.0.0.1
127.0.0.1 being added to access control list
Step 4
打开终端,转换为超级用户:(注意,这里用sudo su -而不是sudo -s是有原因的:sudo su - 将用户转换为超级用户,并新起一个会话(空的会话),而不是像sudo -s那样将当前会话传递个新的超级用户,减少环境变量可能造成的影响和危害。
coolhty@coolhty-sm:~$ sudo su -
[sudo] password for user:
root@coolhty-sm:~# apt-get update
...
root@
coolhty-sm:~# apt-get dist-upgrade
...
root@
coolhty-sm:~# reboot

Step 5
用apt安装一些必要的工具:

coolhty@coolhty-sm:~$ sudo su -
[sudo] password for user:
root@
coolhty-sm:~# apt-get install build-essential libaio1 gawk
ksh libmotif3 alien libtool lsb-rpm
...
root@
coolhty-sm:~#

Step 6
在装完那些工具以后,我们需要做的就是修改一些Ubuntu的/bin/sh的默认连接,千万不要略过这一步,否则安装的时候会出现很多错误。

root@ coolhty-sm:~# cd /bin
root@ coolhty-sm :/bin# ls -l /bin/sh
lrwxrwxrwx 1 root root 4 2008-04-28 19:59 /bin/sh -> dash
root@
coolhty-sm :/bin# ln -sf bash /bin/sh
root@
coolhty-sm :/bin# ls -l /bin/sh
lrwxrwxrwx 1 root root 4 2008-05-01 22:51 /bin/sh -> bash

如果你想知道为什么Ubuntu用dash作为默认的shell,看这个:a detailed explanation of why dash is the default system shell

Step 7
增加用户和组,并修改一些配置。 这一步很重要!如果不是很有把握,不要随便改。 (为了便于解释,增加了行号):
01 root@coolhty-sm:/bin# cd
02 root@
coolhty-sm:~# pwd
/root
04 root@
coolhty-sm:~# addgroup oinstall
Adding group `oinstall' (GID 1001) ...
Done.
07 root@
coolhty-sm:~# addgroup dba
Adding group `dba' (GID 1002) ...
Done.
10 root@
coolhty-sm:~# addgroup nobody
Adding group `nobody' (GID 1003) ...
Done.
13 root@
coolhty-sm:~# usermod -g nobody nobody
14 root@
coolhty-sm:~# useradd -g oinstall -G dba -p password -d
/home/oracle -s /bin/bash oracle
15 root@
coolhty-sm:~# passwd -l oracle
Password changed.
17 root@
coolhty-sm:~# mkdir /home/oracle
18 root@
coolhty-sm:~# chown -R oracle:dba /home/oracle
19 root@
coolhty-sm:~# ln -s /usr/bin/awk /bin/awk
20 root@
coolhty-sm:~# ln -s /usr/bin/rpm /bin/rpm
21 root@
coolhty-sm:~# ln -s /usr/bin/basename /bin/basename
22 root@
coolhty-sm:~# mkdir /etc/rc.d
23 root@
coolhty-sm:~# for i in 0 1 2 3 4 5 6 S ; do ln -s
/etc/rc$i.d /etc/rc.d/rc$i.d ; done
24 root@
coolhty-sm:~# mkdir -p /u01/app/oracle
25 root@
coolhty-sm:~# chown -R oracle:dba /u01
26 root@
coolhty-sm:~#
  • Lines 04-12: 增加我们需要的用户和组
  • Line 13: 让nobody用户的组变为nobody,这样Oracle的安装程序不会出问题。 Ubuntu默认nobody的组是nogroup。
  • Lines 14-18: 创建一个oracle用户,并锁定用户,以阻止别人通过oracle用户登录系统。注意,oracle用户的HOME目录不要与ORACLE_HOME相同。
  • Lines 19-23: 创建一些Oracle安装程序需要的工具的连接。 因为Oracle安装程序是为Red Hat准备的,所以有些工具的位置和Ubuntu不一样。
  • Finally, on lines 24-25 创建ORACLE_BASE目录。
Step 8
修改一些系统默认值。这些修改将会增加系统文件描述符的数量、增加共享内存大小和修改一些网络子系统参数。这些修改是否会对你的系统带来影响我就不得而知了。将下面这些增加到/etc/sysctl.conf文件的末尾:
fs.file-max = 65535
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 1024 65535
net.core.rmem_default = 1048576
net.core.rmem_max = 1048576
net.core.wmem_default = 262144
net.core.wmem_max = 262144


再增加下面这些到/etc/security/limits.conf文件末尾:

oracle soft nproc 2047
oracle hard nproc 16383
oracle soft nofile 1023
oracle hard nofile 65535


为了强制使用刚才我们增加的东西,我们再增加下面这些到/etc/pam.d/login文件末尾:

session required /lib/security/pam_limits.so
session required pam_limits.so


然后通过命令:sysctl -p 让刚才增加的东西生效:

root@hardy:~# sysctl -p
kernel.printk = 4 4 1 7
kernel.maps_protect = 1
fs.inotify.max_user_watches = 524288
vm.mmap_min_addr = 65536
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.all.rp_filter = 1
fs.file-max = 65535
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 1024 65535
net.core.rmem_default = 1048576
net.core.rmem_max = 1048576
net.core.wmem_default = 262144
net.core.wmem_max = 262144
root@hardy:~#


Step 9
现在我们将刚才下载的oracle11g的安装包解压到/home/oracle/install/目录下。然后进入目录,设置DISPLAY参数,开始安装:

root@coolhty-sm:~# cd /home/oracle
root@
coolhty-sm:/home/oracle# chown -R oracle:dba install
root@
coolhty-sm:/home/oracle# su - oracle
Your account has expired; please contact your system administrator
su: User account has expired
(Ignored)
oracle@
coolhty-sm:~$ export DISPLAY=127.0.0.1:0.0
oracle@
coolhty-sm:~$ pwd
/home/oracle
oracle@
coolhty-sm:~$ ls -l
total 4
drwxr-xr-x 6 oracle dba 4096 2007-09-18 18:50 install
oracle@
coolhty-sm:~$ cd install
oracle@
coolhty-sm:~/install$ ls -l
total 28
drwxr-xr-x 11 oracle dba 4096 2007-08-06 16:02 doc
drwxr-xr-x 5 oracle dba 4096 2007-08-03 13:28 install
drwxr-xr-x 2 oracle dba 4096 2007-09-18 18:52 response
-rwxr-xr-x 1 oracle dba 2911 2007-08-03 13:28 runInstaller
drwxr-xr-x 14 oracle dba 4096 2007-08-03 13:27 stage
-rw-r--r-- 1 oracle dba 4835 2007-08-06 18:19 welcome.html
oracle@
coolhty-sm:~/install$ ./runInstaller -ignoreSysPrereqs

输入完上面命令后,就进入了Oracle 的同一安装程序了(OUI),不要急,继续按照本文一步一步的通过安装:
注意:OUI安装完后,并不是真正完全安装完成,还需要就行最后的收尾工作(在最后有),而且这是必须做的工作!

点(Next)下一步。(如果安装的时候显示的是方块字,不能正常阅读的话运行./runInstaller -jreLoc /opt/soft/jdk1.6.0_11/jre注意这里按实际的JDK路径填,在我机子上是这个,在你机子上可能不是哦。 )

修改“Specify Operating System group name:”为:"dba",然后点"Next".

按照上图设置,点下一步。

选择"Enterprise Edition",然后下一步。

安图设置,下一步。

继续下一步。

等待系统检查,不要担心有错误和警告。

将检查到的所有非“Succeeded”的都打上勾,下一步。

选择“Install Software Only”,等装完以后再通过dbca装数据库,下一步。 你也可以在这一步选"Create a Database"来安装数据库。
将所有组都设为:dba,下一步。
现在可以点“Install”了:)这个过程会等很久,而且其中系统会变慢,所以你最好拿本书在旁边,喝杯咖啡。
有时候系统会变得很慢,像是要死机了,这个不要管,等他慢慢装。
到了这一步不要记着点“OK”,需要做下面操作:(另起一个终端,用sudo su - 转为超级用户)

root@coolhty-sm:~# /u01/app/oraInventory/orainstRoot.sh
Changing permissions of /u01/app/oraInventory to 770.
Changing groupname of /u01/app/oraInventory to dba.
The execution of the script is complete
root@
coolhty-sm:~# /u01/app/oracle/product/11.1.0/db_1/root.sh
Running Oracle 11g root.sh script...

The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /u01/app/oracle/product/11.1.0/db_1

Enter the full pathname of the local bin directory: [/usr/local/bin]:
Copying dbhome to /usr/local/bin ...
Copying oraenv to /usr/local/bin ...
Copying coraenv to /usr/local/bin ...

Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.
Finished product-specific root actions.
root@
coolhty-sm:~#

好了,这个完成后可以点“OK”了。
安后点“Exit”退出OUI,现在可以祝贺你,OUI安装完成了:) 但是还是不要急,记住咱们还有收尾工作需要做。

设置数据库文件夹和oratab文件的访问权限:(一定要加上这个,不然在使用中会有一些小问题)
$ sudo chown -R oracle:dba /u01/app/oracle/*
$ sudo chmod -R g+w /u01/app/oracle/*
$ sudo chown oracle:dba /etc/oratab
$ sudo chmod g+w /etc/oratab


然后,在/etc/profile文件中加入下面几句:

export ORACLE_HOME=/u01/app/oracle/product/11.1.0/db_1
export PATH=$PATH:/u01/app/oracle/product/11.1.0/db_1/bin


创建一个Oracle 11g数据库的启动脚本,名字可以叫做:oracledb,在/u01/app/oracle/product/11.1.0/db_1/bin下建立文件:oracledb,内容:

#!/bin/bash
#
# /etc/init.d/oracledb
#
# Run-level Startup script for the Oracle Listener and Instances
# It relies on the information on /etc/oratab

export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/11.1.0/db_1
export ORACLE_OWNR=oracle
export PATH=$PATH:$ORACLE_HOME/bin

if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]
then
echo "Oracle startup: cannot start"
exit 1
fi

case "$1" in
start)
# Oracle listener and instance startup
echo -n "Starting Oracle: "
su $ORACLE_OWNR -c "$ORACLE_HOME/bin/lsnrctl start"
su $ORACLE_OWNR -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"
touch /var/lock/oracle
echo "OK"
;;
stop)
# Oracle listener and instance shutdown
echo -n "Shutdown Oracle: "
su $ORACLE_OWNR -c "$ORACLE_HOME/bin/lsnrctl stop"
su $ORACLE_OWNR -c "$ORACLE_HOME/bin/dbshut $ORACLE_HOME"
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


修改脚本为可执行的:

root@coolhty-sm:~# chmod a+x /u01/app/oracle/product/11.1.0/db_1/bin/oracledb

如果你希望开机自动启动Oracle 11g数据库,那么就作下面的工作:

root@coolhty-sm:~# ln -s /u01/app/oracle/product/11.1.0/db_1/bin/oracledb
/etc/init.d/oracledb
root@
coolhty-sm:~# sudo sysv-rc-conf --level 2345 oracledb on

如果没有sysv-rc-conf命令,就apt-get一个。

最后,增加你自己的用户名到dba组:

root@coolhty-sm:~# usermod -G dba -a user

好了,至此,Oracle 11g就安装完了。重新登录后,你就可以使用oracle的命令了。
你可以通过netca增加LISTENER,通过dbca增加数据库。测试一下是否安装成功:
(ORACLE_SID=heron 是你安装时候设置的值)

oracle@coolhty-sm:~$ export ORACLE_SID=ORCL
oracle@
coolhty-sm:~$ 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>

如果你看到了上面的结果,证明你的oracle安装成功了。
现在就是真正安装完了:)

再试着启动一下,看成功不。

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

SQL>startup
ORACLE instance started.
Total System Global Area 418484224 byte
Fixed Size 1300324 bytes
Variable Size 281020572 bytes
Database Buffers 130023424 bytes
Redo Buffers 6139904 bytes
Database mounted.
Database opened.

启动成功!耶

重启后记得要lsnrctl start 启动监听器才能开oracle的,要不会报错。

写得好累呀。。。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值