一定幸福的鱼 發表於 2023-6-26 00:00:00

CentOS 7.4下安装Oracle 11.2.0.4数据库的方法

<p>
        在linux下安装oracle数据库是一件较为麻烦的事情。</p>
<p>
        由于linux的安装过程中可能会选择不同的安装包,会导致oracle安装过程中缺失或多一些软件包,很难一次性的安装成功。所以,本文详细记录了oracle在linux上的安装过程,以供参考。</p>
<p>
        本环境仅供软件开发和测试环境使用,并不适合用于生产环境。</p>
<p>
        oracle官方支持的linux发行版本有redhat和oracle linux,所以,我们在centos(7.4)下安装oracle(11gr2)时,还需要做一些特别的准备工作。</p>
<p>
        本文的centos 7.4使用官网上下载的centos-7-x86_64-dvd-1708.iso文件安装,安装时选择server with gui,并选择ftp server。语言使用英语。</p>
<p>
        <img style="max-width:100%!important;height:auto!important;"title="CentOS 7.4下安装Oracle 11.2.0.4数据库的方法" alt="CentOS 7.4下安装Oracle 11.2.0.4数据库的方法" src="https://zhuji.jb51.net/uploads/img/202305/f420e1356853a442096820836af85bd2.jpg"></p>
<p>
        选择安装包</p>
<p>
        为了日常使用方便,执行命令systemctl set-default multi-user.target,让linux启动后,直接进入字符界面。</p>
<p>
        本文的oracle数据库使用的是11.2.0.4(这个版本适配红帽7,官网免费下载的版本并不适用于红帽7)。</p>
<p>
        附下载地址,请使用迅雷下载即可。</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterplain" id="highlighter_92862">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                        <div class="line number5 index4 alt2">
                                                                5</div>
                                                        <div class="line number6 index5 alt1">
                                                                6</div>
                                                        <div class="line number7 index6 alt2">
                                                                7</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="plain plain">https://updates.oracle.com/orion/services/download/p13390677_112040_linux-x86-64_1of7.zip?aru=16716375&amp;patch_file=p13390677_112040_linux-x86-64_1of7.zip</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="plain plain">https://updates.oracle.com/orion/services/download/p13390677_112040_linux-x86-64_2of7.zip?aru=16716375&amp;patch_file=p13390677_112040_linux-x86-64_2of7.zip</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="plain plain">https://updates.oracle.com/orion/services/download/p13390677_112040_linux-x86-64_3of7.zip?aru=16716375&amp;patch_file=p13390677_112040_linux-x86-64_3of7.zip</code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                        <code class="plain plain">https://updates.oracle.com/orion/services/download/p13390677_112040_linux-x86-64_4of7.zip?aru=16716375&amp;patch_file=p13390677_112040_linux-x86-64_4of7.zip</code>
</div>
                                                                <div class="line number5 index4 alt2">
                                                                        <code class="plain plain">https://updates.oracle.com/orion/services/download/p13390677_112040_linux-x86-64_5of7.zip?aru=16716375&amp;patch_file=p13390677_112040_linux-x86-64_5of7.zip</code>
</div>
                                                                <div class="line number6 index5 alt1">
                                                                        <code class="plain plain">https://updates.oracle.com/orion/services/download/p13390677_112040_linux-x86-64_6of7.zip?aru=16716375&amp;patch_file=p13390677_112040_linux-x86-64_6of7.zip</code>
</div>
                                                                <div class="line number7 index6 alt2">
                                                                        <code class="plain plain">https://updates.oracle.com/orion/services/download/p13390677_112040_linux-x86-64_7of7.zip?aru=16716375&amp;patch_file=p13390677_112040_linux-x86-64_7of7.zip</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
</div>
<p>
        <strong>1. 关闭防火墙</strong></p>
<p>
        由于是开发测试环境,为了方便,将防火墙关闭。但是,在正式的生产环境,千万不要这样做。</p>
<p>
        首先执行命令systemctl status firewalld.service检查防火墙状态,</p>
<p>
        <img style="max-width:100%!important;height:auto!important;"title="CentOS 7.4下安装Oracle 11.2.0.4数据库的方法" alt="CentOS 7.4下安装Oracle 11.2.0.4数据库的方法" src="https://zhuji.jb51.net/uploads/img/202305/86e32ee8c5e2187a427540ed8df641a1.jpg"></p>
<p>
        检查防火墙状态</p>
<p>
        然后,执行命令systemctl stop firewalld.service关闭防火墙。</p>
<p>
        当然,我们可以执行命令systemctl disable firewalld.service,禁用防火墙。</p>
