暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

linux-oracle19c单实例安装卸载

原创 朝印村的保安 2023-10-16
1452

1、关闭selinux
grep '^SELINUX=' /etc/selinux/config
sed -i '/SELINUX/{s/enforcing/disabled/}' /etc/selinux/config
setenforce 0

2、设置防火墙或者直接关闭
开放端口(开放后需要要重启防火墙才生效)
firewall-cmd --zone=public --add-port=1521/tcp --permanent
关闭端口(关闭后需要要重启防火墙才生效)
firewall-cmd --zone=public --remove-port=1521/tcp --permanent
重启防火墙
firewall-cmd --reload
systemctl stop firewalld
systemctl enable firewalld
systemctl start firewalld

3 配置 HOSTS 文件
编辑 /etc/hosts 文件,添加 IP 地址及主机名
echo "172.16.200.240 csk" >> /etc/hosts

4 限制用户资源
vim /etc/security/limits.conf 文件,添加资源限制

cat >> /etc/security/limits.conf <<EOF
oracle soft nproc 16384
oracle hard nproc 16384
oracle soft nofile 65536
oracle hard nofile 65536
oracle soft stack 32768
oracle hard stack 32768
oracle soft memlock 60817408
oracle hard memlock 60817408
EOF
注意:如果内存小于8G,最后两行大内存页配置可忽略
这里物理内存是128GB,可以设置为如下(软限制和硬限制125G) 125*1024*1024

cat /etc/security/limits.d/20-nproc.conf
echo "* - nproc 16384" > /etc/security/limits.d/20-nproc.conf
--控制进程参数,避免过度占用系统资源


5 配置内核参数
1) kernel.shmmax
定义单个共享内存的最大值
32位:shmmax < 4G;
64位: shmmax > SGA < 物理内存(DB不超过物理内存的80%)
(memlock,hugepages,shmmax) 三个参数可以相等 ,(按照这种方法设置,防止后面调整sga)
memlock,hugepages必须大于等于shmmax
shmmax不能大于memlock,hugepage
SGA <=物理内存*0.8*0.8<=82G,shmmax > 82g < 120G 【128G-(2G~4G)】 ,因为内存锁了部分,要预留几个G给操作系统使用。
2) kernel.shmall
控制共享内存页数
getconf PAGESIZE
默认是4096(字节,默认是4K)
shmax(G)*1024*1024/4

3) kernel.shmmni
共享内存段的最大数量
默认是4096就够了,最大shmmax*shmmni

4) 计算vm.nr_hugepages的建议值
有一个脚本hugepages_settings.sh
(sga*1024)/2+200

cat >> /etc/sysctl.conf <<EOF
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.panic_on_oops = 1
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.ipv4.conf.all.rp_filter = 2
net.ipv4.conf.default.rp_filter = 2
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500
kernel.shmmax = 55834574848
kernel.shmall = 13631488
kernel.shmmni = 4096
vm.nr_hugepages= 22016
vm.swappiness=10
vm.vfs_cache_pressure=200
EOF

然后使之生效
/sbin/sysctl -p

6、为何要关闭透明大页? 【开了大页内存就必须关闭】
由于透明超大页面已知会导致意外的节点重新启动并导致RAC出现性能问题,因此Oracle强烈建议禁用透明超大页面。
另外,即使在单实例数据库环境中,透明超大页面也可能会导致问题,并出现意外的性能问题或延迟。
因此,Oracle建议在运行Oracle的所有数据库服务器上禁用透明超大页面
https://www.cnblogs.com/lvcha001/p/9071053.html
在/etc/default/grub文件中添加如下内容并重启操作系统
【在quiet之后,空格加上transparent_hugepage=never】
transparent_hugepage=never numa=off
执行生效命令
grub2-mkconfig -o /boot/grub2/grub.cfg
grub2-mkconfig -o /etc/grub2-efi.cfg
重启
reboot
检查是否生效
cat /proc/cmdline
more /sys/kernel/mm/transparent_hugepage/enabled
grep AnonHugePages /proc/meminfo


7、 配置/etc/pam.d/login
vim /etc/pam.d/login
#add
#这是对应64位的
cat >> /etc/pam.d/login <<EOF
session required /lib64/security/pam_limits.so
EOF
#这是对应32位的
#session required /lib/security/pam_limits.so

