Oracle RAC Linux 系统安装手册
Oracle Linux 7.9 Oracle RAC 12.2
Update version:v1.3
1 准备工作
1.1 系统规划图
2 修改Linux系统参数- Part I - 适用DNS服务器,Oracle服务器)
2.1 修改SSH登陆慢的问题
vi /etc/ssh/sshd_config
UseDNS no
GSSAPIAuthentication no
然后重启sshd
systemctl restart sshd
2.2 调整参数(ssh连接的一些问题)
sed -i 's/#LoginGraceTime 2m/LoginGraceTime 0/' /etc/ssh/sshd_config
2.3 禁止使用Transparent HugePages(不要出现下列2个文件,不要出现[always],才算是关闭了)
Transparent HugePages 内存与Standard HugePages 内存不同,因为内核 khugepaged 线程在运行时动态分配内存。 Standard HugePages 内存在启动时预先分配,在运行时不会更改。Oracle 建议您在开始安装之前禁用Transparent HugePages 。
对于Redhat:
cat /sys/kernel/mm/redhat_transparent_hugepage/enabled
对于其他:
cat /sys/kernel/mm/transparent_hugepage/enabled
[always] never –> 显示为配置了Transparent HugePages(不一定启用了,Oracle Linux 内核不一定会启用)
grep -i HugePages_Total /proc/meminfo
HugePages_Total: 0
表示已经禁用了。
cat /proc/sys/vm/nr_hugepages
0
返回0,也表示禁用了
禁用Transparent HugePages:
vi /etc/default/grub
添加一行
transparent_hugepage="never"
示例,如:
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 rd.lvm.lv=ol/root rd.lvm.lv=ol/swap rhgb quiet"
transparent_hugepage="never"
GRUB_DISABLE_RECOVERY="true"
再运行
grub2-mkconfig -o /boot/grub2/grub.cfg
之后重启。
2.4 关闭防火墙
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
cat /etc/selinux/config | grep 'SELINUX=disabled'
setenforce 0
systemctl disable firewalld
systemctl stop firewalld
systemctl mask firewalld
systemctl status firewalld
getenforce
service iptables stop
service ip6tables stop
chkconfig iptables off
chkconfig ip6tables off
2.5 关闭域名服务 service avahi-daemon stop
systemctl stop avahi-daemon
systemctl disable avahi-daemon
systemctl status avahi-daemon
2.6 NTP时钟同步
yum install chrony –y
systemctl start chronyd.service
systemctl status chronyd.service
客户端配置:
vi /etc/chrony.conf
server 192.168.56.253
#allow 192.168.0.0/24
#local stratum 10
systemctl enable chronyd.service
systemctl start chronyd.service
systemctl restart chronyd.service
服务器配置:
vi /etc/chrony.conf
allow 192.168.56.0/24
local stratum 10
systemctl enable chronyd.service
systemctl start chronyd.service
systemctl restart chronyd.service
服务器上的验证(验证连接外网的NTP):
systemctl restart chronyd.service
[root@oracle1 ~]# chronyc sources
210 Number of sources = 0
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
[root@oracle1 ~]#
客户端上的验证(验证连接DNS上的NTP)
systemctl restart chronyd.service
[root@oracle2 ~]# chronyc sources
210 Number of sources = 1
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^? dns 3 6 1 2 -26ms[ -26ms] +/- 20ms
[root@oracle2 ~]# [root@oracle2 ~]# chronyc -a makestep
200 OK
[root@oracle2 ~]#
2.1 配置DNS服务(DNS Server专用)
yum install bind.x86_64
vim /etc/named.conf
options {
listen-on port 53 { 127.0.0.1; 192.168.56.253; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; };
注意到最下边:
include "/etc/named.rfc1912.zones";
因此,打开,增加如下:
vim /etc/named.rfc1912.zones
zone "rac.occ" IN {
type master;
file "rac.occ.zone";
allow-update { none; };
};
zone "0.168.192.in-addr.arpa." IN {
type master;
file "0.168.192.in-addr.arpa";
allow-update { none; };
};
再次编辑正向解析(rac.occ.zone)和逆向解析(0.168.192.in-addr.arpa)
vi /var/named/rac.occ.zone
$TTL 86400
@ IN SOA dns.rac.occ. root(
42
3H
15M
1W
1D )
IN NS dns.rac.occ.
localhost IN A 127.0.0.1
dns IN A 192.168.56.253
oracle1 IN A 192.168.56.131
oracle1-1 IN A 192.168.56.131
oracle1-2 IN A 192.168.56.132
oracle1-vip IN A 192.168.56.135
oracle2 IN A 192.168.56.133
oracle2-1 IN A 192.168.56.133
oracle2-2 IN A 192.168.56.134
oracle2-vip IN A 192.168.56.136
oracle-scan IN A 192.168.56.141
oracle-scan IN A 192.168.56.142
oracle-scan IN A 192.168.56.143
逆向解析:
vi /var/named/56.168.192.in-addr.arpa
$ORIGIN 56.168.192.in-addr.arpa.
$TTL 1H
@ IN SOA dns.rac.occ. root( 2
3H
1H
1W
1H )
56.168.192.in-addr.arpa. IN NS dns.rac.occ.
253 IN PTR dns.
131 IN PTR oracle1-1.
131 IN PTR oracle1-1.
132 IN PTR oracle1-2.
135 IN PTR oracle1-vip.
133 IN PTR oracle2.
133 IN PTR oracle2-1.
134 IN PTR oracle2-2.
136 IN PTR oracle2-vip.
141 IN PTR oracle-scan.
142 IN PTR oracle-scan.
143 IN PTR oracle-scan.
重启DNS
systemctl restart named
将DNS设置为开机启动
systemctl enable named
将所有node的public 网卡的DNS都指向这个dns1,dns2服务器。配置搜索域为:rac.occ.网卡自动创建/etc/resolv.conf
本机用nmtui配置网卡程序自动创建的为:
vi /etc/resolv.conf
# Generated by NetworkManager
search rac.occ
nameserver 192.168.56.253
也有网友说应该是下面这个:
在所有节点的/etc/resolv.conf 文件中添加如下内容:
[root@rac2 /]# cat /etc/resolv.conf
domain rac.occ
nameserver 172.139.56.200
options rotate
options timeout:2
options attempts:5
3 修改Linux系统参数-Part II - 适用Oracle 服务器
3.1 检查当前系统
echo $SHELL
cat /etc/*-release
cat /proc/version
uname -a
umask
grep MemTotal /proc/meminfo
grep SwapTotal /proc/meminfo
df -h /tmp
free
检查I/O Schedular
读取某个磁盘${ASM_DISK}, 或sdc的schedular
cat /sys/block/${ASM_DISK}/queue/scheduler
noop [deadline] cfq
df –h 查看当前的ASM硬盘
cat /sys/block/sdc/queue/scheduler
cat /sys/block/sdd/queue/scheduler
cat /sys/block/sde/queue/scheduler
修改 I/O Schedular
vi /etc/udev/rules.d/60-oracle-schedulers.rules
ACTION=="add|change", KERNEL=="sd[c-e]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="deadline"
scp /etc/udev/rules.d/60-oracle-schedulers.rules root@oracle2:/etc/udev/rules.d/
udevadm control --reload-rules
3.2 挂载CDROM 为本地的repo源软件仓库
拷贝Oracle Linux 7.9.ISO文件OracleLinux79.iso到/s01路径,挂载Linux系统的ISO文件当做虚拟CDROM
mkdir /media/cdrom
mount -o loop -t iso9660 /s01/OracleLinux79.iso /media/cdrom
mkdir /etc/yum.repos.d/bak
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak
echo [cdrom] >> /etc/yum.repos.d/cdrom.repo
echo name=cdrom >> /etc/yum.repos.d/cdrom.repo
echo name=cdrom >> /etc/yum.repos.d/cdrom.repo
echo baseurl=file:///media/cdrom >> /etc/yum.repos.d/cdrom.repo
echo gpgcheck=0 >> /etc/yum.repos.d/cdrom.repo
echo enabled=1 >> /etc/yum.repos.d/cdrom.repo
echo /s01/OracleLinux79.iso /media/cdrom iso9660 loop,defaults 0 0 >> /etc/fstab
yum clean all
yum makecache
yum repolist
mount /media/cdrom
3.3 改变I/O scheduler
echo deadline > /sys/block/sdc/queue/scheduler
echo deadline > /sys/block/sdd/queue/scheduler
echo deadline > /sys/block/sde/queue/scheduler
echo deadline > /sys/block/sdf/queue/scheduler
3.4 安装Oracle 预安装依赖包
yum install oracle-database-preinstall-19c.x86_64
vi /etc/security/limits.d/oracle-database-preinstall-19c.conf
sysctl -p
手动将Oracle的参数复制一套给grid用户
# oracle-database-preinstall-19c setting for nofile soft limit is 1024
oracle soft nofile 1024
# oracle-database-preinstall-19c setting for nofile hard limit is 65536
oracle hard nofile 65536
# oracle-database-preinstall-19c setting for nproc soft limit is 16384
# refer orabug15971421 for more info.
oracle soft nproc 16384
# oracle-database-preinstall-19c setting for nproc hard limit is 16384
oracle hard nproc 16384
# oracle-database-preinstall-19c setting for stack soft limit is 10240KB
oracle soft stack 10240
# oracle-database-preinstall-19c setting for stack hard limit is 32768KB
oracle hard stack 32768
# oracle-database-preinstall-19c setting for memlock hard limit is maximum of 128GB on x86_64 or 3GB on x86 OR 90 % of RAM
oracle hard memlock 134217728
# oracle-database-preinstall-19c setting for memlock soft limit is maximum of 128GB on x86_64 or 3GB on x86 OR 90% of RAM
oracle soft memlock 134217728
# grid-database-server-12cR2-preinstall setting for nofile soft limit is 1024
grid soft nofile 1024
# grid-database-server-12cR2-preinstall setting for nofile hard limit is 65536
grid hard nofile 65536
# grid-database-server-12cR2-preinstall setting for nproc soft limit is 16384
# refer orabug15971421 for more info.
grid soft nproc 16384
# grid-database-server-12cR2-preinstall setting for nproc hard limit is 16384
grid hard nproc 16384
# grid-database-server-12cR2-preinstall setting for stack soft limit is 10240KB
grid soft stack 10240
# grid-database-server-12cR2-preinstall setting for stack hard limit is 32768KB
grid hard stack 32768
# grid-database-server-12cR2-preinstall setting for memlock hard limit is maximum of 128GB on x86_64 or 3GB on x86 OR 90 % of RAM
grid hard memlock 134217728
# grid-database-server-12cR2-preinstall setting for memlock soft limit is maximum of 128GB on x86_64 or 3GB on x86 OR 90% of RAM
grid soft memlock 134217728
!重启系统生效。
3.5 删除自带虚拟网卡
yum remove libvirt-*
nmtui手动删除libvirt的虚拟网卡
4 安装grid前准备工作
4.1 添加grid用户和组(2个节点)
groupadd -g 54340 asmdba
groupadd -g 54341 asmadmin
groupadd -g 54342 asmoper
useradd -g oinstall -G asmadmin,asmdba,asmoper,dba,oper,backupdba,dgdba,kmdba,racdba grid
usermod -a -G asmdba oracle
# oracle 用户已经用oracle-database-server-12cR2-preinstall-verify创建。再次执行可以修复,把oracle用户添加到asmdba组,否则会安装有问题。不要加入到root用户组。
设置密码!
passwd grid
passwd oracle
4.1 搭建VNC Server
yum install tigervnc-server
su – root
vncpasswd
(以下逐行执行)
cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@\:1.service
cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@\:2.service
cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@\:3.service
sed -i 's/home\/<USER>/root/' /etc/systemd/system/vncserver@\:1.service
sed -i 's/<USER>/root/' /etc/systemd/system/vncserver@\:1.service
sed -i 's/<USER>/grid/' /etc/systemd/system/vncserver@\:2.service
sed -i 's/<USER>/oracle/' /etc/systemd/system/vncserver@\:3.service
##设置密码##
vncpasswd
systemctl daemon-reload
systemctl start vncserver@\:1.service
systemctl enable vncserver@\:1.service
systemctl status vncserver@\:1.service
systemctl start vncserver@\:2.service
systemctl enable vncserver@\:2.service
systemctl status vncserver@\:2.service
systemctl start vncserver@\:3.service
systemctl enable vncserver@\:3.service
systemctl status vncserver@\:3.service
#如果启动失败
rm -rf /root/.vnc/*.log *.pid
rm -rf /tmp/.X11-unix/*
systemctl daemon-reload
vncserver -kill :5
ss -lnt|grep 590
LISTEN 0 5 *:5901 *:*
LISTEN 0 5 :::5901 :::*
搭建VNC Server(Linux 8.x)
yum -y install tigervnc-server tigervnc
systemctl set-default graphical.target
systemctl isolate graphical.target
passwd root
passwd lee
echo ':1=root' >> /etc/tigervnc/vncserver.users
echo ':2=leee' >> /etc/tigervnc/vncserver.users
cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:2.service
firewall-cmd --permanent --zone=public --add-port 5901/tcp
firewall-cmd --permanent --zone=public --add-port 5902/tcp
firewall-cmd --reload
systemctl enable vncserver@:1.service
systemctl start vncserver@:1.service
systemctl enable vncserver@:2.service
systemctl start vncserver@:2.service
systemctl status vncserver@:1.service
systemctl status vncserver@:2.service
ss -atp | grep 5901
ss -atp | grep 5902
4.2 创建目录(2个节点)
mkdir -p /u01/app/grid
mkdir -p /u01/app/oraInventory
mkdir -p /u01/app/12.2.0/grid
mkdir -p /u01/app/12.2.0/oracle
chown -R grid:oinstall /u01/app/grid
chown -R grid:oinstall /u01/app/oraInventory
mkdir -p /u01/app/oracle
chown -R oracle:oinstall /u01/app/oracle
chown -R oracle:oinstall /u01/app/12.2.0/oracle
chmod -R 775 /u01
4.3 配置grid用户和oracle用户环境变量(2个节点)
注意:ORACLE_SID 2个节点不一样
----------节点1 node1------------
[grid@node1 ~]$ whoami
grid
[grid@node1 ~]$ vim .bash_profile
#结尾添加:
ORACLE_SID=+ASM1; export ORACLE_SID
ORACLE_BASE=/u01/app/grid; export ORACLE_BASE
ORACLE_HOME=/u01/app/12.2.0/grid; export ORACLE_HOME
TNS_ADMIN=$ORACLE_HOME/network/admin; export TNS_ADMIN
PATH=.:${PATH}:$ORACLE_HOME/bin; export PATH
PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin; export PATH
PATH=${PATH}:/u01/app/common/oracle/bin; export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib; export LD_LIBRARY_PATH
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib;export LD_LIBRARY_PATH
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib;export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE;export CLASSPATH
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib;export CLASSPATH
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib;export CLASSPATH
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib;export CLASSPATH
THREADS_FLAG=native; export THREADS_FLAG
export TEMP=/tmp
export TMPDIR=/tmp
NLS_LANG=american_america.AL32UTF8; export NLS_LANG
#alias sqlplus="rlwrap sqlplus"
umask 022
$ whoami
oracle
$ vim .bash_profile
#结尾添加
ORACLE_SID=orcl1; export ORACLE_SID
ORACLE_UNQNAME=orcl; export ORACLE_UNQNAME
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/12.2.0/dbhome_1; export ORACLE_HOME
TNS_ADMIN=$ORACLE_HOME/network/admin; export TNS_ADMIN
PATH=.:${JAVA_HOME}/bin:${PATH}:$HOME/bin:$ORACLE_HOME/bin; export PATH
PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin; export PATH
PATH=${PATH}:/u01/app/common/oracle/bin; export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib; export LD_LIBRARY_PATH
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib export LD_LIBRARY_PATH
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE; export CLASSPATH
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib; export CLASSPATH
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib; export CLASSPATH
export TEMP=/tmp
export TMPDIR=/tmp
NLS_LANG=american_america.AL32UTF8; export NLS_LANG
umask 022
#alias sqlplus="rlwrap sqlplus"
#alias rman="rlwrap rman"
----------节点2 node2------------
[grid@node2 ~]$ whoami
grid
[grid@node2 ~]$ vim .bash_profile
ORACLE_SID=+ASM2; export ORACLE_SID
ORACLE_BASE=/u01/app/grid; export ORACLE_BASE
ORACLE_HOME=/u01/app/12.2.0/grid; export ORACLE_HOME
TNS_ADMIN=$ORACLE_HOME/network/admin; export TNS_ADMIN
ORA_NLS10=$ORACLE_HOME/nls/data; export ORA_NLS10
PATH=.:${PATH}:$ORACLE_HOME/bin; export PATH
PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin; export PATH
PATH=${PATH}:/u01/app/common/oracle/bin; export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib; export LD_LIBRARY_PATH
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib;export LD_LIBRARY_PATH
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib;export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE;export CLASSPATH
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib;export CLASSPATH
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib;export CLASSPATH
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib;export CLASSPATH
THREADS_FLAG=native; export THREADS_FLAG
export TEMP=/tmp
export TMPDIR=/tmp
NLS_LANG=american_america.AL32UTF8; export NLS_LANG
#alias sqlplus="rlwrap sqlplus"
umask 022
$ whoami
oracle
$ vi .bash_profile
ORACLE_SID=orcl2; export ORACLE_SID
ORACLE_UNQNAME=orcl; export ORACLE_UNQNAME
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/12.2.0/dbhome_1; export ORACLE_HOME
TNS_ADMIN=$ORACLE_HOME/network/admin; export TNS_ADMIN
ORA_NLS10=$ORACLE_HOME/nls/data; export ORA_NLS10
PATH=.:${JAVA_HOME}/bin:${PATH}:$HOME/bin:$ORACLE_HOME/bin; export PATH
PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin; export PATH
PATH=${PATH}:/u01/app/common/oracle/bin; export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib; export LD_LIBRARY_PATH
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib export LD_LIBRARY_PATH
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE; export CLASSPATH
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib; export CLASSPATH
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib; export CLASSPATH
export TEMP=/tmp
export TMPDIR=/tmp
NLS_LANG=american_america.AL32UTF8; export NLS_LANG
umask 022
4.4 [可选]禁用NTP服务(root 用户,2个节点,使用Oracle CTSS 替代NTP)
service ntpd stop
chkconfig ntpd off
mv /etc/ntp.conf /etc/ntp.conf.bak
rm -f /var/run/ntpd.pid
安装后期执行:
crsctl check ctss
CRS-4701: The Cluster Time Synchronization Service is in Active mode.
4.5 配置互信(单节点执行 )
拷贝sshUserSetup.sh 到/s01,编辑属性为root可执行。
chmod 775 /s01/sshUserSetup.sh
/s01/sshUserSetup.sh -user grid -hosts "oracle1 oracle2" -advanced -exverify -confirm -noPromptPassphrase
/s01/sshUserSetup.sh -user oracle -hosts "oracle1 oracle2" -advanced -exverify -confirm -noPromptPassphrase
其他两个账户可选:
/s01/sshUserSetup.sh -user root -hosts "oracle1 oracle2" -advanced -exverify -confirm -noPromptPassphrase
/s01/sshUserSetup.sh -user admin -hosts "oracle1 oracle2" -advanced -exverify -confirm –noPromptPassphrase
验证互信
ssh oracle2 date
4.6 共享存储配置(2个节点)[适用磁盘阵列的ASM存储]
添加HBA光纤通道硬盘后,fdisk –l 查看硬盘/dev/sdc, /dev/sdd, /dev/sde, /dev/sdf,各自读出来为9T
[root@oracle1 /]# fdisk -l | grep sd
WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.
Disk /dev/sda: 598.9 GB, 598879502336 bytes, 1169686528 sectors
Disk /dev/sdc: 9000.0 GB, 8999990722560 bytes, 17578106880 sectors
Disk /dev/sdd: 9000.0 GB, 8999990722560 bytes, 17578106880 sectors
Disk /dev/sde: 9000.0 GB, 8999990722560 bytes, 17578106880 sectors
Disk /dev/sdf: 9000.0 GB, 8999990722560 bytes, 17578106880 sectors
安装多路径软件
yum install device-mapper-multipath
方法一:(适用于>redhat 7.9, oracle12.2的高版本,不适用此版本)
mpathconf --enable --with_multipathd y
方法二:
配置/etc/multipath.conf文件
defaults {
user_friendly_names yes
find_multipaths yes
}
blacklist {
devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
devnode "^hd[a-z]"
}
multipaths{
multipath{
wwid 3600c0ff0005104487d23e25e01000000
alias mpatha
}
}
重启,注册开机自启动
systemctl start multipathd
systemctl enable multipathd
诊断:
mpathconf 显示运行状态
multipath -ll 显示多路径磁盘配置
获得scsi id:
/usr/lib/udev/scsi_id --page=0x83 --whitelisted --device=/dev/mapper/mpatha
3600c0ff0005104487d23e25e01000000
4.7 oracleasm 磁盘组格式化配置
安装ASM 驱动
yum install kmod-oracleasm.x86_64 oracleasm-support.x86_64 -y
[可选]重新使用之前,对磁盘进行清零:
dd if=/dev/zero of=/dev/mapper/mpatha bs=1024 count=512
oracleasm 配置。两个节点分别执行:
节点一:
oracleasm init
手动键入 oracleasm configure –i 再依次输入:grid/asmadmin/y/y
oracleasm status
oracleasm createdisk DATA01 /dev/mapper/mpatha
oracleasm scandisks
oracleasm listdisks
节点二:
oracleasm init
手动键入 oracleasm configure –i 再依次输入:grid/asmadmin/y/y
oracleasm status
oracleasm scandisks
oracleasm listdisks
备注:/dev/mapper/mpatha 是磁盘路径。创建的ASM磁盘路径:/dev/oracleasm/disks/DATA01
5 安装Grid
5.1 拷贝文件,解压
使用grid用户,将Oracle Database Grid Infrastructure 12.2.0.1.0 for Linux x86-64.zip拷贝(解压)至grid用户的$ORACLE_HOME,本文中/u01/app/12.2.0/grid
Root用户
修改安装包的所属权,如, chown grid.oinstall Oracle Database Grid Infrastructure 12.2.0.1.0 for Linux x86-64.zip
用grid用户解压
chown grid.oinstall -R /u01/app/12.2.0/grid
unzip grid12201.zip -d /u01/app/12.2.0/grid/
grid12201.zip是Oracle Database Grid Infrastructure 12.2.0.1.0 for Linux x86-64.zip改名后的文件。
5.2 [可选]安装cvuqdisk(2个节点)
[root@oracle1 rpm]# pwd
/u01/app/12.2.0/grid/cv/rpm
#设置环境变量
CVUQDISK_GRP=oinstall; export CVUQDISK_GRP
rpm -iv cvuqdisk-1.0.10-1.rpm
#重新安装的方法
rpm -e cvuqdisk // 删除
5.3 安装Grid
安装之前,要重启2台服务器,使上述参数生效。
通过VNC 客户端进入Grid用户环境 oracle1:2, :2的意思是用配置的第二个vncserver连接。
输入grid用户的vnc密码,再在登陆后的Linux界面输入grid用户的操作员密码
用指令环境,进入到/u01/app/12.2.0/grid/路径,注意,grid安装包的zip文件解压后必须解压到这个$ORACLE_HOME路径,请参阅2.3章节定义的ORACLE_BASE, ORACLE_HOME两个环境变量的设置,且其文件的全部的拥有者为grid,用户组为oinstall组。用grid用户执行./gridSetup.sh.
Step1:选择配置新集群
Step2:
Step3:
oracle-scan必须要和etc/hosts文件配置的名称一致
Step4:
如果SSH connectivity测试失败,请参考2.5配置互信
Step5
:
Virbr0是虚拟化网卡,不需要使用。
Step6:
Step7:
NO:不用独立的ASM 磁盘组存储Oracle OCR,VOTING等管理数据。
Step8:
Change discovery path输入 /dev/oracleasm/disks/*
提示大于2T磁盘的后期处理:
[INS-30543] Installer has detected that one or more of the selected disk(s) is of size larger than 2 terabyte(TB). Because of this, the Oracle Database compatibility level (COMPATIBLE.RDBMS attribute) of the diskgroup (DATA) will be set to 12.1. This means that, in order to use the diskgroup for data storage, the COMPATIBLE initialization parameter of the Oracle Database should be greater than or equal to 12.1.
Step9:
Step10:
Step11:
Step12:
Step13:
Step14:
Step15:
Step16:
STEP 19
6 安装Oracle Database
6.1 解压linuxx64_12201_database 到 /u01/app/12.2.0/oracle
6.2 用oracle用户登录VNC
6.3 执行./runInstaller.sh
6.4 步骤
Step1
Step2
Step3
Step4
Step5
Step6
ORACLE_HOME ORACLE_BASE 在2.3章节设置。
Step7
Step8
7 配置数据库
Oracle用户登录VNC, 控制台输入dbca,进入配置界面
Step3
Step4
Step5
8 WinCC OA 安装
8.1 Oracle数据库的配置
拷贝<WinCC_OA_InstallationPath>\data\RDBSetup\ora\RDB_config_template.sql , 另存为RDB_config.sql,配置此文件。
配置Linux + ASM的示范见附件一。
配置Windows + 文件的示范见附件二。
8.2 修改用户的超时退出策略
alter profile default limit password_life_time unlimited;
8.3 设置的windows注册表
KeepAliveTime
Key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
Value type: REG_DWORD - Time in milliseconds
Range: 1 - 0xFFFFFFFF
Default value: 7.200.000 (two hours)
This value should be set to 180000 (decimal), equals 3 minutes.
8.4 tnsnames.ora修改
TESTDB.etm-ag.com =
(DESCRIPTION =
(ENABLE=BROKEN)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = myhost)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = TESTDB)
)
)
8.5 修改Linux的TCP断线重连尝试次数
vim /etc/sysctl.conf
net.ipv4.tcp_retries2 = 2
sysctl –p
8.6 解锁用户
sqlplus /nolog
conn sys/sys as sysdba
alter user 用户名称 account unlock;
8.7 修改客户端环境变量解决Oracle报警文本的乱码问题
服务器端的语言设置:
select * from SYS.NLS_DATABASE_PARAMETERS;
应该设置为:american_america.AL32UTF8
NLS_RDBMS_VERSION |
12.2.0.1.0 |
NLS_NCHAR_CONV_EXCP |
FALSE |
NLS_LENGTH_SEMANTICS |
BYTE |
NLS_COMP |
BINARY |
NLS_DUAL_CURRENCY |
$ |
NLS_TIMESTAMP_TZ_FORMAT |
DD-MON-RR HH.MI.SSXFF AM TZR |
NLS_TIME_TZ_FORMAT |
HH.MI.SSXFF AM TZR |
NLS_TIMESTAMP_FORMAT |
DD-MON-RR HH.MI.SSXFF AM |
NLS_TIME_FORMAT |
HH.MI.SSXFF AM |
NLS_SORT |
BINARY |
NLS_DATE_LANGUAGE |
AMERICAN |
NLS_DATE_FORMAT |
DD-MON-RR |
NLS_CALENDAR |
GREGORIAN |
NLS_NUMERIC_CHARACTERS |
., |
NLS_NCHAR_CHARACTERSET |
AL16UTF16 |
NLS_CHARACTERSET |
AL32UTF8 |
NLS_ISO_CURRENCY |
AMERICA |
NLS_CURRENCY |
$ |
NLS_TERRITORY |
AMERICA |
NLS_LANGUAGE |
AMERICAN |
客户端执行sql语句,查询Oracle服务器的语言环境变量:
SQL> select userenv('language') from dual;
USERENV('LANGUAGE')
----------------------------------------------------
american_america.AL32UTF8
客户端也应当设置为这个环境变量
Windows 客户端的全局变量:NLS_LANG= american_america.AL32UTF8
WinCC OA config文件添加
[general]
lang = "zh_CN.utf8"
默认的语言选项为"zh_CN.utf8"
重启客户端系统生效。
8.8 修改安装包的参数
改一下这些地方。用Notepad++,文件搜索,AUTOEXTEND 关键字,搜索路径是C:\Siemens\Automation\WinCC_OA\3.17\data\RDBSetup\ora, 查到的位置,我图上标注了1,2,3,4,5,6,7,8,
后面都添加“MAXSIZE 16G”, 格式如右图(我用的160M测试):
这样改好了的新建的表空间有最大的大小。不用人工设定了。
(上图这里的设定的160M最大,当初始50M,每次自增8M,一直增长到150M,不再增长,而是由Oracle自动切了一个表空间继续存。)
查看备份路径备份文件的方法:
su – grid
asmcmd
>cd +DATA/orcl/DATAFILE/WWT_RDB/BACKUP/
备份路径在RDB_Config文件里面定义了。data_pump模式下path_alert,path_event, path_temp都无效了,path_backup还继续可以用。
ASMCMD的指令 ls -s 可以看文件和大小。
RDB_Config.sql文件里面,这个要写‘no’
define zip_backup =
'yes'
因为Linux的zip指令无法直接对ASM存储的路径进行压缩,备份的文件不可以被转存成zip存储。写成yes会报错
8.9 Alert 报表界面乱码问题
alert乱码可以用这个方法解决:config 文件的[general]添加一条:lang=zh_CN.utf8让系统默认使用中文来读写Oracle。没有这条的化很可能会用英文读写。
完整的格式是三个都要有。
langs="en_US.utf8"
langs="zh_CN.utf8"
lang="zh_CN.utf8“
langs是可选语言lang是默认语言
在Windows的系统环境变量里面,添加一个环境变量NLS_LANG=american_america.AL32UTF8重启计算机生效。