vmware workstation 12+oracle linux 5.10+oracle 11g 搭建rac

1 搭建RAC环境

IP规划

网卡 node01 node02
public ip 192.168.110.15 192.168.110.25
vip 192.168.110.16 192.168.110.26
private ip 10.10.10.1 10.10.10.2
scan ip 192.168.110.200 192.168.110.200

安装oracle linux 5.10 node01和node02

/swap :8G
/boot:  200M
/: 其余空间
需要安装的软件
 
 

网络配置

vi /etc/hosts (node01节点与node02节点做同样的配置)
#node01
192.168.110.15 node01       # public ip地址,对外提供服务  bridge添加网卡的时候可以设置
192.168.110.16 node01-vip   # 
10.10.10.1   node01-priv # 用于两个节点之间  host only  添加网卡的时候可以设置

#node02
192.168.110.25 node02
192.168.110.26 node02-vip
10.10.10.2   node02-priv

#scan    与public ip地址保持同一网段
192.168.110.200 node-scan
 
 
 
12
12
 
 
 
 
 
1
#node01
2
192.168.110.15 node01       # public ip地址,对外提供服务  bridge添加网卡的时候可以设置
3
192.168.110.16 node01-vip   # 
4
10.10.10.1   node01-priv # 用于两个节点之间  host only  添加网卡的时候可以设置
5

6
#node02
7
192.168.110.25 node02
8
192.168.110.26 node02-vip
9
10.10.10.2   node02-priv
10

11
#scan    与public ip地址保持同一网段
12
192.168.110.200 node-scan
 
 
添加网卡用于私有网络
配置私有网络
编辑网卡配置文件: vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
BOOTPROTO=static
ONBOOT=yes
HWADDR=00:0c:29:58:0d:cd  #node02中的mac地址是不一样的,此mac地址值本来就有
NETMASK=255.255.255.0
#IPADDR=192.168.110.16
IPADDR=10.10.10.1   #node02为10.10.10.2
GATEWAY=192.168.110.1
TYPE=Ethernet
DNS1=114.114.114.114
DNS2=8.8.8.8
 
 
 
12
12
 
 
 
 
 
1
编辑网卡配置文件: vi /etc/sysconfig/network-scripts/ifcfg-eth1
2
DEVICE=eth1
3
BOOTPROTO=static
4
ONBOOT=yes
5
HWADDR=00:0c:29:58:0d:cd  #node02中的mac地址是不一样的,此mac地址值本来就有
6
NETMASK=255.255.255.0
7
#IPADDR=192.168.110.16
8
IPADDR=10.10.10.1   #node02为10.10.10.2
9
GATEWAY=192.168.110.1
10
TYPE=Ethernet
11
DNS1=114.114.114.114
12
DNS2=8.8.8.8
 
 

安装cluster以及asm共享磁盘所需要的包

检查安装cluster所需要的包,根据官方文档的要求如下以及asm共享磁盘需要的lib文件包:                            
      oracleasmlib-2.0.4-1.el5.x86_64
      binutils-2.17.50.0.6                                         compat-libstdc++-33-3.2.3
      elfutils-libelf-0.125                                        elfutils-libelf-devel-0.125
      elfutils-libelf-devel-static-0.125                           gcc-4.1.2
      gcc-c++-4.1.2                                                glibc-2.5-24
      glibc-common-2.5                                             glibc-devel-2.5
      glibc-headers-2.5                                            kernel-headers-2.6.18                                  
      ksh-20060214                                                 libaio-0.3.106
      libaio-devel-0.3.106                                         libgcc-4.1.2
      libgomp-4.1.2                                                libstdc++-4.1.2 
      libstdc++-devel-4.1.2                                        make-3.81
      sysstat-7.0.2                                                unixODBC-2.2.11
      unixODBC-devel-2.2.11                                        pdksh-5.2.14
      oracleasm-2.6.18-238.el                                      oracleasm-support-2.1.4-1.el5
 
 
 
15
15
 
 
 
 
 
1
检查安装cluster所需要的包,根据官方文档的要求如下以及asm共享磁盘需要的lib文件包:                            
2
      oracleasmlib-2.0.4-1.el5.x86_64
3
      binutils-2.17.50.0.6                                         compat-libstdc++-33-3.2.3
4
      elfutils-libelf-0.125                                        elfutils-libelf-devel-0.125
5
      elfutils-libelf-devel-static-0.125                           gcc-4.1.2
6
      gcc-c++-4.1.2                                                glibc-2.5-24
7
      glibc-common-2.5                                             glibc-devel-2.5
8
      glibc-headers-2.5                                            kernel-headers-2.6.18                                  
9
      ksh-20060214                                                 libaio-0.3.106
10
      libaio-devel-0.3.106                                         libgcc-4.1.2
11
      libgomp-4.1.2                                                libstdc++-4.1.2 
12
      libstdc++-devel-4.1.2                                        make-3.81
13
      sysstat-7.0.2                                                unixODBC-2.2.11
14
      unixODBC-devel-2.2.11                                        pdksh-5.2.14
15
      oracleasm-2.6.18-238.el                                      oracleasm-support-2.1.4-1.el5
 
 

用户组与用户的创建

root#groupadd oinstall
root#groupadd dba
root#groupadd oper
root#groupadd asmadmin
root#groupadd admdba
root#groupadd asmoper
root#useradd –g oinstall –G dba,asmadmin,asmdba,asmoper grid
root#useradd –g oinstall –G dba,oper,asmdba oracle
root#passwd grid
….
passwd oracle
 
 
 
11
11
 
 
 
 
 
1
root#groupadd oinstall
2
root#groupadd dba
3
root#groupadd oper
4
root#groupadd asmadmin
5
root#groupadd admdba
6
root#groupadd asmoper
7
root#useradd –g oinstall –G dba,asmadmin,asmdba,asmoper grid
8
root#useradd –g oinstall –G dba,oper,asmdba oracle
9
root#passwd grid
10
….
11
passwd oracle
 
 

