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

安装软件步骤

原创 allenrry 2022-09-13
649

一、IP地址
etlrac01 ens192 10.216.20.71
ens224 10.216.5.71

etlrac02 ens192 10.216.20.72
ens224 10.216.5.72


Linux系统调整swap大小
二、swap分区调整大小(40G)
1.创建一个符合要求大小的swap分区文件
(本次使用dd方式):
# 8G大小的swap分区
dd if=/dev/zero of=/usr/swapfile bs=1G count=12

2.配置新swap文件:
首先修改swapfile文件的权限:
chmod 600 /usr/swapfile

将swapfile 初始化为交换文件:
mkswap /usr/swapfile


然后开启新创建的swap.
swapon /usr/swapfile

查看是否配置成功:
free -g

同样需要将swap分区挂在信息写入/etc/fstab 文件内重新启动后自动生效
[root@local ~]# vim /etc/fstab
/usr/swapfile swap swap defaults 0 0

三、配置/etc/hosts
mesdb1和mesdb2采用相同的配置。
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

#etlrac01
10.216.20.71 etlrac01
10.216.20.75 etlrac01-vip
10.216.5.71 etlrac01-priv

#etlrac02
10.216.20.72 etlrac02
10.216.20.76 etlrac02-vip
10.216.5.72 etlrac02-priv

#scan-ip
10.216.20.78 etlrac-scan



四、 禁用transparent_hugepage和NUMA
[root@mesdb1 ~]# vi /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet transparent_hugepage=never numa=off"
GRUB_DISABLE_RECOVERY="true"
[root@mesdb1 ~]# grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg

# grub2-mkconfig -o /boot/grub2/grub.cfg --虚拟机环境
[root@mesdb1 ~]# reboot

验证:
[root@mesdb1 ~]# cat /proc/cmdline
BOOT_IMAGE=/vmlinuz-3.10.0-957.el7.x86_64 root=/dev/mapper/vg00-root ro crashkernel=auto rd.lvm.lv=vg00/root rd.lvm.lv=vg00/swap rd.lvm.lv=vg00/usr rhgb quiet transparent_hugepage=never numa=off
[root@mesdb1 ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]


五、安装rlwrap-0.43.tar.gz
[root@mesdb1 ~]# yum -y install gcc
[root@mesdb1 ~]# yum -y install readline*
[root@mesdb1 ~]# tar zxvf rlwrap-0.43.tar.gz
[root@mesdb1 ~]# cd rlwrap-0.43
[root@mesdb1 ~]# ./configure && make && make install
[root@mesdb1 ~]# which rlwrap

六、关闭防火墙并禁止开机自启动
[root@mesdb1 ~]# systemctl stop firewalld.service
[root@mesdb1 ~]# systemctl disable firewalld.service --设置开机启动

七 关闭selinux
[root@mesdb1 ~]# vi /etc/sysconfig/selinux
SELINUX=disabled

八 启用chronyd
[root@mesdb1 ~]# systemctl start chronyd
[root@mesdb1 ~]# systemctl enable chronyd
systemctl status chronyd.service  查看服务状态

九 关闭avahi-daemon
[root@mesdb1 ~]# systemctl stop avahi-daemon
[root@mesdb1 ~]# systemctl disable avahi-daemon



十 安装必须的软件包
yum -y install gcc-c++ bc binutils compat-libcap1 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 libXrender libXrender-devel libX11 libXau libXi libXtst libgcc librdmacm-devel libstdc++ libstdc++-devel libxcb make net-tools nfs-utils python python-configshell python-rtslib python-six targetcli smartmontools sysstat unixODBC*

yum -y install compat-libstdc++ (光盘中无此包,使用rpm单独安装)


dtrace相关包忽略
No package dtrace-modules available.
No package dtrace-modules-headers available.
No package dtrace-modules-provider-headers available.
No package dtrace-utils available.
No package libdtrace-ctf-devel available.