<p>
        <img style="max-width:100%!important;height:auto!important;"title="CentOS 7.4下安装Oracle 11.2.0.4数据库的方法" alt="CentOS 7.4下安装Oracle 11.2.0.4数据库的方法" src="https://zhuji.jb51.net/uploads/img/202305/58b980077b27dc0366fd85b68e94dec4.jpg"></p>
<p>
        禁用防火墙</p>
<p>
        <strong>2. 关闭selinux</strong></p>
<p>
        selinux提供了很多linux的系统安全措施,演示系统中,将其关闭,方便操作。需要注意的是,在正式生产环境下,也千万不要这样做。</p>
<p>
        执行命令getenforce查看selinux的状态,初始安装的centos7是打开状态。</p>
<p>
        执行命令vi /etc/selinux/config,编辑文件,配置selinux=disabled,关闭selinux。</p>
<p>
        <strong>3. 为yum配置阿里源</strong></p>
<p>
        在安装oracle的过程中,需要安装一些依赖包。为了加快安装速度,最好将yum源更新为国内的,首推阿里yum源。</p>
<ol>
<li>
                执行命令cd /etc/yum.repos.d/,然后执行命令wget http://mirrors.aliyun.com/repo/centos-7.repo下载阿里yum源。</li>
        <li>
                执行命令mv centos-base.repo centos-base.repo.bak备份现有源信息。</li>
        <li>
                执行命令mv centos-7.repo centos-base.repo,使用上一步中下载回来的阿里yum源。</li>
        <li>
                依次执行命令yum clean all、yum makecache和yum update,更新yum源。</li>
</ol>
<p>
        <strong>4. (可选)为虚拟机生成快照</strong></p>
<p>
        为了保险起见,为虚拟机生成一份快照,避免后续安装出错,重头再来安装操作系统。</p>
<p>
        <strong>5. 创建数据库目录</strong></p>
<p>
        创建oracle数据库的安装目录到/opt下。</p>
<ol>
<li>
                执行命令mkdir -p /opt/oracle,创建oracle安装目录;</li>
        <li>
                执行命令mkdir -p /opt/orainventory,创建oracle数据库配置文件目录;</li>
        <li>
                执行命令chown -r oracle:oinstall /opt/oracle,设置oracle为目录的所有者;</li>
        <li>
                执行命令chown -r oracle:oinstall /opt/orainventory,设置oracle为目录的所有者。</li>
</ol>
<p>
        <strong>6. 创建用户和用户组</strong></p>
<p>
        oracle安装过程中,需要使用固定的用户和用户组。</p>
<ol>
<li>
                执行命令groupadd oinstall,创建oinstall用户组;</li>
        <li>
                执行命令groupadd dba,创建dba用户组;</li>
        <li>
                执行命令useradd -g oinstall -g dba -m oracle,创建oracle用户;</li>
        <li>
                执行命令passwd oracle,为oracle用户设置密码,为了好记密码为123456;</li>
        <li>
                执行命令id oracle,查看刚刚创建的oracle用户信息。</li>
</ol>
<p>
        <img style="max-width:100%!important;height:auto!important;"title="CentOS 7.4下安装Oracle 11.2.0.4数据库的方法" alt="CentOS 7.4下安装Oracle 11.2.0.4数据库的方法" src="https://zhuji.jb51.net/uploads/img/202305/c253af605074c9aa31a405aa83431903.jpg"></p>
<p>
        创建用户组及用户</p>
<p>
        执行命令vi /home/oracle/.bash_profile,添加如下内容,为oracle用户设置环境变量。</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterplain" id="highlighter_385739">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                        <div class="line number5 index4 alt2">
                                                                5</div>
                                                        <div class="line number6 index5 alt1">
                                                                6</div>
                                                        <div class="line number7 index6 alt2">
                                                                7</div>
                                                        <div class="line number8 index7 alt1">
                                                                8</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="plain plain">export oracle_base=/opt/oracle</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="plain plain">export oracle_home=$oracle_base/product/11.2.0/dbhome_1</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="plain plain">export oracle_sid=orcl</code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                        <code class="plain plain">export oracle_term=xterm</code>
</div>
                                                                <div class="line number5 index4 alt2">
                                                                        <code class="plain plain">export path=$oracle_home/bin:/usr/sbin:$path</code>
</div>
                                                                <div class="line number6 index5 alt1">
                                                                        <code class="plain plain">export ld_library_path=$oracle_home/lib:/lib:/usr/lib</code>
</div>
                                                                <div class="line number7 index6 alt2">
                                                                        <code class="plain plain">export lang=c</code>
</div>
                                                                <div class="line number8 index7 alt1">
                                                                        <code class="plain plain">export nls_lang=american_america.zhs16gbk</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
