Download address of the resources used in the article: https://pan.baidu.com/s/1G3FO5iZ4TbdUIVdlpQ-6zg Extraction code: nwyb
1. Matters needing attention
-
Best to use Centos7 system, this tutorial is based on CentOS-7-x86_64-Minimal-2009
-
Server memory should not be less than 2G, although 1G can run Oracle, but it is more card
-
The default system kernel parameters are not applicable and running Oracle recommends to modify the kernel parameters
-
If you cannot access, please make sure that the firewall allows the default port 1521, if you don’t know, just close the firewall
systemctl stop firewalld.service # 关闭防火墙 systemctl disable firewalld.service # 禁用自启动
-
There is a password configuration in steps 10 and 12, this article uses
123456
as a password, modify it during installation -
When the user is created, it is
DsiCHFuZ5
used as the user password, mainly considering that no password is entered
Two installation tutorial
01. Turn off the firewall
systemctl stop firewalld && systemctl disable firewalld
02. Install dependencies
-
Offline installation tutorial
# 上传依赖包, 这里采用的是内网传输的方式 curl -o /root/package.tar.gz http://10.100.2.130:1234/package.tar.gz # 解压依赖包 tar -zvxf /root/package.tar.gz # 安装依赖包 rpm -Uvh --force --nodeps /root/package/*.rpm
-
Online installation tutorial
# 更新下载源(非必须) mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo yum clean all yum makecache # 安装依赖包 yum install -y wget vim unzip bc binutils compat-libcap1 compat-libstdc++-33 dtrace-utils yum install -y elfutils-libelf elfutils-libelf-devel fontconfig-devel glibc glibc-devel ksh yum install -y libaio libaio-devel libdtrace-ctf-devel libXrender libXrender-devel libX11 yum install -y libXau libXi libXtst libgcc librdmacm-devel libstdc++ libstdc++-devel libxcb yum install -y make net-tools nfs-utils python python-configshell python-rtslib python-six yum install -y targetcli smartmontools sysstat unixODBC
03. Create users and groups
groupadd -g 54321 oinstall
groupadd -g 54322 dba
#groupadd -g 54323 oper
#groupadd -g 54324 backupdba
#groupadd -g 54325 dgdba
#groupadd -g 54326 kmdba
#groupadd -g 54327 asmdba
#groupadd -g 54328 asmoper
#groupadd -g 54329 asmadmin
#groupadd -g 54330 racdba
useradd -u 54321 -g oinstall -G dba oracle
echo 'DsiCHFuZ5' | passwd --stdin oracle
04. Create installation directory
mkdir -p /u01
# mount /dev/sdb1 /u01
mkdir -p /u01/app/oracle/product/19.0.0/dbhome_1
mkdir -p /u01/app/oracle/oradata
mkdir -p /u01/app/oraInventory
05. Add environment variables
echo 'export ORACLE_HOSTNAME=server.oracle' >> /home/oracle/.bashrc
echo 'export ORACLE_UNQNAME=cdb1' >> /home/oracle/.bashrc
echo 'export ORACLE_BASE=/u01/app/oracle' >> /home/oracle/.bashrc
echo 'export ORACLE_HOME=$ORACLE_BASE/product/19.0.0/dbhome_1' >> /home/oracle/.bashrc
echo 'export ORA_INVENTORY=/u01/app/oraInventory' >> /home/oracle/.bashrc
echo 'export ORACLE_SID=orcl' >> /home/oracle/.bashrc
echo 'export PDB_NAME=orclpdb' >> /home/oracle/.bashrc
echo 'export DATA_DIR=$ORACLE_BASE/oradata' >> /home/oracle/.bashrc
echo 'export PATH=/usr/sbin:/usr/local/bin:$PATH' >> /home/oracle/.bashrc
echo 'export PATH=$ORACLE_HOME/bin:$PATH' >> /home/oracle/.bashrc
echo 'export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib' >> /home/oracle/.bashrc
echo 'export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib' >> /home/oracle/.bashrc
source /home/oracle/.bashrc
06. Modify kernel parameters
export SYSCTL_CONFIG=/etc/sysctl.d/98-oracle.conf
echo 'kernel.shmmax = 2147483648' >> $SYSCTL_CONFIG
echo 'kernel.shmmni = 4096' >> $SYSCTL_CONFIG
echo 'kernel.shmall = 2097152' >> $SYSCTL_CONFIG
echo 'kernel.sem = 250 32000 100 128' >> $SYSCTL_CONFIG
echo 'fs.file-max = 6815744' >> $SYSCTL_CONFIG
echo 'fs.aio-max-nr = 1048576' >> $SYSCTL_CONFIG
echo 'kernel.panic_on_oops = 1' >> $SYSCTL_CONFIG
echo 'net.ipv4.ip_local_port_range = 9999 65000' >> $SYSCTL_CONFIG
echo 'net.core.rmem_default = 262144' >> $SYSCTL_CONFIG
echo 'net.core.rmem_max = 262144' >> $SYSCTL_CONFIG
echo 'net.core.wmem_default = 262144 ' >> $SYSCTL_CONFIG
echo 'net.core.wmem_max = 262144' >> $SYSCTL_CONFIG
sysctl -p $SYSCTL_CONFIG && export -n SYSCTL_CONFIG
echo 'oracle soft nofile 10240' >> /etc/security/limits.conf
echo 'oracle hard nofile 65536' >> /etc/security/limits.conf
echo 'oracle soft nproc 16384' >> /etc/security/limits.conf
echo 'oracle hard nproc 16384' >> /etc/security/limits.conf
echo 'oracle soft stack 10240' >> /etc/security/limits.conf
echo 'oracle hard stack 32768' >> /etc/security/limits.conf
echo 'oracle hard memlock 134217728' >> /etc/security/limits.conf
echo 'oracle soft memlock 134217728' >> /etc/security/limits.conf
07. Download the installer
# 下载安装程序包, 也可以使用其他方式上传到linux, 这里采用的是内网传输的方式
wget -P /root http://10.100.2.130:1234/LINUX.X64_193000_db_home.zip
08. Unzip the installer
# 解压安装程序到之前创建的目录下
unzip -o /root/LINUX.X64_193000_db_home.zip -d $ORACLE_HOME
09. Modify user permissions
# 赋予oracle用户和oinstall用户组控制/u01/app目录的权限
chown -R oracle.oinstall /u01/app && chmod -R 775 /u01/app
10. Start the installation program
su oracle # 切换到oracle用户
# 开始安装, 此步骤有点久,是异步安装, 安装好后有提示切换到oracle用户并允许下面2行命令
# 以下涉及到数据库密码, 该文章使用的是123456作为 sys system 的密码, 请自行修改名密码
$ORACLE_HOME/runInstaller -ignorePrereq -waitforcompletion -silent \
-responseFile ${ORACLE_HOME}/install/response/db_install.rsp \
oracle.install.option=INSTALL_DB_SWONLY \
ORACLE_HOSTNAME=${ORACLE_HOSTNAME} \
UNIX_GROUP_NAME=oinstall \
INVENTORY_LOCATION=${ORA_INVENTORY} \
SELECTED_LANGUAGES=en,zh_CN \
ORACLE_HOME=${ORACLE_HOME} \
ORACLE_BASE=${ORACLE_BASE} \
oracle.install.db.InstallEdition=EE \
oracle.install.db.OSDBA_GROUP=dba \
oracle.install.db.OSOPER_GROUP=dba \
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.config.starterdb.globalDBName=orcl \
oracle.install.db.config.starterdb.SID=orcl \
oracle.install.db.config.starterdb.memoryLimit=512 \
oracle.install.db.config.starterdb.password.ALL=123456 \
oracle.install.db.config.starterdb.password.SYS=123456 \
oracle.install.db.config.starterdb.password.SYSTEM=123456 \
DECLINE_SECURITY_UPDATES=true
exit # 切换到root用户
/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/19.0.0/dbhome_1/root.sh
11. Start the listener
su oracle -lc 'lsnrctl start'
12. Create a database
su oracle # 切换到oracle用户
# 以下涉及到数据库密码, 该文章使用的是123456作为 sys system 的密码, 请自行修改名密码
dbca -silent -createDatabase -ignorePreReqs \
-templateName General_Purpose.dbc \
-gdbname ${ORACLE_SID} -sid ${ORACLE_SID} -responseFile NO_VALUE \
-characterSet AL32UTF8 \
-sysPassword 123456 \
-systemPassword 123456 \
-createAsContainerDatabase true \
-numberOfPDBs 1 \
-pdbName ${PDB_NAME} \
-pdbAdminPassword 123456 \
-databaseType MULTIPURPOSE \
-memoryMgmtType auto_sga \
-totalMemory 2000 \
-storageType FS \
-datafileDestination "${DATA_DIR}" \
-redoLogFileSize 50 \
-emConfiguration NONE
# 如果提示没有实例正在运行, 运行下面命令
su oracle -lc 'dbstart'
13. Set auto-start after power-on
exit # 切换到root用户
# 替换/etc/oratab文件的实例重启标志改为Y
sed -i 's/:N/:Y/g' /etc/oratab
14. One-click script execution
vim /root/oracle
#! /bin/bash
# chkconfig: 234 61 61
# description: Oracle 11g AutoRun Service
# /etc/rc.d/init.d/oracle
case "$1" in
start)
# starts oracle listener and instance
echo "Starting Oracle Database:"
su oracle -lc "lsnrctl start"
su oracle -lc dbstart
;;
stop)
# shutdown oracle listner and instance
echo "Shuting down Oracle Database:"
su oracle -lc "lsnrctl stop"
su oracle -lc dbshut
;;
reload|restart)
$0 stop
$0 start
;;
*)
echo "Usage: {start|stop|reload|restart}"
exit 1
esac
exit 0
chmod 770 /root/oracle
Three other documents
01. Reference article
linux install oracle database
https://oracle-base.com/articles/19c/oracle-db-19c-installation-on-oracle-linux-7
Switch Centos data source
https://developer.aliyun.com/mirror/centos?spm=a2c6h.13651102.0.0.3e221b11fhySEa
After the server restarts, start the database
https://www.cnblogs.com/mingforyou/p/7374565.html
Offline RPM package download and installation
https://my.oschina.net/daodaotest/blog/4373517
linux tar file decompression tool
https://blog.csdn.net/kkw1992/article/details/80000653
02. Linux commands
Command: lsblk [View Partition Details]
用法:
lsblk [选项] [<设备> ...]
选项:
-a, --all 打印所有设备
-b, --bytes 以字节为单位而非易读的格式来打印 SIZE
-d, --nodeps 不打印从属设备(slave)或占位设备(holder)
-D, --discard 打印时丢弃能力
-e, --exclude <列表> 根据主设备号排除设备(默认:内存盘)
-I, --include <列表> 只显示有指定主设备号的设备
-f, --fs 输出文件系统信息
-h, --help 使用信息(此信息)
-i, --ascii 只使用 ascii 字符
-m, --perms 输出权限信息
-l, --list 使用列表格式的输出
-n, --noheadings 不打印标题
-o, --output <列表> 输出列
-p, --paths 打印完整设备路径
-P, --pairs 使用 key=“value” 输出格式
-r, --raw 使用原生输出格式
-s, --inverse 反向依赖
-t, --topology 输出拓扑信息
-S, --scsi 输出有关 SCSI 设备的信息
-h, --help 显示此帮助并退出
-V, --version 输出版本信息并退出
Command: fdisk [hard disk partition tool]
用法:
fdisk [选项] <磁盘> 更改分区表
fdisk [选项] -l <磁盘> 列出分区表
fdisk -s <分区> 给出分区大小(块数)
选项:
-b <大小> 扇区大小(512、1024、2048或4096)
-c[=<模式>] 兼容模式:“dos”或“nondos”(默认)
-h 打印此帮助文本
-u[=<单位>] 显示单位:“cylinders”(柱面)或“sectors”(扇区,默认)
-v 打印程序版本
-C <数字> 指定柱面数
-H <数字> 指定磁头数
-S <数字> 指定每个磁道的扇区数