CentOS7 静默(无图形)安装oracle11gR2

CentOS7 静默(无图形)安装oracle11gR2

一.调整系统

1.以root用户安装一些必要的软件:
wget 下载用的
unzip 解压oracle安装文件
net-tools 查看本机网络情况 比如netstat

yum install wget unzip net-tools -y

2.使用oracle提供的环境配置工具
这个工具会调整内核参数,建立一些必要的linux用户和组

wget http://public-yum.oracle.com/public-yum-ol7.repo -O /etc/yum.repos.d/public-yum-ol7.repo
wget http://public-yum.oracle.com/RPM-GPG-KEY-oracle-ol7 -O /etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
yum install oracle-rdbms-server-11gR2-preinstall -y

在这里插入图片描述
在这里插入图片描述
3.完成后备份一下这个目录的文件到其他目录,这个文件夹是修改系统后日志和原本的内核配置备份
要备份的文件夹:

/var/log/oracle-rdbms-server-11gR2-preinstall

在这里插入图片描述
4.加载内核参数 和sysctl -p一样

sysctl -f

在这里插入图片描述
5.创建一些目录和配置
配置oracle系统配置文件和授权

cat >> /etc/oraInst.loc <<EOF
inventory_loc=/home/oracle/ora11g/oraInventory
inst_group=oinstall
EOF
chmod 664 /etc/oraInst.loc

在这里插入图片描述
创建oracle安装的目录和授权

mkdir -p /u01/app/
mkdir /u01/tmp
chown -R oracle:oinstall /u01/app/
chmod -R 775 /u01/app/
chmod a+wr /u01/tmp

在这里插入图片描述
6.设置oracle用户密码 oracle是安装工具自己创建的,参考我之前讲的

passwd oracle

在这里插入图片描述

二.配置用户环境和上传文件

[oracle]
1.以oracle用户添加一些必要的环境

cat >> /home/oracle/.bash_profile <<EOF
TMP=/u01/tmp
TMPDIR=/u01/tmp
export TMP TMPDIR

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

生效

source .bash_profile

在这里插入图片描述
2.以oracle用户把11gr2的两个zip 上传至/home/oracle/
在这里插入图片描述
3.解压 解压后文件会在/home/oracle/database/

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

在这里插入图片描述
4.由于文件权限问题 运行这个命令

chown -R oracle:oinstall /home/oracle/database

在这里插入图片描述

三.配置db_install.rsp

1.以oracle用户备份到/home/oracle/rsp/

cp -r /home/oracle/database/response /home/oracle/rsp

2.配置安装响应文件db_install.rsp文件 这里配置参数先下载到本地 用记事本根据自己情况修改 在上传过去

#我的/home/oracle/rsp/db_install.rsp
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
#INSTALL_DB_AND_CONFIG安装并自动配置数据库实例和监听 建议首次安装用这个
#不然配置另外两个文件,新建实例和监听
oracle.install.option=INSTALL_DB_AND_CONFIG
ORACLE_HOSTNAME=localhost
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/home/oracle/ora11g/oraInventory
SELECTED_LANGUAGES=zh_CN,en
ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
ORACLE_BASE=/u01/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.isCustomInstall=true
oracle.install.db.customComponents=oracle.server:11.2.0.1.0,oracle.sysman.ccr:10.2.7.0.0,oracle.xdk:11.2.0.1.0,oracle.rdbms.oci:11.2.0.1.0,oracle.network:11.2.0.1.0,oracle.network.listener:11.2.0.1.0,oracle.rdbms:11.2.0.1.0,oracle.options:11.2.0.1.0,oracle.rdbms.partitioning:11.2.0.1.0,oracle.oraolap:11.2.0.1.0,oracle.rdbms.dm:11.2.0.1.0,oracle.rdbms.dv:11.2.0.1.0,orcle.rdbms.lbac:11.2.0.1.0,oracle.rdbms.rat:11.2.0.1.0
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=oinstall
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
#这个是服务名
oracle.install.db.config.starterdb.globalDBName=orcl.lan
#实例sid
oracle.install.db.config.starterdb.SID=orcl
oracle.install.db.config.starterdb.characterSet=AL32UTF8
oracle.install.db.config.starterdb.memoryOption=true
#最小256M 我是学习就选择最小了
oracle.install.db.config.starterdb.memoryLimit=256
#是否安装学习的scott和hr(我就知道这两个)
oracle.install.db.config.starterdb.installExampleSchemas=true
oracle.install.db.config.starterdb.enableSecuritySettings=true
#密码全设置成oracle (安装时会提示,个人学习忽略)
oracle.install.db.config.starterdb.password.ALL=oracle
oracle.install.db.config.starterdb.control=DB_CONTROL
oracle.install.db.config.starterdb.dbcontrol.enableEmailNotification=false
oracle.install.db.config.starterdb.automatedBackup.enable=false
oracle.install.db.config.starterdb.storageType=FILE_SYSTEM_STORAGE
oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=/u01/app/oracle/oradata
SECURITY_UPDATES_VIA_MYORACLESUPPORT=true
DECLINE_SECURITY_UPDATES=true

修改完成保存|上传到/home/oracle/rsp

四.静默安装数据库

【oracle】
1.安装时会出现密码不规范的警告,忽略

/home/oracle/database/runInstaller -silent -ignorePrereq  -responseFile /home/oracle/rsp/db_install.rsp

在这里插入图片描述
2.查看安装过程 另开一个shell 稍等

tail -f /home/oracle/ora11g/oraInventory/logs/installActions2018-12-05_09-51-09PM.log

