大小 | 2.8G |
架构 | Linux x86-64 |
版本 | 19.3 - Enterprise Edition (also includes Standard Edition 2) |
一、环境准备
1、硬件需求
内存
- 大于2 GB 以上
- 查看内存大小
grep MemTotal /proc/meminfo
SWAP
在Linux上,HugePages功能使用内存映射文件为大型页表分配不可交换的内存。如果启用了HugePages,则应在计算交换空间之前从可用的RAM中扣除分配给HugePages的内存。
可用内存 | 交换分区 |
1 GB~2 GB | 1.5倍内存大小,4G左右 |
2 GB~16 GB | 等同内存大小 |
16GB+ | 16GB |
- 查看交换分区大小:
grep SwapTotal /proc/meminfo
- 查看内存和交换分区:
free
ASM
从Oracle Database 11g开始,自动内存管理功能需要更多的共享内存(/dev/shm
)和文件描述符。共享内存的大小至少应大于该计算机上每个Oracle实例的MEMORY_MAX_TARGET
和MEMORY_TARGET
。
- 查看共享内存大小:
df -h /dev/shm/
- 可以通过如下命令修改
shm
的大小:
mount -t tmpfs shmfs -o size=8g /dev/shm
- 为了系统重启也可以生效,需要修改
/etc/fstab
文件,添加如下内容:
echo "shmfs /dev/shm tmpfs size=8g 0 0" >> /etc/fstab
- 注:当启用
LOCK_SGA
或在Linux上使用HugePages时,不能使用MEMORY_MAX_TARGET
和MEMORY_TARGET
。
硬盘
- 至少1GB可用空间,挂载在
/tmp
- 可用空间不够时,两种办法:
- 1、删除
/tmp
下不必要的文件 - 2、配置oracle用户的环境时,设置
TMP
和TMPDIR
环境变量。
- 1、删除
- 创建一个临时目录,并在该目录上设置适当的权限:
[root@localhost ~]# mkdir -p /mount_point/tmp
[root@localhost ~]# chmod a+wr /mount_point/tmp
- 设置
TMP
和TMPDIR
环境变量:
[root@localhost ~]# vim /etc/profile
TMP=/mount_point/tmp
TMPDIR=/mount_point/tmp
export TMP TMPDIR
[root@localhost ~]# source /etc/profile
[root@localhost ~]# echo ${TMPDIR}
/mount_point/tmp
2、系统准备
2.1:关闭防火墙
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld
2.2:关闭SELinux
[root@localhost ~]# sed -ri 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
[root@localhost ~]# setenforce 0 && getenforce
2.3:增加Swap
- 查看Swap空间大小,如果不足4G则手动扩容增大swap空间大小
[root@localhost ~]# free -h|grep Swap
Swap: 2.0G 0B 2.0G
2.3.1:创建swap文件
- 指定swap文件的大小, 先指定区块大小:bs, 再指定区块数量count, 则swap文件的大小是:
count*bs
[root@localhost ~]# mkdir /opt/swap
[root@localhost ~]# cd /opt/swap/
[root@localhost swap]# dd if=/dev/zero of=/opt/swap/swapfile bs=1M count=8192
2.3.2:指定作为交换区的文件
[root@localhost swap]# mkswap swapfile
正在设置交换空间版本 1,大小 = 8388604 KiB
无标签,UUID=89a92f48-a873-42e0-a057-e8ab1fc86ff5
2.3.3:激活交换分区
[root@localhost swap]# swapon /opt/swap/swapfile
[root@localhost swap]# free -h|grep Swap
Swap: 9G 0B 9G
2.3.4:设置开机时启用swap
[root@localhost swap]# echo "/opt/swap/swapfile swap swap defaults 0 0" >> /etc/fstab
[root@localhost swap]# tail -1 /etc/fstab
/opt/swap/swapfile swap swap defaults 0 0
2.3.5:确认swap已经被使用
[root@localhost swap]# swapon -s
2.4:修改系统版本
- 修改系统版本,绕过安装时进行的系统检测
[root@localhost ~]# vim /etc/redhat-release
#将原先的值注释或者删除,然后修改为下面的值
redhat-7
2.5:安装依赖包
- 安装Oracle19c可能需要的Centos操作系统的基础RPM包,共41个
- 更换为腾讯的BASE和epel镜像源,下载快点
#备份系统官方BASE源,如有配置其他epel源则需要先备份
[root@localhost ~]# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
[root@localhost ~]# mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backup
#下载腾讯YUM源
[root@localhost ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo
[root@localhost ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.cloud.tencent.com/repo/epel-7.repo
#生成缓存
[root@localhost ~]# yum clean all
[root@localhost ~]# yum makecache
[root@localhost ~]# yum install -y bc binutils compat-libcap1 compat-libstdc++ dtrace-modules dtrace-modules-headers dtrace-modules-provider-headers dtrace-utils elfutils-libelf elfutils-libelf-devel fontconfig-devel gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libdtrace-ctf-devel libX11 libXau libXi libXtst libXrender libXrender-devel libgcc librdmacm-devel libstdc++ libstdc++-devel libxcb make net-tools nfs-utils python python-configshell python-rtslib python-six smartmontools sysstat targetcli unixODBC xorg-x11-xauth tigervnc-server zip unzip smartmontools lrzsz readline readline-devel unixODBC-devel
- 手动安装以下的包
[root@localhost ~]# wget http://mirror.centos.org/centos/7/os/x86_64/Packages/compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
[root@localhost ~]# rpm -Uvh compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
2.6:系统内核优化
[root@localhost ~]# vim /etc/sysctl.conf
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.conf.all.rp_filter = 1
#设置最大打开文件数
fs.file-max = 6815744
fs.aio-max-nr = 1048576
#共享内存的页数,Linux共享内存页大小为4KB,8G内存按照官方设置为内存的1/2,我物理内存4G,设置为2G:2*1024*1024*1024/4096=(kernel.shmmax/4k)=1572864
kernel.shmall = 524288
#最大共享内存,官方文档建议是内存的1/2,我物理内存4G,设置为2G:2*1024*1024*1024 = 2147483648
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
#tcp参数设置
#可使用的IPv4端口范围(TCP/UDP协议允许使用的本地端口号)
net.ipv4.ip_local_port_range = 9000 65500
#默认&最大的TCP数据接收窗口大小(字节)
net.core.rmem_default = 262144
net.core.rmem_max= 4194304
#默认&最大的TCP数据发送窗口大小(字节)
net.core.wmem_default= 262144
net.core.wmem_max= 1048576
- 使内核参数
文章来源(Source):https://www.dqzboy.com 立即生效
[root@localhost ~]# sysctl -p #或者 sysctl --system
2.7、提高软件运行性能
[root@localhost ~]# vim /etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
二、开始部署
- 创建 oracle 目录,授权,cd到oracle安装包路径下,解压oracle到
$ORACLE_HOME
目录下,然后执行runInstaller
安装 - 【注意】从18c开始,安装包必须解压到
$ORACLE_HOME
路径下进行安装!
1、创建用户
- 创建Oracle相关用户和组
[root@localhost ~]# groupadd -g 54321 oinstall
[root@localhost ~]# groupadd -g 54322 dba
[root@localhost ~]# groupadd -g 54324 backupdba
[root@localhost ~]# groupadd -g 54325 dgdba
[root@localhost ~]# groupadd -g 54326 kmdba
[root@localhost ~]# groupadd -g 54327 asmdba
[root@localhost ~]# groupadd -g 54328 asmoper
[root@localhost ~]# groupadd -g 54330 racdba
- 创建oracle用户
[root@localhost ~]# useradd -u 54321 -g oinstall -G dba,asmdba,backupdba,dgdba,kmdba,racdba oracle
- 设置Oracle用户的密码
[root@localhost ~]# echo "dqz123" | passwd --stdin oracle
2、创建目录
mkdir -p /opt/oracle
mkdir -p /opt/oraInventory
mkdir -p /opt/database
mkdir -p /opt/oracle/product/19.3.0
mkdir -p /opt/oracle/oradata
mkdir -p /opt/oracle/flash_recovery_area
mkdir -p /opt/oracle/product/19.3.0/db_1
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
- 配置Oracle用户的环境变量
# su - oracle
$ vim .bash_profile
末尾添加环境变量配置内容如下:
umask 022
#oracle数据库安装目录
export ORACLE_BASE=/opt/oracle
#oracle数据库路径
export ORACLE_HOME=$ORACLE_BASE/product/19.3.0/db_1
#oracle启动数据库实例名
export ORACLE_SID=orcl
#xterm窗口模式安装
export ORACLE_TERM=xterm
#配置时间格式
NLS_DATE_FORMAT="YYYY:MM:DDHH24:MI:SS"
#添加系统环境变量
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH
#添加系统环境变量
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
#防止安装过程出现乱码
#export LANG=en_US.gbk
export LANG=en_US.UTF-8
#设置Oracle客户端字符集,必须与Oracle安装时设置的字符集保持一致,
#export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export NLS_LANG=AMERICAN_AMERICA.UTF8
- 生效环境变量
# 重新登录或者执行source 立即生效
$ source /home/oracle/.bash_profile
- 检查环境变量是否生效
$ echo $ORACLE_HOME
3、下载安装
- 官方下载地址:Oracle19c
- 官方下载慢的同学,可以使用本文章所使用Oracle版本的安装包,可在本文登入后进行获取下载

- 将下载的zip包上传到/opt目录下。然后解压到ORACLE_HOME目录下
- 切换到oracle用户解压安装zip包
[root@localhost ~]# su - oracle
[oracle@localhost ~]$ cd /opt/
[oracle@localhost opt]$ unzip -q LINUX.X64_193000_db_home.zip -d $ORACLE_HOME
4、修改响应文件
- 修改响应文件
db_install.rsp
- 统一复制响应文件到
/home/oracle/
下面,然后再授权和修改响应文件Oracle 11/12解压后response目录,下面包含dbca.rsp
(用来创建数据库的),db_install.rsp
(用来安装Oracle软件),netca.rsp
(用来创建监听器) 三个文件 - Oracle 19c解压后
response
目录下,只包含db_install.rsp
(用来安装Oracle软件),dbca.rsp
在$ORACLE_HOME/assistants/dbca/dbca.rsp
[oracle@localhost opt]$ cd $ORACLE_HOME
[oracle@localhost db_1]$ find ./ -name dbca.rsp
./assistants/dbca/dbca.rsp
[oracle@localhost db_1]$ cp -r $ORACLE_HOME/install/response /home/oracle
[oracle@localhost db_1]$ vim /home/oracle/response/db_install.rsp
oracle.install.option=INSTALL_DB_SWONLY
#ORACLE_HOSTNAME=localhost #如果修改过hostname则需要设置正确,否则可以不设置
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/opt/oraInventory
ORACLE_HOME=/opt/oracle/product/19.3.0/db_1
ORACLE_BASE=/opt/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.OSDBA_GROUP=dba
oracle.install.db.OSOPER_GROUP=oinstall
oracle.install.db.OSBACKUPDBA_GROUP=backupdba
oracle.install.db.OSDGDBA_GROUP=dgdba
oracle.install.db.OSKMDBA_GROUP=kmdba
oracle.install.db.OSRACDBA_GROUP=racdba
oracle.install.db.rootconfig.executeRootScript=true
oracle.install.db.rootconfig.configMethod=ROOT




【注意】如果服务器设
5、开始安装
- 以 oracle 用户开始静默安装数据库
[oracle@localhost ~]$ $ORACLE_HOME/runInstaller -silent -ignorePrereq -responseFile /home/oracle/response/db_install.rsp
【注意】安装过程中会提示输入root用户密码以执行脚本;
- 安装成功后提示信息如下:


6、启动监听
[root@localhost ~]# su - oracle
[oracle@localhost ~]$ lsnrctl start
[oracle@localhost ~]$ netstat -an |grep 1521
7、创建数据库
- 静默方式使用
dbca.rsp
来创建数据库
[oracle@localhost ~]$ cp $ORACLE_HOME/assistants/dbca/dbca.rsp /home/oracle/response/
- 设置以下参数(注意:Oracle11g安装时字符串参数带引号输入,但Oracle 19c需要删除引号,否则会报错,变量设置路径是也不支持
$ORACLE_BASE
的写法)
[oracle@localhost ~]$ vim /home/oracle/response/dbca.rsp
gdbName=orcl
sid=orcl
#Oracle自带的默认建库模板 General_Purpose.dbc,文件位于 $Oracle_HOME/assistants/dbca/templates/General_Purpose.dbc,这里设置等同于 dbca 加参数 -templateName General_Purpose.dbc
templateName=General_Purpose.dbc
sysPassword=dqz123
systemPassword=dqz123
dbsnmpPassword=dqz123
#datafileDestination 为所有数据文件的目标位置,如果不设置默认为 $ORACLE_BASE/oradata
datafileDestination=/opt/oracle/oradata
#recoveryAreaDestination 为恢复区位置,如果不设置默认为 $ORACLE_BASE/flash_recovery_area
recoveryAreaDestination=/opt/oracle/flash_recovery_area
characterSet=AL32UTF8
databaseType=OLTP
# totalMemory 为6553MB,物理内存4G*80%,我设置为2G = 2048 ,注意:如果设置超过 kernel.shmmax 建库时会报错
totalMemory=2048










- 使用
dbca.rsp
静默建库文章来源(Source):https://www.dqzboy.com (注意:#responseFile必须使用绝对路径)
[oracle@localhost ~]$ dbca -silent -createDatabase -responseFile /home/oracle/response/dbca.rsp

注意:如果建库时提示 SYS 和 SYSTEM 密码太短,直接忽略该告警
- 建库完毕后,查看监听器状态和端口
[oracle@localhost ~]$ lsnrctl status

- 接下来需要创用户、表空间和授权远程访问等操作。参考图形化安装的创建用户、表空间、授权等操作即可
必须 注册 为本站用户, 登录 后才可以发表评论!