Ubuntu 14.04 下安装Oracle 11g Release 2

这学期选了数据库这门课,首先就要安装一个Oracle。因为老师跟我们说如果能在Linux系统上安装Oracle的话,能在总评上加1分,然后这两天就开始着手弄这个,但是发现这并不简单——因为网上的教程都很多坑啊!磕磕碰碰地终于安装成功了,这里把我的安装步骤放在这里供大家参(bi)考(lei)。(注:仅供参考!虽然按照这个步骤来应该是没问题的,但是环境都不尽相同,所以可能有些步骤还是要再想一下。)

最开始我看到了这个教程, 很多人都能通过这个顺利地安装了Oracle(有一部分遇到了些问题但在评论区那已经有了问题的解决方案),但是我卡在了Step 3,所以没办法,只能再找了另外一个教程,这个步骤是在这个教程的基础上填上了一些坑,希望对大家有所帮助。

环境:

VM,Ubuntu 64位

Note. 在输入下面的命令时,不要贪图方便直接 sudo su 进入 root 用户模式!

也就是说命令行那不要

 

一些变量:

用户名:xxx(我的是coldog)

 

・安装

Step 1:下载

下载Oracle Database 11g Release 2 (11.2.0.1.0),分别是这两个文件:

linux.x64_11gR2_database_1of2.zip
linux.x64_11gR2_database_2of2.zip

把它们下载到 /home 里,或者移动到 /home 中。一般来说,如果是默认下载的话,在Ubuntu自带的Firefox浏览器上是安装到 /home/xxx/Downloads,所以就要移动这两个文件。

sudo mv /home/xxx/Downloads/linux.x64_11gR2_database_1of2.zip /home
sudo mv /home/xxx/Downloads/linux.x64_11gR2_database_2of2.zip /home

Note. 如果在中文环境下,可能要改【...../Downloads/......】为【...../下载/......】。

Step 2:解压缩

解压这两个文件,我不管你在哪个目录下,一律先切换到 /home 下,

cd /home

然后再解压缩,但在此之前,确认自己是否已经安装unzip,如果没有安装,那么先运行命令 sudo apt-get install unzip 安装unzip.

unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip

Note. 【坑】有的教程会用 sudo tar -zxvf linux.x64_11gR2_database_1of2.zip 的方法来进行解压缩,这样会导致出错,我查到的一个原因是,tar无法解压缩那些压缩了多个文件的.zip包。

Step 3:安装jdk1.7

我也不知道为啥这要安装,反正安了不亏。

sudo apt-get install openjdk-7-jre
sudo apt-get install openjdk-7-jdk

Step 4:更新apt源文件

因为ubuntu的官方源并不全,特别是安装ia32-libs包的时候没有[1],首先我们备份源文件,

sudo cp /etc/apt/sources.list /etc/apt/sources.list_back

然后把以下源增加到源列表,即把 /etc/apt/sources.list 文件内容改为

deb http://mirrors.163.com/ubuntu/ precise main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ precise-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ precise-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ precise-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ precise-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ precise main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ precise-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ precise-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ precise-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ precise-backports main restricted universe multiverse

deb http://extras.ubuntu.com/ubuntu trusty main
deb-src http://extras.ubuntu.com/ubuntu trusty main
deb http://archive.ubuntu.com/ubuntu/ raring main restricted universe multiverse

#163源:
deb http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse
#阿里源:

deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
deb http://mirrors.aliyuncs.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.aliyuncs.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.aliyuncs.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.aliyuncs.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.aliyuncs.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.aliyuncs.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.aliyuncs.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.aliyuncs.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.aliyuncs.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.aliyuncs.com/ubuntu/ trusty-backports main restricted universe multiverse

替换完之后,执行命令更新:

sudo apt-get update
sudo apt-get upgrade

Step 5:安装依赖包

一定要确保每个包都安装成功,要不然可能oracle安装不成功。

sudo apt-get install bzip2 
sudo apt-get install elfutils 
sudo apt-get install automake 
sudo apt-get install autotools-dev 
sudo apt-get install binutils 
sudo apt-get install expat 
sudo apt-get install gawk 
sudo apt-get install gcc 
sudo apt-get install gcc-multilib 
sudo apt-get install g++-multilib 
sudo apt-get install ia32-libs 
sudo apt-get install ksh 
sudo apt-get install less 
sudo apt-get install lesstif2 
sudo apt-get install lesstif2-dev 
sudo apt-get install lib32z1 
sudo apt-get install libaio1 
sudo apt-get install libaio-dev 
sudo apt-get install libc6-dev 
sudo apt-get install libc6-dev-i386 
sudo apt-get install libc6-i386 
sudo apt-get install libelf-dev 
sudo apt-get install libltdl-dev 
sudo apt-get install libmotif4 
sudo apt-get install libodbcinstq4-1 libodbcinstq4-1:i386 
sudo apt-get install libpth-dev 
sudo apt-get install libpthread-stubs0 
sudo apt-get install libpthread-stubs0-dev 
sudo apt-get install libstdc++5 
sudo apt-get install lsb-cxx 
sudo apt-get install make 
sudo apt-get install openssh-server 
sudo apt-get install pdksh 
sudo apt-get install rlwrap 
sudo apt-get install rpm 
sudo apt-get install sysstat 
sudo apt-get install unixodbc 
sudo apt-get install unixodbc-dev 
sudo apt-get install unzip 
sudo apt-get install x11-utils 
sudo apt-get install zlibc

