Linux系统安装Oracle 11g数据库

Posted 寻找五叶草

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux系统安装Oracle 11g数据库相关的知识,希望对你有一定的参考价值。

下图为oracle数据库安装导图:

 

 

 

安装步骤:

1、下载oracle 11g 安装包

  因为我centos7为64位操作系统,所以这里下载的也是64位版本的oracle。

  下载地:http://www.oracle.com/technetwork/indexes/downloads/index.html#database

 

 

 

下载后:

  2、安装前的准备

   2.1、创建组与用户 

[root@localhost zhuzi]# groupadd oinstall #创建oinstall组
[root@localhost zhuzi]# groupadd dba  #创建dba组
[root@localhost zhuzi]# useradd -g oinstall -g dba -m oracle #创建oracle用户并将用户加入到dba组与oinstall组
[root@localhost zhuzi]# passwd oracle #设置oracle用户密码

 

 

   2.2、创建oracle安装目录

 

[root@localhost zhuzi]# mkdir -p /data/oracle #oracle根目录
[root@localhost zhuzi]# mkdir -p /data/database #用于存放Oracle解压后的安装包
[root@localhost zhuzi]# mkdir -p /data/oraInventory #数据库配置文件目录
[root@localhost zhuzi]# chown -R oracle:oinstall  /data #修改目录所有者为oracle

 

  2.3、关闭防火墙

     1)、首先关闭selinux,修改/etc/selinux/config文件,将SELINUX=disabled。修改好后如下图所示,这个如果修改好后,需要重启才能生效: 

    2)、关闭防火墙,并设置开机不启动防火墙。设置好后不需要重启,会立即生效。

 

[root@localhost zhuzi]# systemctl stop firewalld.service   #关闭防火墙
[root@localhost zhuzi]# systemctl disable firewalld.service #设置开机不启动防火墙

 

   2.4、优化系统内核参数    

    1)、编辑/etc/sysctl.conf文件,在文件尾添加如下内容:

 

net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.conf.all.rp_filter = 1
fs.file-max = 6815744 #设置最大打开文件数
fs.aio-max-nr = 1048576
kernel.shmall = 2097152 #共享内存的总量,8G内存设置:2097152*4k/1024/1024
kernel.shmmax = 2147483648 #最大共享内存的段大小
kernel.shmmni = 4096 #整个系统共享内存端的最大数
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500 #可使用的IPv4端口范围
net.core.rmem_default = 262144
net.core.rmem_max= 4194304
net.core.wmem_default= 262144
net.core.wmem_max= 1048576

 

    2)、使配置修改内核的参数生效:

[root@localhost zhuzi]# sysctl -p

 

 

   2.5、对oracle用户设置限制  

[root@localhost zhuzi]# vi /etc/security/limits.conf

     在文件后半部分,添加如下内容中斜体部分内容,保存退出。

 

@student - maxlogins 4
 
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
 
End of file

 

  2.6、设置用户变量

[root@localhost ~]# vi /home/oracle/.bash_profile

     在文件末尾添加如下内容:

 

export ORACLE_BASE=/data/oracle #oracle数据库安装目录
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1 #oracle数据库路径
export ORACLE_SID=orcl #oracle启动数据库实例名
export ORACLE_UNQNAME=orcl
export ORACLE_TERM=xterm #xterm窗口模式安装
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH #添加系统环境变量
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib #添加系统环境变量
export LANG=C #防止安装过程出现乱码
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK #设置Oracle客户端字符集,必须与Oracle安装时设置的字符集保持一致 

 


       使配置的环境变量生效:

[root@localhost ~]# source /home/oracle/.bash_profile

   2.6、配置yum源

    1). 备份

      mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

    2).下载新的 CentOS-Base.repo 到 /etc/yum.repos.d/,这里使用阿里的yum源。

      CentOS 7命令为:

      wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

    3)、yum clean all  #清空yum缓存

    4)、yum makecache #重建缓存

    5)、yum repolist  #查看配置目录资源数

   2.7、安装依赖包

[root@localhost ~]# yum -y install binutils* compat-libcap1* compat-libstdc++* gcc* gcc-c++* glibc* glibc-devel* ksh* libaio* libaio-devel* libgcc* libstdc++* libstdc++-devel* libXi* libXtst* make* sysstat* elfutils* unixODBC*

  centos7需要的安装包,可以在Oracle上查看:https://docs.oracle.com/cd/E11882_01/install.112/e47689/pre_install.htm#LADBI1085
  我的版本当然对应的是这个版本:Oracle Linux 7 and Red Hat Enterprise Linux 7
  它没有要求说要安装elfutils和unixODBC包,但是等安装Oracle检查安装前准备时,会提示说缺少这两个包,所以一并安装

 3、开始安装Oracle

