一、环境准备
客户端工具:MobaXterm (如果使用可视化界面安装,需要使用此客户端,xshell可视化工具需要收费)
服务器:centos7.9 CentOS-7-x86_64-DVD-2009.iso
4核心CPU8G内存
数据库:Oracle21C LINUX.X64_213000_db_home.zip
yum源:
阿里云镜像站:https://developer.aliyun.com/mirror/
华为云镜像站:https://mirrors.huaweicloud.com/home
二、安装前准备
1、规划磁盘
创建LVM
pvcreate /dev/sdb
vgcreate vgdata /dev/sdb
lvcreate -L 20G -n oraclelv vgdata
lvcreate -L 10G -n oradatalv vgdata
格式化磁盘设备
mkfs.ext4 /dev/vgdata/oraclelv
mkfs.ext4 /dev/vgdata/oradatalv
查看磁盘设备UID
lsblk -f
添加到 /etc/fstab 永久挂载磁盘
vi /etc/fstab
UUID=a4e231d7-6376-49d8-9f48-8a3b2f2da4ca /oracle ext4 defaults 0 0
UUID=a540ca93-d82a-4d47-904d-abd6a5a33a7c /oradata ext4 defaults 0 0
创建目录和挂载磁盘(如果数据库的数据量大建议将oracle安装目录和数据库数据目录分开,数据读取分开有利于数据库稳定运行,如果导数操作较多也建议单独划分一个导数磁盘)
mkdir /oracle /oradata
mount -a
2、关闭防火墙
检查防火墙开启状态:systemctl status firewalld.service
关闭防火墙:systemctl stop firewalld.service
检查防火墙是否开机自启:systemctl is-enabled firewalld.service
关闭防火墙开机自启:systemctl disable firewalld.service
再检查防火墙是否关闭和是否开机自启:
systemctl is-enabled firewalld.service
systemctl status firewalld.service
3、关闭SELINUX设置:
vi /etc/selinux/config
SELINUX=disabled
4、更新yum源(提供了两个镜像源,配置其中一个即可,我两个都配置了)
备份官方的yum源:
mkdir -p /etc/yum.repos.d/back
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/back
获取阿里云的yum源:
wget -O /etc/yum.repos.d/CentOS-aliyun.repo https://mirrors.aliyun.com/repo/Centos-7.repo
非阿里云ECS用户会出现 Couldn't resolve host 'mirrors.cloud.aliyuncs.com' 信息,不影响使用。用户也可自行修改相关配置: eg:
sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-aliyun.repo
获取华为云的yum源:
wget -O /etc/yum.repos.d/CentOS-huaweicloud.repo https://mirrors.huaweicloud.com/repository/conf/CentOS-7-anon.repo
执行yum clean all清除原有 yum 缓存
执行yum makecache(刷新缓存)或者yum repolist all(查看所有配置可以使用的文件,会自动刷新缓存)。
5、安装Oracle数据库所需要的依赖包
yum install -y 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 kmod kmod-libs
6、创建oracle组和用户
groupadd dba;groupadd asmdba;groupadd backupdba;groupadd dgdba;groupadd kmdba;groupadd racdba;groupadd oper;groupadd oinstall
useradd -g oinstall -G dba,asmdba,backupdba,dgdba,kmdba,racdba,oper -m oracle
7、修改/etc/hosts文件,增加配置主机名解析
vi /etc/hosts
127.0.0.1 centos7oracle21
8、修改内核参数:
cat >> /etc/sysctl.conf <<EOF
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 7549747
kernel.shmmax = 30923764531
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
kernel.panic_on_oops = 1
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
vm.hugetlb_shm_group = 1000
EOF
执行sysctl -p 命令使以上设置生效
——————————————————————————–
#### 说明:
“shmmax”定义单个共享内存段的最大值,单位为字节。
“shmall”定义系统可以使用的共享内存总量,单位为页(一页=4KB),建议配置为单板的总内存大小。如
果“shmall”配置为“4194304”,即4194304*4KB/1024/1024=16GB,则用户创建超过16GB的共享内存会失
败。
shmall=是全部允许使用的共享内存大小,shmmax 是单个段允许使用的大小。这两个可以设置为内存的 90%。
例如 16G 内存,16*1024*1024*1024*90% = 15461882265,shmall 的大小为
15461882265/4k(getconf PAGESIZE可得到) = 3774873
———————————————————————————
9、修改/home/oracle/.bash_profile,增加oracle用户环境变量配置
vi /home/oracle/.bash_profile
export PATH
export ORACLE_SID=orcl
export ORACLE_BASE=/oracle/app
export ORACLE_HOME=/oracle/app/product
export ORACLE_HOSTNAME=centos7oracle21
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export PATH=$ORACLE_HOME/bin:$PATH:$ORACLE_HOME/OPatch:.
export JAVA_HOME=$ORACLE_HOME/jdk
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/lib:/lib:/usr/lib
DISPLAY=192.168.0.101:0.0; export DISPLAY
————————————————————-
DISPLAY为配置客户端图形界面(此IP为安装oracle所用的客户端IP,而不是oracle服务器的IP)
DISPLAY=192.168.0.101:0.0; export DISPLAY
————————————————————-
配置完后执行以下命令使环境变量生效:
source /home/oracle/.bash_profile
10、修改系统参数
cat >> /etc/security/limits.conf <<EOF
oracle soft nproc 4096
oracle hard nproc 16384
oracle soft nofile 2048
oracle hard nofile 65536
oracle soft stack 10240
EOF
11、创建安装目录,并上传安装包
mkdir -p /oracle/app/product && cd /oracle/app/product
mkdir -p /oracle/soft
scp oracle19c_19.5/LINUX.X64_213000_db_home.zip /oracle/soft/
三、安装Oracle21C
1、解压安装到到安装目录,修改oracle安装目录的属主
unzip /oracle/soft/LINUX.X64_213000_db_home.zip -d /oracle/app/product
chown oracle. /oracle /oradata -R
2、如果使用可视化界面安装则切换到oracle用户,进入/oracle/app/product目录,执行runInstaller安装。具体oracle安装配置不再详述。
cd /oracle/app/product
./runInstaller
3、如果使用静默安装方式来安装,则复制/oracle/app/product/install/response/db_install.rsp文件到其他目录修改,我这里复制到/oracle目录修改
cp /oracle/app/product/install/response/db_install.rsp /oracle
4、编辑/oracle/db_install.rsp文件,(db_install.rsp文件每个配置参数都有详细说明)
5、执行以下命令进行静默安装:
cd $ORACLE_HOME
./runInstaller -silent -responseFile /oracle/db_install.rsp
./runInstaller -silent -responseFile /oracle/db_install.rsp -ignorePrereq (使用这两个中其中的一个安装命令即可,ignorePrereq表示忽略前置条件,有时安装的时候可能有些前置条件不满足,但其实不太影响就可以考虑忽略前置条件)
5.1、安装完成后根据提示,使用root用户执行
As a root user, execute the following script(s):
1. /oracle/app/inventory/orainstRoot.sh
2. /oracle/app/product/root.sh
Execute /oracle/oraInventory/orainstRoot.sh on the following nodes:
[centos7oracle21]
Execute /oracle/app/product/root.sh on the following nodes:
[centos7oracle21]
使用root账号执行: /oracle/app/inventory/orainstRoot.sh
再使用root账号执行: /oracle/app/product/root.sh
5.2、然后根据提示,使用oracle用户再执行(以下是oracle安装完后再进行数据库的初始化配置)
Successfully Setup Software with warning(s).
As install user, execute the following command to complete the configuration.
/oracle/app/product/runInstaller -executeConfigTools -responseFile /oracle/db_install.rsp [-silent]
使用oracle用户执行:/oracle/app/product/runInstaller -executeConfigTools -responseFile /oracle/db_install.rsp -silent
5.3、最后使用oracle监听查看命令,查看oracle实例创建情况
lsnrctl status
附录
db_install.rsp文件配置:
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v21.0.0
oracle.install.option=INSTALL_DB_AND_CONFIG
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/oracle/oraInventory
ORACLE_HOME=/oracle/app/product
ORACLE_BASE=/oracle/app
oracle.install.db.InstallEdition=EE
oracle.install.db.OSDBA_GROUP=dba
oracle.install.db.OSOPER_GROUP=oper
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=false
oracle.install.db.rootconfig.configMethod=
oracle.install.db.rootconfig.sudoPath=
oracle.install.db.rootconfig.sudoUserName=
oracle.install.db.CLUSTER_NODES=
oracle.install.db.config.starterdb.type=DATA_WAREHOUSE
oracle.install.db.config.starterdb.globalDBName=orcl
oracle.install.db.config.starterdb.SID=orcl
oracle.install.db.config.PDBName=orclpd
oracle.install.db.config.starterdb.characterSet=ZHS16GBK
oracle.install.db.config.starterdb.memoryOption=false
oracle.install.db.config.starterdb.memoryLimit=3120
oracle.install.db.config.starterdb.password.ALL=Gmcc1234
oracle.install.db.config.starterdb.password.SYS=
oracle.install.db.config.starterdb.password.SYSTEM=
oracle.install.db.config.starterdb.password.DBSNMP=
oracle.install.db.config.starterdb.password.PDBADMIN=
oracle.install.db.config.starterdb.managementOption=DEFAULT
oracle.install.db.config.starterdb.omsHost=
oracle.install.db.config.starterdb.omsPort=
oracle.install.db.config.starterdb.emAdminUser=
oracle.install.db.config.starterdb.emAdminPassword=
oracle.install.db.config.starterdb.enableRecovery=false
oracle.install.db.config.starterdb.storageType=FILE_SYSTEM_STORAGE
oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=/oradata
oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=
oracle.install.db.config.asm.diskGroup=
oracle.install.db.config.asm.ASMSNMPPassword=