增加目录及权限

      root#cd /
      root#mkdir u01
      root#cd /u01
      root#mkdir gridbase
      root#mkdir grid
      root#mkdir oracle
      root#la –l
      root#cd /
      root#chown –R grid:oinstall /u01
      root#chmod 775 /u01
      root#cd /u01
      root#chown –R oracle:oinstall oracle
 
 
 
12
12
 
 
 
 
 
1
      root#cd /
2
      root#mkdir u01
3
      root#cd /u01
4
      root#mkdir gridbase
5
      root#mkdir grid
6
      root#mkdir oracle
7
      root#la –l
8
      root#cd /
9
      root#chown –R grid:oinstall /u01
10
      root#chmod 775 /u01
11
      root#cd /u01
12
      root#chown –R oracle:oinstall oracle
 
 

设置环境变量 grid用户

      root#su – grid
      grid$pwd
      grid$vi .bash_profile
      添加以下几行:
      export ORACLE_SID=+ASM1  #node01
      export ORACLE_SID=+ASM2  #node02
      ORACLE_BASE=/u01/gridbase
      ORACLE_HOME=/u01/grid
      PATH=$ORACLE_HOME/bin:$PATH
      LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
      DISPLAY=192.168.1.23:0.0
      export ORACLE_BASE ORACLE_HOME PATH LD_LIBRARY_PATH DISPLAY
 
 
 
13
13
 
 
 
 
 
1
      root#su – grid
2
      grid$pwd
3
      grid$vi .bash_profile
4
      添加以下几行:
5
      export ORACLE_SID=+ASM1  #node01
6
      export ORACLE_SID=+ASM2  #node02
7
      ORACLE_BASE=/u01/gridbase
8
      ORACLE_HOME=/u01/grid
9
      PATH=$ORACLE_HOME/bin:$PATH
10
      LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
11
      DISPLAY=192.168.1.23:0.0
12
      export ORACLE_BASE ORACLE_HOME PATH LD_LIBRARY_PATH DISPLAY
13

 
 
 

设置环境变量 oracle用户

      root#su – oracle
      oracle$pwd
	  oracle$vi .bash_profile
      添加以下几行:
      ORACLE_BASE=/u01/oracle
      ORACLE_HOME=/u01/oracle/db
      ORACLE_SID=cludb01    #node01注意每个节点的instance的命令规则
      ORACLE_SID=cludb02    #node02注意每个节点的instance的命令规则
      PATH=$ORACLE_HOME/bin:$PATH
      LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
      DISPLAY=192.168.1.23:0.0
      export ORACLE_BASE ORACLE_HOME  ORACLE_SID PATH LD_LIBRARY_PATH DISPLAY
 
 
 
13
13
 
 
 
 
 
1
      root#su – oracle
2
      oracle$pwd
3
  oracle$vi .bash_profile
4
      添加以下几行:
5
      ORACLE_BASE=/u01/oracle
6
      ORACLE_HOME=/u01/oracle/db
7
      ORACLE_SID=cludb01    #node01注意每个节点的instance的命令规则
8
      ORACLE_SID=cludb02    #node02注意每个节点的instance的命令规则
9
      PATH=$ORACLE_HOME/bin:$PATH
10
      LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
11
      DISPLAY=192.168.1.23:0.0
12
      export ORACLE_BASE ORACLE_HOME  ORACLE_SID PATH LD_LIBRARY_PATH DISPLAY
13

 
 
 

关闭防火墙

关闭selinux
      root#vi /etc/selinux/config
     定位到SELINUX=enforcing修改为SELINUX=disable
关闭防火墙
      root#export LANG=C
      root#setup
     选择System services
     空格选择对应取消的服务即可。
      取消:ip6tables   iptables   sendmail三个服务
 
 
 
9
9
 
 
 
 
 
1
关闭selinux
2
      root#vi /etc/selinux/config
3
     定位到SELINUX=enforcing修改为SELINUX=disable
4
关闭防火墙
5
      root#export LANG=C
6
      root#setup
7
     选择System services
8
     空格选择对应取消的服务即可。
9
      取消:ip6tables   iptables   sendmail三个服务
 
 
 

修改内核参数

      root#vi /etc/sysctl/conf
      在最后位置添加如下参数:
      kernel.shmmax = 68719476736
      kernel.shmall = 4294967296
      kernel.shmmni = 4096
      kernel.sem = 250 32000 100 128
      fs.file-max = 6815744
      net.ipv4.ip_local_port_range = 9000 65500
      net.core.rmem_default = 4194304
      net.core.rmem_max = 4194304
      net.core.wmem_default = 262144
      net.core.wmem_max = 1048576
      fs.aio-max-nr = 1048576
 
 
 
14
14
 
 
 
 
 
1
      root#vi /etc/sysctl/conf
2
      在最后位置添加如下参数:
3
      kernel.shmmax = 68719476736
4
      kernel.shmall = 4294967296
5
      kernel.shmmni = 4096
6
      kernel.sem = 250 32000 100 128
7
      fs.file-max = 6815744
8
      net.ipv4.ip_local_port_range = 9000 65500
9
      net.core.rmem_default = 4194304
10
      net.core.rmem_max = 4194304
11
      net.core.wmem_default = 262144
12
      net.core.wmem_max = 1048576
13
      fs.aio-max-nr = 1048576
14

 
 
 

使参数生效

  root#sysctl –p   #生效内核参数修改
 
 
 
1
1
 
 
 
 
 
1
  root#sysctl –p   #生效内核参数修改
 
 
 

配置profile文件

修改profile文件,用于判断oracle用户或者grid用户执行ulimit,命令如下:
      root#vi /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
          umask 022
     fi
 
 
 
12
12
 
 
 
 
 
1
修改profile文件,用于判断oracle用户或者grid用户执行ulimit,命令如下:
2
      root#vi /etc/profile
3
     在最后添加如下:
