Oracle RAC Linux 系统安装手册

Oracle Linux 7.9 Oracle RAC 12.2

 

Update versionv1.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

将所有nodepublic 网卡的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} sdcschedular

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.zipOracle Database Grid Infrastructure 12.2.0.1.0 for Linux x86-64.zip改名后的文件。

5.2      [可选]安装cvuqdisk2个节点)

[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      修改LinuxTCP断线重连尝试次数

 

 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 查到的位置,我图上标注了12345678

后面都添加“MAXSIZE 16G”, 格式如右图(我用的160M测试):

这样改好了的新建的表空间有最大的大小。不用人工设定了。

(上图这里的设定的160M最大,当初始50M,每次自增8M,一直增长到150M,不再增长,而是由Oracle自动切了一个表空间继续存。)

查看备份路径备份文件的方法:

su – grid
asmcmd
>cd  +DATA/orcl/DATAFILE/WWT_RDB/BACKUP/

备份路径在RDB_Config文件里面定义了。data_pump模式下path_alertpath_event, path_temp都无效了,path_backup还继续可以用。

ASMCMD的指令 ls -s 可以看文件和大小。

RDB_Config.sql文件里面,这个要写‘no’

define zip_backup          = 'yes'        

因为Linuxzip指令无法直接对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重启计算机生效。