8、 修改ulimit
vim /etc/profile
#添加oracle 用户 limit:
cat >> /etc/profile <<EOF
if [ $USER = "oracle" ] ; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
EOF

ulimit –p 16384限制管道缓冲区的大小为16384
ulimit –n 65536表示可以打开最大文件描述符的数量为65536
ulimit – u 16384;限制用户最多可以使用16384个进程

9、 yum仓库
vi /etc/yum.repos.d/yum.repo
[LocalAppStream]
name=LA
baseurl=file:///mnt/AppStream
gpgcheck=0
enabled=1

[LocalBaseOS]
name=LB
baseurl=file:///mnt/BaseOS
gpgcheck=0
enabled=1

mount -o loop *.iso /mnt/

yum clean all
yum makecache

10、
yum install gcc gcc-c++ binutils compat-libcap1 compat-libstdc++-33 glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libxcb libX11 libXau libXi libXtst make net-tools nfs-utils smartmontools sysstat xterm unixODBC unixODBC-devel libXp e2fsprogs e2fsprogs-libs elfutils-libelf-devel libXrender -y
yum install bc gcc gcc-c++ binutils compat-libcap1 compat-libstdc++ dtrace-modules dtrace-modules-headers dtrace-modules-provider-headers dtrace-utils elfutils-libelf elfutils-libelf-devel fontconfig-devel glibc glibc-devel ksh libaio libaio-devel libdtrace-ctf-devel libX11 libXau libXi libXtst libXrender libXrender-devel libgcc librdmacm-devel libstdc++ libstdc++-devel libxcb make smartmontools sysstat libnsl make glibc-devel -y
--8执行
dnf install -y bc
dnf install -y binutils
dnf install -y compat-libstdc++-33
dnf install -y elfutils-libelf
dnf install -y elfutils-libelf-devel
dnf install -y fontconfig-devel
dnf install -y glibc
dnf install -y glibc-devel
dnf install -y ksh
dnf install -y libaio
dnf install -y libaio-devel
dnf install -y libXrender
dnf install -y libXrender-devel
dnf install -y libX11
dnf install -y libXau
dnf install -y libXi
dnf install -y libXtst
dnf install -y libgcc
dnf install -y librdmacm-devel
dnf install -y libstdc++
dnf install -y libstdc++-devel
dnf install -y libxcb
dnf install -y make
dnf install -y net-tools # Clusterware
dnf install -y nfs-utils # ACFS
dnf install -y python # ACFS
dnf install -y python-configshell # ACFS
dnf install -y python-rtslib # ACFS
dnf install -y python-six # ACFS
dnf install -y targetcli # ACFS
dnf install -y smartmontools
dnf install -y sysstat
dnf install -y unixODBC
dnf install libnsl
dnf install -y libnsl2
dnf install -y libnsl2.i686

扩展:DNF 即将取代 YUM,相关内容请自行查询。
11、用户组创建
添加oracle 用戶
groupadd -g 54321 oinstall
groupadd -g 54322 dba
groupadd -g 54323 oper
useradd -u 54321 -g oinstall -G dba,oper oracle
echo "oracle" | passwd --stdin oracle

usermod -g oinstall -G dba,oper oracle --修改组
12、创建安装目录
创建工作的目录,然后赋予相应的权限。
mkdir -p /home/app/oracle/product/19.3/db_1
chown -R oracle:oinstall /home
chmod -R 775 /home

13、 设置oracle用户环境变量
vim .bash_profile

ORACLE_SID=orcl;export ORACLE_SID
ORACLE_UNQNAME=orcl;export ORACLE_UNQNAME
ORACLE_BASE=/home/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/19.3/db_1; export ORACLE_HOME
NLS_DATE_FORMAT="YYYY:MM:DDHH24:MI:SS"; export NLS_DATE_FORMAT
NLS_LANG=american_america.ZHS16GBK; export NLS_LANG
TNS_ADMIN=$ORACLE_HOME/network/admin; export TNS_ADMIN
ORA_NLS11=$ORACLE_HOME/nls/data; export ORA_NLS11
PATH=.:${JAVA_HOME}/bin:${PATH}:$HOME/bin:$ORACLE_HOME/bin:$ORA_CRS_HOME/bin
PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
export CLASSPATH
THREADS_FLAG=native; export THREADS_FLAG
export TEMP=/tmp
export TMPDIR=/tmp
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'
umask 022
使设置的环境变量生效
source .bash_profile