4
      if [ $USER = "oracle" ] || [ $USER = "grid" ]; then 
5
          if [ $SHELL = "/bin/ksh" ]; then
6
               ulimit -p 16384
7
               ulimit -n 65536
8
          else
9
               ulimit -u 16384 -n 65536
10
          fi
11
          umask 022
12
     fi
 
 

修改linux内核

root#vi /etc/security/limits.conf
在后面添加如下信息,用于配置oracle和grid的用户打开文件参数:
grid soft nproc 2047
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
 
 
 
10
10
 
 
 
 
 
1
root#vi /etc/security/limits.conf
2
在后面添加如下信息,用于配置oracle和grid的用户打开文件参数:
3
grid soft nproc 2047
4
grid hard nproc 16384
5
grid soft nofile 1024
6
grid hard nofile 65536
7
oracle soft nproc 2047
8
oracle hard nproc 16384
9
oracle soft nofile 1024
10
oracle hard nofile 65536
 
 

修改login

修改login,
root#vi /etc/pam.d/login
在最后一样加入
session      required      pam_limits.so
 
 
 
4
4
 
 
 
 
 
1
修改login,
2
root#vi /etc/pam.d/login
3
在最后一样加入
4
session      required      pam_limits.so
 
 

调节tmpfs

调tmpfs共享内存问题,由于oracle用户很吃内存,所以调节一下tmpfs大小。
      root#umount tmpfs
      root#mount –t tmpfs shmfs –o size=3000m /dev/shm
      修改后,还需要再修改fstab,命令如下:
      root#vi /etc/fstab
      修改tmpfs那一行,defaults为size=3000m
 
 
 
6
6
 
 
 
 
 
1
调tmpfs共享内存问题,由于oracle用户很吃内存,所以调节一下tmpfs大小。
2
      root#umount tmpfs
3
      root#mount –t tmpfs shmfs –o size=3000m /dev/shm
4
      修改后,还需要再修改fstab,命令如下:
5
      root#vi /etc/fstab
6
      修改tmpfs那一行,defaults为size=3000m
 
 

时间同步问题

关于时间同步的问题,oracle rac的两个节点对时间同步要求很高,一般采用oracle rac自带的ctssd这个服务来做时间同步,本身系统也带有ntp服务做时间同步,oracle rac的时间同步和ntp的时间服务器关系,首选ntp,所以要采用oracle rac的时间同步,需要首先关闭ntp服务,命令如下:
      root#service ntpd stop
      root#chkconfig ntpd off
      root#mv /etc/ntp.conf /etc/ntp.conf.2014
      root#rm –f /var/run/ntpd.pid
 
 
 
5
5
 
 
 
 
 
1
关于时间同步的问题,oracle rac的两个节点对时间同步要求很高,一般采用oracle rac自带的ctssd这个服务来做时间同步,本身系统也带有ntp服务做时间同步,oracle rac的时间同步和ntp的时间服务器关系,首选ntp,所以要采用oracle rac的时间同步,需要首先关闭ntp服务,命令如下:
2
      root#service ntpd stop
3
      root#chkconfig ntpd off
4
      root#mv /etc/ntp.conf /etc/ntp.conf.2014
5
      root#rm –f /var/run/ntpd.pid
 
 

配置共享磁盘

创建共享磁盘,首先增加一个虚拟机,建立好一个磁盘文件,然后修改虚拟机配置即可。
单文件;8G;立即分配;独立存储;(李新明记)
添加好磁盘后,输入以下命令确认其磁盘添加成功,
      root#cd /dev
      root#ls –l sd*
      即可查看添加的磁盘,然后创建磁盘分区
      root#fdisk sdb    根据提示选择即可。
      在node01虚拟机中总共创建了5块硬盘
然后关闭虚拟机node01
 
 
 
10
10
 
 
 
 
 
1
创建共享磁盘,首先增加一个虚拟机,建立好一个磁盘文件,然后修改虚拟机配置即可。
2
单文件;8G;立即分配;独立存储;(李新明记)
3
添加好磁盘后,输入以下命令确认其磁盘添加成功,
4
      root#cd /dev
5
      root#ls –l sd*
6
      即可查看添加的磁盘,然后创建磁盘分区
7
      root#fdisk sdb    根据提示选择即可。
8
      在node01虚拟机中总共创建了5块硬盘
9
然后关闭虚拟机node01
10

 
 
 
 
 
 
将生成的五块磁盘剪切并放入node01同级目录sharedisk文件夹中
然后将node01中的磁盘删除
然后在node01中设置,添加sharedisk中的五块磁盘
然后设置每个磁盘,如下所示操作
SCSI1:1到SCSI1:5
 
 
 
6
6
 
 
 
 
 
1
将生成的五块磁盘剪切并放入node01同级目录sharedisk文件夹中
2
然后将node01中的磁盘删除
3
然后在node01中设置,添加sharedisk中的五块磁盘
4
然后设置每个磁盘,如下所示操作
5
SCSI1:1到SCSI1:5
6

 
 
 
同样的方式在node02中添加5块磁盘,并对磁盘做相同的设置
然后修改node01的虚拟机文件,将磁盘改为共享模式,
 
 
 
2
2
 
 
 
 
 
1
同样的方式在node02中添加5块磁盘,并对磁盘做相同的设置
2
然后修改node01的虚拟机文件,将磁盘改为共享模式,
 
 
编辑node01虚拟机文件node01.vmx(可以在文件末尾添加)
disk.locking = "false"
diskLib.dataCacheMaxSize = "0"
diskLib.dataCacheMaxReadAheadSize = "0"
diskLib.dataCachePageSize = "4096"
diskLib.maxUnsyncedWrites = "0"

scsi1:1.deviceType="disk"
scsi1:2.deviceType="disk"
scsi1:3.deviceType="disk"
scsi1:4.deviceType="disk"
scsi1:5.deviceType="disk"
 
 
 
11
11
 
 
 
 
 
