Skip to content

linux安装oracle

linux上的几个文件路径需要保证磁盘空间满足一下要求,如果安装一次失败了以后,记得情况这些文件盘下面的oracle生成的临时文件。

  • oracle主路径:10G

  • swap:5G

  • tmp:3G

一、环境配置,安装环境软件包

yum -y install binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33*.i686 elfutilslibelf-devel gcc gcc-c++ glibc*.i686 glibc glibc-devel glibc-devel*.i686 ksh libgcc*.i686 libgcc libstdc++ libstdc++*.i686 libstdc++-devel libstdc++-devel*.i686 libaio libaio*.i686 libaio-devel libaio-devel*.i686 make sysstat unixODBC unixODBC*.i686 unixODBC-devel unixODBCdevel*.i686 libXp

二、调整内核参数

vi /etc/sysctl.conf

将以下内容粘贴:

fs.aio-max-nr
#异步IO请求数目 推荐值是:1048576 其实它等于 1024*1024 也就是 1024K 个
fs.file-max = 6815744
#打开的文件句柄的最大数量,防止文件描述符耗尽的问题
kernel.shmall = 2097152
#共享内存总量 页为单位,内存除以4K所得
kernel.shmmax = 4294967295
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
#SEMMSL: 每个信号集的最大信号数量 SEMMNS:用于控制整个 Linux 系统中信号的最大数 SEMOPM: 内核参数用于控制每个 semop 系统调用可以执行的信号操作的数量 SEMMNI :内核参数用于控制整个 Linux 系统中信号集的最大数量
net.ipv4.ip_local_port_range = 9000 65500
#用于向外连接的端口范围
net.core.rmem_default = 262144
#套接字接收缓冲区大小的缺省值
net.core.rmem_max = 4194304
#套接字接收缓冲区大小的最大值
net.core.wmem_default = 262144
#套接字发送缓冲区大小的缺省值
net.core.wmem_max = 1048576
#套接字发送缓冲区大小的最大值

重新加载配置文件,即配置文件生效

sysctl -p

三、创建用户、分组

#创建分组
groupadd oracle
groupadd dba
#创建用户并且添加分组
adduser -g oracle -G dba oracle
#修改密码最小长度
authconfig --passminlen=6 --update
#设置密码--passwd后面跟着的是用户
passwd oracle

#新建oracle目录
mkdir -p /orcl/app/oracle
#修改该目录所属用户,用户所在组
chown -R oracle:oracle /orcl/app/
#修改oracle目录的权限
chmod -R 755 /orcl/app/oracle/

四、oracle环境变量配置

vi /home/oracle/.bash_profile

添加以下内容 放在PATH之前:

#权限(反码)
umask 022
#oracle的BASE目录定义
ORACLE_BASE=/orcl/app/oracle
#oracle的HOME目录定义
ORACLE_HOME=/orcl/app/oracle/product/12.2.0/dbhome_1/
#
ORACLE_SID=orcl
#简体中文版
NLS_LANG="SIMPLIFIED CHINESE_CHINA".UTF8
#重新定义系统环境变量
PATH=$PATH:$HOME/.local/bin:$HOME/bin:$ORACLE_HOME/bin
#定义语系
LANG=zh_CN.UTF-8

#添加以下内容在path之后:
#导入系统变量
export PATH LANG NLS_LANG ORACLE_BASE ORACLE_HOME ORACLE_SID

五、oracle用户资源限制

1、使用pam_limits认证模块

vi /etc/pam.d/login

#在内容末尾添加以下两行数据

session required /lib/security/pam_limits.so
session required pam_limits.so

2、编辑limits.conf配置

vi /etc/security/limits.conf

在内容末尾添加以下数据

#单用户可使用的进程数量
oracle soft nproc 2047
oracle hard nproc 16384
#用户可打开的文件数量
oracle soft nofile 1024
oracle hard nofile 65536
#堆栈设置
oracle soft stack 10240

六、编辑profile文件

vi /etc/profile

在内容末尾添加以下语句

if [ $USER = "oracle" ]
then
if [ $SHELL = "/bin/ksh" ]
then
ulimit -p 16384 #缓冲区大小
ulimit -n 65536
else
ulimit -u 16384 -n 65536 #进程数 文件数
fi
fi

七、修改打开图形界面权限,安装三个插件:

yum -y install xorg-x11-xauth

yum groupinstall Virtualization "Virtualization Client"

yum install libvirt

修改sshd的配置文件

vi /etc/ssh/sshd_config

修改以下内容,如果存在注释当中,将注释去掉 改为yes。打开图形界面的权限,如果需要使用图形界面安装oracle则必须打开。

AllowAgentForwarding yes
X11Forwarding yes

八、安装oracle

  1. 切换oracle用户,设置xmanager

    export DISPLAY=:0.0
  2. 解压安装包 比如我的安装包是在/home/oracle/

    cd /home/oracle/
    
    unzip linuxamd64_12102_database_1of2.zip
    unzip linuxamd64_12102_database_2of2.zip
  3. 进入主目录安装

    cd /home/oracle/database
    
    ./runInstaller
    #如果出现乱码:关闭,并且重新执行
    LANG=en_US ./runInstaller
  4. 安装到倒数第二部的时候,出现弹窗 需要用root用户执行两个脚本的提示

    #打开root用户窗口,直接执行
    /orcl/app/oraInventory/orainstRoot.sh
    /orcl/app/oracle/product/12.2.0/dbhome_1/root.sh
  5. 启动oracle

    1. 切换到 oracle 用户且切换到它的环境: su - oracle

    2. 查看监听及数据库状态: lsnrctl status

    3. 启动监听: lsnrctl start

    4. 以 DBA 身份进入 sqlplus: sqlplus / as sysdba

    5. 启动 db: startup

  6. 停止oracle

    1. 切换到 oracle 用户且切换到它的环境: su - oracle

    2. 停止监听: lsnrctl stop

    3. 以 DBA 身份进入 sqlplus: sqlplus / as sysdba

    4. 关闭 db: SHUTDOWN IMMEDIATE