centos7 安装oracle 11g 静默安装

684 阅读4分钟

前言

之前出了一个界面安装的教程,这一次打算记录一下静默安装的全过程,并记录遇到的一些问题。

1.oracle环境搭建

用centos进行依赖的安装,这里有一个问题,yum包管理器里没有pdksh依赖,但是有ksh依赖。而且oracle可以用ksh来取代pdksh,所以在后面进行依赖查询和检查的时候可以忽略这一点。

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

运行结果如下:

image.png

2.关闭防火墙和selinux

因为是测试环境所以我使用的是直接关闭防火墙,正式生产环境我们应该只要开发端口即可。(oracle默认1521端口,也可以进行修改。看你的需求)

systemctl stop firewalld                                    #关闭防火墙
firewall-cmd --zone=public --add-port=1521/tcp --permanent  #放开1521端口
firewall-cmd --reload                                       #在不改变状态的条件下重新加载防火墙配置文件
systemctl status firewalld                                  #查看防火墙的状态
systemctl disable firewalld.service                         #关闭防火墙的开机启动。
sestatus -v           #查看selinux状态

假如为disable就不用修改,否则使用 vim /etc/selinux/config 进行修改SELINUX。修改之后需要重启才能生效,具体结果如图:

image.png

3.创建运行oracle数据库的用户和用户组。

linux基本操作,创建登陆用户创建用户组的博客。密码输入部分就省了,然后使用id oracle来查看是否创建成功。

    groupadd oinstall       #创建用户组oinstall
    groupadd dba    #创建用户组dba
    useradd -g oinstall -G dba -m oracle    #创建oracle用户,并加入到oinstall和dba用户组
    passwd oracle    #设置用户oracle的登陆密码,不设置密码,在CentOS的图形登陆界面没法登陆

image.png

4.修改oracle用户的限制

执行vim /etc/security/limits.conf命令,修改操作系统对oracle用户资源的限制limits.conf的配置说明

oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 10240

image.png

要使limits.conf文件配置生效,必须要确保pam_limits.so文件被加入到启动文件中。vim /etc/pam.d/login

session    required     pam_limits.so

image.png

5.修改内核参数

要求配置

可以对vim /etc/sysctl.conf进行修改,设置相关参数的系统默认值。如果该文件中已有相关参数的设置,则确保参数值不小于如下对应值;如果还没有相关参数的设置,则按照如下格式添加相应的参数设置行。

fs.file-max = 6815744
fs.aio-max-nr = 1048576
kernel.shmall = 2097152
kernel.shmmax = 2147483648
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

要使 /etc/sysctl.conf 更改立即生效,执行以下命令。 输入sysctl -p

image.png

image.png

6.创建数据库软件目录和数据文件存放目录,并添加权限

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

7.配置环境变量

因为是oracle用户所以要在去oracle用户下的.bash_profile.vim /home/oracle/.bash_profile,执行命令source /home/oracle/.bash_profile,让配置立即生效。

export ORACLE_BASE=/u01/app/oracle
export ORACLE_SID=centos
export ROACLE_PID=ora11g
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
export LANG="zh_CN.UTF-8"
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8"
export NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss'
export PATH=$PATH:$ORACLE_HOME/bin

8.安装oracle

先用ftp服务器把oracle的安装包上传到centos中。 然后把两个压缩包进行解压

unzip linux.x64_11gR2_database_1of2.zip -d /opt
unzip linux.x64_11gR2_database_2of2.zip -d /opt

