中标麒麟 RAC 19c 部署(Openssh免密BUG解决方案)

部署环境:

主机一主机二
host ip192.168.80.46192.168.80.47
vip 192.168.80.48192.168.80.49
private ip192.168.10.10192.168.10.11
storage ip192.168.20.33192.168.20.34
主机名rac19c1rac19c2
 

需要上传的软件包:

一.虚拟机配置

选择中标麒麟IOS文件,声卡打印机,USB适配器可以拔掉。

1.配置语言环境:

vi /etc/locale.conf

2.配置yum源

挂载:

验证yum源可用性:

3.关闭防火墙:

4.关闭selinux

5.设置disk.enableUUID = “true”

编辑以下文件:

6.配置网卡

重启服务器:

验证语言与防火墙:

关机:

二.克隆虚拟机

1.克隆storage

2.克隆racnode1与racnode2

三.配置虚拟机网络

虚拟网络配置如下:

Storage节点 虚拟机配置:

虚拟机内root用户登录:

编辑第二块网卡:

重启网卡:

尝试使用远程终端连接:

Storage 节点网络配置结束

racnode1节点网络配置:

启动后用root用户登入

更改用户名:

Ens32配置:

Ens34配置:

Ens35配置:

重启网卡:

尝试连接节点1:

racnode2节点网络配置:

Ens34配置:

Ens35配置:

重启网卡后检查:

网络环境检查是否通畅:

每个节点的每个ip都ping一下看看是否通畅

至此网络配置结束

四.配置共享存储

存储规划:

Storage中添加磁盘:

配置共享存储,在共享存储中创建target服务,创建iqn号,访问iqn下面的lun。

存储服务器server端

安装target包

yum -y install targetd targetcli

启动target服务

systemctl start target

开机自动启动target服务

systemctl enable target

查看target的状态

systemctl status target

查看磁盘

先把准备共享的块做出来,创建一个target,在 target 上创建 LUN

[root@storage ~]# targetcl

目前是在根路径下,直接敲ls(和linux的ls一样)命令来查看所有路径及路径下的配置,敲pwd命令可以显示当前所在的路径(和linux的pwd一样)。

cd /backstores/block

将磁盘与名称绑定

create name=disk1 dev=/dev/sdb

create name=disk2 dev=/dev/sdc

create name=disk3 dev=/dev/sdd

create name=disk4 dev=/dev/sde

create name=disk5 dev=/dev/sdf

create name=disk6 dev=/dev/sdg

create name=disk7 dev=/dev/sdh

create name=disk8 dev=/dev/sdi

create name=disk9 dev=/dev/sdj

进入ISCSI路径下创建完成iscsi名称

cd /iscsi

create iqn.2024-06.com.zhangxin:racdisk

创建完成iscsi名称后,下面会默认创建一个tpg1的路径,在tpg1路径下有三个路径为主要的:

1.acls(客户端访问名称,免认证配置)

2.luns(共享lun存储池,调用block共享块)

3.portals(共享存储地址和端口)

绑定lun

cd iqn.2024-06.com.zhangxin:racdisk/tpg1/luns

create lun=lun1 storage_object=/backstores/block/disk1

create lun=lun2 storage_object=/backstores/block/disk2

create lun=lun3 storage_object=/backstores/block/disk3

create lun=lun4 storage_object=/backstores/block/disk4

create lun=lun5 storage_object=/backstores/block/disk5

create lun=lun6 storage_object=/backstores/block/disk6

create lun=lun7 storage_object=/backstores/block/disk7

create lun=lun8 storage_object=/backstores/block/disk8

create lun=lun9 storage_object=/backstores/block/disk9

创建acls免认证访问

创建允许客户端连接对象

cd /iscsi/iqn.2024-06.com.zhangxin:racdisk/tpg1/acls

/iscsi/iqn.20...isk/tpg1/acls> create wwn=iqn.2024-04.com.zhangxin:rac19c1

/iscsi/iqn.20...isk/tpg1/acls> create wwn=iqn.2024-04.com.zhangxin:rac19c2

配置完成后

cd /

保存配置到配置文件

Saveconfig

下面配置 rac两个节点的target客户端

配置存储客户端client

安装客户端软件

yum -y install iscsi-initiator-utils

启动服务

systemctl start iscsid.service

systemctl start iscsi.service

开机自动启动

systemctl enable iscsid.service

