CentOS 7 命令行安装Oracle 19c
准备工作
检查缺失的依赖包
rpm --query --queryformat "%{NAME}-%{VERSION}.%{RELEASE} (%{ARCH})\n" bc binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat elfutils-libelf elfutils-libelf-devel fontconfig-devel libxcb smartmontools libX11 libXau libXtst libXrender libXrender-devel
安装依赖包
yum install -y compat-libcap1 compat-libstdc++-33 gcc-c++ glibc-devel ksh libaio-devel libstdc++-devel elfutils-libelf-devel fontconfig-devel libXrender-devel
新建用户和用户组
groupadd oinstall
groupadd dba
groupadd oper
useradd -g oinstall -G dba,oper oracle
echo "oracle" | passwd --stdin oracle (设置用户oracle的密码为oracle)
设置环境变量
切换到oracle用户su - oracle
编辑.bash_profilevim ~/.bash_profile
添加以下内容
ORACLE_SID=orcl
export ORACLE_SID
ORACLE_UNQNAME=orcl
export ORACLE_UNQNAME
ORACLE_HOME=/data/LINUX.X64_193000_db_home
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH
export ORACLE_HOME
使环境变量生效source ~/.bash_profile
禁用防火墙和SELinux
systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl status firewalld.service
cat /etc/sysconfig/selinux
vim /etc/sysconfig/selinux
SELINUX=enforcing 改成 SELINUX=disabled
系统优化
修改/etc/sysctl.conf,增加以下内容
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 6081740
kernel.shmmax = 24910810316
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
然后sysctl -p
shmall 是全部允许使用的共享内存大小,
shmmax 是单个段允许使用的大小。
这两个可以设置为内存的 80%。
例如 10G 内存,
shmmax 10*1024*1024*1024*0.8 = 8589934592
shmall 的大小为 85899345920/4096(getconf PAGESIZE可得到) = 20971520
修改/etc/security/limits.conf
oracle hard nofile 65536
oracle soft stack 10240
开始安装
给Oracle目录分配权限
chown -R oracle:oinstall /data
配置应答文件
oracle.install.option=INSTALL_DB_SWONLY 安装类型
UNIX_GROUP_NAME=oinstall 指定Oracle Inventory目录的所有者,通常是oinstall或者dba
INVENTORY_LOCATION=/data/oraInventory 指定产品清单Oracle Inventory目录的路径,Windows下可以省略
ORACLE_HOME=/data/LINUX.X64_193000_db_home 设置ORALCE_HOME的路径
ORACLE_BASE=/data/oracle
oracle.install.db.InstallEdition=EE 选择Oracle安装数据库软件的版本(企业版,标准版)
oracle.install.db.OSDBA_GROUP=dba 指定拥有OSDBA权限的用户组,通常是dba
oracle.install.db.OSOPER_GROUP=oper 指定拥有OSOPER权限的用户组,通常是oper
oracle.install.db.OSBACKUPDBA_GROUP=dba
oracle.install.db.OSDGDBA_GROUP=dba
oracle.install.db.OSKMDBA_GROUP=dba
oracle.install.db.OSRACDBA_GROUP=dba
oracle.install.db.rootconfig.executeRootScript=false
静默安装
cd $ORACLE_HOME
./runInstaller -silent -responseFile /data/LINUX.X64_193000_db_home/db_install.rsp
安装日志(可以新开一个窗口使用tail -f查看)
You can find the log of this install session at:
/tmp/InstallActions2024-05-14_02-37-45PM/installActions2024-05-14_02-37-45PM.log
使用root权限执行脚本完成安装
As a root user, execute the following script(s):
1. /data/oraInventory/orainstRoot.sh
2. /data/LINUX.X64_193000_db_home/root.sh
备注:静默安装文件路径
软件:$ORACLE_HOME/install/response/db_install.rsp
监听:$ORACLE_HOME/assistants/netca/etca.rsp
建库:$ORACLE_HOME/assistants/dbca/dbca.rsp
创建监听
netca /silent /responseFile /data/LINUX.X64_193000_db_home/assistants/netca/netca.rsp
查看监听lsnrctl status
LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 14-MAY-2024 15:02:14
Copyright (c) 1991, 2019, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=BIP-PRD-DB)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date 14-MAY-2024 15:00:56
Uptime 0 days 0 hr. 1 min. 17 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /data/LINUX.X64_193000_db_home/network/admin/listener.ora
Listener Log File /data/oracle/diag/tnslsnr/BIP-PRD-DB/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=BIP-PRD-DB)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
The listener supports no services
The command completed successfully
如果监听启动报错
检查以下文件的hostname是否正确,修改正确后重启系统
/data/LINUX.X64_193000_db_home/network/admin/listener.ora
修改正确后重启系统
服务验证
lsnrctl status 查看监听状态
lsnrctl stop 停止监听
lsnrctl start 启动监听
SQLPLUS验证sqlplus / as sysdba
启动服务
手动启动
#启动监听#
lsnrctl start
sqlplus /nolog
connect /as sysdba
#启动数据实例#
startup
开机自启
修改/etc/oratab,最后的N改为Y(如果没有内容从下面粘贴)orcl:/data/LINUX.X64_193000_db_home:N
创建启动脚本/usr/bin/oracle.sh,内容如下
#! /bin/bash
# script For oracle19c.service
/data/LINUX.X64_193000_db_home/bin/lsnrctl start
/data/LINUX.X64_193000_db_home/bin/dbstart /data/LINUX.X64_193000_db_home
设置可执行权限chmod +x /usr/bin/oracle.sh
创建自启脚本/etc/systemd/system/oracle19c.service,内容如下
[Unit]
Description=Oracle19c
After=syslog.target network.target
[Service]
LimitMEMLOCK=infinity
LimitNOFILE=65535
Type=oneshot
RemainAfterExit=yes
User=oracle
Environment="ORACLE_HOME=/data/LINUX.X64_193000_db_home"
ExecStart=/usr/bin/oracle.sh
[Install]
WantedBy=multi-user.target
设置自启systemctl enable oracle19c
手动启动
#启动监听#
lsnrctl start
sqlplus /nolog
connect /as sysdba
#启动数据实例#
startup