1
disk.locking = "false"
2
diskLib.dataCacheMaxSize = "0"
3
diskLib.dataCacheMaxReadAheadSize = "0"
4
diskLib.dataCachePageSize = "4096"
5
diskLib.maxUnsyncedWrites = "0"
6

7
scsi1:1.deviceType="disk"
8
scsi1:2.deviceType="disk"
9
scsi1:3.deviceType="disk"
10
scsi1:4.deviceType="disk"
11
scsi1:5.deviceType="disk"
 
 
 
编辑node02虚拟机文件node02.vmx(可以在文件末尾添加)
disk.locking = "false"
diskLib.dataCacheMaxSize = "0"
diskLib.dataCacheMaxReadAheadSize = "0"
diskLib.dataCachePageSize = "4096"
diskLib.maxUnsyncedWrites = "0"

scsi1:1.deviceType="disk"
scsi1:2.deviceType="disk"
scsi1:3.deviceType="disk"
scsi1:4.deviceType="disk"
scsi1:5.deviceType="disk"
 
 
 
11
11
 
 
 
 
 
1
disk.locking = "false"
2
diskLib.dataCacheMaxSize = "0"
3
diskLib.dataCacheMaxReadAheadSize = "0"
4
diskLib.dataCachePageSize = "4096"
5
diskLib.maxUnsyncedWrites = "0"
6

7
scsi1:1.deviceType="disk"
8
scsi1:2.deviceType="disk"
9
scsi1:3.deviceType="disk"
10
scsi1:4.deviceType="disk"
11
scsi1:5.deviceType="disk"
 
 

配置裸盘

(1)在配置裸盘之前需要先格式化硬盘: (在一个节点执行即可)
#fdisk sdb
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-1044, default 1): 1
Last cylinder or +size or +sizeM or +sizeK (1-1044, default 1044): 
Using default value 1044
Command (m for help): w
The partition table has been altered!

#fdisk sdc
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-1044, default 1): 1
Last cylinder or +size or +sizeM or +sizeK (1-1044, default 1044): 
Using default value 1044
Command (m for help): w
The partition table has been altered!


#fdisk sdd
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-1044, default 1): 1
Last cylinder or +size or +sizeM or +sizeK (1-1044, default 1044): 
Using default value 1044
Command (m for help): w
The partition table has been altered!


#fdisk sde
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-1044, default 1): 1
Last cylinder or +size or +sizeM or +sizeK (1-1044, default 1044): 
Using default value 1044
Command (m for help): w
The partition table has been altered!

#fdisk sdf
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-1044, default 1): 1
Last cylinder or +size or +sizeM or +sizeK (1-1044, default 1044): 
Using default value 1044
Command (m for help): w
The partition table has been altered!

此时查看ls /dev/sd*
可以看到多了 sdb1;sdc1;sdd1;sde1;sdf1;
 
 
 
69
69
 
 
 
 
 
1
#fdisk sdb
2
Command (m for help): n
3
Command action
4
   e   extended
5
   p   primary partition (1-4)
6
p
7
Partition number (1-4): 1
8
First cylinder (1-1044, default 1): 1
9
Last cylinder or +size or +sizeM or +sizeK (1-1044, default 1044): 
10
Using default value 1044
11
Command (m for help): w
12
The partition table has been altered!
13

14
#fdisk sdc
15
Command (m for help): n
16
Command action
17
   e   extended
18
   p   primary partition (1-4)
19
p
20
Partition number (1-4): 1
21
First cylinder (1-1044, default 1): 1
22
Last cylinder or +size or +sizeM or +sizeK (1-1044, default 1044): 
23
Using default value 1044
24
Command (m for help): w
25
The partition table has been altered!
26

27

28
#fdisk sdd
29
Command (m for help): n
30
Command action
31
   e   extended
32
   p   primary partition (1-4)
33
p
34
Partition number (1-4): 1
35
First cylinder (1-1044, default 1): 1
36
Last cylinder or +size or +sizeM or +sizeK (1-1044, default 1044): 
37
Using default value 1044
38
Command (m for help): w
39
The partition table has been altered!
40

41

42
#fdisk sde
43
Command (m for help): n
44
Command action
45
   e   extended
46
   p   primary partition (1-4)
47
p
48
Partition number (1-4): 1
49
First cylinder (1-1044, default 1): 1
50
Last cylinder or +size or +sizeM or +sizeK (1-1044, default 1044): 
51
Using default value 1044
52
Command (m for help): w
53
The partition table has been altered!
54

55
#fdisk sdf
56
Command (m for help): n
57
Command action
58
   e   extended
59
   p   primary partition (1-4)
60
p
61
Partition number (1-4): 1
62
First cylinder (1-1044, default 1): 1
63
Last cylinder or +size or +sizeM or +sizeK (1-1044, default 1044): 
64
Using default value 1044
65
Command (m for help): w
66
The partition table has been altered!
67

68
此时查看ls /dev/sd*
69
可以看到多了 sdb1;sdc1;sdd1;sde1;sdf1;
 
 
(2)配置asmlib
 
用oracleasm格式化共享磁盘,使用oracleasm之前,确认其已经安装oracleasm oracleasm-support  oracleasmlib,命令如下:
      root#rpm –qa | grep oracleasm #确认安装oracleasm安装后,再输入如下命令:
      root#oracleasm configure –i
      然后按照提示输入grid用户,用户组dba,之后默认yes即可。再初始化下,命令如下:(网上有人使用的用户组是asmdba,官方文档对应的是oracle和dba)
 
 
 
5
5
 
 
 
 
 
1
用oracleasm格式化共享磁盘,使用oracleasm之前,确认其已经安装oracleasm oracleasm-support  oracleasmlib,命令如下:
2
      root#rpm –qa | grep oracleasm #确认安装oracleasm安装后,再输入如下命令:
3
      root#oracleasm configure –i
4
      然后按照提示输入grid用户,用户组dba,之后默认yes即可。再初始化下,命令如下:(网上有人使用的用户组是asmdba,官方文档对应的是oracle和dba)