</div>
<p>
        执行命令source /home/oracle/.bash_profile,让配置立即生效。</p>
<p>
        <strong>7. 对oracle用户设置限制</strong></p>
<p>
        为了提高软件运行性能,需要对oracle用户设置限制。</p>
<p>
        执行命令vi /etc/security/limits.conf,添加如下内容:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterplain" id="highlighter_454113">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="plain plain">oracle soft nproc 2047</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="plain plain">oracle hard nproc 16384</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="plain plain">oracle soft nofile 1024</code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                        <code class="plain plain">oracle hard nofile 65536</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
</div>
<p>
        验证最新版的pam 已经被加载,如果不存在的话,在 /etc/pam.d/login 文件中添加如下内容:</p>
<p>
        <code>session required pam_limits.so</code></p>
<p>
        验证当前的ulimits,并启用。 这个可以通过很多方式来做, 在/etc/profile添加如下内容是推荐的方式:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterplain" id="highlighter_545316">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                        <div class="line number5 index4 alt2">
                                                                5</div>
                                                        <div class="line number6 index5 alt1">
                                                                6</div>
                                                        <div class="line number7 index6 alt2">
                                                                7</div>
                                                        <div class="line number8 index7 alt1">
                                                                8</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="plain plain">if [ $user = "oracle" ]; then </code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="plain spaces"> </code><code class="plain plain">if [ $shell = "/bin/ksh" ]; then </code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="plain spaces">  </code><code class="plain plain">ulimit -u 16384 </code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                        <code class="plain spaces">  </code><code class="plain plain">ulimit -n 65536 </code>
</div>
                                                                <div class="line number5 index4 alt2">
                                                                        <code class="plain spaces"> </code><code class="plain plain">else </code>
</div>
                                                                <div class="line number6 index5 alt1">
                                                                        <code class="plain spaces">  </code><code class="plain plain">ulimit -u 16384 -n 65536 </code>
</div>
                                                                <div class="line number7 index6 alt2">
                                                                        <code class="plain spaces"> </code><code class="plain plain">fi </code>
</div>
                                                                <div class="line number8 index7 alt1">
                                                                        <code class="plain plain">fi</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
</div>
<p>
        <strong>8. 修改os系统标识</strong></p>
<p>
        oracle数据库支持在红帽和oracle linux上安装,不支持在centos上安装,所以需要修改os系统标识为红帽。</p>
<p>
        执行命令vi /etc/redhat-release,修改系统标识为redhat-7。</p>
<p>
        <strong>9. 修改内核参数</strong></p>
<p>
        部分参数,在oracle安装过程中,可自动修复(使用root用户执行oracle安装程序给出的修复脚本),但是有部分不能自动修复。</p>
<p>
        执行命令vi /etc/sysctl.conf</p>
<p>
        修改的内核参数如下:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterplain" id="highlighter_932849">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                        <div class="line number5 index4 alt2">
                                                                5</div>
                                                        <div class="line number6 index5 alt1">
                                                                6</div>
                                                        <div class="line number7 index6 alt2">
                                                                7</div>
                                                        <div class="line number8 index7 alt1">
                                                                8</div>
                                                        <div class="line number9 index8 alt2">
                                                                9</div>
                                                        <div class="line number10 index9 alt1">
                                                                10</div>
                                                        <div class="line number11 index10 alt2">
                                                                11</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="plain plain">kernel.shmall = 2097152</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="plain plain">kernel.sem = 250 32000 100 128</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="plain plain">fs.file-max = 6815744</code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                        <code class="plain plain">net.ipv4.ip_local_port_range = 9000 65500</code>
</div>
                                                                <div class="line number5 index4 alt2">
                                                                        <code class="plain plain">net.core.rmem_default = 262144</code>
</div>
                                                                <div class="line number6 index5 alt1">
                                                                        <code class="plain plain">net.core.wmem_default = 262144</code>
</div>
                                                                <div class="line number7 index6 alt2">
                                                                        <code class="plain plain">net.core.rmem_max = 4194304</code>
</div>
                                                                <div class="line number8 index7 alt1">
                                                                        <code class="plain plain">net.core.wmem_max = 1048576</code>
</div>
                                                                <div class="line number9 index8 alt2">
                                                                        <code class="plain plain">kernel.shmmax = 2079272960</code>
</div>
                                                                <div class="line number10 index9 alt1">
                                                                        <code class="plain plain">kernel.shmmni = 4096</code>
</div>
                                                                <div class="line number11 index10 alt2">
                                                                        <code class="plain plain">fs.aio-max-nr = 1048576</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
