ubuntu14.04、CentOS安装oracle 11g数据库【转载】

本人花费半年的时间总结的《Java面试指南》已拿腾讯等大厂offer,已开源在github ,欢迎star!

本文GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收录,这是我花了6个月总结的一线大厂Java面试总结,本人已拿大厂offer,欢迎star

原文链接:blog.ouyangsihai.cn >> ubuntu14.04、CentOS安装oracle 11g数据库【转载】

出处:

ubuntu14.04、CentOS安装oracle 11g数据库

折腾了好久才装成功,之前打算在虚拟机里边装oracle,但是虚拟机的硬盘空间用完了,所以就用之前在阿里买的服务器上安装oracle,服务器是Ubuntu14.04版本的,安装过程不易 ,记录下来以备后用。

一、前提条件

请确保你的Ubuntu有一定的交换空间 请确保你的电脑上安装了jdk

二、安装

    1、更新系统(这个是在网上找到的,可选,但是我的14.04更新了之后之前安装出现的问题就少了)


sudo apt-get update </code></p> </li>-  `sudo apt-get dist-upgrade ` </ol>
    2、安装依赖包 
这个很重要,之前因为看的安装指导教程是用yum方式安装依赖包的,但是Ubuntu14好像不支持yum方式安装依赖包,所以安装的时候 就跳过此步骤了,这个可能会导致后面出现很多问题。有些源可能已经找不到了 ,可以添加以下的源。 
<blockquote> 
 sudo vim /etc/apt/sources.list ## 添加如下源,vim打开文件后,将下面的源追加到文件末尾保存即可: deb  trusty main deb-src  trusty main deb  raring main restricted universe multiverse 
</blockquote> 
更新源文件保存并更新 
<pre class="has"><code>sudo apt-get update

下面的全部要装上,否则安装途中可能会因为依赖问题出现错误,采用静默安装方式后又无从找起,仔细一个一个查一遍,终端键入:


sudo apt-get install bzip2 </code></p> </li>-  `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 ` </ol>
centos需要执行下列依赖 
<pre class="has"><code>yum install binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers glibc-static kernel-headers pdksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel libstdc++-static make numactl-devel sysstat unixODBC unixODBC-devel

    3、检查系统变量


/sbin/sysctl -a | grep sem </code></p> </li>-  `/sbin/sysctl -a | grep shm ` -  `/sbin/sysctl -a | grep file-max ` -  `/sbin/sysctl -a | grep aio-max ` -  `/sbin/sysctl -a | grep ip_local_port_range ` -  `/sbin/sysctl -a | grep rmem_default ` -  `/sbin/sysctl -a | grep rmem_max ` -  `/sbin/sysctl -a | grep wmem_default ` -  `/sbin/sysctl -a | grep wmem_max ` </ol>
上边每条命令的输出都要保存下来,然后在/etc/sysctl.conf中增加对应数据 
<pre class="has"><code>sudo vim /etc/sysctl.conf 

下面是我的机器查询出的配置,然后添加到sysctl.conf 文件中,每个机器可能都不一样,所以这个没必要来照抄,照抄也可能会引发错误。


kernel.sem = 250 32000 100 128</code></p> </li>-  `kernel.sem_next_id = -1` -  `kernel.shm_next_id = -1` -  `kernel.shm_rmid_forced = 0` -  `kernel.shmall = 2097152` -  `kernel.shmmax = 536870912` -  `kernel.shmmni = 4096` -  `vm.hugetlb_shm_group = 0` -  `fs.file-max = 6815744` -  `fs.aio-max-nr = 1048576` -  `net.ipv4.ip_local_port_range = 9000 65500` -  `net.core.rmem_default = 262144` -  `net.core.rmem_max = 4194304` -  `net.core.wmem_default = 262144` </ol>
运行一下命令更新内核参数 
<pre class="has"><code>/sbin/sysctl –p

    4、添加对当前用户的内核限制。在 /etc/security/limits.conf 文件中增加以下数据(之后一般会创建oracle用户)


oracle soft nproc 2047</code></p> </li>-  `oracle hard nproc 16384` -  `oracle soft nofile 1024` -  `oracle hard nofile 65536` -  `oracle soft stack 10240` </ol>
    5、检查/etc/pam.d/login,然后添加一行数据(没有的话再添加) 
执行`sudo vim /etc/pam.d/login`,添加以下数据 
<pre class="has"><code>session required pam_limits.so 

检查/etc/pam.d/su,同样是没有的话再进行添加(一般是有的),执行 sudo vim /etc/pam.d/su,添加以下数据


session required pam_limits.so 

    6、oracle默认不支持ubuntu需要欺骗一下oracle安装程序


