1、网络配置
#root
nmcli connection show
nmcli connection modify ens160 ipv4.addresses 192.168.65.169/24 ipv4.gateway 192.168.65.1 ipv4.method manual autoconnect yes
nmcli connection up ens160
2、软件包上传
1)创建存放文件夹
#root
mkdir /soft
2)上传后查看(本次使用如下各包,请自行寻找)
#root
ll /soft/
total 7307188
-rw-r--r-- 1 root root 195388 Feb 25 22:27 compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
-rw-r--r-- 1 root root 3059705302 Feb 25 22:27 LINUX.X64_193000_db_home.zip
-rw-r--r-- 1 root root 1411305781 Feb 25 22:27 p33192793_190000_Linux-x86-64.zip
-rw-r--r-- 1 root root 120998448 Feb 25 22:27 p6880880_190000_Linux-x86-64.zip
3、关闭防火墙
#root
systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld
4、关闭不必要的服务
#root
systemctl stop tuned.service
systemctl disable tuned.service
systemctl stop ktune.service
systemctl disable ktune.service
systemctl stop postfix.service
systemctl disable postfix.service
systemctl stop avahi-daemon.socket
systemctl disable avahi-daemon.socket
systemctl stop avahi-daemon.service
systemctl disable avahi-daemon.service
systemctl stop bluetooth.service
systemctl disable bluetooth.service
systemctl stop ModemManager.service
systemctl disable ModemManager.service
systemctl stop avahi-dnsconfd.service
systemctl disable avahi-dnsconfd.service
systemctl stop libvirtd.service
systemctl disable libvirtd.service
5、关闭 Selinux
1)修改
#root
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
2)需要重启检查
#root
getenforce
------下面是输出--------
Disabled
6、配置 yum 源
1)挂载
#root
mount /dev/cdrom /mnt
2)配置仓库
#root
vim /etc/yum.repos.d/local.repo
[echoddyum]
name=echodd
baseurl=file:///mnt
enabled=1
gpgcheck=0
3)清理并生成
#root
yum clean all
yum makecache
7、安装依赖包
1)安装镜像中已有的
#root
yum install -y bc \
binutils \
compat-libcap1 \
compat-libstdc++-33 \
gcc \
gcc-c++ \
elfutils-libelf \
elfutils-libelf-devel \
glibc \
glibc-devel \
ksh \
libaio \
libaio-devel \
libgcc \
libstdc++ \
libstdc++-devel \
libxcb \
libX11 \
libXau \
libXi \
libXtst \
libXrender \
libXrender-devel \
make \
net-tools \
nfs-utils \
smartmontools \
sysstat \
e2fsprogs \
e2fsprogs-libs \
fontconfig-devel \
expect \
unzip \
openssh-clients \
readline* \
psmisc --skip-broken
2)手动安装compat-libstdc++(镜像上没有)
#root
rpm -ivh /soft/compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
3)检查
#root
rpm -q bc binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ elfutils-libelf elfutils-libelf-devel glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libxcb libX11 libXau libXi libXtst libXrender libXrender-devel make net-tools nfs-utils smartmontools sysstat e2fsprogs e2fsprogs-libs fontconfig-devel expect unzip openssh-clients readline
8、配置hosts
#root
echo '192.168.65.169 test01' >> /etc/hosts
9、创建用户和组
1)创建
#root
/usr/sbin/groupadd -g 23431 oinstall
/usr/sbin/groupadd -g 23432 dba
/usr/sbin/groupadd -g 23433 oper
/usr/sbin/groupadd -g 23434 backupdba
/usr/sbin/groupadd -g 23435 dgdba
/usr/sbin/groupadd -g 23436 kmdba
/usr/sbin/groupadd -g 23437 racdba
/usr/sbin/useradd -u 23431 -g oinstall -G dba,backupdba,dgdba,kmdba,racdba,oper oracle
echo oracle | passwd --stdin oracle
2)检查
#root
id oracle
10、配置用户环境变量
1)配置 root 用户
#root
cat <<EOF >>/root/.bash_profile
##登陆oracle用户
alias so='su - oracle'
##修改命令提示符
export PS1="[\`whoami\`@\`hostname\`:"'\$PWD]# '
EOF
2)配置 oracle 用户
#root or oracle
cat <<EOF >>/home/oracle/.bash_profile
export TMP=/tmp
export TMPDIR=\$TMP
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=\$ORACLE_BASE/product/19.3.0/db
export ORACLE_HOSTNAME=test01
export ORACLE_TERM=xterm
export TNS_ADMIN=\$ORACLE_HOME/network/admin
export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib
export ORACLE_SID=orcltest01
export PATH=/usr/sbin:\$PATH
export PATH=\$ORACLE_HOME/bin:\$ORACLE_HOME/OPatch:\$PATH
export PS1="[\`whoami\`@\`hostname\`:"'\$PWD]\$ '
alias sql='sqlplus / as sysdba'
umask 022
EOF
11、给软件包文件夹修改权限
#root
chown -R oracle.oinstall /soft
12、创建安装目录
#root
mkdir -p /u01/app/oracle/product/19.3.0/db
mkdir -p /u01/app/oraInventory
mkdir -p /oradata
mkdir -p /archivelog
chown -R oracle:oinstall /oradata
chown -R oracle:oinstall /archivelog
chown -R oracle:oinstall /u01/app
chmod -R 775 /u01/app
13、开启KDUMP
Kdump可以把操作系统所有的内存信息和寄存器信息dump转储为vmcore 文件,可以通过gdb/crash等工具进行分析和调试。
1)检查是否安装
#root
rpm -qa |grep kexec-tools
注:若未安装,则运行
#root
yum install -y kexec-tools.x86_64
2)配置规则
| 操作系统内存大小 | Crashkernel内存大小 |
|---|---|
| < 2G | 128MB |
| 2G ~ 4G | 256MB |
| 4G ~ 8G | 512MB |
| > 8G | 768MB |
注:根据规则修改以下crashkernel的值
#root
sed -i 's/GRUB_CMDLINE_LINUX="/GRUB_CMDLINE_LINUX="crashkernel=256M /g' /etc/default/grub
3)重建grub配置文件
#root
grub2-mkconfig -o /boot/grub2/grub.cfg
4)重启后检查
#root
cat /proc/cmdline
5)修改kdump默认配置
#root
sed -i 's/core_collector makedumpfile -l/core_collector makedumpfile -c/g' /etc/kdump.conf
sed -i 's/#default shell/default reboot/g' /etc/kdump.conf
6)验证
#root
cat /etc/kdump.conf | egrep "^path|^core_collector|^[#]*default"
7)开启kdump服务
#root
systemctl enable kdump
systemctl start kdump
systemctl status kdump
8)验证kdump (会重启)
#root
echo 1 > /proc/sys/kernel/sysrq
echo c > /proc/sysrq-trigger
9)查看文件
#root
ls -lR /var/crash
14、配置 avahi-deamon
#root
systemctl stop avahi-daemon.socket
systemctl stop avahi-daemon.service
systemctl disable avahi-daemon.service
systemctl disable avahi-daemon.socket
15、关闭透明大页和 numa
采用动态管理的方式对内存大页进行预分配,ORACLE不能使用操作系统分配的该种类型大页,在 RAC环境下可能会造成节点非正常重启。
开启NUMA,可能因为某个NUMA节点富余内存不足而使用虚拟内存。
#root
sed -i 's/quiet/quiet transparent_hugepage=never numa=off/' /etc/default/grub
grub2-mkconfig -o /boot/grub2/grub.cfg
16、修改LO网卡的MTU值
lo接口的MTU过大,会存在一些BUG
#root
echo "MTU=16436" >> /etc/sysconfig/network-scripts/ifcfg-lo
重启后查看
#root
netstat -in
-----以下是输出---------
Kernel Interface table
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
ens33 1500 14867 0 0 0 10837 0 0 0 BMRU
lo 16436 3031 0 0 0 3031 0 0 0 LRU
virbr0 1500 0 0 0 0 0 0 0 0 BMU
17、配置系统参数文件
1)修改参数
#root
DAYTIME=$(date +%Y%m%d)
mv /etc/sysctl.conf /etc/sysctl.conf.${DAYTIME}
cat <<EOF >/etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = $(echo "scale=0; $(awk '/MemTotal/ {print $2}' /proc/meminfo) * 1024 / $(getconf PAGESIZE)" | bc)
kernel.shmmax = $(echo "$(awk '/MemTotal/ {print $2}' /proc/meminfo) * 1024 * 0.8" | bc | sed 's#\..*$##')
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
kernel.randomize_va_space = 0
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
net.ipv4.ipfrag_high_thresh = 16777216
net.ipv4.ipfrag_low_thresh = 15728640
vm.swappiness =10
vm.min_free_kbytes= 524288
vm.dirty_background_ratio = 3
vm.dirty_ratio = 10
vm.dirty_writeback_centisecs = 100
vm.dirty_expire_centisecs = 500
EOF
2)加载参数配置
#root
sysctl -p
18、配置普通大页
当SGA内存参数(SGA通常物理内存的40%)设置超过8GB的时候,就需要考虑启用HugePages特性。
1)计算方法: 若SGA=50G ,则vm.nr_hugepages=(50+2) * 1024 / 2=26624
#root
echo "vm.nr_hugepages=上面计算的值" >> /etc/sysctl.conf
2)重启数据库后检查HugePage是否使用(这个需要安装完成后查看)
#root
cat /proc/meminfo | grep Huge
--------以下是输出------------
AnonHugePages: 0 kB
HugePages_Total: 52224
HugePages_Free: 1000
HugePages_Rsvd: 20
HugePages_Surp: 0
Hugepagesize: 2048 kB
19、配置系统资源限制
#root
cat <<EOF >>/etc/security/limits.conf
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
oracle soft nproc 2047
oracle hard nproc 16384
oracle hard memlock 134217728
oracle soft memlock 134217728
EOF
20、配置 pam.d
#root
cat <<EOF >>/etc/pam.d/login
session required pam_limits.so
EOF
21、配置NOZEROCONF
操作系统无法连接DHCP服务器时,会尝试通过ZEROCONF来获取IP,自动在路由表中增加路由
#root
echo "NOZEROCONF=yes" >> /etc/sysconfig/network
22、禁用DNS解析
查询DNS可能会带来一些性能问题
#root
mv /etc/resolv.conf /etc/resolv.conf.bak
23、配置 /dev/shm
确保共享内存文件系统大小与系统总内存一致
#root
cp /etc/fstab /tmp/fstab
memTotal=$(grep MemTotal /proc/meminfo | awk '{print $2}')
shmTotal=$(df -k /dev/shm | awk '{print $2}' | head -n 2 | tail -n 1)
if [ "$(grep -E -c "/dev/shm" /etc/fstab)" -eq 0 ]; then
cat <<EOF >>/etc/fstab
tmpfs /dev/shm tmpfs size=${memTotal}k 0 0
EOF
mount -o remount /dev/shm
else
if [ "$shmTotal" -lt "$memTotal" ]; then
shmTotal=$memTotal
line=$(grep -n "/dev/shm" /etc/fstab | awk -F ":" '{print $1}')
sed -i "${line} d" /etc/fstab
cat <<EOF >>/etc/fstab
tmpfs /dev/shm tmpfs size=${memTotal}k 0 0
EOF
fi
mount -o remount /dev/shm
fi
24、解压安装包
#oracle
unzip LINUX.X64_193000_db_home.zip -d $ORACLE_HOME
25、安装DB软件
1)编辑响应文件:$ORACLE_HOME/install/response/db_install.rsp (根据需要修改)
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v19.0.0
oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oraInventory
ORACLE_HOME=/u01/app/oracle/product/19.3.0/db
ORACLE_BASE=/u01/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.OSDBA_GROUP=dba
oracle.install.db.OSOPER_GROUP=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
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=GENERAL_PURPOSE
oracle.install.db.config.starterdb.globalDBName=orcltest01
oracle.install.db.config.starterdb.SID=orcltest01
oracle.install.db.ConfigureAsContainerDB=true
oracle.install.db.config.PDBName=echoddpdb
oracle.install.db.config.starterdb.characterSet=
oracle.install.db.config.starterdb.memoryOption=false
oracle.install.db.config.starterdb.memoryLimit=6000
oracle.install.db.config.starterdb.installExampleSchemas=false
oracle.install.db.config.starterdb.password.ALL=Cai820197!
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=
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=
2)替换DB OPatch
#oracle
mv $ORACLE_HOME/OPatch $ORACLE_HOME/OPatch.bak
unzip -o -q /soft/p6880880_190000_Linux-x86-64.zip -d $ORACLE_HOME
3)查看版本
#oracle
$ORACLE_HOME/OPatch/opatch version
-----以下是输出----------
OPatch Version: 12.2.0.1.27
OPatch succeeded.
4)安装DB
#oracle
cd $ORACLE_HOME
./runInstaller -applyRU /soft/33192793 -silent -responseFile /soft/db_install.rsp -ignorePrereqFailure
5)执行root.sh脚本(root执行)
#root
/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/19/db_1/root.sh
26、配置监听
使用默认响应文件进行静默配置监听(默认 监听名:LISTENER,端口:1521)
#oracle
netca -silent -responsefile /u01/app/oracle/product/19.3.0/db/assistants/netca/netca.rsp
27、创建数据库(CDB-多租户)
1)编辑响应文件:$ORACLE_HOME/assistants/dbca/ dbca.rsp(根据需要修改)
responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v19.0.0
gdbName=orcltest01
sid=orcltest01
databaseConfigType=SI
RACOneNodeServiceName=
policyManaged=false
createServerPool=false
serverPoolName=
cardinality=
force=false
pqPoolName=
pqCardinality=
createAsContainerDatabase=true
numberOfPDBs=1
pdbName=orcltestpdb
useLocalUndoForPDBs=true
pdbAdminPassword=Cai820197!
nodelist=
templateName=/u01/app/oracle/product/19.3.0/db/assistants/dbca/templates/General_Purpose.dbc
sysPassword=Cai820197!
systemPassword=Cai820197!
oracleHomeUserPassword=
emConfiguration=NONE
emExpressPort=5500
runCVUChecks=FALSE
dbsnmpPassword=
omsHost=
omsPort=
emUser=
emPassword=
dvConfiguration=false
dvUserName=
dvUserPassword=
dvAccountManagerName=
dvAccountManagerPassword=
olsConfiguration=false
datafileJarLocation=/u01/app/oracle/product/19.3.0/db/assistants/dbca/templates/
datafileDestination=/oradata
recoveryAreaDestination=
storageType=FS
diskGroupName=
asmsnmpPassword=
recoveryGroupName=
characterSet=AL32UTF8
nationalCharacterSet=AL16UTF16
registerWithDirService=false
dirServiceUserName=
dirServicePassword=
walletPassword=
listeners=
variablesFile=
variables=
initParams=
sampleSchema=false
memoryPercentage=40
databaseType=MULTIPURPOSE
automaticMemoryManagement=false
totalMemory=0
2)开始创建数据库
#oracle
dbca -silent -createDatabase -responsefile /soft/dbca.rsp -ignorePreReqs
-------以下为输出----------
Prepare for db operation
8% complete
Copying database files
31% complete
Creating and starting Oracle instance
32% complete
36% complete
40% complete
43% complete
46% complete
Completing Database Creation
51% complete
53% complete
54% complete
Creating Pluggable Databases
58% complete
77% complete
Executing Post Configuration Actions
100% complete
Database creation complete. For details check the logfiles at:
/u01/app/oracle/cfgtoollogs/dbca/orcltest01.
Database Information:
Global Database Name:orcltest01
System Identifier(SID):orcltest01
Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/orcltest01/orcltest01.log" for further details.
3)登录
[oracle@test01:/home/oracle]$ sql
SQL*Plus: Release 19.0.0.0.0 - Production on Sun Mar 2 16:15:54 2025
Version 19.13.0.0.0
Copyright (c) 1982, 2021, Oracle. All rights reserved.
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.13.0.0.0
SQL>
SQL>
SQL> show con_name
CON_NAME
------------------------------
CDB$ROOT
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 ORCLTESTPDB READ WRITE NO
SQL>
28、重启查看
#oracle
[oracle@test01:/home/oracle]$ sql
SQL*Plus: Release 19.0.0.0.0 - Production on Sun Mar 2 20:04:01 2025
Version 19.13.0.0.0
Copyright (c) 1982, 2021, Oracle. All rights reserved.
Connected to an idle instance.
SQL>
SQL>
SQL> startup
ORACLE instance started.
Total System Global Area 2466250392 bytes
Fixed Size 9137816 bytes
Variable Size 536870912 bytes
Database Buffers 1912602624 bytes
Redo Buffers 7639040 bytes
Database mounted.
Database opened.
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 ORCLTESTPDB MOUNTED
SQL>
526

被折叠的 条评论
为什么被折叠?