</div>
<p>
        执行命令sysctl -p,使修改的内核参数生效。</p>
<p>
        <strong>10. 安装依赖的软件包</strong></p>
<p>
        oracle11gr2在centos7.4上安装,缺少如下19个包,需要执行命令yum install -y gcc libaio glibc.i686 compat-libstdc++-33 compat-libstdc++-33.i686 elfutils-libelf-devel glibc-devel glibc-headers gcc-c++ libaio-devel libaio-devel.i686 libgcc.i686 libstdc++ libstdc++.i686 unixodbc unixodbc.i686 unixodbc-devel unixodbc-devel.i686 ksh,来安装需要的19个依赖包。</p>
<p>
        针对pdksh找不到的问题,可安装ksh即可。据说oracle使用新的ksh了,但是检查脚本中还使用的是pdksh</p>
<p>
        <img style="max-width:100%!important;height:auto!important;"title="CentOS 7.4下安装Oracle 11.2.0.4数据库的方法" alt="CentOS 7.4下安装Oracle 11.2.0.4数据库的方法" src="https://zhuji.jb51.net/uploads/img/202305/c9dfe1e03cabbd48600a76091ade7b62.jpg"></p>
<p>
        缺少的依赖包</p>
<p>
        在ssh终端中安装完依赖的包后,再次检出环境,发现还有以下包缺失。其实是xxx(i386),centos7中已经使用i686的缘故,直接忽略,继续安装即可。</p>
<p>
        <img style="max-width:100%!important;height:auto!important;"title="CentOS 7.4下安装Oracle 11.2.0.4数据库的方法" alt="CentOS 7.4下安装Oracle 11.2.0.4数据库的方法" src="https://zhuji.jb51.net/uploads/img/202305/5f4d003cc0d6238091123318df09730d.jpg"></p>
<p>
        安装完依赖包</p>
<p>
        <strong>11. 安装oracle</strong></p>
<p>
        启动图形安装界面,按照提示安装,检查通不过的时候,请选择忽略即可。</p>
<p>
        进入oracle数据库的安装文件目录,如/software/database,执行命令./runinstaller,启动oracle数据库安装程序。</p>
<p>
        <img style="max-width:100%!important;height:auto!important;"title="CentOS 7.4下安装Oracle 11.2.0.4数据库的方法" alt="CentOS 7.4下安装Oracle 11.2.0.4数据库的方法" src="https://zhuji.jb51.net/uploads/img/202305/7c02e66ef96bb284a682393bb3a32ea4.jpg"></p>
<p>
        启动安装器</p>
<p>
        按照安装向导提示,一步一步的往下安装,需要注意的是使用中文一般要选zhs16gbk,否则会出现乱码。</p>
<p>
        <img style="max-width:100%!important;height:auto!important;"title="CentOS 7.4下安装Oracle 11.2.0.4数据库的方法" alt="CentOS 7.4下安装Oracle 11.2.0.4数据库的方法" src="https://zhuji.jb51.net/uploads/img/202305/d72468b2aab855a4592e9b75ca43e8dc.jpg"></p>
<p>
        安装过程中</p>
<p>
        安装时到70%左右会出现一个错误</p>
<p>
        error in invoking target 'agent nmhs' of makefile '/u01/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk'</p>
<p>
        解决方案:保留安装过程,另外开启一个终端窗口,将ins_emagent.mk文件中的(mk_emagent_nmectl)更改为$(mk_emagent_nmectl) -lnnz11,然后在安装过程中点击retry即可。</p>
<p>
        在vim中,键入 / 执行查找,键入 i 切换到插入状态。</p>
<p>
        大约10分钟后,安装成功。</p>
<p>
        <img style="max-width:100%!important;height:auto!important;"title="CentOS 7.4下安装Oracle 11.2.0.4数据库的方法" alt="CentOS 7.4下安装Oracle 11.2.0.4数据库的方法" src="https://zhuji.jb51.net/uploads/img/202305/1214267d514bb64579d93ab09fb8643f.jpg"></p>
<p>
        安装成功</p>
<p>
        <strong>12 启动关闭</strong></p>
<p>
        用oracle用户登录系统,执行命令sqlplus / as sysdba,连接到数据库。</p>
<p>
        启动命令:startup</p>
<p>
        关闭命令:shutdown</p>
<p>
        启动监听器,在linux命令行下(不是在sqlplus)执行lsnrctl start命令。</p>
<p>
        以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。</p>
<p>
        原文链接:http://www.jianshu.com/p/a3aeb2d96f27</p>
頁: [1]
查看完整版本: CentOS 7.4下安装Oracle 11.2.0.4数据库的方法