前面设置很多内容,保险起见,重启一次系统。

[root@localhost ~]# reboot

 将步骤1中下载的两个oracle安装文件,上传至/usr/local/src目录中。我使用的xshell工具,root用户直接在命令窗口cd /usr/local/src ,然后鼠标拖住那两个安装包至命令窗口就可以自动上传。

 

 

 用root用户解压这两个文件到/data/database 目录下,设置所属用户与组,再切换至oracle用户加载一下环境变量,开始安装。

 

[root@localhost src]# unzip linux.x64_11gR2_database_1of2.zip -d /data/database/ #解压第一个压缩包
[root@localhost src]# unzip linux.x64_11gR2_database_2of2.zip -d /data/database/ #解压第二个压缩包
[root@localhost src]# chown -R oracle:oinstall /data #指定文件夹及子目录的所属用户与组
[root@localhost src]# su oracle #切换至oracle用户
[oracle@localhost src]$ cd #进入家目录
[oracle@localhost ~]$ source .bash_profile #加载环境变量
[oracle@localhost ~]$ cd /data/database/database/ #进入oracle安装程序存放的目录
[oracle@localhost database]$ ./runInstaller #执行oracle安装命令,然后弹出下图安装窗口。

 

下面为贴图部分,修改后与下面图保持一致即可。

 1)、将勾去掉,这样就不自动更新软件了。

  2)、提示你没有提供电子邮件,这里选择yes,继续就行。

 

 

 

 

 3)、这里选择第二项,仅安装数据库软件。

 

 

 

 

 

 4)、这里选择第一个选项,单实例数据库。第二个为安装集群的意思。

 

 

 

 

5)、选择语言,默认下一步。

6)、第一个为企业版,默认直接下一步。

  

  7)、前面咱们准备阶段,已经在环境变量里配置好了路径,这里就是读取咱们前面配置的路径,所以直接下一步。不用修改。

 

  8)、指定配置文件存放路径,这个也不需要修改,也是读取了咱们前面配置到环境变量里的路径。所以直接下一步。

  9)、关于权限的问题,这里直接都是默认就行。下一步。

 

  10)、这里会检查系统资源与依赖包是否都满足,第一个提示swap大小不符合,这里扩展一下swap大小,可以参考https://www.cnblogs.com/find-syc/p/12615991.html,其他问题,选中缺失的依赖包,如果下方详情栏里Expected value中有括号中标注(i386)或(i686),是在提示缺少32位的依赖包,但是实际上已经安装了64位的依赖包,忽略它们,pdksh包已经安装,就是之前安装的ksh依赖包。

  

11)、点击finish完成。

  

  

 报错解决:

1)、该软件包包含一个静态链接库,地址是:/usr/lib64/libc.a
修改/data/oracle/product/11.2.0/db_1/ctx/lib/ins_ctx.mk,将
ctxhx: $(CTXHXOBJ)
       $(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK)
修改为:
ctxhx: $(CTXHXOBJ)
       -static $(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK) /usr/lib64/libc.a
点击Retry继续安装。
2)、”Error in invoking target \'agent nmhs\' of makefile \'/data/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk.\' 
解决方法:在makefile中添加链接libnnz11库的参数
修改/data/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk,将
$(MK_EMAGENT_NMECTL)修改为:$(MK_EMAGENT_NMECTL) -lnnz11
点击Retry继续安装。
有时候安装界面出现的灰色竖线无法拉开,可以重新运行./runInstaller,在重复上述步骤以后,第11步做完直接按照上面两个问题的解决办法修改两个mk文件,修改好安装时就不会报错了。mk文件是makefile文件,要以tab键开头,所以直接复制上面的修改语句会报错,要把
-static $(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK) /usr/lib64/libc.a的前面的空格修改成tab键,不然会报错。
3)安装Database Configuration Assistant会需要挺长的时间,当安装完成后会弹出一个对话框,点击"Password management...",将竖线拉成对话框,给SYS、System、Scoot、SH设置密码,它们的默认密码分别是SYS:change_on_install、System:manager、Scoot:tiger、SH:sh,分别输入进对应的密码输入框中,在Scoot、SH设置密码之前,点击对号就可以为它们设置密码了。
4)最后等进度在100%的时候,会出现一个竖线,把它拉开,按照里面的提示以root权限进入提示的地址,运行上面提示的两个sh文件,第二个sh文件要你选地址直接回车就好了。
 