systemctl enable iscsi.service

racnode1 修改配置文件

vi /etc/iscsi/initiatorname.iscsi

InitiatorName=iqn.2024-06.com.zhangxin:rac19c1

racnode2 修改配置文件

vi /etc/iscsi/initiatorname.iscsi

InitiatorName=iqn.2024-06.com.zhangxin:rac19c1

重启客户端服务

systemctl restart iscsid.service

systemctl restart iscsi.service

两个节点全执行:
客户端连接网络存储

发现网络存储

iscsiadm -m discovery -t st -p 192.168.20.30

连接网络存储

iscsiadm -m node -T iqn.2024-06.com.zhangxin:racdisk -p 192.168.20.30:3260 -l

lsblk 可以看到 存储服务器的磁盘

关机重启查看 磁盘是否能自动共享,注意开机先开存储服务器

在两节点查看共享磁盘,能看见说明没问题了。

至此共享磁盘配置完毕

五.配置共享存储多路径

查看登录的session 会话

iscsiadm -m session

iscsiadm -m session -P 3 查看登录session的详细信息

iscsiadm -m discovery -t st -p 192.168.20.31

iscsiadm -m node -T iqn.2024-06.com.zhangxin:racdisk -p 192.168.20.31:3260 -l

可以看到存储服务器的磁盘被识别了两次

查看所有磁盘id:

for i in b c d e f g h i j k l m n o p q r s; 
do 
echo "sd$i" "`/usr/lib/udev/scsi_id  --whitelisted --replace-whitespace --device=/dev/sd$i` "; 
done

安装多路径软件:

yum install device-mapper-multipath device-mapper -y

设置开机自动启动多路径

systemctl enable multipathd.service

启动多路径

配置multipath.conf

/usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf /etc/multipath.conf

/sbin/mpathconf –enable

启动服务

systemctl start multipathd.service

相同id的磁盘已被绑定。

至此多路径绑定完毕。

.数据库服务器参数配置(该参数生产环境需要具体商定)

1、设置/etc/hosts
#public ip
192.168.80.46         rac19c1
192.168.80.47         rac19c2

#vip ip
192.168.80.48         rac1-vip
192.168.80.49         rac2-vip

#private ip
192.168.10.10         rac1-priv
192.168.10.11         rac2-priv

#scan ip
192.168.80.50         rac19c-scan

2、创建用户和组

/usr/sbin/groupadd -g 54321 oinstall 
/usr/sbin/groupadd -g 54329 asmadmin
/usr/sbin/groupadd -g 54327 asmdba
/usr/sbin/groupadd -g 54328 asmoper
/usr/sbin/groupadd -g 54322 dba
/usr/sbin/groupadd -g 54323 oper
/usr/sbin/groupadd -g 54324 backupdba
/usr/sbin/groupadd -g 54325 dgdba
/usr/sbin/groupadd -g 54326 kmdba
/usr/sbin/groupadd -g 54330 racdba
/usr/sbin/useradd -u 54321 -g  oinstall -G dba,asmdba,backupdba,dgdba,kmdba,racdba,oper oracle 
/usr/sbin/useradd -u 54331 -g  oinstall -G asmadmin,asmdba,asmoper,dba,racdba grid

echo 'passworda2!' | passwd --stdin grid
echo 'passworda2!' | passwd --stdin oracle

在虚拟机中添加一块100磁盘用于安装


扫一下盘:
echo "- - -" > /sys/class/scsi_host/host0/scan
echo "- - -" > /sys/class/scsi_host/host1/scan
echo "- - -" > /sys/class/scsi_host/host2/scan

在最底下 sdt,已经可以找到了100G磁盘

对磁盘格式化后挂载:

授权:

mkdir -p /u01/app/19.3.0/grid
mkdir -p /u01/app/grid
mkdir -p /u01/app/oracle
mkdir -p /u01/app/oracle/product/19.3.0/dbhome_1


chown -R grid:oinstall  /u01
chown -R oracle:oinstall  /u01/app/oracle
chmod -R 775 /u01/

七.安装依赖包

yum install -y bc gcc gcc-c++ binutils compat-libcapl compat-libstdc++ dtrace-modules dtrace-modules-headers

yum install -y dtrace-modules-provider-headers dtrace-utils elfutils-libelf elfutils-libelf-devel fontconfig-devel glibc glibc-devel

