一,简介

二,配置虚拟机
1,创建虚拟机
(1)添加三块儿网卡:
 
主节点 二节点
eth0:    公网  192.168.1.20/24   NAT eth0:    公网  192.168.1.21/24   NAT
eth1:私网  192.168.2.20/24     host-only eth1:      私网  192.168.2.21/24   host-only
eth2:    DHCP    Bridged eth2:     DHCP    Bridged
主机名: testdb11a 主机名:  testdb11b
 
(2)添加五块儿磁盘:其中一块儿分配20G的空间供系统使用,其余四块儿为ASM磁盘,作为共享
 
创建4块儿独立磁盘,大小分配1GB,选择SCSI,独立永久
 
现在分配
共享磁盘放到单独的一个目录中,在复制二节点的时候方便寻找,取名字分别为:asm0.vmdk  asm1.vmdk  asm2.vmdk   asm3.vmdk(一定要有后缀.vmdk)
Finsh~~
下面的三块执行同样的操作!
接下来,四块共享磁盘分别分配到和系统硬盘完全不同的总线下面
总体如下:
2,安装操作系统
安装的时候在这里需要注意:
 
只选择sda,其余的盘对勾全部去掉,继续~
全部默认,软件只要有图形界面即可,主机名,IP地址,和需要的软件我们在安装完操作系统后按需安装
 
安装11g的时候如果不适用VNS或者X-manager等远程图形界面工具,需要安装vm-tools,否则在开启图形界面的时候会特别的闪
 
3,配置  ----主节点
(1)关闭iptables和selinux
 查看状态
  1. [root@localhost ~]# /etc/init.d/iptables status
  2. Table: filter
  3. Chain INPUT (policy ACCEPT)
  4. num target prot opt source destination
  5. RH-Firewall--INPUT all -- 0.0.0.0/ 0.0.0.0/
  6.  
  7. Chain FORWARD (policy ACCEPT)
  8. num target prot opt source destination
  9. RH-Firewall--INPUT all -- 0.0.0.0/ 0.0.0.0/
  10.  
  11. Chain OUTPUT (policy ACCEPT)
  12. num target prot opt source destination
  13.  
  14. Chain RH-Firewall--INPUT ( references)
  15. num target prot opt source destination
  16. ACCEPT all -- 0.0.0.0/ 0.0.0.0/
  17. ACCEPT icmp -- 0.0.0.0/ 0.0.0.0/ icmp type
  18. ACCEPT esp -- 0.0.0.0/ 0.0.0.0/
  19. ACCEPT ah -- 0.0.0.0/ 0.0.0.0/
  20. ACCEPT udp -- 0.0.0.0/ 224.0.0.251 udp dpt:
  21. ACCEPT udp -- 0.0.0.0/ 0.0.0.0/ udp dpt:
  22. ACCEPT tcp -- 0.0.0.0/ 0.0.0.0/ tcp dpt:
  23. ACCEPT all -- 0.0.0.0/ 0.0.0.0/ state RELATED,ESTABLISHED
  24. ACCEPT tcp -- 0.0.0.0/ 0.0.0.0/ state NEW tcp dpt:
  25. REJECT all -- 0.0.0.0/ 0.0.0.0/ reject-with icmp-host-prohibited

关闭防火墙

  1. [root@localhost ~]# service iptables stop
  2. Flushing firewall rules: [ OK ]
  3. Setting chains to policy ACCEPT: filter [ OK ]
  4. Unloading iptables modules: [ OK ]
  5.  
  6. [root@localhost ~]# chkconfig iptables off
  7.  
  8. 查看
  9. [root@localhost ~]# chkconfig --list | grep iptables
  10. iptables :off :off :off :off :off :off :off
  11.  
  12. [root@localhost ~]# service iptables status
  13.  
  14. Firewall is stopped.

禁用seLinux

  1. 查看selinux状态
  2. [root@localhost ~]# getenforce
  3. Enforcing
  4.  
  5. [root@localhost ~]# cat /etc/selinux/config
  6. # This file controls the state of SELinux on the system.
  7. # SELINUX= can take one of these three values:
  8. # enforcing - SELinux security policy is enforced.
  9. # permissive - SELinux prints warnings instead of enforcing.
  10. # disabled - SELinux is fully disabled.
  11. SELINUX=enforcing
  12. # SELINUXTYPE= type of policy in use. Possible values are:
  13. # targeted - Only targeted network daemons are protected.
  14. # strict - Full SELinux protection.
  15. SELINUXTYPE=targeted

修改SELINUX=enforcing为

  1. SELINUX=disabled

注:这里需要重启服务器,这里我们等所有的配置都完成后再重启

