一 注意事项
-
最好使用Centos7系统, 本教程基于CentOS-7-x86_64-Minimal-2009所写
-
服务器内存不要低于2G, 虽然1G可以跑Oracle 但是比较卡
-
默认系统内核参数不适用与运行Oracle 建议修改内核参数
-
如不能访问请确保防火墙是否放行默认端口 1521, 不知道的话就直接关闭防火墙
systemctl stop firewalld.service # 关闭防火墙 systemctl disable firewalld.service # 禁用自启动
-
在10和12步均有密码配置, 本文使用的是
123456
作为密码, 安装时自行修改 -
用户创建的时候使用的是
DsiCHFuZ5
作为用户密码, 主要是考虑到免输入密码
二 安装教程
01. 关闭防火墙
systemctl stop firewalld && systemctl disable firewalld
02. 安装依赖项
-
离线安装教程
# 上传依赖包, 这里采用的是内网传输的方式 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
-
在线安装教程
# 更新下载源(非必须) 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. 创建用户和组
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. 创建安装目录
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. 添加环境变量
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. 修改内核参数
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. 下载安装程序
# 下载安装程序包, 也可以使用其他方式上传到linux, 这里采用的是内网传输的方式
wget -P /root http://10.100.2.130:1234/LINUX.X64_193000_db_home.zip
08. 解压安装程序
# 解压安装程序到之前创建的目录下
unzip -o /root/LINUX.X64_193000_db_home.zip -d $ORACLE_HOME
09. 修改用户权限
# 赋予oracle用户和oinstall用户组控制/u01/app目录的权限
chown -R oracle.oinstall /u01/app && chmod -R 775 /u01/app
10. 开始安装程序
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. 启动监听器
su oracle -lc 'lsnrctl start'
12. 创建数据库
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. 设置开机自启
exit # 切换到root用户
# 替换/etc/oratab文件的实例重启标志改为Y
sed -i 's/:N/:Y/g' /etc/oratab
14. 一键执行脚本
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
三 其他文档
01. 参考文章
linux 安装oracle数据库
https://oracle-base.com/articles/19c/oracle-db-19c-installation-on-oracle-linux-7
切换Centos数据源
https://developer.aliyun.com/mirror/centos?spm=a2c6h.13651102.0.0.3e221b11fhySEa
服务器重启后, 启动数据库
https://www.cnblogs.com/mingforyou/p/7374565.html
离线RPM包下载及安装
https://my.oschina.net/daodaotest/blog/4373517
linux tar 文件解压工具
https://blog.csdn.net/kkw1992/article/details/80000653
02. Linux命令
命令: lsblk [查看分区详情]
用法:
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 输出版本信息并退出
命令: fdisk [硬盘分区工具]
用法:
fdisk [选项] <磁盘> 更改分区表
fdisk [选项] -l <磁盘> 列出分区表
fdisk -s <分区> 给出分区大小(块数)
选项:
-b <大小> 扇区大小(512、1024、2048或4096)
-c[=<模式>] 兼容模式:“dos”或“nondos”(默认)
-h 打印此帮助文本
-u[=<单位>] 显示单位:“cylinders”(柱面)或“sectors”(扇区,默认)
-v 打印程序版本
-C <数字> 指定柱面数
-H <数字> 指定磁头数
-S <数字> 指定每个磁道的扇区数