5

 
 
(3)使用asmlib创建共享磁盘
      root#oracleasm init
      初始化后即可创建磁盘分区:
      root#oracleasm createdisk DISK01 sdb1
      root#oracleasm createdisk DISK02 sdc1
      root#oracleasm createdisk DISK03 sdd1
      root#oracleasm createdisk DISK04 sde1
      root#oracleasm createdisk DISK05 sdf1
      创建好后,输入
      root#oracleasm listdisks   即可列出刚才创建的磁盘。
 
 
 
9
9
 
 
 
 
 
1
      root#oracleasm init
2
      初始化后即可创建磁盘分区:
3
      root#oracleasm createdisk DISK01 sdb1
4
      root#oracleasm createdisk DISK02 sdc1
5
      root#oracleasm createdisk DISK03 sdd1
6
      root#oracleasm createdisk DISK04 sde1
7
      root#oracleasm createdisk DISK05 sdf1
8
      创建好后,输入
9
      root#oracleasm listdisks   即可列出刚才创建的磁盘。
 
 
(4)设置磁盘永久性未采用)根据官方文档可知,如果使用asmlib就不需要下面的操作
添加裸盘配置  http://blog.csdn.net/u014595668/article/details/51160783
在系统中生成裸设备文件 #start_udev
查看裸设备产生的结果:#raw -qa
 
 
 
3
3
 
 
 
 
 
1
添加裸盘配置  http://blog.csdn.net/u014595668/article/details/51160783
2
在系统中生成裸设备文件 #start_udev
3
查看裸设备产生的结果:#raw -qa
 
 
(5)在node02虚拟机上
#node02虚拟机
# oracleasm scandisks
# oracleasm listdisks
正常情况会显示在node01上创建的共享磁盘,如果没显示,需要重启node02虚拟机,应该就可以看到了
 
 
 
4
4
 
 
 
 
 
1
#node02虚拟机
2
# oracleasm scandisks
3
# oracleasm listdisks
4
正常情况会显示在node01上创建的共享磁盘,如果没显示,需要重启node02虚拟机,应该就可以看到了
 
 

配置节点互信

(1)grid用户配置节点互信
# node01
su - grid
sh-keygen -t rsa
ssh-keygen -t dsa
cd .ssh
cat *.pub > authorized_keys

# node02
su - grid
sh-keygen -t rsa
ssh-keygen -t dsa
cd .ssh
cat *.pub > authorized_keys


#node01
scp authorized_keys node02:/home/grid/auth_node01

#node02
cd ~
cat auth_node01 >> .ssh/authorized_keys
scp authorized_keys node01:/home/grid/.ssh/authorized_keys
 
 
 
22
22
 
 
 
 
 
1
# node01
2
su - grid
3
sh-keygen -t rsa
4
ssh-keygen -t dsa
5
cd .ssh
6
cat *.pub > authorized_keys
7

8
# node02
9
su - grid
10
sh-keygen -t rsa
11
ssh-keygen -t dsa
12
cd .ssh
13
cat *.pub > authorized_keys
14

15

16
#node01
17
scp authorized_keys node02:/home/grid/auth_node01
18

19
#node02
20
cd ~
21
cat auth_node01 >> .ssh/authorized_keys
22
scp authorized_keys node01:/home/grid/.ssh/authorized_keys
 
 
(2)oracle用户配置节点互信
# node01
su - oracle
ssh-keygen -t rsa
ssh-keygen -t dsa
cd .ssh
cat *.pub > authorized_keys

# node02
su - oracle
ssh-keygen -t rsa
ssh-keygen -t dsa
cd .ssh
cat *.pub > authorized_keys


#node01
scp authorized_keys node02:/home/oracle/auth_node01

#node02
cd ~
cat auth_node01 >> .ssh/authorized_keys
scp authorized_keys node01:/home/oracle/.ssh/authorized_keys
 
 
 
22
22
 
 
 
 
 
1
# node01
2
su - oracle
3
ssh-keygen -t rsa
4
ssh-keygen -t dsa
5
cd .ssh
6
cat *.pub > authorized_keys
7

8
# node02
9
su - oracle
10
ssh-keygen -t rsa
11
ssh-keygen -t dsa
12
cd .ssh
13
cat *.pub > authorized_keys
14

15

16
#node01
17
scp authorized_keys node02:/home/oracle/auth_node01
18

19
#node02
20
cd ~
21
cat auth_node01 >> .ssh/authorized_keys
22
scp authorized_keys node01:/home/oracle/.ssh/authorized_keys
 
 
(3)验证节点互信
#node01
ssh node02 date
exit
ssh node02-priv date

#node02
ssh node01 date
exit
ssh node01-priv date
 
 
 
10
10
 
 
 
 
 
1
#node01
2
ssh node02 date
3
exit
4
ssh node02-priv date
5

6
#node02
7
ssh node01 date
8
exit
9
ssh node01-priv date
10

 
 

 2 安装grid

(1)上传grid软件并解压
上传linux.x64_11gR2_grid.zip到/u01,
unzip解压,默认会解压到/u01/grid目录,
然后chown -R grid:oinstall /u01/grid
 
 
 
3
3
 
 
 
 
 
1
上传linux.x64_11gR2_grid.zip到/u01,
2
unzip解压,默认会解压到/u01/grid目录,
3
然后chown -R grid:oinstall /u01/grid
 
 
(2)安装cvuqdisk
# rpm -ivh cvuqdisk-1.0.7-1.rpm
 
 
 
1
1
 
 
 
 
 
1
# rpm -ivh cvuqdisk-1.0.7-1.rpm
 
 
(3)环境检查
grid$./runcluvfy.sh stage -pre crsinst -n node01,node02 -fixup -verbose 
 
 
 
1
1
 
 
 
 
 
1
grid$./runcluvfy.sh stage -pre crsinst -n node01,node02 -fixup -verbose 
 
 
(4)安装xmanager并设置属性
 