在这里插入图片描述
3.最后会提示安装完成 !(切换root执行)
【root】

sh /u01/app/oracle/product/11.2.0/dbhome_1/root.sh

4.切换到oracle
sqlplus登录

sqlplus / as sysdba

查看状态

select status from v$instance;

五.配置防火墙

【root】
1.查看1521端口

netstat -an|grep 1521

在这里插入图片描述
2.防火墙 放行1521端口

firewall-cmd --zone=public --add-port=1521/tcp --permanent

3.重新加载防火墙规则

firewall-cmd --reload

六.数据库的启动和关闭

【root】
1.修改oracle服务启动配置

vi /etc/oratab

把大写的N改为大写的Y,然后:wq保存

【oracle】
启动oracle,因为修改了/etc/oratab N=>Y 所以启动服务也会同时启动实例,N的情况不会同时启动实例,sqlplus登录会提示 an idle instance,用sqlplus 然后=> startup启动实例,重启系统后用如下命令
启动oracle

dbstart $ORACLE_HOME

关闭oracle

dbshut $ORACLE_HOME

2.远程连接oracle

sqlplus sys/[email protected]:1521/ORCL.LAN as sysdba
conn sys/[email protected]:1521/ORCL.LAN as sysdba
ORCL.LAN是服务名 不是sid

七.CentOS7 开机启动oracle

1.创建shell脚本

vi /home/oracle/centnet-service.sh
#!/bin/bash
dbstart $ORACLE_HOME

2.给/etc/rc.d/rc.local增加可执行权限

chmod +x /etc/rc.d/rc.local

3.把上面要启动的脚本的启动命令加入到rc.local中

/bin/su - oracle -c "/home/oracle/centnet-service.sh"

4.手动关闭oracle,重启centos,就能发现oracle能自启了

---------------------------------------附加------------------------------------

八.修改oracle的连接数

sqlplus / as sysdba
alter system set processes=10000 scope=spfile;
alter system set sessions=11005 scope=spfile;
startup force

在这里插入图片描述
如果修改失败(请继续往下看),可能是信号量或者是内存不足导致的

九.Linux内核参数之共享内存和信号量设置

Oracle数据库在linux系统上的安装过程中,涉及到设置linux内核参数,这些内核参数究竟代表什么含义,如何调整这些参数?
共享内存:
可以通过ipcs -lm命令查看目前系统共享内存的参数限制:

ipcs -lm
------ Shared Memory Limits --------
max number of segments = 4096
max seg size (kbytes) = 1331200
max total shared memory (kbytes) = 1331200
min seg size (bytes) = 1

这里涉及到3个于共享内存相关的参数:SHMMAX,SHMMNI,SHMALL

SHMMAX

  • 含义:单个共享内存段最大字节数
  • 设置:比SGA略大
  • 查看:cat /proc/sys/kernel/shmmax
  • 修改:
    sysctl -w kernel.shmmax=1073741824
    echo “kernel.shmmax=1073741824” >> /etc/sysctl.conf

SHMMNI

  • 含义:共享内存段最大个数
  • 设置:至少4096
  • 查看:cat /proc/sys/kernel/shmmni
  • 修改:
    sysctl -w kernel.shmmni=4096
    echo “kernel.shmmni=4096” >> /etc/sysctl.conf

SHMALL

  • 含义:系统中共享内存页总数
  • 设置:至少ceil(shmmax/PAGE_SIZE),ORACLE DOC 默认值:
    2097152*4096=8GB
  • 查看:cat /proc/sys/kernel/shmall
  • 修改:
    sysctl -w kernel.shmall=2097152
    echo “kernel.shmall=2097152” >> /etc/sysctl.conf
[oracle@localhost ~]$ getconf PAGE_SIZE
4096

信号量:

当前系统信号量限制:

ipcs -ls
------ Semaphore Limits --------
max number of arrays = 128
max semaphores per array = 1000
max semaphores system wide = 128000
max ops per semop call = 100
semaphore max value = 32767

SEMMSL

  • 含义:每个信号量set中信号量最大个数
  • 设置:最小250;对于processes参数设置较大的系统建议设置为processes+10

SEMMNI

  • 含义:linux系统信号量set最大个数
  • 设置:最少128

SEMMNS

  • 含义:linux系统中信号量最大个数
  • 设置:至少32000;SEMMSL * SEMMNI

SEMOPM

  • 含义:semopm系统调用允许的信号量最大个数
  • 设置:至少100;或者等于SEMMSL
  • 查看信号量设置:cat /proc/sys/kernel/sem
  • 修改:
    sysctl -w kernel.sem=”1000 128000 100 128″
    echo “kernel.sem=1000 128000 100 128” >> /etc/sysctl.conf

order:SEMMSL, SEMMNS, SEMOPM, SEMMNI
使内核参数生效:sysctl -p或者sysctl -f

十.修改/dev/shm大小

如何修改/dev/shm大小?
/dev/shm在/etc/fstab中挂载,对应tmpfs,实际使用的是内存的空间。默认情况下,/dev/shm为物理内存大小的一半。因而,调整/dev/shm大小有两种方式:

  1. 加大Linux的物理内存
  2. 在/etc/fstab中明确指定/dev/shm的挂载sizes大小参数(shm小于等于RAM+SWAP)
vi /etc/fstab 

把下面这句话加入最后一行然后保存,入下图

tmpfs /dev/shm tmpfs defaults,size=6288m 0 0

在这里插入图片描述
修改完shm大小后,重新挂载

mount -o remount /dev/shm

查看

df -h

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43845335/article/details/84854902