yum install -y libstdc99 libstdc++-devel libxcb make smartmontools sysstat unzip
yum install -y unixODBC unixODBC-devel


yum install -y kmod*
yum install -y ks*
yum install -y libaio*
yum install -y compat*

八.修改资源限制参数

vi /etc/security/limits.conf

cat >> /etc/security/limits.conf << "EOF"

grid soft nproc 16384 
grid hard nproc 16384 
grid soft nofile 65536 
grid hard nofile 65536 
grid soft stack 32768 
grid hard stack 32768 
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 unlimited
oracle hard  memlock unlimited 

EOF

vi /etc/pam.d/login

echo "session    required   pam_limits.so" >> /etc/pam.d/login

九、修改内核参数

vi /etc/sysctl.conf 

fs.aio-max-nr = 1048576 
fs.file-max = 6815744 
kernel.sem = 250 32000 100 128 
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 = 1048586 
kernel.panic_on_oops = 1  
kernel.shmmax = 4831838208
kernel.shmall = 1179648
kernel.shmmni = 4096
vm.min_free_kbytes = 524288
vm.swappiness = 10
vm.nr_hugepages = 2560

sysctl -p

# SGA=4000*0.7*0.8=2240M

# PGA=4000*0.7*0.2=560

单个共享内存段的最大值,要放下整个SGA,

kernel.shmmax=4.5*1024*1024*1024=4831838208

kernel.shmall=kernel.shmmax/getconf PAGESIZE=4831838208/4096=1179648

[root@node1 yum.repos.d]# getconf PAGESIZE

4096

[root@node1 yum.repos.d]#

安装oracle时实际设置 :SGA=4500M

#vm.nr_hugepages= 1280    大内存页, < shmmax= 2560m/2m=1280

vm.nr_hugepages= 2240M/2=1120

十.关闭透明页

cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never
cat /sys/kernel/mm/transparent_hugepage/defrag
[always] madvise never

配置开机设置never

vi /etc/rc.d/rc.local

if test -f /sys/kernel/mm/transparent_hugepage/enabled; then 
	echo never > /sys/kernel/mm/transparent_hugepage/enabled 
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then 
	echo never > /sys/kernel/mm/transparent_hugepage/defrag 
fi
添加或修改transparent_hugepage=never,numa=off文件中的参数
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 numa=off transparent_hugepage=never"
GRUB_DISABLE_RECOVERY="true"

运行grub2–mkconfig 命令以重新生成grub.cfg文件

grub2-mkconfig -o /boot/grub2/grub.cfg

十一.设置用户环境变量

grid用户环境变量

vi .bash_profile

alias sqlplus="rlwrap sqlplus" 
export TMP=/tmp 
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/19.3.0/grid
export ORACLE_SID=+ASM1
export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"
export PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch


alias sqlplus="rlwrap sqlplus" 
export TMP=/tmp 
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/19.3.0/grid
export ORACLE_SID=+ASM2
export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"
export PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch



oracle用户环境变量

vi .bash_profile

alias sqlplus="rlwrap sqlplus" 
export TMP=/tmp
export TMPDIR=$TMP
export LANG=en_US
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1
export ORACLE_SID=racdb1
export PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"
export NLS_LANG=AMERICAN_AMERICA.UTF8

vi .bash_profile

alias sqlplus="rlwrap sqlplus" 
export TMP=/tmp
export TMPDIR=$TMP
export LANG=en_US
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/19.3.0/db_1
export ORACLE_SID=racdb2
export PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"
export NLS_LANG=AMERICAN_AMERICA.UTF8

十二.配置ASM磁盘权限

vi /etc/udev/rules.d/99-oracle-asmdevices.rules

ENV{DM_NAME}=="mpatha", OWNER:="grid", GROUP:="asmadmin", MODE:="660"
ENV{DM_NAME}=="mpathb", OWNER:="grid", GROUP:="asmadmin", MODE:="660"
ENV{DM_NAME}=="mpathc", OWNER:="grid", GROUP:="asmadmin", MODE:="660"
ENV{DM_NAME}=="mpathd", OWNER:="grid", GROUP:="asmadmin", MODE:="660"
ENV{DM_NAME}=="mpathe", OWNER:="grid", GROUP:="asmadmin", MODE:="660"
ENV{DM_NAME}=="mpathf", OWNER:="grid", GROUP:="asmadmin", MODE:="660"
ENV{DM_NAME}=="mpathg", OWNER:="grid", GROUP:="asmadmin", MODE:="660"
ENV{DM_NAME}=="mpathh", OWNER:="grid", GROUP:="asmadmin", MODE:="660"
ENV{DM_NAME}=="mpathi", OWNER:="grid", GROUP:="asmadmin", MODE:="660"
 