mkdir /usr/lib64 </code></p> </li>-  `ln -s /etc /etc/rc.d ` -  `ln -s /lib/x86_64-linux-gnu/libgcc_s.so.1 /lib64/ ` -  `ln -s /usr/bin/awk /bin/awk ` -  `ln -s /usr/bin/basename /bin/basename ` -  `ln -s /usr/bin/rpm /bin/rpm ` -  `ln -s /usr/lib/x86_64-linux-gnu/libc_nonshared.a /usr/lib64/ ` -  `ln -s /usr/lib/x86_64-linux-gnu/libpthread_nonshared.a /usr/lib64/ ` -  `ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /lib64/ ` -  `ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/lib64/ ` -  `echo 'Red Hat Linux release 5' &gt; /etc/redhat-release` </ol>
    7、再/etc/profile配置文件追加shell代码,执行`sudo vim /etc/profile`打开文件,添加以下代码(注意代码的格式,比如if括号两边要有空格,不然会报错) 
<pre>
 </pre> 
-  `if [ $USER = "oracle" ];then` -  `if [ "$SHELL" = "/bin/ksh" ];then` -  `ulimit -p 16384` -  `echo "hello"` -  `ulimit -n 65536` -  `echo "world"` -  `else` -  `ulimit -u 16384 -n 65536` -  `fi` -  `fi` 
    8、创建用户组和用户(在shell中执行) 
<pre>
 </pre> 
-  `groupadd oinstall` -  `groupadd dba` -  `groupadd oper` -  `useradd -g oinstall -G dba,oper oracle` -  `passwd oracle` 
    9、下载oracle 11g压缩文件(包含两个压缩文件) 
下载地址,卷1:。卷2:(下载oracle第一次可能会要求你注册账号,所以也可以选择去百度搜索,有网盘分享的) 下载之后将文件解压到**同一目录** 
<pre>
 </pre> 
-  `unzip linux.x64_11gR2_database_1of2.zip` -  `unzip linux.x64_11gR2_database_2of2.zip` 
    10、静默安装设置 
在解压之后进入database文件夹,打开response/db_install.rsp文件,`sudo vim response/db_install.rsp`,下面是保证安装需要配置的基本数据,找到对应项修改,路径你需要按照你自己的文件系统进行修改。我是在/usr/local中创建了oracle文件夹,然后解压文件database为/usr/local/oracle的子文件夹。 
<pre>
 </pre> 
-  `oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0` -  `oracle.install.option=INSTALL_DB_AND_CONFIG` -  `UNIX_GROUP_NAME=oinstall` -  `INVENTORY_LOCATION=/usr/local/oracle/oraInventory` -  `SELECTED_LANGUAGES=en,zh_CN` -  `ORACLE_HOME=/usr/local/oracle/home/oracle_11g` -  `ORACLE_BASE=/usr/local/oracle/home` -  `oracle.install.db.DBA_GROUP=dba` -  `oracle.install.db.OPER_GROUP=dba` -  `oracle.install.db.config.starterdb.globalDBName=orcl` -  `oracle.install.db.config.starterdb.SID=ora11g` -  `oracle.install.db.config.starterdb.memoryLimit=256` -  `oracle.install.db.config.starterdb.password.ALL=[密码,包含大小写字母,数字,至少8个字符]` -  `oracle.install.db.config.starterdb.password.SYS=[密码,包含大小写字母,数字,至少8个字符]` -  `oracle.install.db.config.starterdb.password.SYSTEM=[密码,包含大小写字母,数字,至少8个字符]` -  `oracle.install.db.config.starterdb.password.SYSMAN=[密码,包含大小写字母,数字,至少8个字符]` -  `oracle.install.db.config.starterdb.password.DBSNMP=[密码,包含大小写字母,数字,至少8个字符]` -  `oracle.install.db.config.starterdb.dbcontrol.emailAddress=[你的邮箱地址]` -  `oracle.install.db.config.starterdb.storageType=FILE_SYSTEM_STORAGE` -  `oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=/usr/local/oracle/home/db_file` -  `DECLINE_SECURITY_UPDATES=true` 
    11、执行安装文件(静默安装) 
安装过程中不会出现图形界面,控制太也很少有信息输出,安装过程大概会持续10-20分钟,控制台提示日志文件保存时不要强制退出,等安装好之后会有提示) 
`su oracle`(切换到oracle用户), 然后进入database文件夹执行命令`./runInstaller -silent -ignoreSysPrereqs -ignorePrereq -responseFile /usr/local/oracle/database/response/db_install.rsp`进行安装。过程持续10-20分钟。下面是安装成功的截图,最后会提示Successfully Setup Software,然后按Ctrl + C退出即可。<img alt="这里写图片描述" class="has" src="https://img-blog.csdn.net/20171122213905776?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzEyNTgyNDU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast"> 根据提示安装好之后要执行/usr/local/oracle/home/oracle_11g/root.sh脚本 
    12、配置oracle的环境变量 
