挂载本地光盘作为镜像源
- 将镜像iso文件上传至centos
- 创建挂载目录
mkdir /mnt/iso
- 挂载iso文件
mount -t iso9660 -o loop /zml_soft/CentOS-7.7-x86_64-Everything-2003.iso /mnt/iso
//mount iso的时候,需要指定mount 类型的,-t iso9660是文件类型 -o loop是作为loop型设备挂载 /mnt是你的挂载点
- 配置yum源
cd /etc/yum.repos.d/
mkdir /etc/yum.repos.d/repo_bak //创建repo文件备份文件夹
mv *.repo repo_bak //将已有repo文件备份至备份目录
vi /etc/yum.repos.d/CentOS7-Localsource.repo //打开repo文件,如果这一文件不存在则被创建
在文件中输入以下内容,并保存
[CentOS7-Localsource]
name=CentOS7
baseurl=file:///mnt/iso
enabled=1
gpgcheck=0
- 生成本地yum缓存
yum makecache
- 设置开机自动挂载光盘镜像
/root/zml_download/CentOS-7.5-x86_64-DVD-1804.iso /mnt/iso defaults,ro,loop 0 0
//此项为附加项,fstab 输入错误会使主机无法正常启动而进入emergency mode紧急状态
配置相关环境参数
- 创建用户和组
groupadd oinstall && groupadd dba && useradd -g oinstall -G dba oracle
passwd oracle
- 创建数据库安装目录
mkdir -p /opt/oracle
mkdir -p /opt/oraInventory
mkdir -p /opt/database
mkdir -p /opt/oracle/product/11.2.0
mkdir -p /opt/oracle/oradata
mkdir -p /opt/oracle/flash_recovery_area
- 赋予目录权限
chown -R oracle:oinstall /opt/oracle
chown -R oracle:oinstall /opt/oracle/oradata
chown -R oracle:oinstall /opt/oraInventory
chown -R oracle:oinstall /opt/database
chmod -R 775 /opt/oracle
- 创建安装的配置文件
vi /etc/oraInst.loc
在文件中输入以下内容,并保存
inventory_loc=/opt/oraInventory
inst_group=oinstall
- 上传安装包
- 解压安装包
unzip /zml_soft/linux.x64_11gR2_database_1of2.zip -d /opt/database/
unzip /zml_soft/linux.x64_11gR2_database_2of2.zip -d /opt/database/
- 修改内核参数
vi /etc/sysctl.conf
在文件中输入以下内容,并保存
#oracle相关参数
fs.aio-max-nr = 1048576
fs.file-max = 6291456
kernel.shmall = 2097512
kernel.shmmni = 4096
kernel.shmmax = 1073741824
kernel.sem = 250 3200 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
**内核参数说明:**
**Asynchronous I/O相关的内核参数设置:**
fs.aio-max-nr 指系统允许的最大的异步IO请求大小,oracle默认设置为1M即1048576,一般不用更改
**文件句柄数的相关内核参数设置:**
fs.file-max 指系统能够打开最大的文件句柄数,oracle建议设置为65536,一般不用修改
**共享内存的相关内核参数设置:**
kernel.shmall 指系统一次可以使用的共享内存段的最大数量,以页为单位
Oracle默认设置为 kernel.shmall = 2097152 即最大8G(2097152*4/1024/1024),(在调整SGA时需要注意,SGA大小设置不可超过该值),根据系统内存大小和使用的不同可以参考如下:设置的一般规律
kernel.shmall = 8G/4k=8388608k/4k=2097152 ---内存8G
kernel.shmall = 16G/4k=16777216k/4k=4194304 ---内存16G
kernel.shmall = 32G/4k=33554432k/4k=8388608 ---内存32G
(RedHat linux系统中页大小为4096即4K,实际环境以getconf PAGE_SIZE结果为准)
kernel.shmmax 指的是单个共享内存段的最大尺寸,单位为字节
oracle 建议,kernel.shmmax的值不能少于物理内存的一半,而且要大于Oracle中sga-max-size的值,否则会造成oracle性能下降
一般32bit操作系统,直接设置为系统支持的最大内存即可,64bit操作系统设置大于sga-max-size的值即可
如:当前内存为2G 则kernel.shmmax = 2*1024*1024=2097152
当前内存为8G则 kernel.shmmax = 7*1024*1024=7340032
kernel.shmmni 指系统共享内存段的最大数量,oracle设置默认值为4096,一般是足够用了,不需要调整
**信号的相关内核参数设置:**
kernel.sem 是指 semmsl,semmns,semopm,semmni这4个参数
semmsl 指每个线号集的最大信号数,Oracle建议是设置为oracle的最大进程数+10
semmni 指整个系统的信号集的最大数量
semmns 指整个系统的信号总数,也就是semmni*semmsl的结果
semopm 指每个semop系统调用可以执行的信号操作的最大数量
oracle默认设置 semmsl=250,semmns=3200,semopm=100,semmni=128
即kernel.sem= 250 3200 100 128
例:在oracle ora.init文件参数中设置PROCESSES参数为5000
则semmsl=5010,semmni=128,semmns=semmsl* semmni=641280
另外semopm建议设置等于semmsl值即5010
那么kernel.sem=5010 641280 5010 128
**网络相关的内核参数设置**
net.ipv4.ip_local_port_range 指本地的允许打开随机端口范围
oracle10g前建议端口范围为1024 65000
oracle11g建议端口范围为9000 65500
并忽略oracle安装程序任何关于这个参数的警告
net.core.rmem_default 指网络套接字的默认接收缓冲区的大小,oracle建议设置为265K即262144
net.core.rmem_max 指网络套接字的最大接收缓冲区的大小,oracle10g及以前版本建议设置为256k即262144 oracle11g建议设置为4M 即4194304
net.core.wmem_default指网络套接字的默认发送缓冲区的大小,oracle建议设置为265K即262144
net.core.wmem_max 指网络套接字的最大发送缓冲区的大小,oracle10g及以前版本建议设置为256k即262144 oracle11g建议设置为1M即1048576
- 限制oracle用户的shell权限
vi /etc/security/limits.conf
在文件中输入以下内容,并保存
#oracle相关参数
oracle soft nproc 1024
oracle hard nproc 65536
oracle soft nofile 4096
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 10240
**用户限制参数说明**
oracle soft nproc 1024
oracle hard nproc 65536
这两行设置用来限制oracle用户能打开的进程总数,soft限制是指oracle用户登录后默认能够打开的进程的最大数。hard 限制是指当用户收到达到最大进程限制的错误时,可以使用ulimit –u设置的最大数。
oracle soft nofile 4096
oracle hard nofile 63536
这两行设置用来设置限制oracle用户能打开的文件句柄数,soft限制是指oracle用户登录后默认能够打开的文件句柄数的最大数。hard 限制是指当用户收到打开文件限制的错误时,可以使用ulimit –n设置的最大数。
oracle soft stack 10240
oracle hard stack 10240
这两行应该是对栈的限制
vi /etc/pam.d/login
在文件中输入以下内容,并保存
#oracle相关参数
session required /lib64/security/pam_limits.so
session required pam_limits.so
vi /etc/profile
在文件中输入以下内容,并保存
#oracle相关参数
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
- 配置hostname (本机IP映射)
vi /etc/hosts
在文件中输入以下内容,并保存
#ip 主机名 //主机名可以通过hostname命令查询
172.20.10.86 db1
若要修改主机名,请参考:https://blog.csdn.net/xuheng8600/article/details/79983927
- 配置oracle用户环境变量
su - oracle
vi .bash_profile
在文件中输入以下内容,并保存
#oracle相关参数
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0
export ORACLE_SID=orcl1
export LC_ALL="en_US"
export LANG="en_US"
export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"
export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"
PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH
- 安装依赖包
#切换到root用户下执行
yum -y install binutils \
compat-libstdc++-33 \
elfutils-libelf \
elfutils-libelf-devel \
expat \
gcc \
gcc-c++ \
glibc \
glibc-common \
glibc-devel \
glibc-headers \
libaio \
libaio-devel \
libgcc \
libstdc++ \
libstdc++-devel \
make \
pdksh \
sysstat \
unixODBC \
unixODBC-devel
安装好后检查有哪些安装失败的
rpm -q \
binutils \
compat-libstdc++-33 \
elfutils-libelf \
elfutils-libelf-devel \
expat \
gcc \
gcc-c++ \
glibc \
glibc-common \
glibc-devel \
glibc-headers \
libaio \
libaio-devel \
libgcc \
libstdc++ \
libstdc++-devel \
make \
pdksh \
sysstat \
unixODBC \
unixODBC-devel | grep "not installed"
pdksh安装失败不管他
centos7.5以上还要安装以下包
yum install -y ksh numactl-devel oracleasm oracleasmlib oracleasm-support
静默安装oracle数据库
- 编辑静默安装响应文件
su - oracle
cp -R /opt/database/database/response/ ./
cd response
vi db_install.rsp
在文件中编辑以下内容,并保存
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=db1
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/opt/oraInventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/opt/oracle/product/11.2.0
ORACLE_BASE=/opt/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.isCustomInstall=false
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=dba
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
oracle.install.db.config.starterdb.globalDBName=orcl1
oracle.install.db.config.starterdb.SID=orcl1
#注意,字符集非常重要
oracle.install.db.config.starterdb.characterSet=ZHS16GBK
oracle.install.db.config.starterdb.memoryLimit=512
oracle.install.db.config.starterdb.enableSecuritySettings=true
oracle.install.db.config.starterdb.password.ALL=info2soft
DECLINE_SECURITY_UPDATES=true
db_install.rsp详细说明:https://blog.csdn.net/wangshui898/article/details/65436791
- 开始安装
#oracle用户下执行
cd /opt/database/database
./runInstaller -silent -force -responseFile /home/oracle/response/db_install.rsp -ignorePrereq
执行命令后正常的样子如下
提示我们可以在/opt/oraInventory/logs/installActions2020-10-21_03-51-45PM.log这里查看日志
#再开启一个shell窗口
tail -f /opt/oraInventory/logs/installActions2020-10-21_03-51-45PM.log
安装完成后的样子
可以看到他还提示我们要用root用户执行这个脚本
安装完成后日志界面的样子
- 执行对应的脚本
su - root
#以root身份执行
cd /opt/oracle/product/11.2.0
./root.sh
执行成功的样子如下
- 配置监听程序
cd
netca /silent /responseFile /home/oracle/response/netca.rsp
配置成功的样子如下
- 启动监听,查看监听状态
lsnrctl start
lsnrctl status
执行结果如下
静默创建数据库实例
- 编辑应答文件
#oracle用户下执行
cd /home/oracle/response
vi dbca.rsp
在文件中编辑以下内容
RESPONSEFILE_VERSION = "11.2.0"
OPERATION_TYPE = "createDatabase"
GDBNAME = "orcl1.db1"
SID ="orcl1"
SYSPASSWORD= "info2soft"
SYSTEMPASSWORD= "info2soft"
SYSMANPASSWORD= "info2soft"
DBSNMPPASSWORD= "info2soft"
DATAFILEDESTINATION=/opt/oracle/oradata
RECOVERYAREADESTINATION=/opt/oracle/flash_recovery_area
#注意,字符集非常重要
CHARACTERSET= "ZHS16GBK"
NATIONALCHARACTERSET= "UTF8"
TOTALMEMORY = "2457"
#TOTALMEMORY默认单位为M,大小可以设置为服务器总内存的80%
此文件编辑到TOTALMEMORY这里就可以了,再往下就是对模板等的配置了,暂不需要
- 创建实例
dbca -silent -responseFile dbca.rsp
安装过程如下
至此,数据库已经安装完成
数据库启动正常
监听正常
参考文章:
CentOS7安装Oracle11g—静默安装
https://blog.csdn.net/oschina_41140683/article/details/81510709
oracle 内核参数设置
https://blog.csdn.net/lnwf5188588/article/details/8779001
oracle安装--db_install.rsp详解
https://blog.csdn.net/wangshui898/article/details/65436791
oracle安装-- dbca.rsp详解
https://blog.csdn.net/wangshui898/article/details/65442103
CentOS7修改主机名的三种方法
https://blog.csdn.net/xuheng8600/article/details/79983927
如文章内容有纰漏,请留言,多谢