Note. 如果想同时安装多个包(少打几个sudo apt-get install),那么可以在 sudo apt-get install 后用空格隔开多个包,比如:

sudo apt-get install bzip2 elfutils

这就会依次地安装 bzip2 和 elfutils 这两个包。

Step 6:检查系统变量

sudo /sbin/sysctl -a | grep sem 
sudo /sbin/sysctl -a | grep shm 
sudo /sbin/sysctl -a | grep file-max 
sudo /sbin/sysctl -a | grep aio-max 
sudo /sbin/sysctl -a | grep ip_local_port_range 
sudo /sbin/sysctl -a | grep rmem_default 
sudo /sbin/sysctl -a | grep rmem_max 
sudo /sbin/sysctl -a | grep wmem_default 
sudo /sbin/sysctl -a | grep wmem_max 

根据上面命令中得到的参数值在/etc/sysctl.conf中增加对应数据,可以打开两个终端,这样方便填写:

sudo vim /etc/sysctl.conf

把 /etc/sysctl.conf 中的以下内容用上面查得的值填上。我的 /etc/sysctl.conf 里是没有这些的,所以我直接在文件最后加上了这些。(将问号改成查得的值)

fs.aio-max-nr = ? 
fs.file-max = ? 
kernel.shmall = ? 
kernel.shmmax = ? 
kernel.shmmni = ? 
kernel.sem = ? 
net.ipv4.ip_local_port_range = ? 
net.core.rmem_default = ? 
net.core.rmem_max = ? 
net.core.wmem_default = ? 
net.core.wmem_max = ?

运行一下命令更新内核参数:

sudo sysctl -p

Step 7:添加对当前用户的内核限制在 /etc/security/limits.conf 文件中增加以下数据(XXX换成你当前用户名)

XXX  soft nproc 2047
XXX  hard nproc 16384 
XXX  soft nofile 1024 
XXX  hard nofile 65536 
XXX  soft stack 10240

Step 8:

检查 /etc/pam.d/login,增加以下行(有了就不用增加了)

session required pam_limits.so 

检查 /etc/pam.d/su,没有以下行就自己加上

session required pam_limits.so

Step 9:Oracle默认不支持ubuntu需要欺骗一下Oracle安装程序,执行以下命令:

sudo mkdir /usr/lib64 
sudo ln -s /etc /etc/rc.d 
sudo ln -s /lib/x86_64-linux-gnu/libgcc_s.so.1 /lib64/ 
sudo ln -s /usr/bin/awk /bin/awk 
sudo ln -s /usr/bin/basename /bin/basename 
sudo ln -s /usr/bin/rpm /bin/rpm 
sudo ln -s /usr/lib/x86_64-linux-gnu/libc_nonshared.a /usr/lib64/ 
sudo ln -s /usr/lib/x86_64-linux-gnu/libpthread_nonshared.a /usr/lib64/ 
sudo ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /lib64/ 
sudo ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/lib64/ 

在 /etc/ubuntu-release 中(如果文件不存在则新建这个文件)添加一行

Ubuntu Linux release 14.04

然后保存退出即可。

Step 10:配置oracle的环境变量

再次提醒:确保自己不是在 root 用户下操作!

打开 .profile 文件,

sudo vim ~/.profile