14、配置/dev/shm大小
[root@XAG193 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 29G 8.5G 21G 30% /
devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 8.7M 3.9G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/sda1 187M 120M 67M 65% /boot
/dev/mapper/centos-home 953M 33M 921M 4% /home
/dev/mapper/centos-tmp 2.8G 33M 2.8G 2% /tmp
tmpfs 781M 0 781M 0% /run/user/1000

vim /etc/fstab
vi /etc/fstab
tmpfs /dev/shm tmpfs defaults,size=32G 0 0
mount -o remount /dev/shm
or
umount /dev/shm
mount /dev/shm

15、安装数据库软件
从Oracle 18c开始,数据库软件直接采用解压缩的方式进行,需要直接解压缩到$ORACLE_HOME目录下,
这点和之前区别较大。 这里直接进行解压缩。
[root@www.cndba.cn u01]# chown oracle:oinstall LINUX.X64_193000_db_home.zip
[root@www.cndba.cn software]# su - oracle
[oracle@dave ~]$ unzip -d /oracle/app/oracle/product/19.9/db_1/ /software/LINUX.X64_193000_db_home.zip

设置版本兼容
注意:RHEL 8 如果不设置版本兼容,则会报错 [INS-08101]
oracle用户执行
export CV_ASSUME_DISTID=RHEL7.6
export LANG=en_US
切换到Oracle用户进去Oracle Home目录执行./runInstaller安装Oracle 18c数据库软件
cd /u01/app/oracle/product/19.9/db_1
./runInstaller

窗口异常 ./runInstaller ./runInstaller -jreLoc /usr/lib/jvm/jre-1.7.0

/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/19.9/db_1/root.sh

16、数据库参数优化
alter system set sga_max_size=42g scope=spfile;
alter system set sga_target=42g scope=spfile;
alter system set pga_aggregate_target=10g scope=spfile;
alter system set processes=5000 scope=spfile;
alter system set session_cached_cursors=300 scope=spfile;
alter system set db_files=8192 scope=spfile;
alter system set optimizer_index_cost_adj=20 scope=spfile;
alter system set optimizer_index_caching=80 scope=spfile;
alter system set optimizer_mode='ALL_ROWS' scope=spfile;
alter system set "_optimizer_skip_scan_enabled"=false sid='*';
alter system set undo_retention=10800 sid='*' scope=spfile;

17、数据库开机自启动
19c
--自动启动oracle配置
1、oracle用户修改下面两个脚本
vi $ORACLE_HOME/bin/dbstart
vi $ORACLE_HOME/bin/dbshut
/ORACLE_HOME_LISTNER=$1
ORACLE_HOME_LISTNER=$ORACLE_HOME
2、oracle用户 vi /etc/oratab
修改最后一行N为Y,N 代表开机不启动,Y代表启动
3、root用户修改 vi /etc/rc.d/rc.local
su oracle -lc "/home/app/oracle/product/19/db_1/bin/lsnrctl start"
su oracle -lc "/home/app/oracle/product/19/db_1/bin/dbstart"
chmod 775 rc.local

18、注意服务器系统时间
timedatectl
sudo timedatectl set-timezone 'Asia/Shanghai'
date -s '2021-07-16 12:55:40'
clock -systohc
19、注意低版本连接高版本sqlnet.ora配置
SQLNET.ALLOWED_LOGON_VERSION=8



--“注意,以下动作危险,确实是要卸载才执行” --

1.删除安装目录
2.删除配置文件
3.删除服务
rm -fr /u01/app
rm -fr /etc/ora*
rm -fr /etc/init.d/ohasd
rm -fr /etc/init.d/init.ohasd
rm -fr /etc/init.d/*gcstartup
rm -fr /etc/rc.d/rc{2,3,5}.d/*gcstartup
rm -fr /etc/rc.d/rc{2,3,5}.d/*ohasd

最后,重启机器 

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论