切换到root账户`su root` 打开文件 
<pre class="has"><code>sudo vim ~/.bashrc 
  1. if [ $USER = "oracle" ];then 1. if [ "$SHELL" = "/bin/ksh" ];then 1. ulimit -p 16384 1. echo "hello" 1. ulimit -n 65536 1. echo "world" 1. else 1. ulimit -u 16384 -n 65536 1. fi 1. fi 1. unzip linux.x64_11gR2_database_1of2.zip 1. unzip linux.x64_11gR2_database_2of2.zip
    添加环境变量
  2. export ORACLE_BASE=/usr/local/oracle/home 1. export ORACLE_HOME=${ORACLE_BASE}/oracle_11g 1.  1. export ORACLE_SID=ora11g 1. export ORACLE_UNQNAME=orcl 1.  1. export PATH=$PATH:${ORACLE_HOME}/bin/ 1. export LD_LIBRARY_PATH=${ORACLE_HOME}/lib:$LD_LIBRARY_PATH
    执行 source ~/.bashrc更新环境变量,安装完成

    13、安装简单测试(是否安装好了)

  1. lsnrctl start ##开启监听 1. sqlplus / as sysdba 1. startup 1.  1. lsnrctl status 1. lsnrctl stop 1.  1. 查看服务名: 1. show parameter service; 1. 查看实例名: 1. select * from v$instance; 1. 查看数据库名: 1. select name from v$database; 1. 查看数据库用到几个表空间: 1. select distinct TABLESPACE_NAME from tabs;

    三、安装过程中出现的问题

在执行安装命令中可能会出现交换空间不足的错误,那么就需要在错误出现的时候执行下面的路径来设置交换空间(系统根目录下执行)。

  1. free -m 1. mkdir /swapfile 1. cd /swapfile 1. sudo dd if=/dev/zero of=swap bs=1024 count=400000 1. sudo mkswap -f swap 1. sudo swapon swap
    另外安装完成时可以来测试一下环境变量,看下输出是否和你的目录匹配。
  2. echo $ORACLE_BASE 1. echo $ORACLE_HOME 1. echo $PATH
    当执行sqlplus / as sysdba时出现动态链接库的问题

sqlplus: error while loading shared libraries: libsqlplus.so: cannot open shared object file: No such file or directory

解决方法:

在配置oracle环境变量的时候加上这个配置 export LD_LIBRARY_PATH=${ORACLE_HOME}/lib:$LD_LIBRARY_PATH

还有一种错误是启动监听的时候报错,报错信息如下

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 28-NOV-2017 13:36:56 Copyright (c) 1991, 2009, Oracle. All rights reserved.
Starting /usr/local/oracle/home/oracle_11g/bin/tnslsnr: please wait…
TNSLSNR for Linux: Version 11.2.0.1.0 - Production System parameter file is /usr/local/oracle/home/oracle_11g/network/admin/listener.ora Log messages written to /usr/local/oracle/home/diag/tnslsnr/oracle/listener/alert/log.xml Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) TNS-12533: TNS:illegal ADDRESS parameters TNS-12560: TNS:protocol adapter error TNS-00503: Illegal ADDRESS parameters

出现这个问题的原因是hosts文件设置不正确,解决方法是在 /etc/hosts文件中添加如下

127.0.0.1 localhost.localhostdomain localhost ::1 oracle [主机IP地址] domain domain

另外需要修改 /etc/sysconfig/network,修改主机名为oracle

NETWORKING=yes HOSTNAME=oracle

之后执行命令 hostname oracle

四、卸载oracle的两种方式

Linux Oracle 卸载步骤 第一种方法: 使用 oracle 自带的 runInstaller 卸载; 第二种方法:通过删除文件的方式卸载;(即:删除 Oracle 安装目录下的所有文 件和文件夹) 1. 使用 SQL*PLUS 停止数据库 2. 停止 Listener 3. 用 su 或者重新登录到 root 4. 将 oracle 安装目录删除 5. 将/usr/bin 下的文件删除(删除这三个文件后,Oracle 就不能使用了) rm /usr/local/bin/dbhome rm /usr/local/bin/oraenv rm /usr/local/bin/coraenv 6. 将/etc/oratab 删除 7. 将/etc/oraInst.loc 删除 8. 将 oracle 用户删除(若要重新安装,可以不删除) 9. 将用户组删除(若要重新安装,可以不删除)

原文地址:https://sihai.blog.csdn.net/article/details/82745982

本人花费半年的时间总结的《Java面试指南》已拿腾讯等大厂offer,已开源在github ,欢迎star!

本文GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收录,这是我花了6个月总结的一线大厂Java面试总结,本人已拿大厂offer,欢迎star

原文链接:blog.ouyangsihai.cn >> ubuntu14.04、CentOS安装oracle 11g数据库【转载】


 上一篇
SpringBoot 使用WebSocket打造在线聊天室(基于注解) SpringBoot 使用WebSocket打造在线聊天室(基于注解)
点击上方“好好学java”,选择“置顶公众号” 优秀学习资源、干货第一时间送达!  精彩内容  一、打造 WebSocket 聊天客户端 温馨提示:得益于W3C国际标准的实现,我们在浏览器JS就能直接创建WebSocket对象,再通过
2021-04-04
下一篇 
SpringBoot 使用Swagger2打造在线接口文档(附源代码) SpringBoot 使用Swagger2打造在线接口文档(附源代码)
点击上方“好好学java”,选择“置顶公众号” 优秀学习资源、干货第一时间送达!  精彩内容  序言:编写和维护接口文档是每个程序员的职责,根据Swagger2可以快速帮助我们编写最新的API接口文档,再也不用担心开会前仍忙于整理各
2021-04-04