(5)安装grid
./runInstall
 
 
 
1
1
 
 
 
 
 
1
./runInstall
 
 
 
选择第一项
 
选择高级安装(高级安装:安装过程中可以定制参数)
 
选择英语,"下一步"
 
 
取消Configure CNS
 
添加node02,hostname:node02; virtual ip name:node01-vip
 
 
点击next
 
 
选择asm方式存储ocr(oracle cluster registry)和vot(voting disks)
 
创建asm磁盘组:选择External;All Disks;勾选复选框;
 
选择相同的密码,next
 
不适用失败隔离支持,next
 
默认即可,next
 
默认即可,软件会识别环境变量中的信息,对应的是ORACLE_BASE和ORACLE_HOME
 
选择yes
 
默认,next(创建inventory目录,与$GRID_BASE目录同级)
 
点击Finish,此时才是安装GI,之前只是在进行环境检测与安装环境准备
 
可以看到日志文件位置:/u01/oraInventory/logs/installActions2018-02-05_01-24-50PM.log
 
新开一个窗口,以root用户顺序执行两个shell脚本
/u01/oracleInventory/orainstRoot.sh
/u01/grid/root.sh
ssh node02
/u01/oracleInventory/orainstRoot.sh
/u01/grid/root.sh
官方文档中是先执行node01上的oraInstRoot.sh,再执行node02上的oraInstRoot.sh;再执行node01上的root.sh,再执行node02上的root.sh;
但是实际执行发现不是这样的顺序也可(先在node01上执行完之后,再在node02上执行也可)
 
 
 
7
7
 
 
 
 
 
1
/u01/oracleInventory/orainstRoot.sh
2
/u01/grid/root.sh
3
ssh node02
4
/u01/oracleInventory/orainstRoot.sh
5
/u01/grid/root.sh
6
官方文档中是先执行node01上的oraInstRoot.sh,再执行node02上的oraInstRoot.sh;再执行node01上的root.sh,再执行node02上的root.sh;
7
但是实际执行发现不是这样的顺序也可(先在node01上执行完之后,再在node02上执行也可)
 
 
执行完成(成功)以后,点击返回窗口,点击ok
出现如下界面(在继续进行集群配置)
然后会出现如下界面
 
此错误可以忽略,只要能pingscan ip即正常,不影响安装和使用。点击ok
 
点击next
 
点击close
至此,Cluster集群就安装完毕了,只需要在一个节点上安装即可,会自动复制到其他节点中,这里是在node01中安装的。
(6)检查cluster
检查crs状态
[grid@node01 ~]$ 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
 
 
 
5
5
 
 
 
 
 
1
[grid@node01 ~]$ crsctl check crs
2
CRS-4638: Oracle High Availability Services is online
3
CRS-4537: Cluster Ready Services is online
4
CRS-4529: Cluster Synchronization Services is online
5
CRS-4533: Event Manager is online
 
 
检查Clusterware资源
[grid@node01 ~]$ crs_stat -t -v
Name           Type           R/RA   F/FT   Target    State     Host        
----------------------------------------------------------------------
ora.DATA.dg    ora....up.type 0/5    0/     ONLINE    ONLINE    node01      
ora....ER.lsnr ora....er.type 0/5    0/     ONLINE    ONLINE    node01      
ora....N1.lsnr ora....er.type 0/5    0/0    ONLINE    ONLINE    node01      
ora.asm        ora.asm.type   0/5    0/     ONLINE    ONLINE    node01      
ora.eons       ora.eons.type  0/3    0/     ONLINE    ONLINE    node01      
ora.gsd        ora.gsd.type   0/5    0/     OFFLINE   OFFLINE               
ora....network ora....rk.type 0/5    0/     ONLINE    ONLINE    node01      
ora....SM1.asm application    0/5    0/0    ONLINE    ONLINE    node01      
ora....01.lsnr application    0/5    0/0    ONLINE    ONLINE    node01      
ora.node01.gsd application    0/5    0/0    OFFLINE   OFFLINE               
ora.node01.ons application    0/3    0/0    ONLINE    ONLINE    node01      
ora.node01.vip ora....t1.type 0/0    0/0    ONLINE    ONLINE    node01      
ora....SM2.asm application    0/5    0/0    ONLINE    ONLINE    node02      
ora....02.lsnr application    0/5    0/0    ONLINE    ONLINE    node02      
ora.node02.gsd application    0/5    0/0    OFFLINE   OFFLINE               
ora.node02.ons application    0/3    0/0    ONLINE    ONLINE    node02      
ora.node02.vip ora....t1.type 0/0    0/0    ONLINE    ONLINE    node02      
ora.oc4j       ora.oc4j.type  0/5    0/0    OFFLINE   OFFLINE               
ora.ons        ora.ons.type   0/3    0/     ONLINE    ONLINE    node01      
ora.scan1.vip  ora....ip.type 0/0    0/0    ONLINE    ONLINE    node01
 
 
 
23
23
 
 
 
 
 