(2)网络配置
a.配置IP地址
 修改配置文件
 第一块网卡
  1. [root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
  2.  
  3. # Intel Corporation 82545EM Gigabit Ethernet Controller (Copper)
  4. DEVICE=eth0
  5. BOOTPROTO=static
  6. IPADDR=192.168.1.20
  7. NETMASK=255.255.255.0
  8. GATEWAY=192.168.1.1
  9. HWADDR=:0C::0B:FD:9E
  10. ONBOOT=yes

第二块儿网卡

[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth1

# Intel Corporation 82545EM Gigabit Ethernet Controller (Copper)
DEVICE=eth1
BOOTPROTO=static
IPADDR=192.168.2.20
NETMASK=255.255.255.0
GATEWAY=192.168.2.1
HWADDR=00:0C:29:0B:FD:A8
ONBOOT=yes

第三块网卡(保持默认)

  1. [root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth2
  2.  
  3. # Intel Corporation 82545EM Gigabit Ethernet Controller (Copper)
  4. DEVICE=eth2
  5. BOOTPROTO=dhcp
  6. HWADDR=:0C::0B:FD:B2
  7. ONBOOT=no

b.修改主机名

  1. [root@localhost ~]# vi /etc/sysconfig/network
  2.  
  3. NETWORKING=yes
  4. NETWORKING_IPV6=yes
  5. HOSTNAME=testdb11a
  6.  
  7. [root@localhost ~]# hostname testdb11a

c.配置hosts文件

说明:如果不适用DNS,在/etc/hosts文件中必须包含虚假的SCAN IP信息

  1.  

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
  ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

  1. #上面两行不能注释
    # Public
  2. 192.168.1.20 testdb11a
  3. 192.168.1.21 testdb11b
  4. # Private
  5. 192.168.2.20 testdb11a-priv
  6. 192.168.2.21 testdb11b-priv
  7. # Virtual
  8. 192.168.1.22 testdb11a-vip
  9. 192.168.1.23 testdb11b-vip
  10. # SCAN
  11. 192.168.1.24 testdb11-scan
  12. 192.168.1.25 testdb11-scan
  13. 192.168.1.26 testdb11-scan

说明:SCAN 地址不应该在hosts文件中定义,而是在DNS中定义和public IP地址在同一个网段内的3个循环地址。在这里安装使用hosts文件避免了SCAN 地址,这种方式只实用于11.2.0.2以前的版本,11。2.0.2以后的版本,必须配置DNS,我们安装的是11.2.0.3.0版本,所以DNS是必须配置的,下面使用dnsmasq配置一个简单的DNS

  1. 在上面的/etc/hosts文件中加入3个和public网段相同的没有使用的iP地址,编辑下面的文件(nameserver后面可以是127.0.0.,也可以是本地具体的IP地址)为了方便我们就选其中的一个节点做DNS服务器
  2. [root@testdb11a ~]# more /etc/resolv.conf
  3. search localdomain
  4. nameserver 192.168.1.20
  5. 启动dnsmasq服务
  6. [root@testdb11a e22489]# /etc/init.d/dnsmasq start
  7. Starting dnsmasq: [ OK ]
  8. 查看
  9. [root@testdb11a e22489]# nslookup testdb11-scan
  10. Server: 192.168.1.20
  11. Address: 192.168.1.20#
  12.  
  13. Name: testdb11-scan
  14. Address: 192.168.1.26
  15. Name: testdb11-scan
  16. Address: 192.168.1.24
  17. Name: testdb11-scan
  18. Address: 192.168.1.25

(3)关于时间同步

节点之间的时间同步对于oracle RAC来说是非常重要的,在oracle11g r2之前需要通过操作系统搭建NTP服务完成节点之间时间的同步。在oracle 11g 开始新增加了一个CTSS(Cluster Time Synchronization Services,集群时间同步服务),来完成节点间时间的同步,在安装Grid Infrastructure的时候,如果没有发现有NTP服务,则会自动安装ctss服务。这只对于RAC节点间时间的同步,对于其他系统来说是不起作用的。要使用oracle自己的CTSS,除了要停止、禁止自动重启NTP服务外,/etc/ntp.conf配置文件也不允许存在.(When the installer finds that the NTP protocol is not active, the Cluster Time Synchronization Service is automatically installed in active mode and synchronizes the time across the nodes. If NTP is found configured, then the Cluster Time Synchronization Service is started in observer mode, and no active time synchronization is performed by Oracle Clusterware within the cluster. )

  1. [root@localhost ~]# service ntpd stop
  2. Shutting down ntpd: [ OK ]
  3. [root@localhost ~]# chkconfig ntpd off
  4. [root@localhost ~]# chkconfig --list | grep ntpd
  5. ntpd :off :off :off :off :off :off :off
  6. [root@localhost ~]# mv /etc/ntp.conf /etc/ntp.conf.
  7. [root@localhost ~]# rm /var/run/ntpd.pid ###这个文件是维护nptd进程pid的

如果想要使用NTP服务进行时间的同步,必须在"/etc/sysconfig/ntpd"中加入“-x” 标记

  1. OPTIONS="-x -u ntp:ntp -p /var/run/ntpd.pid"

然后重启ntpd服务

  1. #service ntpd restart

(4)内核参数及安全设置

修改/etc/sysctl.conf 添加下面内容

  1. fs.aio-max-nr =
  2. fs.file-max =
  3. kernel.shmall =
  4. kernel.shmmax =
  5. kernel.shmmni =
  6. # semaphores: semmsl, semmns, semopm, semmni
  7. kernel.sem =
  8. net.ipv4.ip_local_port_range =
  9. net.core.rmem_default=
  10. net.core.rmem_max=
  11. net.core.wmem_default=
  12. net.core.wmem_max=

生效

  1. sysctl -p

修改/etc/security/limits.conf

加入

  1. oracle soft nproc
  2. oracle hard nproc
  3. oracle soft nofile
  4. oracle hard nofile
  5.  
  6. grid soft nproc
  7. grid hard nproc
  8. grid soft nofile
  9. grid hard nofile

在/etc/pam.d/login 中加入

  1. session required pam_limits.so

(5)创建用户和组,以及所需要的目录

创建用户和组

  1. groupadd -g oinstall
  2. groupadd -g dba
  3. groupadd -g oper
  4. groupadd -g asmadmin
  5. groupadd -g asmoper
  6. groupadd -g asmdba
  7. useradd -g oinstall -G dba,asmdba,oper oracle
  8. useradd -g oinstall -G asmadmin,asmdba,asmoper,oper,dba grid 
 设置密码
  1. passwd oracle
  2. passwd grid

创建所需目录并给于相应的权限

  1. mkdir -p /u01/app/grid
  2. mkdir -p /u01/app/11.2./grid
  3. chown -R grid:oinstall /u01
  4. mkdir -p /u01/app/oracle
  5. chown oracle:oinstall /u01/app/oracle
  6. chmod -R /u01

(6)安装所需要的rpm包

RHEL 5和Oracle Linux 5所需的包如下

  1. binutils-2.17.50.0.
  2. compat-libstdc++--3.2.
  3. compat-libstdc++--3.2. ( bit)
  4. elfutils-libelf-0.125
  5. elfutils-libelf-devel-0.125
  6. gcc-4.1.
  7. gcc-c++-4.1.
  8. glibc-2.5-
  9. glibc-2.5- ( bit)
  10. glibc-common-2.5
  11. glibc-devel-2.5
  12. glibc-devel-2.5 ( bit)
  13. glibc-headers-2.5
  14. ksh-
  15. libaio-0.3.
  16. libaio-0.3. ( bit)
  17. libaio-devel-0.3.
  18. libaio-devel-0.3. ( bit)
  19. libgcc-4.1.
  20. libgcc-4.1. ( bit)
  21. libstdc++-4.1.
  22. libstdc++-4.1. ( bit)
  23. libstdc++-devel 4.1.
  24. make-3.81
  25. sysstat-7.0.2
  • unixODBC-2.2.11 (32-bit) or later

  • unixODBC-devel-2.2.11 (64-bit) or later

  • unixODBC-2.2.11 (64-bit) or later

  1.  

检查

  1. rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n' binutils \
  2. compat-libstdc++- \
  3. elfutils-libelf \
  4. elfutils-libelf-devel \
  5. gcc \
  6. gcc-c++ \
  7. glibc \
  8. glibc-common \
  9. glibc-devel \
  10. glibc-headers \
  11. ksh \
  12. libaio \
  13. libaio-devel \
  14. libgcc-4.1. \
  15. libstdc++ \
  16. libstdc++-devel \
  17. make \
  18. sysstat \
  19. unixODBC \
  20. unixODBC-devel

安装显示 not installed的包

使用yum安装,避免依赖关系的检查

配置yum源

  1. [root@testdb11a ~]# mount /dev/cdrom /mnt
  2. mount: block device /dev/cdrom is write-protected, mounting read-only
  3. [root@testdb11a ~]#
  4. [root@testdb11a ~]#
  5. [root@testdb11a ~]# cat /etc/yum.repos.d/dvd.repo
  6. [dvd]
  7. name=install dvd
  8. baseurl=file:///mnt/Server
  9. enabled=
  10. gpgcheck=
  11. [root@testdb11a ~]# yum clean all
  12. Loaded plugins: katello, product-id, security, subscription-manager
  13. Updating certificate-based repositories.
  14. Unable to read consumer identity
  15. Cleaning up Everything
  1. [root@testdb11a ~]#yum list

安装

  1. [root@testdb11a ~]# rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n' binutils compat-libstdc++- elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers ksh libaio libaio-devel libgcc-4.1. libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel
  2. binutils-2.17.50.0.-.el5 (x86_64)
  3. compat-libstdc++--3.2.- (x86_64)
  4. compat-libstdc++--3.2.- (i386)
  5. elfutils-libelf-0.137-.el5 (x86_64)
  6. elfutils-libelf-0.137-.el5 (i386)
  7. elfutils-libelf-devel-0.137-.el5 (i386)
  8. elfutils-libelf-devel-0.137-.el5 (x86_64)
  9. package gcc is not installed
  10. package gcc-c++ is not installed
  11. glibc-2.5- (x86_64)
  12. glibc-2.5- (i686)
  13. glibc-common-2.5- (x86_64)
  14. package glibc-devel is not installed
  15. package glibc-headers is not installed
  16. ksh--.el5 (x86_64)
  17. libaio-0.3.- (x86_64)
  18. libaio-0.3.- (i386)
  19. package libaio-devel is not installed
  20. libgcc-4.1.-.el5 (x86_64)
  21. libgcc-4.1.-.el5 (i386)
  22. libstdc++-4.1.-.el5 (x86_64)
  23. libstdc++-4.1.-.el5 (i386)
  24. package libstdc++-devel is not installed
  25. make-3.81-.el5 (x86_64)
  26. package sysstat is not installed
  27. package unixODBC is not installed
  28. package unixODBC-devel is not installed
  29. [root@testdb11a ~]# yum install -y gcc gcc-c++ glibc-develglibc-headerslibaio-devel libstdc++-devel sysstat unixODBC ---把显示not install的包都跟在后面
  30. Loaded plugins: katello, product-id, security, subscription-manager
  31. Updating certificate-based repositories.
  32. Unable to read consumer identity
  33. Setting up Install Process
  34. No package glibc-develglibc-headerslibaio-devel available.
  35. Resolving Dependencies
  36. --> Running transaction check
  37. ---> Package gcc.x86_64 :4.1.-.el5 set to be updated
  38. --> Processing Dependency: glibc-devel >= 2.2.- for package: gcc
  39. ---> Package gcc-c++.x86_64 :4.1.-.el5 set to be updated
  40. ---> Package libstdc++-devel.i386 :4.1.-.el5 set to be updated
  41. dvd/filelists | 2.8 MB :
  42. ---> Package libstdc++-devel.x86_64 :4.1.-.el5 set to be updated
  43. ---> Package sysstat.x86_64 :7.0.-.el5 set to be updated
  44. ---> Package unixODBC.i386 :2.2.-.el5 set to be updated
  45. --> Processing Dependency: unixODBC-libs = 2.2.-.el5 for package: unixODBC
  46. --> Processing Dependency: libodbcinst.so. for package: unixODBC
  47. --> Processing Dependency: libodbc.so. for package: unixODBC
  48. ---> Package unixODBC.x86_64 :2.2.-.el5 set to be updated
  49. --> Running transaction check
  50. ---> Package glibc-devel.x86_64 :2.5- set to be updated
  51. --> Processing Dependency: glibc-headers = 2.5- for package: glibc-devel
  52. --> Processing Dependency: glibc-headers for package: glibc-devel
  53. ---> Package unixODBC-libs.i386 :2.2.-.el5 set to be updated
  54. ---> Package unixODBC-libs.x86_64 :2.2.-.el5 set to be updated
  55. --> Running transaction check
  56. ---> Package glibc-headers.x86_64 :2.5- set to be updated
  57. --> Processing Dependency: kernel-headers >= 2.2. for package: glibc-headers
  58. --> Processing Dependency: kernel-headers for package: glibc-headers
  59. --> Running transaction check
  60. ---> Package kernel-headers.x86_64 :2.6.-.el5 set to be updated
  61. --> Finished Dependency Resolution
  62.  
  63. Dependencies Resolved
  64.  
  65. =====================================================================================================================================================
  66. Package Arch Version Repository Size
  67. =====================================================================================================================================================
  68. Installing:
  69. gcc x86_64 4.1.-.el5 dvd 5.3 M
  70. gcc-c++ x86_64 4.1.-.el5 dvd 3.8 M
  71. libstdc++-devel i386 4.1.-.el5 dvd 2.8 M
  72. libstdc++-devel x86_64 4.1.-.el5 dvd 2.8 M
  73. sysstat x86_64 7.0.-.el5 dvd k
  74. unixODBC i386 2.2.-.el5 dvd k
  75. unixODBC x86_64 2.2.-.el5 dvd k
  76. Installing for dependencies:
  77. glibc-devel x86_64 2.5- dvd 2.4 M
  78. glibc-headers x86_64 2.5- dvd k
  79. kernel-headers x86_64 2.6.-.el5 dvd 1.4 M
  80. unixODBC-libs i386 2.2.-.el5 dvd k
  81. unixODBC-libs x86_64 2.2.-.el5 dvd k
  82.  
  83. Transaction Summary
  84. =====================================================================================================================================================
  85. Install Package(s)
  86. Upgrade Package(s)
  87.  
  88. Total download size: M
  89. Downloading Packages:
  90. -----------------------------------------------------------------------------------------------------------------------------------------------------
  91. Total MB/s | MB :
  92. Running rpm_check_debug
  93. Running Transaction Test
  94. Finished Transaction Test
  95. Transaction Test Succeeded
  96. Running Transaction
  97. Installing : unixODBC-libs /
  98. Installing : kernel-headers /
  99. Installing : glibc-headers /
  100. Installing : glibc-devel /
  101. Installing : libstdc++-devel /
  102. Installing : unixODBC /
  103. Installing : sysstat /
  104. Installing : libstdc++-devel /
  105. Installing : unixODBC-libs /
  106. Installing : gcc /
  107. Installing : gcc-c++ /
  108. Installing : unixODBC /
  109. Installed products updated.
  110.  
  111. Installed:
  112. gcc.x86_64 :4.1.-.el5 gcc-c++.x86_64 :4.1.-.el5 libstdc++-devel.i386 :4.1.-.el5 libstdc++-devel.x86_64 :4.1.-.el5
  113. sysstat.x86_64 :7.0.-.el5 unixODBC.i386 :2.2.-.el5 unixODBC.x86_64 :2.2.-.el5
  114.  
  115. Dependency Installed:
  116. glibc-devel.x86_64 :2.5- glibc-headers.x86_64 :2.5- kernel-headers.x86_64 :2.6.-.el5 unixODBC-libs.i386 :2.2.-.el5
  117. unixODBC-libs.x86_64 :2.2.-.el5
  118.  
  119. Complete!

最后检查

  1. [root@testdb11a ~]# rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n' binutils compat-libstdc++- elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers ksh libaio libaio-devel libgcc-4.1. libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel
  2. binutils-2.17.50.0.-.el5 (x86_64)
  3. compat-libstdc++--3.2.- (x86_64)
  4. compat-libstdc++--3.2.- (i386)
  5. elfutils-libelf-0.137-.el5 (x86_64)
  6. elfutils-libelf-0.137-.el5 (i386)
  7. elfutils-libelf-devel-0.137-.el5 (i386)
  8. elfutils-libelf-devel-0.137-.el5 (x86_64)
  9. gcc-4.1.-.el5 (x86_64)
  10. gcc-c++-4.1.-.el5 (x86_64)
  11. glibc-2.5- (x86_64)
  12. glibc-2.5- (i686)
  13. glibc-common-2.5- (x86_64)
  14. glibc-devel-2.5- (x86_64)
  15. glibc-headers-2.5- (x86_64)
  16. ksh--.el5 (x86_64)
  17. libaio-0.3.- (x86_64)
  18. libaio-0.3.- (i386)
  19. libaio-devel
  20. libgcc-4.1.-.el5 (x86_64)
  21. libgcc-4.1.-.el5 (i386)
  22. libstdc++-4.1.-.el5 (x86_64)
  23. libstdc++-4.1.-.el5 (i386)
  24. libstdc++-devel-4.1.-.el5 (i386)
  25. libstdc++-devel-4.1.-.el5 (x86_64)
  26. make-3.81-.el5 (x86_64)
  27. sysstat-7.0.-.el5 (x86_64)
  28. unixODBC-2.2.-.el5 (x86_64)
  29. unixODBC-2.2.-.el5 (i386)
  30. unixODBC-devel-2.2.-.el5 (x86_64)
  31. unixODBC-devel-2.2.-.el5 (i386)

已经全部安装~~~

(7)设置grid和oracle的环境变量

grid用户:

  1. [root@localhost ~]# su - grid
  2. [grid@testdb11a ~]$ vi .bash_profile
  3.  
  4. # .bash_profile
  5.  
  6. # Get the aliases and functions
  7. if [ -f ~/.bashrc ]; then
  8. . ~/.bashrc
  9. fi
  10.  
  11. # User specific environment and startup programs
  12.  
  13. PATH=$PATH:$HOME/bin
  14.  
  15. #export PATH
  16. ##################################################
  17. # User specific environment and startup programs #
  18. ##################################################
  19. export ORACLE_BASE=/u01/app/grid
  20. ####export ORACLE_HOME=$ORACLE_BASE/grid/product/11.2.0
  1. export ORACLE_HOME=/u01/app/11.2.0/grid ####这里一定不能使用上面的安装目录,否则在安装grid Infrastructure的时候包INS-32026
  1. export ORACLE_PATH=$ORACLE_BASE/common/oracle/sql:.:$ORACLE_HOME/rdbms/admin
  2. export ORACLE_SID=+ASM1
  3. export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin:$ORACLE_HOME/bin
  4. export ORACLE_TERM=xterm
  5. #export TNS_ADMIN=$ORACLE_HOME/network/admin
  6. export LD_LIBRARY_PATH=$ORACLE_HOME/lib
  7. export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
  8. export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
  9. export CLASSPATH=$ORACLE_HOME/JRE
  10. export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
  11. export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
  12. export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
  13. export THREADS_FLAG=native
  14. export TEMP=/tmp
  15. export TMPDIR=/tmp
  16. ##################################################
  17. # set NLS_LANG to resolve messy code in SQLPLUS #
  18. ##################################################
  19. export NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1
  20. ##################################################
  21. # Shell setting. #
  22. ##################################################
  23. umask
  24. set -o vi
  25. export PS1="\${ORACLE_SID}@`hostname` \${PWD}$ "

oracle用户:

  1. [root@localhost ~]# su - oracle
  2. dbrac1@testdb11a /home/oracle$ cat .bash_profile
  3. # .bash_profile
  4.  
  5. # Get the aliases and functions
  6. if [ -f ~/.bashrc ]; then
  7. . ~/.bashrc
  8. fi
  9.  
  10. # User specific environment and startup programs
  11.  
  12. PATH=$PATH:$HOME/bin
  13.  
  14. #export PATH
  15. ##################################################
  16. # User specific environment and startup programs#
  17. ##################################################
  18. export ORACLE_BASE=/u01/app/oracle
  19. export ORACLE_HOME=$ORACLE_BASE/product/11.2.
  20. export ORACLE_PATH=$ORACLE_BASE/common/oracle/sql:.:$ORACLE_HOME/rdbms/admin
  21. export ORACLE_SID=db111
  22. export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin:$ORACLE_HOME/bin
  23. export ORACLE_TERM=xterm
  24. #export TNS_ADMIN=$ORACLE_HOME/network/admin
  25. export LD_LIBRARY_PATH=$ORACLE_HOME/lib
  26. export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
  27. export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
  28. export CLASSPATH=$ORACLE_HOME/JRE
  29. export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
  30. export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
  31. export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
  32. export THREADS_FLAG=native
  33. export TEMP=/tmp
  34. export TMPDIR=/tmp
  35. ##################################################
  36. # set NLS_LANG to resolve messy code in SQLPLUS
  37. ##################################################
  38. export NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1
  39. ##################################################
  40. # Shell setting.
  41. ##################################################
  42. umask
  43. set -o vi
  44. export PS1="\${ORACLE_SID}@`hostname` \${PWD}$ "

(8)创建共享磁盘

[root@testdb11a dev]# ls sd*
sda sda1 sda2 sdb sdc sdd sde

分区

  1. [root@testdb11a dev]# fdisk /dev/sdb
  2.  
  3. Command (m for help): n
  4. Command action
  5. e extended
  6. p primary partition (-)
  7. p
  8. Partition number (-):
  9. First cylinder (-, default ):
  10. Using default value
  11. Last cylinder or +size or +sizeM or +sizeK (-, default ):
  12. Using default value
  13.  
  14. Command (m for help): w
  15. The partition table has been altered!
  16.  
  17. Calling ioctl() to re-read partition table.
  18. Syncing disks.

后面的sdc,sdd,sde执行相同的操作

  1. [root@testdb11a dev]# ls sd*
  2. sda sda1 sda2 sdb sdb1 sdc sdc1 sdd sdd1 sde sde1

绑定裸设备

编辑文件/etc/sysconfig/rawdevice
  1. [root@testdb11a ~]# vi /etc/sysconfig/rawdevices
  2.  
  3. # raw device bindings
  4. # format: <rawdev> <major> <minor>
  5. # <rawdev> <blockdev>
  6. # example: /dev/raw/raw1 /dev/sda1
  7. # /dev/raw/raw2
  8. /dev/raw/raw1 /dev/sdb1
  9. /dev/raw/raw2 /dev/sdc1
  10. /dev/raw/raw3 /dev/sdd1
  11. /dev/raw/raw4 /dev/sde1

启动rawdevice

  1. [root@testdb11a ~]# /etc/init.d/rawdevices start
  2. Assigning devices:
  3. /dev/raw/raw1 --> /dev/sdb1
  4. /dev/raw/raw1: bound to major , minor
  5. /dev/raw/raw2 --> /dev/sdc1
  6. /dev/raw/raw2: bound to major , minor
  7. /dev/raw/raw3 --> /dev/sdd1
  8. /dev/raw/raw3: bound to major , minor
  9. /dev/raw/raw4 --> /dev/sde1
  10. /dev/raw/raw4: bound to major , minor
  11. done

查看

  1. [root@testdb11a ~]# raw -qa
  2. /dev/raw/raw1: bound to major , minor
  3. /dev/raw/raw2: bound to major , minor
  4. /dev/raw/raw3: bound to major , minor
  5. /dev/raw/raw4: bound to major , minor

修改设备权限

  1. [root@testdb11a raw]# ll
  2. total
  3. crw------- root root , Sep : raw1
  4. crw------- root root , Sep : raw2
  5. crw------- root root , Sep : raw3
  6. crw------- root root , Sep : raw4
  7. [root@testdb11a raw]# chown grid:asmdba /dev/raw/raw[-]
  8. [root@testdb11a raw]# chmod /dev/raw/raw[-]
  9. [root@testdb11a raw]# ll
  10. total
  11. crw-rw---- grid asmdba , Sep : raw1
  12. crw-rw---- grid asmdba , Sep : raw2
  13. crw-rw---- grid asmdba , Sep : raw3
  14. crw-rw---- grid asmdba , Sep : raw4

设置重启自动修改设备权限

编辑/etc/rc.d/rc.local

  1. 加入
  2. chown grid:asmdba /dev/raw/raw[-]
  3. chmod /dev/raw/raw[-]

PS:需要安装vm-tools

4,配置副节点

(1)关闭系统

  1. [root@testdb11a ~]# shutdown -h
  2.  
  3. Broadcast message from root (pts/) (Mon Sep :: ):
  4.  
  5. The system is going down for system halt NOW!

(2)克隆主节点

把克隆的节点放到对应的目录下
 
 
 (3)在主节点二节点的虚拟机.vmx参数文件中加入
  1. disk.locking="false"
  2. diskLib.dataCacheMaxSize = ""
  3. diskLib.dataCacheMaxReadAheadSize = ""
  4. diskLib.DataCacheMinReadAheadSize = ""
  5. diskLib.dataCachePageSize = ""
  6. diskLib.maxUnsyncedWrites = ""
  7. scsi1:.deviceType = "disk"
  8. scsi1:.deviceType = "disk"
  9. scsi1:.deviceType = "disk"
  10. scsi1:.deviceType = "disk"
  11. disk.EnableUUID ="true"  
启动rac1和rac2两个虚拟机
(4)修改二节点中的与一节点中不同的配置
root用户登录系统,修改网络参数
  • hostname: testdb11b
  • IP Address eth0: 192.168.1.21 (public address)
  • Default Gateway eth0: 192.168.1.1 (public address)
  • IP Address eth1: 192.168.2.21 (private address)
  • Default Gateway eth1: none
 修改主机名
  1. [root@testdb11a ~]# vi /etc/sysconfig/network
  2. NETWORKING=yes
  3. NETWORKING_IPV6=yes
  4. HOSTNAME=testdb11b
 修改IP地址(ifcfg-eth0和ifcfg-eth1两个文件)
  1. [root@testdb11a ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
  2. # Intel Corporation 82545EM Gigabit Ethernet Controller (Copper)
  3. DEVICE=eth0
  4. BOOTPROTO=static
  5. IPADDR=192.168.1.21
  6. NETMASK=255.255.255.0
  7. GATAWAY=192.168.1.1
  8. ONBOOT=yes
  9. HWADDR=:0c::b6::
  10. [root@testdb11a ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth1
  11. # Intel Corporation 82545EM Gigabit Ethernet Controller (Copper)
  12. DEVICE=eth1
  13. BOOTPROTO=static
  14. IPADDR=192.168.2.21
  15. NETMASK=255.255.255.0
  16. ONBOOT=yes
  17. HWADDR=:0c::b6::5e

修改环境变量

grid用户
  1. .bash_profile 中的 export ORACLE_SID=+ASM2

oracle用户

  1. .bash_profile文件的export ORACLE_SID=db112

在rac2上查看共享磁盘

  1. [root@testdb11a raw]# raw -qa
  2. /dev/raw/raw1: bound to major , minor
  3. /dev/raw/raw2: bound to major , minor
  4. /dev/raw/raw3: bound to major , minor
  5. /dev/raw/raw4: bound to major , minor
  6. [root@testdb11a raw]# cd /dev/raw
  7. [root@testdb11a raw]# ll
  8. total
  9. crw-rw---- grid asmdba , Sep : raw1
  10. crw-rw---- grid asmdba , Sep : raw2
  11. crw-rw---- grid asmdba , Sep : raw3
  12. crw-rw---- grid asmdba , Sep : raw4

重启二节点虚拟机

执行

  1. ping -c testdb11a
  2. ping -c testdb11b
  3. ping -c testdb11a-priv
  4. ping -c testdb11b-priv

保证两台虚拟机之间网络互通

在安装之前,软件解压包的目录下有一个节点间校验系统要求的工具,可以使用下面的命令进行校验预安装要求,但是使用这个工具必须配置ssh互信,所有这里就不做校验

  1. ./runcluvfy.sh stage -pre crsinst -n testdb11a,testdb11b -verbose
 三,安装grid Infrastructure
(1)通过ftp或者其他方式上传软件,并解压
创建一个放置oracle软件的目录
  1. mkdir -p /oracle/media
  2. chown -R oracle:oinstall /oracle/media
  3. chmod -R /oracle/media
  1. [root@testdb11a media]# ll
  2. total
  3. -rw-r--r-- oracle oinstall Nov p10404530_112030_Linux-x86-64_1of7.zip
  4. -rw-r--r-- oracle oinstall Nov p10404530_112030_Linux-x86-64_2of7.zip ----上面两个为数据库软件
  5. -rw-r--r-- grid oinstall Sep : p10404530_112030_Linux-x86-64_3of7.zip ----grid 软件
  6. [root@testdb11a media]#

解压

  1. [root@testdb11a app]# cd /oracle/media/
  2. [root@testdb11a media]# ll
  3. total
  4. drwxr-xr-x oracle oinstall Sep database
  5. drwxr-xr-x grid oinstall Sep grid
  6. [root@testdb11a media]#

在/oracle/media/grid/rpm这个目录下有个cvuqdisk-1.0.9-1.rpm包,在两个节点上安装

  1. scp cvuqdisk-1.0.-.rpm testdb11b:/home/grid
  2. [root@testdb11b grid]# rpm -ivh cvuqdisk-1.0.-.rpm
  3. Preparing... ########################################### [%]
  4. Using default group oinstall to install package
  5. :cvuqdisk ########################################### [%]

(2)启动图形界面

执行./runInstaller

跳过软件更新

选择“install and Configure Grid Infrastructure for a Cluster ”

选择“Typical Installation”

输入正确的SCAN名,点击Add把另一个节点加入

填入二节点的正确的Hostname和vip name

点击“SSH Connectivity”,输入grid的密码,点击“Setup”配置互信(备注:下面的这幅截图SCAN Name写错了,应该是testdb11-scan,和hosts文件中的相同

出现上面的提示,则互信配置成功,下面点击“Test”进行测试

点击“Identify network interfaces..”检查网络配置是否正确,确认无误后,点击“OK”

输入grid的安装目录,选择“Oracle Automatic Storage Management ”,输入ASM的密码,下一步

使用简单密码,继续

选择“External”,选择所有的磁盘,如果磁盘不显示,点击“Change Discovery Path”,输入“/dev/raw/raw*”

默认

下面的这几个警告可以忽略,勾选"Ignore All",继续(说明,下图中第三个警告不能跳过)

安装

提示需要执行两个脚本

执行结果如下

节点一,节点二

在这里二节点执行root.sh的时候报错

  1. CRS-: IP Address: 192.168.1.24 is already in use in the network
  2. . For details refer to "(:CLSN00107:)" in "/u01/app/11.2.0/grid/log/testdb11b/agent/crsd/orarootagent_root/orarootagent_root.log".

出现上面的错误的原因是:我没有配置dns服务,只在hosts文件中加入了相应的scan-ip,希望能骗过oracle,但是这种做法在11.2.0.2开始这种做法已经不可取,所以只能配置dns去解决。下面的安装软件过程中检测出来的错误,在11.2.0.2之前是不检查/etc/resolv.conf这个文件的(两个节点都需要配置)

重新执行脚本,

显示成功后,点击OK继续安装

查看日志

  1. INFO: Checking Single Client Access Name (SCAN)...
  2. INFO: ERROR:
  3. INFO: PRVF- : Scan Listener "LISTENER_SCAN1" not running
  4. INFO: Checking name resolution setup for "testdb11-scan"...
  5. INFO: ERROR:
  6. INFO: PRVF- : Name resolution setup check for "testdb11-scan" (IP address: 192.168.1.25) failed
  7. INFO: ERROR:
  8. INFO: PRVF- : Name resolution setup check for "testdb11-scan" (IP address: 192.168.1.26) failed
  9. INFO: ERROR:
  10. INFO: PRVF- : Found inconsistent name resolution entries for SCAN name "testdb11-scan"
  11. INFO: Verification of SCAN VIP and Listener setup failed

可以放心跳过

四,安装数据库软件

进入oracle用户,database目录,执行

  1. ./runInstaller

点击下一步

点击“SSH Connectivity”配置oracle用户的节点间互信。然后点击“Setup”,并“Test”

选择语言,然后下一步

选择企业版

选择安装路径

选择管理组

先决条件检查,选择忽略

我分配的内存为1GB,内存绝对不能小于1GB推荐最小1.5g。卡在56%半天才过去

执行脚本

执行完成后,点击OK,database soft安装完成

五,使用DBCA进行建库

出现上面的结果,表明顺利安装完成!

验证:

查看两个节点的服务状态:

  1. [root@testdb11a db11]# /u01/app/11.2./grid/bin/crs_stat -t -v
  2. Name Type R/RA F/FT Target State Host
  3. ----------------------------------------------------------------------
  4. ora.DATA.dg ora....up.type / / ONLINE ONLINE testdb11a
  5. ora....ER.lsnr ora....er.type / / ONLINE ONLINE testdb11a
  6. ora....N1.lsnr ora....er.type / / ONLINE ONLINE testdb11a
  7. ora.asm ora.asm.type / / ONLINE ONLINE testdb11a
  8. ora.cvu ora.cvu.type / / ONLINE ONLINE testdb11a
  9. ora.db11.db ora....se.type / / ONLINE ONLINE testdb11a
  10. ora.gsd ora.gsd.type / / OFFLINE OFFLINE
  11. ora....network ora....rk.type / / ONLINE ONLINE testdb11a
  12. ora.oc4j ora.oc4j.type / / ONLINE ONLINE testdb11a
  13. ora.ons ora.ons.type / / ONLINE ONLINE testdb11a
  14. ora....ry.acfs ora....fs.type / / ONLINE ONLINE testdb11a
  15. ora.scan1.vip ora....ip.type / / ONLINE ONLINE testdb11a
  16. ora....SM1.asm application / / ONLINE ONLINE testdb11a
  17. ora....1A.lsnr application / / ONLINE ONLINE testdb11a
  18. ora....11a.gsd application / / OFFLINE OFFLINE
  19. ora....11a.ons application / / ONLINE ONLINE testdb11a
  20. ora....11a.vip ora....t1.type / / ONLINE ONLINE testdb11a
  21. ora....SM2.asm application / / ONLINE ONLINE testdb11b
  22. ora....1B.lsnr application / / ONLINE ONLINE testdb11b
  23. ora....11b.gsd application / / OFFLINE OFFLINE
  24. ora....11b.ons application / / ONLINE ONLINE testdb11b
  25. ora....11b.vip ora....t1.type / / ONLINE ONLINE testdb11b

说明:gsd是在9i rac中用于管理客户端的服务,11g默认的关闭的。

查看数据库状态

  1. db112@testdb11b /home/oracle$ sqlplus / as sysdba
  2.  
  3. SQL*Plus: Release 11.2.0.3. Production on Sun Sep ::
  4.  
  5. Copyright (c) , , Oracle. All rights reserved.
  6.  
  7. Connected to:
  8. Oracle Database 11g Enterprise Edition Release 11.2.0.3. - 64bit Production
  9. With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
  10. Data Mining and Real Application Testing options
  11.  
  12. SQL> select instance_name,status from gv$instance;
  13.  
  14. INSTANCE_NAME STATUS
  15. ---------------- ------------
  16. db111 OPEN
  17. db112 OPEN

SQL> select * from v$active_instances;

  1.  

INST_NUMBER INST_NAME
----------- ------------------------------------------------------------
1 testdb11a:db111
2 testdb11b:db112

  1. db111@testdb11a /home/oracle$ srvctl config database -d db11
  2. Database unique name: db11
  3. Database name: db11
  4. Oracle home: /u01/app/oracle/product/11.2.
  5. Oracle user: oracle
  6. Spfile: +DATA/db11/spfiledb11.ora
  7. Domain:
  8. Start options: open
  9. Stop options: immediate
  10. Database role: PRIMARY
  11. Management policy: AUTOMATIC
  12. Server pools: db11
  13. Database instances: db111,db112
  14. Disk Groups: DATA
  15. Mount point paths:
  16. Services:
  17. Type: RAC
  18. Database is administrator managed
  19. db111@testdb11a /home/oracle$ srvctl status database -d db11
  20. Instance db111 is running on node testdb11a
  21. Instance db112 is running on node testdb11b

 六,遇到的问题

问题1:二节点执行root.sh脚本报错

问题2:只能看到一个节点

解决:oracle 11g RAC安装节点二执行结果错误CRS-5005: IP Address: 192.168.1.24 is already in use in the network

Oracle Database 11g Release 2(11.2.0.3.0) RAC On Redhat Linux 5.8 Using Vmware Workstation 9.0的更多相关文章

  1. Opatching PSU in Oracle Database 11g Release 2 RAC on RHEL6

    Opatching PSU in Oracle Database 11g Release 2(11.2.0.4) RAC on RHEL6 1) 升级opatch工具 1.1) For GI home ...

  2. Oracle Database 11g Release 2 Standard Edition and Enterprise Edition Software Downloads

    Oracle Database 11g Release 2 Standard Edition and Enterprise Edition Software DownloadsOracle 数据库 1 ...

  3. 在redhat6.4下安装 Oracle® Database 11g Release 2

    OS版本: 安装过程的相关信息: pdksh 安装好后根据需要设置oracle开机自启动http://www.cnblogs.com/softidea/p/3761671.html 设置环境变量NLS ...

  4. Install Oracle 11G Release 2 (11.2) on Centos Linux 7

    Install Oracle 11G Release 2 (11.2) on Centos Linux 7 This article presents how to install Oracle 11 ...

  5. Oracle Database 11G R2 标准版 企业版 下载地址(转)

    转自:http://blog.itpub.net/628922/viewspace-759245/ 不需要注册,直接复制到迅雷或其他下载软件中即可下载. oracle 11.2.0.3 下载地址: L ...

  6. Install Oracle 11G Release 2 (11.2) on Oracle Linux 7 (OEL7)

    Install Oracle 11G Release 2 (11.2) on Oracle Linux 7 (OEL7) This article presents how to install Or ...

  7. 转: Windows下安装Oracle Database 12c Release 1(12.1.0.2.0) - Enterprise Edition

    http://www.cnblogs.com/xqzt/p/4395053.html Windows下安装Oracle Database 12c Release 1(12.1.0.2.0) - Ent ...

  8. Windows下安装Oracle Database 12c Release 1(12.1.0.2.0) - Enterprise Edition

    Windows下安装Oracle Database 12c Release 1(12.1.0.2.0) 最近因需要在Oracle 数据库上建立ODI的资料档案库,需要安装Oracle Database ...

  9. Oracle Database 11g Express Edition学习笔记

    修改字符集 使用用户system,通过sqlplus程序连接到Oracle数据库,输入以下命令,查看字符集: SQL> select userenv('language') from dual; ...

随机推荐

  1. 仿QQ大战—服务器的搭建(ServerSocket)

    ServerSocket(服务器): ServerSocket是JAVA中提供的用于建立服务器的类: 在客户/服务器通信模式中, 服务器端需要创建监听端口的 ServerSocket, ServerS ...

  2. 快速上手php:使用PhpStrom调试php

    闲话 使用phpStrom的时候居然不打印到控制台,要打印测试的话就要输出到页面,目前我还不知道有什么好办法像jsp一样输出到页面的同时也打印到控制台.这种做法还是比较烦的,特别出问题需要调试的时候. ...

  3. 配置OWASP的ModSecurity规则

    1.下载OWASP的ModSecurity规则 cd /etc/httpd git clone https://github.com/SpiderLabs/owasp-modsecurity-crs. ...

  4. XInitThreads与XLIB

    XInitThreads函数通常需要尽早调用,一般要在XLIB的其他函数前调用 否则XLIB的函数可能会在调用时直接崩溃(多线程程序中) 最好的做法是,在main入口即调用XInitThreads函数

  5. 通过ipv6访问 g o o g l e

    Google.Youtube.Facebook等均支持IPv6访问,IPv4网络的用户大部分都无法访问,比如Gmail,Google Docs等等各种相关服务.而该类网站大部分均已接入IPv6网络,因 ...

  6. js中的逻辑与(&&)和逻辑或(||)

    之前有一个同事去面试,面试过程中碰到这样一个问题: 在js中写出如下的答案 : var a = 2; var b = 3; var andflag = a && b ; var orf ...

  7. 3、CCS样式表

    一.CCS样式表的分类(优先级从低到高): 1.浏览器默认样式表 2.外部样式表:在外部创建的.ccs文件中.使用外部样式表可以使样式应用于多个网页.通过这个方法只需改动一个文件就能改变整个网站的外观 ...

  8. SQL 的坑1 除法“”不可用“”

    今天工作中遇见 一问题,有5各部分,现要求5个部分各自的比例,SQL语句没有问题,后来还试了"加","减","乘","Round& ...

  9. iOS开发UI中懒加载的使用方法

    1.懒加载基本 懒加载——也称为延迟加载,即在需要的时候才加载(效率低,占用内存小).所谓懒加载,写的是其getter方法.说的通俗一点,就是在开发中,当程序中需要利用的资源时.在程序启动的时候不加载 ...

  10. Linux启动新进程的几种方法汇总

    有时候,我们需要在自己的程序(进程)中启动另一个程序(进程)来帮助我们完成一些工作,那么我们需要怎么才能在自己的进程中启动其他的进程呢?在Linux中提供了不少的方法来实现这一点,下面就来介绍一个这些 ...