在文件末尾添加以下行(如果不小心在前面添加了或者说最后发现sudo都用不了了,请看这里→【空,因为我还没写这个】

export ORACLE_BASE=/home/xxx/app/xxx
export ORACLE_HOME=${ORACLE_BASE}/product/11.2.0/dbhome_1 
export ORACLE_SID=orcl 
export ORACLE_UNQNAME=orcl 
export PATH=${ORACLE_HOME}/bin/:$PATH

Step 11:

首先检查一下oracle的环境变量是否是与上面的一样

echo $ORACLE_BASE 
echo $ORACLE_HOME 
echo $PATH

按理来说前两个应该是:

/home/xxx/app/xxx
/home/xxx/app/xxx/product/11.2.0/dbhome_1

如果不是,重新开启一个终端,应该就可以了。或者执行以下命令:

source ~/.profile

这个命令的作用是使你设的环境变量生效。

接下来执行以下命令打开远程桌面服务:(我这里并不懂有什么用,但是做了不亏)

vnc4server :1

这里的1表示vnc4server在1号端口上监听。如果出错,大概会提示你没有安装 vnc4server,那么 sudo apt-get install vnc4server 一下就好。

记住不要这个命令前面不要加上sudo ,否则打开的是root用户的远程桌面,而不是你要安装的用户,开启后的输出结果如下:

Step 12:启动oracle安装程序正式开始安装

如果是严格地按上面的步骤来,那么安装程序是解压在了 /home/database 下,进去这个文件夹

cd /home/database

以防乱码(舍友乱码了,然后是一个个框框的),在命令行中输入,

export LANG=US

运行安装程序

./runInstaller

然后进入图形化安装界面,接着根据安装向导提示做就行了 。先决条件检查会提示一堆fails,不用管它,直接把ignore All勾上,然后直接按 finish.

这里要提一句,如果你的swap空间不够的话,会提示交换空间不够,不能继续 (我没有遇到这种情况,也不是很懂是什么意思,但是还是把这段打在这了)

解决方式: 

可以另开一个终端用下面的命令临时提升交换空间,再去recheck一下,就行了:

free -m 
mkdir /swapfile 
cd /swapfile 
sudo dd if=/dev/zero of=swap bs=1024 count=400000 
sudo mkswap -f swap 
sudo swapon swap

Step 13:安装到68%时的错

安装途中出现 ins_ctx.mk什么什么的错误提示,直接continue跳过。

然后,还会弹出一个【调用makefile....‘/……emagent.mk’】的出错,这个主要因为C库的问题,解决办法就是手动指定C库位置出现agent nmhs问题后。打开一个新终端,找到 /home/coldog/app/coldog/product/11.2.0/dbhome_1/sysman/lib/ins_emagent.mk文件,在文件里找字符串  

$(MK_EMAGENT_NMECTL)

替换为

$(MK_EMAGENT_NMECTL)   -lnnz11

注意:lnnz和$(MK_EMAGENT_NMECTL)之间有空格

修改好后点击安装界面的retry. 类似的情况后面可能还会出现,所以可以同样地在新终端中执行下面四条命令:

sudo sed -i 's/^\(\$LD \$LD_RUNTIME\) \(\$LD_OPT\)/\1 -Wl,--no-as-needed \2/g' $ORACLE_HOME/bin/genorasdksh 
sudo sed -i 's/^\(\s*\)\(\$(OCRLIBS_DEFAULT)\)/\1 -Wl,--no-as-needed \2/g' $ORACLE_HOME/srvm/lib/ins_srvm.mk 
sudo sed -i 's/^\(TNSLSNR_LINKLINE.*\$(TNSLSNR_OFILES)\) \(\$(LINKTTLIBS)\)/\1 -Wl,--no-as-needed \2/g' $ORACLE_HOME/network/lib/env_network.mk 
sudo sed -i 's/^\(ORACLE_LINKLINE.*\$(ORACLE_LINKER)\) \(\$(PL_FLAGS)\)/\1 -Wl,--no-as-needed \2/g' $ORACLE_HOME/rdbms/lib/env_rdbms.mk 

Step 14:

耐心地等待,安装完成后会提示你要运行两个sh文件,按照上面的英文提示按部就班地完成即可。

安装ok!

Note. 我忘了是在安装过程中的哪一步还需要设置数据库用户的,不过按照图形安装界面上的指示去做问题不大。建议解锁scott账户,起码有个能用着。

 

・使用

Step 1:先检查一下环境变量

echo $ORACLE_BASE 
echo $ORACLE_HOME 
echo $PATH 

如果不是,那么执行下面命令后继续检查。

source ~/.profile

Step 2:查看数据库的监听状态 

执行命令

lsnrctl status

如果有输出那就ok了,如果没有输出,我也不知道怎么搞,我把别人的方法贴在这:

没有监听的解决办法: 
运行 netca 可以创建监听,调出图形界面设置监听 
如果没有创建库此时可以dbca 创建数据库. 
顺便运行以下代码修复 dbconsole 
emca -repos drop 
emca -repos create 
emca -config dbcontrol db 
emca start dbconsole 
到此数据库应该就可以跑起来了

如果没有监听,执行一下命令启动监听:

lsnrctl start

Step 3:进入Oracle

打开终端,输入

sqlplus / as sysdba

即进入oracle,你会看到有一个SQL> 在那。

然后启动oracle

SQL>startup

耐心地等一会儿,就ok了。(感谢船长的tips)

顺带说一句,停止oracle是

SQL>shutdown

 

 

 

参考资料:

https://askubuntu.com/questions/566734/how-to-install-oracle-11gr2-on-ubuntu-14-04#comment1147092_739718

https://blog.csdn.net/whbing1471/article/details/52087130

http://blog.itpub.net/14184018/viewspace-1811387/


如有疑问或建议,可以联系邮箱 jason_coldog@163.com

参与评论 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页

打赏作者

冷犬

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值