/sbin/udevadm control --reload 

/sbin/udevadm trigger --type=devices --action=change
udevadm trigger

至此服务器参数配置准备完毕。

十三.集群部署

软件包上传到哪里都可以,我这里自己加了一块硬盘,专门用于放置软件。

我们这里需要三个安装包:

上传到/soft 中

unzip LINUX.X64_193000_grid_home.zip -d /u01/app/19.3.0/grid/

安装grid中的rpm包(两个节点都需要安装,用scp传到节点2):

两个节点rpm

安装之后就可以进行grid安装

进入集群安装:

Scanname 需要与/etc/hosts中保持一致

Vip名称也要对应上

添加主机2

点击setup,成功后点击test。这里test大概率报错,原因是操作系统OpenSSH版本太高,ssl倒是没问题 MOS上面说的 -T参数我尝试了但没有解决。

解决方案:

1.降级操作系统 ssh(不推荐)

Index of /pub/OpenBSD/OpenSSH/portable/

去网站里面下载7.4p1的openssh

安装必备的软件包:

yum -y install gcc libcap libcap-devel glibc-devel pam-devel krb5-devel krb5-libs

yum install -y openssl-devel

解压压缩包

下面就是源码安装三板斧

  1. 编译安装

./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with-zlib --with-ssl-dir=/usr --with-md5-passwords --mandir=/usr/share/man --with-kerberos5=/usr/lib64/libkrb5.so

  1. make
  2. make install

两个节点都操作一下,值得注意的是这里并没有卸载掉原本的OpenSSH8.0,不知道是否是覆盖了,还需要探究。

下面是make install可能碰到的错误

解决方案:重新生成证书文件

再重新执行make install

查看两个节点的SSH版本:

再次setup,test一次,已经可以成功了。

2.自己配置互信(推荐)

配置oracle用户的节点互信:

1、在两个节点执行:
su - oracle
mkdir ~/.ssh
chmod 755 .ssh 
/usr/bin/ssh-keygen -t rsa
/usr/bin/ssh-keygen -t dsa
全部按enter键即可。
2、将所有的key文件汇总到一个总的认证文件中,在节点1上执行:
su – oracle
ssh rac19c1 cat ~/.ssh/id_rsa.pub >> authorized_keys
ssh rac19c2 cat ~/.ssh/id_rsa.pub >> authorized_keys
ssh rac19c1 cat ~/.ssh/id_dsa.pub >> authorized_keys
ssh rac19c2 cat ~/.ssh/id_dsa.pub >> authorized_keys
在命令执行的过程中需要输入rac1和rac2对应的oracle用户的密码。
3、节点1上存在一份完整的key,拷贝到节点2:
[oracle@rac19c1 ~]$ cp authorized_keys .ssh/
[oracle@rac19c1 ~]$ cd .ssh/
[oracle@rac19c1 .ssh]$ chmod 600 authorized_keys
[oracle@rac19c1 .ssh]$ scp authorized_keys rac19c2:~/.ssh/
[oracle@rac19c2 ~]$ cd .ssh/
[oracle@rac19c2 .ssh]chmod 600 authorized_keys
4、在2个节点都执行一下命令
ssh rac19c1 date
ssh rac19c2 date
ssh rac19c1-priv date
ssh rac19c2-priv date
5、检验是否配置成功,在节点1上不用输入密码就可以通过ssh连接节点2,说明配置成功
[oracle@rac19c1 ~]$ ssh rac19c2
[oracle@rac19c2 ~]$ exit


配置grid用户的节点互信:
与Oracle用户执行方式相同,只是执行脚本的用户变成了grid。

GI部署只配置grid互信即可

最重要的一步:自己配置./gridSetup.sh的参数

这里互信就不需要配置了也可以通过。

我们就继续安装

.

下面按照预检配置即可,DBCA这里也省略,生产环境不同配置项也不同。

需要注意的是dbca 的时候也需要加

dbca -J-Doracle.install.ssh.setupCheckEnabled=false

与grid安装类似,也需要添加不检查互信的参数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值