dtrace相关的包未安装,原因如下:
DTrace(dynamic tracing)是Sun Solaris系统上主要的性能诊断工具,可以对kernel和用户应用程序进行动态跟踪,并且对系统运行不构成任何危险的技术,后被Oracle公司收购,遵循CDDL(Common Development and Distribution License),后来Oracle把这一技术移植到了Oracle Linux(在2012年12月正式发布)。到目前为止,Oracle Linux的DTrace仅限于Oracle Unbreakable Enterprise Kernel,无法兼容其他发行版Linux,在当时也引起了一场纷争(http://lwn.net/Articles/483107/)。


在Oracle Linux上使用DTrace可以帮你
观察整个软件体系、操作系统内核、系统库和应用程序的动态运行时性能
通过在运行时定义实时探测点识别性能瓶颈
开发探测器在谓词控制下触发时执行的脚本
检测并报告内存访问错误,而不是听任系统崩溃


十一、 创建组和用户
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,oper,asmdba oracle
echo "Oracle" | passwd --stdin oracle
useradd -u 54322 -g oinstall -G dba,oper,backupdba,dgdba,kmdba,asmdba,asmoper,asmadmin,racdba grid
echo "Grid" | passwd --stdin grid



十二、 创建目录并修改权限
以root用户执行下列命令:
mkdir -p /grid/app/grid
mkdir -p /grid/19.3.0/grid
chown -R grid:oinstall /grid
chmod -R 775 /grid

mkdir -p /oracle/app/oracle/product/19.3.0/db_1
chown -R oracle:oinstall /oracle
chmod -R 775 /oracle



十三、设置grid、oracle用户的环境变量
grid:
添加:
[grid@mesdb1 ~]$ vim /home/grid/.bash_profile --后面加下面的语句
export ORACLE_SID=+ASM1
export ORACLE_BASE=/grid/app/grid
export ORACLE_HOME=/grid/19.3.0/grid
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
stty erase ^h
alias sqlplus='rlwrap sqlplus'

export ORACLE_SID=+ASM2
export ORACLE_BASE=/grid/app/grid
export ORACLE_HOME=/grid/19.3.0/grid
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
stty erase ^h
alias sqlplus='rlwrap sqlplus'

oracle:
[oracle@mesdb1 ~]$ vi /home/oracle/.bash_profile
添加:
export ORACLE_SID=etlrac1
export ORACLE_BASE=/oracle/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.3.0/db_1
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
stty erase ^h
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'


export ORACLE_SID=etlrac2
export ORACLE_BASE=/oracle/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.3.0/db_1
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
stty erase ^h
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'


在linux环境下使用sqlplus,在回删(backspace)时往往会出现 一串的乱码。出现乱码是由于oracle的sqlplus不使用gnu的readline库造成的。

解决方法有两种:

1)要使用回删键(backspace)时,同时按住ctrl键

2)设定环境变量

在bash下:$ stty erase ^?
或者把 stty erase ^? 添加到.bash_profile中。

在csh下:$ stty erase ^H
或者把 stty erase ^H 添加到.cshrc中。


十四、 修改资源限制(不用改)
[root@mesdb1 ~]# vim /etc/security/limits.conf
添加:
grid soft nproc 2047
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
grid soft stack 10240
grid hard stack 32768

oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
oracle soft memlock unlimited
oracle hard memlock unlimited




十五、 修改/etc/pam.d/login文件
[root@mesdb1 ~]# vim /etc/pam.d/login
添加:
session required pam_limits.so