12)、用root用户,依次执行下面两条命令。

 

[root@localhost zhuzi]# /data/oraInventory/orainstRoot.sh 
[root@localhost zhuzi]# /data/oracle/product/11.2.0/db_1/root.sh #这条命令执行后需要再按一次回车键才会结束。 

 

点击右下角close按钮,完成安装。

 

 

4、配置监听,在oracle用户下执行命令。

[oracle@localhost database]$ netca #创建监听

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

在不修改端口的情况下,第一个监听程序,一路回车,就配置好了。

 

5、创建数据库

[oracle@localhost database]$ dbca #创建数据库

 

 

 

 

 选择第二项,意思是自定义数据库。

 

 

下面为输入想要创建数据库的名字,这里我输入的为orcl,你可以随意,但是上下内容要一致。

 

 

 

 

 

 第二项为对所有账户使用相同的管理密码,这里需要填写一下想设置的密码。

 

这里提示我密码太简单,我们直接yes忽略他的提示。

 

 

 指定新建数据库的存放位置,这里我们选第二项,填写上之前建立的目录。

 

这里取消闪回功能,你也可以打开,看需求。

 

 

下面为一些数据库组件的选择,这里就全部清空选择。直接下一步。

 

 

 

 

一些配置参数,内存,字符集等等,直接默认下一步。

 

 

 

 

 

 

 

 

 

 

 接下来,等待安装结束,测试一下,有没有安装成功。

 

 安装结束,点击Exit按钮。

~~~~~~~~~~~~~~~~~~~~进入测试环节~~~~~~~~~~~~~~~~~~~~~~~~

[oracle@localhost database]$ sqlplus / as sysdba

 

 上图可以看出,sqlplus已经成功登陆进来了。

SQL> select status from v$instance;

 

 上图可以看出,数据库已经是打开状态的了。输入exit回车,可以退出sqlplus。

 

 上图可以看出监听状态,至此,oracle数据库安装结束。

 

 

安装完成后的两个小问题

 

1.Linux下sqlplus不能使用光标箭头

 

解决办法:安装rlwrap包

 

1)下载rlwrap压缩包(我下载的是rlwrap-0.37.tar.gz);

 

2)yum安装readline

 

[root@localhost oracle]#yum -y install readline*

 

3)解压,安装

 

[root@localhost oracle]#tar -xzvf rlwrap-0.37.tar.gz
[root@localhost oracle]#cd rlwrap-0.37.tar.gz
[root@localhost oracle]#./configure
[root@localhost oracle]#make
[root@localhost oracle]#make install

 

4)切换到oracle用户下,编辑bash_profile文件

 

[oracle@localhost ~]vi .bash_profile

 

在最后添加

 

alias sqlplus=\'rlwrap sqlplus\'
alias rman=\'rlwrap rman\'

 

保存退出,执行source .bash_profile使其生效。

 

或者直接不修改bash_profile文件,直接在输入sqlplus命令前加上rlwrap即可(我修改了bash_profile文件,重启系统还是要重新输入source命令使其生效,我之后直接在sqlplus命令前加rlwrap)。

 

这样在sqlplus中就可以使用上下左右键来查看历史纪录了。

 

2.vim中文乱码

 

设置~下或者oracle用户下的.vimrc文件,加上fileencodings、enc、fencs,代码如下:

 

vim ~/.vimrc    #或者vim /home/oracle(用户名)/.vimrc
#添加如下代码
set fileencodings=utf-8,gb2312,gb18030,gbk,ucs-bom,cp936,latin1
set enc=utf8
set fencs=utf8,gbk,gb2312,gb18030

 

 参考:https://www.cnblogs.com/muhehe/p/7816808.html

以上是关于Linux系统安装Oracle 11g数据库的主要内容,如果未能解决你的问题,请参考以下文章

Linux系统安装Oracle 11g数据库

Linux下如何安装安装oracle 11g

linux安装oracle11g

Linux安装Oracle 11G过程(测试未写完)

centos安装oracle 11g 完全图解

oracle 11g 安装包解压的问题