1
[grid@node01 ~]$ crs_stat -t -v
2
Name           Type           R/RA   F/FT   Target    State     Host        
3
----------------------------------------------------------------------
4
ora.DATA.dg    ora....up.type 0/5    0/     ONLINE    ONLINE    node01      
5
ora....ER.lsnr ora....er.type 0/5    0/     ONLINE    ONLINE    node01      
6
ora....N1.lsnr ora....er.type 0/5    0/0    ONLINE    ONLINE    node01      
7
ora.asm        ora.asm.type   0/5    0/     ONLINE    ONLINE    node01      
8
ora.eons       ora.eons.type  0/3    0/     ONLINE    ONLINE    node01      
9
ora.gsd        ora.gsd.type   0/5    0/     OFFLINE   OFFLINE               
10
ora....network ora....rk.type 0/5    0/     ONLINE    ONLINE    node01      
11
ora....SM1.asm application    0/5    0/0    ONLINE    ONLINE    node01      
12
ora....01.lsnr application    0/5    0/0    ONLINE    ONLINE    node01      
13
ora.node01.gsd application    0/5    0/0    OFFLINE   OFFLINE               
14
ora.node01.ons application    0/3    0/0    ONLINE    ONLINE    node01      
15
ora.node01.vip ora....t1.type 0/0    0/0    ONLINE    ONLINE    node01      
16
ora....SM2.asm application    0/5    0/0    ONLINE    ONLINE    node02      
17
ora....02.lsnr application    0/5    0/0    ONLINE    ONLINE    node02      
18
ora.node02.gsd application    0/5    0/0    OFFLINE   OFFLINE               
19
ora.node02.ons application    0/3    0/0    ONLINE    ONLINE    node02      
20
ora.node02.vip ora....t1.type 0/0    0/0    ONLINE    ONLINE    node02      
21
ora.oc4j       ora.oc4j.type  0/5    0/0    OFFLINE   OFFLINE               
22
ora.ons        ora.ons.type   0/3    0/     ONLINE    ONLINE    node01      
23
ora.scan1.vip  ora....ip.type 0/0    0/0    ONLINE    ONLINE    node01
 
 
检查集群节点
[grid@node01 ~]$ olsnodes -n
node01	1
node02	2
[grid@node01 ~]$ olsnodes
node01
node02
[grid@node01 ~]$ olsnodes -n -i -s -t
node01	1	node01-vip	Active	Unpinned
node02	2	node02-vip	Active	Unpinned
 
 
 
x
10
 
 
 
 
 
1
[grid@node01 ~]$ olsnodes -n
2
node011
3
node022
4
[grid@node01 ~]$ olsnodes
5
node01
6
node02
7
[grid@node01 ~]$ olsnodes -n -i -s -t
8
node011node01-vipActiveUnpinned
9
node022node02-vipActiveUnpinned
10

 
 
 
[grid@node01 ~]$ crsctl check cluster -all
**************************************************************
node01:
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
**************************************************************
node02:
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
**************************************************************
 
 
 
12
12
 
 
 
 
 
1
[grid@node01 ~]$ crsctl check cluster -all
2
**************************************************************
3
node01:
4
CRS-4537: Cluster Ready Services is online
5
CRS-4529: Cluster Synchronization Services is online
6
CRS-4533: Event Manager is online
7
**************************************************************
8
node02:
9
CRS-4537: Cluster Ready Services is online
10
CRS-4529: Cluster Synchronization Services is online
11
CRS-4533: Event Manager is online
12
**************************************************************
 
 
检查两个节点上的Oracle TNS监听器进程
[grid@node01 ~]$  ps -ef|grep lsnr|grep -v 'grep'|grep -v 'ocfs'|awk '{print$9}'
LISTENER_SCAN1
LISTENER
 
 
 
3
3
 
 
 
 
 
1
[grid@node01 ~]$  ps -ef|grep lsnr|grep -v 'grep'|grep -v 'ocfs'|awk '{print$9}'
2
LISTENER_SCAN1
3
LISTENER
 
 
确认针对Oracle Clusterware文件的Oracle ASM功能:
如果在 Oracle ASM 上暗转过了OCR和表决磁盘文件,则以Grid Infrastructure 安装所有者的身份,使用给下面的命令语法来确认当前正在运行已安装的Oracle ASM
[grid@node01 ~]$ srvctl status asm -a
ASM is running on node01,node02
ASM is enabled.
 
 
 
3
3
 
 
 
 
 
1
[grid@node01 ~]$ srvctl status asm -a
2
ASM is running on node01,node02
3
ASM is enabled.
 
 
 
 3 安装oracle(只需要在节点node01上执行即可 )
向node01节点上传文件linux_x64_oracle11g.zip 
# unzip linux_x64_oracle11g.zip
# chown -R oracle:oinstall linux_x64_oracle11g
# chmod -R 777 linux_x64_oracle11g
# su - oracle
[oracle@node01 ~]$ cd /u01/linux_x64_oracle11g
[oracle@node01 ~]$ ./runInstaller
 
 
 
6
6
 
 
 
 
 
1
# unzip linux_x64_oracle11g.zip
2
# chown -R oracle:oinstall linux_x64_oracle11g
3
# chmod -R 777 linux_x64_oracle11g
4
# su - oracle
5
[oracle@node01 ~]$ cd /u01/linux_x64_oracle11g
6
[oracle@node01 ~]$ ./runInstaller
 
 
 
 
邮件不填;复选框不勾选;点击next
 
勾选第二个,next
 
出现如下界面
 
点击填写os 密码之后,点击Test,如果互信检测出错,则点击setup按钮,建立互信,然后点击next
 
默认,点击next
 
选择企业版本,点击next
 
默认,点击next
 
默认,点击next
 
保存响应文件,点击Finish,开始安装oracle
 
分别在node01和node02上执行root.sh脚本
 
 
然后点击ok
 
点击close,则oracle安装完成

4 dbca创建数据库

 
# su - oracle
[oracle@node01]$ dbca
 
 
 
2
2
 
 
 
 
 
1
# su - oracle
2
[oracle@node01]$ dbca
 
 
 
点击next
 
点击next
 
点击next(可以选择第一项或第二项,第二项是自定义数据库,可以更多的设置参数,但是创建数据库更慢)
 
sid前缀来自node01和node02上的$ORALCE_SID(cludb01与cludb02)
 
取消勾选Configure Enterprise Manager,点击next
 
点击next
 
默认,点击next
 
禁用FRA
 
默认,点击next
 
设置数据库字符集和国家字符集
 
 
点击next
点击Finish(第二项也可以勾选)
create database summary path: /u01/oracle/db/bin/
create database script path:  /u01/oracle/admin/cludb/scripts
 
 
 
2
2
 
 
 
 
 
1
create database summary path: /u01/oracle/db/bin/
2
create database script path:  /u01/oracle/admin/cludb/scripts
 
 
 
