一. 安装前环境准备

  1. 上传文件

    将linux.x64_11gR2_database_1of2.zip和linux.x64_11gR2_database_2of2.zip上传至服务器,(这里为/usr/local/src)

  2. 服务器安装unzip

    yum install unzip -y

  3. 修改主机名

    hostnamectl set-hostname esc_oracle
    hostname 查看主机名
    echo 'ip esc_oracle' >/etc/hosts

  4. 关闭selinux

    vi /etc/selinux/config
    修改SELINUX=disabled
    临时关闭 setenforce 0

  5. 关闭防火墙

    serviceiptables stop
    systemctl stop firewalld
    systemctl disable firewalld

  6. 安装依赖

    yum install gcc make binutilsgcc-c++ compat-libstdc++-33 elfutils-libelf-develelfutils-libelf-devel-static ksh libaio libaio-devel numactl-devel sysstat unixODBC unixODBC-devel pcre-devel –y

安装前系统配置

  1. 添加安装用户和用户组

    groupadd oinstall
    groupadd dba
    useradd -g oinstall -G dba oracle
    #验证用户
    id oracle
    #显示类似以下信息则表示添加用户和用户组成功
    uid=1001(oracle) gid=1001(oinstall) 组=1001(oinstall),1002(dba)

  2. 修改内核参数,添加以下内容到etc/sysctl.conf

    fs.aio-max-nr = 1048576
    fs.file-max = 6815744
    kernel.shmall = 2097152
    kernel.shmmax = 1073741824
    kernel.shmmni = 4096
    kernel.sem = 250 32000 100 128
    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
    其中 shmmax是单个共享内存段的最大值,一般设置为本机物理内存的一半,单位为byte,可根据自己的实际情况做相应调整
    1073741824 为1G

    使新内核参数生效
    sysctl –p

3.修改用户的限制文件,添加以下内容到/etc/security/limits.conf

oracle           soft    nproc           2047
oracle           hard    nproc           16384
oracle           soft    nofile          1024
oracle           hard    nofile          65536
oracle           soft    stack           10240
  1. 修改/etc/pam.d/login文件,添加以下内容到/etc/pam.d/login

    session required /lib64/security/pam_limits.so
    session required pam_limits.so

  2. 修改/etc/profile文件,添加以下内容到/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
    使配置生效
    source /etc/profile

  3. 创建安装目录和设置文件权限

    mkdir -p /oracle/app/
    mkdir -p /oracle/etc/
    chown -R oracle:oinstall /oracle/app
    chmod -R 775 /oracle/app

  4. 设置oracle用户环境变量,添加以下内容到/home/oracle/.bash_profile

    ORACLE_BASE=/oracle/app
    ORACLE_HOME=$ORACLE_BASE/product/11.2.0
    ORACLE_SID=orcl
    PATH=$PATH:$ORACLE_HOME/bin
    export ORACLE_BASE
    export ORACLE_HOME
    export ORACLE_SID
    export PATH

    使配置生效
    $source /home/oracle/.bash_profile

  5. 解压文件

    unzip linux.x64_11gR2_database_2of2.zip
    unzip linux.x64_11gR2_database_1of2.zip

三 安装oracle

1. 修改db_install文件

1.1. 需要设置的选项如下:

oracle.install.option=INSTALL_DB_SWONLY
# 主机名,前面修改的
ORACLE_HOSTNAME=esc_oracle
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/oracle/app/inventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/oracle/app/product/11.2.0
ORACLE_BASE=/oracle/app
# 企业版
oracle.install.db.InstallEdition=EE
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=dba
DECLINE_SECURITY_UPDATES=true

1.2. 执行安装

cd p/oracle/database
./runInstaller -silent -responseFile /oracle/etc/db_install.rsp -ignorePrereq
Oracle开始在后台静默安装,如果提示Successfully则表示安装成功

按照要求执行脚本,打开终端,以root用户登录,执行脚本
/oracle/app/oracle/inventory/orainstRoot.sh
/oracle/app/oracle/product/11.2.0/root.sh

四 以静默方式配置监听

1.3. 以oracle用户登录,执行

$netca /silent /responsefile /home/oracle/response/netca.rsp
通过netstat命令查看1521端口是否在监听中
netstat -tnulp | grep 1521

五 以静默方式建立新库,同时也建立一个对应的实例

  1. 修改dbca.rsp
    GDBNAME = "orcl"
    SID = "orcl"
    SYSPASSWORD = "oracle"
    SYSTEMPASSWORD = "oracle"
    SYSMANPASSWORD = "oracle"
    DBSNMPPASSWORD = "oracle"
    DATAFILEDESTINATION =/oracle/app/oradata
    RECOVERYAREADESTINATION=/oracle/app/fast_recovery_area
    CHARACTERSET = "AL32UTF8"
    TOTALMEMORY = "6400"
    其中TOTALMEMORY = "6400"为6400MB,一般设置为物理内存的80%

  2. 进行静默配置

    $dbca -silent -responseFile
    /home/oracle/response/dbca.rsp
    建库后进行实例进程检查
    $ps -ef | grep ora_ | grep -v grep
    查看监听状态
    $lsnrctl status

    登录查看实例状态

    sqlplus / as sysdba
    select status from v$instance;
    

    如显示
    STATUS

    OPEN
    则表示实例是启动状态

    查看数据库编码
    SQL> select userenv('language') from dual;
    查看数据库版本
    SQL> select * from v$version;