十六、 修改/etc/profile文件
[root@mesdb1 ~]# vim /etc/profile
添加:
if [ $USER = "oracle" ] || [ $USER = "grid" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi

十七、 修改内核配置文件
[root@mesdb1 ~]# /etc/sysctl.conf
添加:
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 131828012 --需要更改
kernel.shmmax = 539967537152 --需要更改(502G)
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 1024 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304 --需要更改
net.core.wmem_default = 262144
net.core.wmem_max = 1100000 --需要更改
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.default.rp_filter = 0
/*此部分未配置
vm.swappiness = 1
vm.dirty_background_ratio = 3
vm.dirty_ratio = 80
vm.dirty_expire_centisecs = 500
vm.dirty_writeback_centisecs = 100 */

[root@mesdb1 ~]# sysctl -p


fs.aio-max-nr = 1048576 --同时可以拥有的的异步IO请求数目,推荐值是:1048576 其实它等于 1024*1024 也就是 1024K 个



十八 配置NOZEROCONF
[root@mesdb1 ~]# vi /etc/sysconfig/network --在文件结尾添加
NOZEROCONF=yes

十九 安装cvuqdisk
两个节点都要安装。
cvuqdisk存于oracle GI安装介质的cv/rpm目录下:
[root@mesdb1 ~]# unzip LINUX.X64_193000_grid_home.zip -d $ORACLE_HOME
[root@mesdb1 ~]# cd /grid/19.3.0/grid/cv/rpm/
[root@mesdb1 rpm]# export CVUQDISK_GRP=oinstall
[root@mesdb1 rpm]# rpm -ivh cvuqdisk-1.0.10-1.rpm

二十 配置/dev/shm(512G)
[root@mesdb1 ~]# vi /etc/fstab
tmpfs /dev/shm tmpfs defaults,size=30G 0 0
#tmpfs /dev/shm tmpfs defaults,size=512G 0 0

[root@mesdb1 ~]# mount -o remount /dev/shm


二十一 使用UDEV配置设备名
两个节点上都要执行该操作,这里以etlrac01为例:
for i in c d e f g h i j k; do
echo "KERNEL==\"sd*\",ENV{DEVTYPE}==\"disk\",SUBSYSTEM==\"block\",PROGRAM==\"/usr/lib/udev/scsi_id -g -u -d \$devnode\",RESULT==\"`/usr/lib/udev/scsi_id -g -u /dev/sd$i`\", RUN+=\"/bin/sh -c 'mknod /dev/asm-disk$i b \$major \$minor; chown grid:asmadmin /dev/asm-disk$i; chmod 0660 /dev/asm-disk$i'\"" >> /etc/udev/rules.d/99-oracle-asmdevices.rules
done

[root@mesdb1 ~]# /sbin/udevadm trigger --type=devices --action=change
把mesdb1上生成的/etc/udev/rules.d/99-oracle-asmdevices.rules传到mesdb2上,然后执行/sbin/udevadm trigger --type=devices --action=change即可。

查看是否绑定成功
[root@ngpdb03 rules.d]# cd /dev
[root@ngpdb03 dev]# ls -l | grep asm
brw-rw---- 1 grid asmadmin 8, 32 May 16 20:11 asm-diskc
brw-rw---- 1 grid asmadmin 8, 48 May 16 20:11 asm-diskd
brw-rw---- 1 grid asmadmin 8, 64 May 16 20:11 asm-diske
brw-rw---- 1 grid asmadmin 8, 80 May 16 20:11 asm-diskf
brw-rw---- 1 grid asmadmin 8, 96 May 16 20:11 asm-diskg
brw-rw---- 1 grid asmadmin 8, 112 May 16 20:11 asm-diskh
brw-rw---- 1 grid asmadmin 8, 128 May 16 20:11 asm-diski
brw-rw---- 1 grid asmadmin 8, 144 May 16 20:11 asm-diskj
brw-rw---- 1 grid asmadmin 8, 160 May 16 20:11 asm-diskk





二十二 配置互信(在etlrac01执行即可)
[grid@etlrac01 scripts]$ORACLE_HOME/oui/prov/resources/scripts/sshUserSetup.sh -user grid -hosts "etlrac01 etlrac02" -advanced -noPromptPassphrase
[oracle@etlrac01 scripts]$ORACLE_HOME/oui/prov/resources/scripts/sshUserSetup.sh -user oracle -hosts "etlrac01 etlrac02" -advanced -noPromptPassphrase
中间提示输入yes

验证成功:
grid用户:
[grid@etlrac01 scripts]$ ssh etlrac02 date
Tue May 17 10:59:22 CST 2022
[grid@etlrac01 scripts]$ ssh etlrac02-priv date
Tue May 17 10:59:28 CST 2022
[grid@etlrac01 scripts]$ ssh etlrac01 date
Tue May 17 10:59:37 CST 2022
[grid@etlrac01 scripts]$ ssh etlrac01-priv date

[grid@etlrac02 ~]$ ssh etlrac01 date
Tue May 17 11:04:17 CST 2022
[grid@etlrac02 ~]$ ssh etlrac01-priv date
Tue May 17 11:04:23 CST 2022
[grid@etlrac02 ~]$ ssh etlrac02 date
Tue May 17 11:04:28 CST 2022
[grid@etlrac02 ~]$ ssh etlrac02-priv date
Tue May 17 11:04:33 CST 2022

oracle用户:
[oracle@etlrac01 ~]$ ssh etlrac01 date
Tue May 17 15:47:54 CST 2022
[oracle@etlrac01 ~]$ ssh etlrac01-priv date
Tue May 17 15:47:58 CST 2022
[oracle@etlrac01 ~]$ ssh etlrac02 date
Tue May 17 15:48:03 CST 2022
[oracle@etlrac01 ~]$ ssh etlrac02-priv date
Tue May 17 15:48:08 CST 2022

[oracle@etlrac02 ~]$ ssh etlrac01 date
Tue May 17 15:49:33 CST 2022
[oracle@etlrac02 ~]$ ssh etlrac01-priv date
Tue May 17 15:49:36 CST 2022
[oracle@etlrac02 ~]$ ssh etlrac02 date
Tue May 17 15:49:40 CST 2022
[oracle@etlrac02 ~]$ ssh etlrac02-priv date
Tue May 17 15:49:44 CST 2022


二十三 开始安装GRID
在第一个节点etlrac01执行。
使用ssh登陆到grid用户,将下载好的安装包LINUX.X64_193000_grid_home.zip
解压到$ORACLE_HOME目录下(19c要求安装在ORACLE_HOME目录)
unzip LINUX.X64_193000_grid_home.zip -d $ORACLE_HOME
[grid@etlrac01 ~]$ cd $ORACLE_HOME
[grid@etlrac01 ~]$ ./gridSetup.sh

安装前检查(可选项)
[grid@etlrac01 ~]$ $ORACLE_HOME/runcluvfy.sh stage -pre crsinst -n "etlrac01,etlrac02" -verbose

Verifying OS Kernel Parameter: shmmax ...
Node Name Current Configured Required Status Comment
---------------- ------------ ------------ ------------ ------------ ------------
etlrac01 4294967295 4294967295 16858894336 failed Current value incorrect. Configured value incorrect.
etlrac02 4294967295 4294967295 16858894336 failed Current value incorrect. Configured value incorrect.
Verifying OS Kernel Parameter: shmmax ...FAILED (PRVG-1205, PRVG-1201)

grid用户密码
SYS、ASMSNMP等用户密码 Grid@123





开始安装DB
在第一个节点etlrac01执行。
使用ssh登陆到grid用户,将下载好的安装包LINUX.X64_193000_grid_home.zip解压到$ORACLE_HOME目录
unzip LINUX.X64_193000_db_home.zip -d $ORACLE_HOME
[oracle@etlrac01 db_1]$ cd $ORACLE_HOME
[oracle@etlrac01 db_1]$./runInstaller


安装前检查(可选项)(runcluvfy.sh无此文件)
[grid@etlrac01 ~]$ /opt/oracle/ghome/runcluvfy.sh stage -pre dbinst -n "etlrac01,etlrac02" -verbose

DB用户密码
SYS、SYSTEM等用户密码 Etlracit@123


EM访问地址:
https://etlrac-scan:5500/em


EXPDP逻辑备份用户expdpuser Etlracexpdp

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

评论