5 RAC日常管理与维护
# su - grid
[grid@node01 ~]$ crs_stat -t
Name           Type           Target    State     Host        
------------------------------------------------------------
ora.DATA.dg    ora....up.type ONLINE    ONLINE    node01      
ora....ER.lsnr ora....er.type ONLINE    ONLINE    node01      
ora....N1.lsnr ora....er.type ONLINE    ONLINE    node01      
ora.asm        ora.asm.type   ONLINE    ONLINE    node01      
ora.cludb.db   ora....se.type ONLINE    ONLINE    node01      
ora.eons       ora.eons.type  ONLINE    ONLINE    node01      
ora.gsd        ora.gsd.type   OFFLINE   OFFLINE               
ora....network ora....rk.type ONLINE    ONLINE    node01      
ora....SM1.asm application    ONLINE    ONLINE    node01      
ora....01.lsnr application    ONLINE    ONLINE    node01      
ora.node01.gsd application    OFFLINE   OFFLINE               
ora.node01.ons application    ONLINE    ONLINE    node01      
ora.node01.vip ora....t1.type ONLINE    ONLINE    node01      
ora....SM2.asm application    ONLINE    ONLINE    node02      
ora....02.lsnr application    ONLINE    ONLINE    node02      
ora.node02.gsd application    OFFLINE   OFFLINE               
ora.node02.ons application    ONLINE    ONLINE    node02      
ora.node02.vip ora....t1.type ONLINE    ONLINE    node02      
ora.oc4j       ora.oc4j.type  OFFLINE   OFFLINE               
ora.ons        ora.ons.type   ONLINE    ONLINE    node01      
ora.scan1.vip  ora....ip.type ONLINE    ONLINE    node01 
 
 
 
25
25
 
 
 
 
 
1
# su - grid
2
[grid@node01 ~]$ crs_stat -t
3
Name           Type           Target    State     Host        
4
------------------------------------------------------------
5
ora.DATA.dg    ora....up.type ONLINE    ONLINE    node01      
6
ora....ER.lsnr ora....er.type ONLINE    ONLINE    node01      
7
ora....N1.lsnr ora....er.type ONLINE    ONLINE    node01      
8
ora.asm        ora.asm.type   ONLINE    ONLINE    node01      
9
ora.cludb.db   ora....se.type ONLINE    ONLINE    node01      
10
ora.eons       ora.eons.type  ONLINE    ONLINE    node01      
11
ora.gsd        ora.gsd.type   OFFLINE   OFFLINE               
12
ora....network ora....rk.type ONLINE    ONLINE    node01      
13
ora....SM1.asm application    ONLINE    ONLINE    node01      
14
ora....01.lsnr application    ONLINE    ONLINE    node01      
15
ora.node01.gsd application    OFFLINE   OFFLINE               
16
ora.node01.ons application    ONLINE    ONLINE    node01      
17
ora.node01.vip ora....t1.type ONLINE    ONLINE    node01      
18
ora....SM2.asm application    ONLINE    ONLINE    node02      
19
ora....02.lsnr application    ONLINE    ONLINE    node02      
20
ora.node02.gsd application    OFFLINE   OFFLINE               
21
ora.node02.ons application    ONLINE    ONLINE    node02      
22
ora.node02.vip ora....t1.type ONLINE    ONLINE    node02      
23
ora.oc4j       ora.oc4j.type  OFFLINE   OFFLINE               
24
ora.ons        ora.ons.type   ONLINE    ONLINE    node01      
25
ora.scan1.vip  ora....ip.type ONLINE    ONLINE    node01 
 
 
检查集群运行状态
[grid@node01 ~]$ srvctl status database -d cludb
Instance cludb1 is running on node node01
Instance cludb2 is running on node node02
 
 
 
3
3
 
 
 
 
 
1
[grid@node01 ~]$ srvctl status database -d cludb
2
Instance cludb1 is running on node node01
3
Instance cludb2 is running on node node02
 
 
查看集群件的表决磁盘信息
##  STATE    File Universal Id                File Name Disk group
--  -----    -----------------                --------- ---------
 1. ONLINE   65583bc1c3304f02bf6ead3e6c20becc (ORCL:DISK01) [DATA]
Located 1 voting disk(s).
 
 
 
4
4
 
 
 
 
 
1
##  STATE    File Universal Id                File Name Disk group
2
--  -----    -----------------                --------- ---------
3
 1. ONLINE   65583bc1c3304f02bf6ead3e6c20becc (ORCL:DISK01) [DATA]
4
Located 1 voting disk(s).
 
 
查看集群SCAN VIP信息
SCAN name: node-scan, Network: 1/192.168.110.0/255.255.255.0/eth0
SCAN VIP name: scan1, IP: /node-scan/192.168.110.200
 
 
 
2
2
 
 
 
 
 
1
SCAN name: node-scan, Network: 1/192.168.110.0/255.255.255.0/eth0
2
SCAN VIP name: scan1, IP: /node-scan/192.168.110.200
 
 
查看集群SCAN Listener信息
[grid@node01 ~]$ srvctl config scan_listener
SCAN Listener LISTENER_SCAN1 exists. Port: TCP:1521
 
 
 
2
2
 
 
 
 
 
1
[grid@node01 ~]$ srvctl config scan_listener
2
SCAN Listener LISTENER_SCAN1 exists. Port: TCP:1521
 
 
启、停集群数据库
关闭整个集群数据库
[grid@node01 ~]$ srvctl stop database -d cludb
 
 
 
1
1
 
 
 
 
 
1
[grid@node01 ~]$ srvctl stop database -d cludb
 
 
启动整个集群数据库
[grid@node01 ~]$ srvctl start database -d cludb
 
 
 
1
 
 
 
 
 
1
[grid@node01 ~]$ srvctl start database -d cludb
 
 
 

<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">

posted @ 2018-02-06 16:43  岳麓丹枫  阅读(731)  评论(0编辑  收藏  举报