1. Red Hat Enterprise Linux Server release 6.6 x86_64 两台
2. Oracle 12.1.0.1
3. ASM存储方式
5. 基础安装包yum -y install binutils.x86_64 compat-libcap1.x86_64 compat-libstdc* e2fsprogs.x86_64 libaio* libXau* libXi* libXtst* libstdc* glibc* libgcc* ksh gcc-c++*
6. 内核参数设置
vi /etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 10485760
kernel.shmmax = 42949672960
kernel.shmmni = 4096
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 = 1048576
7. 主机ip配置
7个IP是需要申请的,其中2个作为Public IP,2个作为VIP,1个Scan-IP,这5个IP应当是同一网段的,最后还需要2个不同网段的Private IP,虽然私网IP可以自定义,但是在不清楚私网是通过公网直连还是通过单独的交换机时(其实oracle要求private ip的interconnect使用单独的交换机且带宽需要至少是GB级别),最好申请独立的私网IP。网卡每个节点需要2个至少,Public IP占用一个,Private占用一个。
vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
#oracle RAC public IP
10.161.170.90 vlxcndsz01dbt01 vlxcndsz01dbt01.aac.com
10.161.170.91 vlxcndsz01dbt02 vlxcndsz01dbt02.aac.com
#oracle RAC vip IP
10.161.170.92 vlxcndsz01dbt01-vip
10.161.170.93 vlxcndsz01dbt02-vip
#oracle RAC private IP
10.160.21.16 vlxcndsz01dbt01-pri
10.160.21.17 vlxcndsz01dbt02-pri
#oracle RAC Scan IP
10.161.170.94 ractestscan
8. 禁用防火墙和selinux
service iptables stop
service ip6tables stop
chkconfig iptables off
chkconfig ip6tables off
/etc/selinux/config
修改文件中的SELINUX="" 为 disabled ,然后重启。
9. NTP时间同步
两个节点安装ntp服务
yum -y install ntp
主节点配置如下:
vim /etc/ntp.conf
辅助节点上配置
验证
分别开启服务端及客户端的ntp服务,并配置开机自启
service ntpd start
chkconfig ntpd on
客户端运行如下命令,与服务端实现同步
ntpdate -u 192.168.0.101
没有额外的时间同步服务器的话,互相同步就行。
10. 添加用户、组及目录
--两节点添加用户和组
groupadd -g 5001 oinstall
groupadd -g 5002 dba
groupadd -g 5003 asmadmin
groupadd -g 5004 asmdba
groupadd -g 5005 asmoper
groupadd -g 5006 oper
useradd -u 5001 -g oinstall -G asmadmin,asmdba,asmoper,dba grid
useradd -u 5002 -g oinstall -G dba,asmdba,oper oracle
--两节点创建目录并设置权限
mkdir -p /u01/app/oracle/product/12.2.0/db_1
mkdir -p /u01/app/grid
mkdir -p /u01/12.2.0/grid
mkdir -p /u01/app/oraInventory
chown -R oracle.oinstall /u01/app/oracle/
chown -R oracle.oinstall /u01/app/oracle/*
chown -R grid.oinstall /u01/app/grid/
chown -R grid.oinstall /u01/app/oraInventory/
chown -R grid.oinstall /u01/12.2.0/grid/
--修改用户安全限制:
vi /etc/security/limits.conf
oracle soft nofile 2048
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384
oracle soft stack 10240
oracle hard stack 32768
oracle hard memlock 134217728
oracle soft memlock 134217728
grid soft nofile 2048
grid hard nofile 65536
grid soft nproc 16384
grid hard nproc 16384
grid soft stack 10240
grid hard stack 32768
grid hard memlock 134217728
grid soft memlock 134217728
/etc/pam.d/login文件加上内容:
session required pam_limits.so
--两节点设置用户环境变量,向.bash_profile添加如下项:
su - grid
vi .bash_profile
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/12.2.0/grid
export ORACLE_SID=+ASM1/+ASM2
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
su - oracle
vi .bash_profile
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/12.2.0/db_1
export ORACLE_SID=orcl1/orcl2
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
--在节点一配置ssh互信,步骤如下:
--使用root将数据库软件拷贝至/home/oracle/下:
# chown oracle.oinstall linuxx64_12201_database.zip
# su - oracle
$ unzip linuxx64_12201_database.zip
$ cd database/sshsetup/
$ ./sshUserSetup.sh -user oracle -hosts "node1 node2" -advanced -noPromptPassphrase
$ ./sshUserSetup.sh -user grid -hosts "node1 node2" -advanced -noPromptPassphrase
--最后在节点1使用oracle和grid用户都执行以下两条命令验证互信:
$ ssh node2 date
$ ssh node2-priv date
--如果不需要输入密码则说明互信配置成功。
*****************************************************************************************************
- 这里遇到SSH互信不通过的异常,原因是第二节点91上oracle及grid账号没有密码文件/home/oracle/.ssh/authorized_keys,从第一个节点copy过来就行。
打开/etc/ssh/sshd_config配置文件,修改
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
启用publickey认证,同时必须保证PasswordAuthentication yes必须yes状态。
- Note2上/etc/sysconfig/network-scripts/中没有pri网卡信息,同时没有安装NetworkManager,需要yum install NetworkManager,然后启动服务service NetworkManager start,使用nmcli con show命令,查看ech1网卡的UUID信息,记下UUID值,使用ip addr命令查看网卡信息,记下ech1网卡的MAC地址, 将 /etc/sysconfig/network-scripts/目录中ifcfg-ech3文件复制一份,并命名为 ifcfg-ech1,重新修改配置文件,注意修改必要的硬件信息, 最后重新启动网卡/etc/init.d/network restart。
*****************************************************************************************************
11.获取sd盘的uuid然后将uuid绑定至99-oracle-asmdevices.rules
[root@node1 ~]# scsi_id --whitelisted --replace-whitespace --device=/dev/sde
[root@node1 ~]# cat /etc/udev/rules.d/99-oracle-asmdevices.rules
KERNEL=="sd*", SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", ENV{ID_SERIAL}=="36000c292a8c68de639eeff754a6c5238", NAME+="asm-diskc", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd*", SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", ENV{ID_SERIAL}=="36000c292a94b9a84b54baa8aeabd7b6f", NAME+="asm-diskd", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd*", SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", ENV{ID_SERIAL}=="36000c295b9bf5baa40699a57cf3e55c9", NAME+="asm-diske", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd*", SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", ENV{ID_SERIAL}=="36000c293160833809144536b57d6ec68", NAME+="asm-diskf", OWNER="grid", GROUP="asmadmin", MODE="0660"
#KERNEL=="sd*", SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", ENV{ID_SERIAL}=="36000c29bd240a2afe682ec71a3c24d9c", NAME+="asm-diskg", OWNER="grid", GROUP="asmadmin", MODE="0660"
每块盘都需要添加。
12. GRID安装
将linuxx64_12201_grid_home.zip拷贝至grid用户的$ORACLE_HOME,/u01/12.2.0/grid,然后:
# chown grid.oinstall linuxx64_12201_grid_home.zip
# su - grid
$ unzip linuxx64_12201_grid_home.zip
--这样在进行安装时就会将你设置的grid用户的$ORACLE_HOME作为GI家目录了。
--注意所有软件都只需在节点一解压,节点二无需操作,安装GI和DB软件的过程中安装程序会自动将软件传至远端节点。
--这里还需要先装下cvuqdisk包,这个包存在于解压后的/home/oracle/database/rpm/目录下:
cp /home/oracle/database/rpm/cvuqdisk-1.0.10-1.rpm /root
--使用root rpm安装cvuqdisk
rpm -ivh cvuqdisk-1.0.10-1.rpm
--以上包的安装需要在2节点都执行,使用scp将cvuqdisk包传至节点二安装。
解压后使用grid用户进行GI安装:
远程的需要先配置DISPLAY :
export DISPLAY=本地ip:0.0
xhost +
cd /u01/12.2.0/grid/
./gridSetup.sh
********************************************************************************************
安装grid发现问题
INS-40718] Single Client Access Name (SCAN):bydb-cluster-scan could not be resolved.
Cause - The name you provided as the SCAN could not be resolved using TCP/IP host name lookup.
Action - Provide name to use for the SCAN for which the domain can be resolved.
这是因为/etc/hosts配置的scan和界面中指定的scan name不一致引起
hosts文件配置:
10.161.170.94 ractestscan
所以界面中的SCAN Name要是ractestscan才不会报错
创建asm disk group时发现磁盘状态为member
使用dd删除磁头内容
dd if=/dev/zero of=/dev/sdc bs=1024 count=2056
子网不一致的异常:
将节点的网络配置修改成一致,eth device名称需一致。
resolv.conf Integrity 报错
--如果没有DNS服务器,则忽略。
/etc/resolv.conf 为只读模式
使用chmod 777 resolv.conf 会报如下的错:
chmod: changing permissions of `/etc/resolv.conf': Operation not permitted
首先先查看一下属性
sudo lsattr /etc/resolv.conf
然后去除i这个属性
sudo chattr -i /etc/resolv.conf
然后再修改权限chmod 777 resolv.conf
OUI-10022:The target area /oracle/oraInventory cannot be used because it is in an invalid state
修改oraInst.loc文件(2节点)
vim /etc/oraInst.loc
inventory_loc=u01/app/oraInventory
inst_group=oinstall
[INS-20802] Oracle Cluster Verification Utility failed
Skip
*****************************************************************************************************
至此GRID已经安装完毕,使用如下命令查看集群状态:
su - grid
crsctl stat res -t
13. 创建ASM磁盘组
使用grid用户执行asmca创建数据磁盘组DATA和存放REDO、归档的磁盘组,一般测试环境这几个磁盘组合在一起即可。
14. 安装Oracle软件
使用oracle用户执行dbca建库:
--如无pdb需求,那么不选create as container database
--并不推荐以上建库方式,建议使用下边的高级配置,可以自己设置SGA,PGA和字符集等等。
建库完毕后使用如下命令查看整个集群和数据库的状态:
su - grid
crsctl stat res -t
srvctl config database -d orcl
lsnrctl status
15. 最后
ALTER SYSTEM SET AUDIT_TRAIL=NONE SCOPE=SPFILE SID='*';--关闭审计
alter system set deferred_segment_creation=false SCOPE=BOTH SID='*'; --关闭段创建延迟
#ALTER SYSTEM SET SEC_CASE_SENSITIVE_LOGON=FALSE SCOPE=SPFILE SID='*'; --关闭密码大小写验证,在12c版本中此参数已被弃用,如果手动改为FALSE,除非设置正确的SQLNET.ALLOWED_LOGON_VERSION_SERVER参数,否则所有用户都会无法登陆,因此不要这么改了。
ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS UNLIMITED;--设置登录次数为无限
ALTER SYSTEM SET CONTROL_FILE_RECORD_KEEP_TIME=31 SCOPE=BOTH SID='*';--控制文件内容保存时间
ALTER SYSTEM SET MAX_DUMP_FILE_SIZE='2048M' SCOPE=BOTH SID='*';--DUMP文件size的最大值
ALTER SYSTEM SET PROCESSES=2048 SCOPE=SPFILE SID='*';--最大进程数
ALTER SYSTEM SET "_UNDO_AUTOTUNE"=FALSE SCOPE=BOTH SID='*';--关闭UNDO自动调优的功能
ALTER SYSTEM SET "_USE_ADAPTIVE_LOG_FILE_SYNC"=FALSE SCOPE=BOTH SID='*'; --关闭自适应日志同步功能
alter database add supplemental log data; --打开附加日志,便于进行故障后数据找回
重启使以上部分设置生效:srvctl stop/start database -d orcl
最后,再设置下数据和归档的备份计划,根据业务压力调整下REDO大小和组数就可以了。
CRS异常
*****************************************************************************************************
CRS-4639: Could not contact Oracle High Availability Services
原因,crs没有启动
方法1、oracle中的bug,
启动之前需要执行
/bin/dd if=/var/tmp/.oracle/npohasd of=/dev/null bs=1024 count=1 (如果想让重启能够执行,需要加入rc.local中,两个节点)
然后再执行
[root@rac2 bin]# ./crsctl start crs
方法1如果不行可以尝试方法2
[root@rac2 install]# /u01/app/11.2.0/grid/crs/install/roothas.pl -deconfig -force -verbose
然后重新配置
[root@rac2 grid]# ./root.sh
Running Oracle 11g root.sh script...
The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /u01/app/11.2.0/grid
...
即可
如果是centos6以上还需要运行
[root@rac2 ~]# /bin/dd if=/var/tmp/.oracle/npohasd of=/dev/null bs=1024 count=1
检查
[root@rac2 bin]# ./crsctl check crs
CRS-4638: Oracle High Availability Services is online
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
另外,注意的是,如果还是在重启服务器之后不能启动crs,则需要在启动crs之前执行命令(两个节点)
/bin/dd if=/var/tmp/.oracle/npohasd of=/dev/null bs=1024 count=1
追根就是oracle的一个bug
[root@rac2 bin]# ./crsctl check crs
CRS-4638: Oracle High Availability Services is online
CRS-4535: Cannot communicate with Cluster Ready Services
CRS-4530: Communications failure contacting Cluster Synchronization Services daemon
CRS-4534: Cannot communicate with Event Manager
这个问题有几个原因
1、使用./crsctl start crs 之后立即执行了check,需要等待
2、需要查看节点连通状态,公有网络私有等,还有就是disk的属性
[root@rac2 disks]# ll
total 0
brw-rw---- 1 oracle dba 8, 17 Feb 10 23:47 DISK5
brw-rw---- 1 oracle dba 8, 33 Feb 10 23:47 DISK6
*****************************************************************************************************
先查看 rpm -qa | grep java
显示如下信息:
java-1.5.0-gcj-1.5.0.0-29.1.el6.i686
java-1.6.0-openjdk-1.6.0.0-1.50.1.11..5.e16_3-i386
卸载openjdk:
rpm -e --nodeps java-1.5.0-gcj-1.5.0.0-29.1.el6.i686
rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.50.1.11.5.e16_3-i386
标签:12c,RAC,etc,--,6.6,grid,oracle,节点,u01 From: https://www.cnblogs.com/wes-zhangwei/p/17595691.html