然后进行授权chown -R oracle:oinstall /opt/database。 然后进行用户切换,切换成oracle,假如没切换安装的时候会报异常。

 mkdir etc
 cp /opt/database/response/* /home/oracle/etc/
 chmod 700 /home/oracle/etc/*.rsp
 ls etc/

这时候能看到会出现dbca.rsp db_install.rsp netca.rsp三个文件。后续会告诉你这三个文件的作用。

9.配置db_install.rsp文件

db_install.rsp文件就是配置文件,一定要配置好才能进行安装。 vi /home/oracle/etc/db_install.rsp

oracle.install.option=INSTALL_DB_SWONLY     # 安装类型
ORACLE_HOSTNAME=Centos                      # 主机名称(hostname查询)
UNIX_GROUP_NAME=oinstall                    # 安装组
INVENTORY_LOCATION=/u01/app/oraInventory    # INVENTORY目录(不填就是默认值)
SELECTED_LANGUAGES=en,zh_CN,zh_TW           # 选择语言
ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1    # oracle_home
ORACLE_BASE=/u01/app/oracle                        # oracle_base
oracle.install.db.InstallEdition=EE       # oracle版本
oracle.install.db.isCustomInstall=false    # 自定义安装,否,使用默认组件
oracle.install.db.DBA_GROUP=dba             # dba用户组
oracle.install.db.OPER_GROUP=oinstall       # oper用户组
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE   # 数据库类型
oracle.install.db.config.starterdb.globalDBName=orcl      # globalDBName
oracle.install.db.config.starterdb.SID=centos             # SID
oracle.install.db.config.starterdb.memoryLimit=81920      # 自动管理内存的内存(M)
oracle.install.db.config.starterdb.password.ALL=oracle    # 设定所有数据库用户使用同一个密码
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false
DECLINE_SECURITY_UPDATES=true

10.写好之后可以开始安装

直接去database文件夹下./runInstaller -silent -responseFile /home/oracle/etc/db_install.rsp 当出现如下提升表示安装成功,假如失败可已看看包错日志找到报错信息。

然后根据以上提示,执行脚本。

/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/11.2.0/db_1/root.sh

image.png

11.配置监听器

netca.rsp就是监听器配置文件,我这边采用默认配置。

netca /silent /responsefile /home/oracle/etc/netca.rsp

lsnrctl start启动,可以用lsnrctl status来查看。

image.png

12.建库

建库需要操作之前说的dbca.rsp文件,并对文件进行修改。 然后输入dbca -silent -responseFile dbca.rsp,这时候会弹出要输入口令,在我们之前配置的安装环境的密码。

[GENERAL]
RESPONSEFILE_VERSION = "11.2.0"
OPERATION_TYPE = "createDatabase"
[CREATEDATABASE]
GDBNAME = "centos"
SID = "centos"
TEMPLATENAME = "General_Purpose.dbc"
CHARACTERSET = "AL32UTF8"

然后使用cat /u01/app/oracle/cfgtoollogs/dbca/centos/centos.log

13.测试

通过 sqlplus / as sysdba select * from dual; 指令进行测试. 测试最好切换到oracle用户,否则会提升无法找到sqlplus这个程序。

这时候就可以使用远程连接了,我使用的是重新创建一个账号。也可以使用之前的账号。

create user xiaowen identified by xiaowen;
grant dba to xiaowen;  ---DBA
grant create session to xiaowen;  ---登陆权限,这个权限是能让这个用户能被其他程序调用,比如plsql
grant unlimited tablespace to xiaowen; ---使用表空间的权限
grant create table,create view,create trigger, create sequence,create procedure,create type to xiaowen; ---创建表,视图,触发器,序列,存储过程,type的权限。

然后就可以在自己的连接工具中使用了,我的是DataGrip,密码就是用户名。

14.后期问题总结。

1.因为使用的虚拟机环境,所以我们得设置开机自启。

先启动监听lsnrctl start,然后使用dbstart. 这时候会报错

ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener
Usage: /u01/app/oracle/oracle/product/10.2.0/db_1/bin/dbstart ORACLE_HOME

处理方式

sudo vi /u01/app/oracle/product/11.2.0/db_1/bin/dbstart
sudo vi /u01/app/oracle/product/11.2.0/db_1/bin/dbstart

ORACLE_HOME_LISTNER=$1 修改为:ORACLE_HOME_LISTNER=$ORACLE_HOME 这时候还需要修改sudo vim /etc/orataborcl:/u01/app/oracle/product/12.1.0/dbhome_1:N修改为:orcl:/u01/app/oracle/product/10.2.0/db_1:Y

这时候就可以正常启动了。 在配置启动文件rc.load,一定要在root用户下进行

chmod +x /etc/rc.d/rc.local
vim /etc/rc.local
su - oracle -c 'lsnrctl start'
su - oracle -c dbstart

2.用远程连接失败,一定要注意防火墙,当我们没有开机关闭这个选项的时候,防火墙会自己开启,就会导致之前好好的连接失效,