Saturday 8 October 2016

Ubuntu1.6下安装ORACLE-XE SQL

之前一直用postgres,这次换了个学校老师要求也变了,非要用oracle...话说这个公司对广大linux用户不好啊,才出了一个rpm格式的安装包只服务部分linux用户。。这个安装很费神,网上也只有英文版教程,安装过程也出了不少差错。
进入正题,直接上安装步骤吧
1.下载地址: 戳我
    我下的是LINUX64BIT那个版本

    注意:想要下载这个东西还要在它官网注册账号,尼玛为什么注册个账号还要写公司,手机号码,什么鸟都写。搞家庭调查吗!?!

2. 下载完后得到的是一个zip文件,先解压(我解压到了/opt 里):
     $unzip oracle-xe-11.2.0-1.0.x86_64.rpm.zip
     解压后你会得到一个名为 Disk1的文件夹,里面会有一个rpm文件和两个其他文件夹:




3.然后安装alien包把rpm包转换成deb包, 这个过程会相当长,可以先做第4和第5步,另外不要打断转换,耐心是美德:
    $sudo apt-get install alien libaio1 unixodbc vim
  $sudo alien --scripts -d oracle-xe-11.2.0-1.0.x86_64.rpm
   这一步完了以后,会得到一个 oracle-xe_11.2.0-2_amd64.deb 的文件,如上图。

4.为了解决Linux版本之间的兼容问题(大概是这样),还要去/sbin/里写个文件:
$sudo vim /sbin/chkconfig
文件内容:
#!/bin/bash
# Oracle 11gR2 XE installer chkconfig hack for Ubuntu
file=/etc/init.d/oracle-xe
if [[ ! `tail -n1 $file | grep INIT` ]]; then
echo >> $file
echo '### BEGIN INIT INFO' >> $file
echo '# Provides: OracleXE' >> $file
echo '# Required-Start: $remote_fs $syslog' >> $file
echo '# Required-Stop: $remote_fs $syslog' >> $file
echo '# Default-Start: 2 3 4 5' >> $file
echo '# Default-Stop: 0 1 6' >> $file
echo '# Short-Description: Oracle 11g Express Edition' >> $file
echo '### END INIT INFO' >> $file
fi
update-rc.d oracle-xe defaults 80 01
保存设定权限:
$ sudo chmod 755 /sbin/chkconfig

5.设定kernel的参数(告诉kernel这个应用能使用的ram内存大小,文件大小等等):
sudo vim /etc/sysctl.d/60-oracle.conf 
文件内容:
# Oracle 11g XE kernel parameters  
fs.file-max=6815744  
net.ipv4.ip_local_port_range=9000 65000  
kernel.sem=250 32000 100 128 
kernel.shmmax=536870912 

装载刚刚写入的内容:
$sudo service procps start
用sysctl命令检查一下:


6.终于可以安装了,这也是很耗费时间的,耐心是美德,我的小电脑大概用了20分钟= =
$sudo dpkg --install /opt/Disk1/oracle-xe_11.2.0-2_amd64.deb 

7.安装完成后会有提示用 /etc/init.d/oracle-xe configure 来设置应用的基本参数,端口用默认的就行了:
$sudo /etc/init.d/oracle-xe configure 

  • HTTP端口8080
  • 数据库监听端口1521
  • 数据库root SYS和SYSTEM的密码
  • 初始化你的数据库(耗时间,大概7-8分钟吧
8.设置环境参数,方便你启动数据库:
$vim ./bashrc
加入环境变量内容:

export ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe
export ORACLE_SID=XE
export NLS_LANG=`$ORACLE_HOME/bin/nls_lang.sh`
export ORACLE_BASE=/u01/app/oracle
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export PATH=$ORACLE_HOME/bin:$PATH


更新环境变量:$. ./.profile 或者 $source ./bashrc

9.使用服务$sudo service oracle-xe start

用root身份进入:$sqlplus sys as sysdba


再来说下我安装过程中遇到的问题:
在第9步的时候我无法使用sys的身份进入sysdba,会出现这样的错误提示:
ORA-01017: invalid username/password; logon denied.
这是因为ubuntu当前用户没有加入dba mod的原因,所以没有权限通过sys进入sysdba。但是在加入这个mod之前,我建议大家新建一个拥有sudo权限的用户,因为笔者通过命令把自己tearsyu用户加入dba mod以后,莫名其妙地就被移除了sudo的权限,导致无法使用sudo这个命令很头疼,又没有启用root,只好去recovery mode来把tearsyu又加入sudoer中,很麻烦。但不是一定会发生,我查了半天也没搞清楚我到底干了什么把自己从sudoer名单中移除了,为了保险起见,我建议大家添加一个新用户:
$sudo useradd xxx
$passwd xxx
$sudo usermod  -aG sudo xxx

再把自己加入dba(笔者用的命令是sudo -i usermod -G dba tearsyu,-G 是在原来的基础上添加新mod,-g才是只加入制定mod,我确实没把G打成g不知为何就被移除权限了,所以为了更加保险,加入a):
$sudo -i usermod -aG dba tearsyu

那么到这里就完了。感谢博客主:Manish Raj 以及文章:http://meandmyubuntulinux.blogspot.fr/2012/05/installing-oracle-11g-r2-express.html

1 comment:

  1. hi 我是掘金运营妹子羊三岁,恭喜你在掘金第四十七期沸点活动“下期沸点 你想聊些什么话题”中高票排名前五,获得价值569的,明后天北京iDev iOS大会门票一张,收到信息后请及时加我微信 antonia0912 备注 沸点,前来领票喔~

    ReplyDelete