手把手一起安装RAC+DataGuard
RAC集群软件存在两大核心部分:表决磁盘、OCR.
脚本
1、a_preusers.sh
#!/bin/bash #Purpose:Create 6 groups named 'oinstall','dba','asmadmin','asmdba','asmoper','oper', plus 2 users named 'oracle','grid'. #Also setting the Environment #variable for oracle user. #variable for grid user. #Usage:Log on as the superuser('root'),and then execute the command:#./1preusers.sh #Author:Asher Huang echo "Now create 6 groups named 'oinstall','dba','asmadmin','asmdba','asmoper','oper'" echo "Plus 2 users named 'oracle','grid',Also setting the Environment" groupadd -g 1000 oinstall groupadd -g 1200 asmadmin groupadd -g 1201 asmdba groupadd -g 1202 asmoper useradd -u 1100 -g oinstall -G asmadmin,asmdba,asmoper -d /home/grid -s /bin/bash -c "grid Infrastructure Owner" grid echo "grid" | passwd --stdin grid echo 'export PS1="`/bin/hostname -s`-> "'>> /home/grid/.bash_profile echo "export TMP=/tmp">> /home/grid/.bash_profile echo 'export TMPDIR=$TMP'>>/home/grid/.bash_profile echo "export ORACLE_SID=+ASM1">> /home/grid/.bash_profile echo "export ORACLE_BASE=/u01/app/grid">> /home/grid/.bash_profile echo "export ORACLE_HOME=/u01/app/11.2.0/grid">> /home/grid/.bash_profile echo "export ORACLE_TERM=xterm">> /home/grid/.bash_profile echo "export NLS_DATE_FORMAT='yyyy/mm/dd hh24:mi:ss'" >> /home/grid/.bash_profile echo 'export TNS_ADMIN=$ORACLE_HOME/network/admin' >> /home/grid/.bash_profile echo 'export PATH=/usr/sbin:$PATH'>> /home/grid/.bash_profile echo 'export PATH=$ORACLE_HOME/bin:$PATH'>> /home/grid/.bash_profile echo 'export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib' >> /home/grid/.bash_profile echo 'export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib' >> /home/grid/.bash_profile echo "export EDITOR=vi" >> /home/grid/.bash_profile echo "export LANG=en_US" >> /home/grid/.bash_profile echo "export NLS_LANG=american_america.AL32UTF8" >> /home/grid/.bash_profile echo "umask 022">> /home/grid/.bash_profile groupadd -g 1300 dba groupadd -g 1301 oper useradd -u 1101 -g oinstall -G dba,oper,asmdba -d /home/oracle -s /bin/bash -c "Oracle Software Owner" oracle echo "oracle" | passwd --stdin oracle echo 'export PS1="`/bin/hostname -s`-> "' >> /home/oracle/.bash_profile echo "export TMP=/tmp" >> /home/oracle/.bash_profile echo 'export TMPDIR=$TMP'>>/home/oracle/.bash_profile echo "export ORACLE_HOSTNAME=node1.localdomain">> /home/oracle/.bash_profile echo "export ORACLE_SID=devdb1">> /home/oracle/.bash_profile echo "export ORACLE_BASE=/u01/app/oracle">> /home/oracle/.bash_profile echo 'export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1'>> /home/oracle/.bash_profile echo "export ORACLE_UNQNAME=devdb">> /home/oracle/.bash_profile echo 'export TNS_ADMIN=$ORACLE_HOME/network/admin' >> /home/oracle/.bash_profile echo "export ORACLE_TERM=xterm">> /home/oracle/.bash_profile echo 'export PATH=/usr/sbin:$PATH'>> /home/oracle/.bash_profile echo 'export PATH=$ORACLE_HOME/bin:$PATH'>> /home/oracle/.bash_profile echo 'export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib'>> /home/oracle/.bash_profile echo 'export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib' >> /home/oracle/.bash_profile echo "export EDITOR=vi" >> /home/oracle/.bash_profile echo "export LANG=en_US" >> /home/oracle/.bash_profile echo "export NLS_LANG=american_america.AL32UTF8" >> /home/oracle/.bash_profile echo "export NLS_DATE_FORMAT='yyyy/mm/dd hh24:mi:ss'" >> /home/oracle/.bash_profile echo "umask 022">> /home/oracle/.bash_profile echo "The Groups and users has been created" echo "The Environment for grid,oracle also has been set successfully"
- 在node1上执行完此脚本,注意修改在node上执行完成此脚本之后,需要手工修改一些参数,因为脚本中的设置是基于node1上的修改.不适合node2上的参数
- 在node2上将export ORACLE_HOSTNAME=node1.localdomain修改为export ORACLE_HOSTNAME=node2.localdomain
- 在node2上,在oracle用户下的.bash_profile中,将ORACLE_SID=devdb1修改为ORACLE_SID=devdb2
- 在node2上,在grid用户下的.bash_profile中,将export ORACLE_SID=+ASM1修改为export ORACLE_SID=+ASM2
2、b_predir.sh
#!/bin/bash #Purpose:Create the necessary directory for oracle,grid users and change the authention to oracle,grid users. #Usage:Log on as the superuser('root'),and then execute the command:#./2predir.sh #Author:Asher Huang echo "Now create the necessary directory for oracle,grid users and change the authention to oracle,grid users..." mkdir -p /u01/app/grid mkdir -p /u01/app/11.2.0/grid mkdir -p /u01/app/oracle chown -R oracle:oinstall /u01 chown -R grid:oinstall /u01/app/grid chown -R grid:oinstall /u01/app/11.2.0 chmod -R 775 /u01 echo "The necessary directory for oracle,grid users and change the authention to oracle,grid users has been finished"
3、c_prelimits.sh
#!/bin/bash #Purpose:Change the /etc/security/limits.conf. #Usage:Log on as the superuser('root'),and then execute the command:#./3prelimits.sh #Author:Asher Huang echo "Now modify the /etc/security/limits.conf,but backup it named /etc/security/limits.conf.bak before" cp /etc/security/limits.conf /etc/security/limits.conf.bak echo "oracle soft nproc 2047" >>/etc/security/limits.conf echo "oracle hard nproc 16384" >>/etc/security/limits.conf echo "oracle soft nofile 1024" >>/etc/security/limits.conf echo "oracle hard nofile 65536" >>/etc/security/limits.conf echo "grid soft nproc 2047" >>/etc/security/limits.conf echo "grid hard nproc 16384" >>/etc/security/limits.conf echo "grid soft nofile 1024" >>/etc/security/limits.conf echo "grid hard nofile 65536" >>/etc/security/limits.conf echo "Modifing the /etc/security/limits.conf has been succeed."
4、d_prelongi.sh
#!/bin/bash #Purpose:Modify the /etc/pam.d/login. #Usage:Log on as the superuser('root'),and then execute the command:#./4prelimits.sh #Author:Asher Huang echo "Now modify the /etc/pam.d/login,but with a backup named /etc/pam.d/login.bak" cp /etc/pam.d/login /etc/pam.d/login.bak echo "session required /lib/security/pam_limits.so" >>/etc/pam.d/login echo "session required pam_limits.so" >>/etc/pam.d/login echo "Modifing the /etc/pam.d/login has been succeed."
5、e_preprofile.sh
#!/bin/bash #Purpose:Modify the /etc/profile. #Usage:Log on as the superuser('root'),and then execute the command:#./5preprofile.sh #Author:Asher Huang echo "Now modify the /etc/profile,but with a backup named /etc/profile.bak" cp /etc/profile /etc/profile.bak echo 'if [ $USER = "oracle" ]||[ $USER = "grid" ]; then' >> /etc/profile echo 'if [ $SHELL = "/bin/ksh" ]; then' >> /etc/profile echo 'ulimit -p 16384' >> /etc/profile echo 'ulimit -n 65536' >> /etc/profile echo 'else' >> /etc/profile echo 'ulimit -u 16384 -n 65536' >> /etc/profile echo 'fi' >> /etc/profile echo 'fi' >> /etc/profile echo "Modifing the /etc/profile has been succeed."
6、f_presysctl.sh
#!/bin/bash #Purpose:Modify the /etc/sysctl.conf. #Usage:Log on as the superuser('root'),and then execute the command:#./6presysctl.sh #Author:Asher Huang echo "Now modify the /etc/sysctl.conf,but with a backup named /etc/sysctl.bak" cp /etc/sysctl.conf /etc/sysctl.conf.bak echo "fs.aio-max-nr = 1048576" >> /etc/sysctl.conf echo "fs.file-max = 6815744" >> /etc/sysctl.conf echo "kernel.shmall = 2097152" >> /etc/sysctl.conf echo "kernel.shmmax = 1054472192" >> /etc/sysctl.conf echo "kernel.shmmni = 4096" >> /etc/sysctl.conf echo "kernel.sem = 250 32000 100 128" >> /etc/sysctl.conf echo "net.ipv4.ip_local_port_range = 9000 65500" >> /etc/sysctl.conf echo "net.core.rmem_default = 262144" >> /etc/sysctl.conf echo "net.core.rmem_max = 4194304" >> /etc/sysctl.conf echo "net.core.wmem_default = 262144" >> /etc/sysctl.conf echo "net.core.wmem_max = 1048586" >> /etc/sysctl.conf echo "net.ipv4.tcp_wmem = 262144 262144 262144" >> /etc/sysctl.conf echo "net.ipv4.tcp_rmem = 4194304 4194304 4194304" >> /etc/sysctl.conf echo "Modifing the /etc/sysctl.conf has been succeed." echo "Now make the changes take effect....." sysctl -p
双节点上配置内容
0、停止 ntp服务,11gR2新增的检查项
[root@node2 ~]# service ntpd status ntpd is stopped [root@node2 ~]# chkconfig ntpd off [root@node2 ~]# cp /etc/ntp.conf /etc/ntp.conf.bak [root@node2 ~]# rm -rf /etc/ntp.conf
两个节点都要执行
node1-> ./runcluvfy.sh stage -pre crsinst -n node1,node2 -fixup -verbose Performing pre-checks for cluster services setup Checking node reachability... Check: Node reachability from node "node1" Destination Node Reachable? ------------------------------------ ------------------------ node1 yes node2 yes Result: Node reachability check passed from node "node1" Checking user equivalence... Check: User equivalence for user "grid" Node Name Comment ------------------------------------ ------------------------ node2 passed node1 passed Result: User equivalence check passed for user "grid" Checking node connectivity... Checking hosts config file... Node Name Status Comment ------------ ------------------------ ------------------------ node2 passed node1 passed Verification of the hosts config file successful Interface information for node "node2" Name IP Address Subnet Gateway Def. Gateway HW Address MTU ------ --------------- --------------- --------------- --------------- ----------------- ------ eth0 192.168.1.192 192.168.1.0 0.0.0.0 192.168.1.1 00:0C:29:70:8F:EA 1500 eth1 192.168.137.12 192.168.137.0 0.0.0.0 192.168.1.1 00:0C:29:70:8F:F4 1500 Interface information for node "node1" Name IP Address Subnet Gateway Def. Gateway HW Address MTU ------ --------------- --------------- --------------- --------------- ----------------- ------ eth0 192.168.1.191 192.168.1.0 0.0.0.0 192.168.1.1 00:0C:29:A6:E0:06 1500 eth1 192.168.137.11 192.168.137.0 0.0.0.0 192.168.1.1 00:0C:29:A6:E0:10 1500 Check: Node connectivity of subnet "192.168.1.0" Source Destination Connected? ------------------------------ ------------------------------ ---------------- node2:eth0 node1:eth0 yes Result: Node connectivity passed for subnet "192.168.1.0" with node(s) node2,node1 Check: TCP connectivity of subnet "192.168.1.0" Source Destination Connected? ------------------------------ ------------------------------ ---------------- node1:192.168.1.191 node2:192.168.1.192 passed Result: TCP connectivity check passed for subnet "192.168.1.0" Check: Node connectivity of subnet "192.168.137.0" Source Destination Connected? ------------------------------ ------------------------------ ---------------- node2:eth1 node1:eth1 yes Result: Node connectivity passed for subnet "192.168.137.0" with node(s) node2,node1 Check: TCP connectivity of subnet "192.168.137.0" Source Destination Connected? ------------------------------ ------------------------------ ---------------- node1:192.168.137.11 node2:192.168.137.12 passed Result: TCP connectivity check passed for subnet "192.168.137.0" Interfaces found on subnet "192.168.1.0" that are likely candidates for VIP are: node2 eth0:192.168.1.192 node1 eth0:192.168.1.191 Interfaces found on subnet "192.168.137.0" that are likely candidates for a private interconnect are: node2 eth1:192.168.137.12 node1 eth1:192.168.137.11 Result: Node connectivity check passed Check: Total memory Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 1.96GB (2054996.0KB) 1.5GB (1572864.0KB) passed node1 1.96GB (2054996.0KB) 1.5GB (1572864.0KB) passed Result: Total memory check passed Check: Available memory Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 1.82GB (1903472.0KB) 50MB (51200.0KB) passed node1 1.75GB (1838776.0KB) 50MB (51200.0KB) passed Result: Available memory check passed Check: Swap space Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 5GB (5242876.0KB) 2.94GB (3082494.0KB) passed node1 5GB (5242876.0KB) 2.94GB (3082494.0KB) passed Result: Swap space check passed Check: Free disk space for "node2:/tmp" Path Node Name Mount point Available Required Comment ---------------- ------------ ------------ ------------ ------------ ------------ /tmp node2 / 11.4GB 1GB passed Result: Free disk space check passed for "node2:/tmp" Check: Free disk space for "node1:/tmp" Path Node Name Mount point Available Required Comment ---------------- ------------ ------------ ------------ ------------ ------------ /tmp node1 / 7.76GB 1GB passed Result: Free disk space check passed for "node1:/tmp" Check: User existence for "grid" Node Name Status Comment ------------ ------------------------ ------------------------ node2 exists passed node1 exists passed Result: User existence check passed for "grid" Check: Group existence for "oinstall" Node Name Status Comment ------------ ------------------------ ------------------------ node2 exists passed node1 exists passed Result: Group existence check passed for "oinstall" Check: Group existence for "dba" Node Name Status Comment ------------ ------------------------ ------------------------ node2 exists passed node1 exists passed Result: Group existence check passed for "dba" Check: Membership of user "grid" in group "oinstall" [as Primary] Node Name User Exists Group Exists User in Group Primary Comment ---------------- ------------ ------------ ------------ ------------ ------------ node2 yes yes yes yes passed node1 yes yes yes yes passed Result: Membership check for user "grid" in group "oinstall" [as Primary] passed Check: Membership of user "grid" in group "dba" Node Name User Exists Group Exists User in Group Comment ---------------- ------------ ------------ ------------ ---------------- node2 yes yes yes passed node1 yes yes yes passed Result: Membership check for user "grid" in group "dba" passed Check: Run level Node Name run level Required Comment ------------ ------------------------ ------------------------ ---------- node2 3 3,5 passed node1 3 3,5 passed Result: Run level check passed Check: Hard limits for "maximum open file descriptors" Node Name Type Available Required Comment ---------------- ------------ ------------ ------------ ---------------- node2 hard 65536 65536 passed node1 hard 65536 65536 passed Result: Hard limits check passed for "maximum open file descriptors" Check: Soft limits for "maximum open file descriptors" Node Name Type Available Required Comment ---------------- ------------ ------------ ------------ ---------------- node2 soft 1024 1024 passed node1 soft 1024 1024 passed Result: Soft limits check passed for "maximum open file descriptors" Check: Hard limits for "maximum user processes" Node Name Type Available Required Comment ---------------- ------------ ------------ ------------ ---------------- node2 hard 16384 16384 passed node1 hard 16384 16384 passed Result: Hard limits check passed for "maximum user processes" Check: Soft limits for "maximum user processes" Node Name Type Available Required Comment ---------------- ------------ ------------ ------------ ---------------- node2 soft 2047 2047 passed node1 soft 2047 2047 passed Result: Soft limits check passed for "maximum user processes" Check: System architecture Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 x86_64 x86_64 passed node1 x86_64 x86_64 passed Result: System architecture check passed Check: Kernel version Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 2.6.39-200.24.1.el6uek.x86_64 2.6.9 passed node1 2.6.39-200.24.1.el6uek.x86_64 2.6.9 passed Result: Kernel version check passed Check: Kernel parameter for "semmsl" Node Name Configured Required Comment ------------ ------------------------ ------------------------ ---------- node2 250 250 passed node1 250 250 passed Result: Kernel parameter check passed for "semmsl" Check: Kernel parameter for "semmns" Node Name Configured Required Comment ------------ ------------------------ ------------------------ ---------- node2 32000 32000 passed node1 32000 32000 passed Result: Kernel parameter check passed for "semmns" Check: Kernel parameter for "semopm" Node Name Configured Required Comment ------------ ------------------------ ------------------------ ---------- node2 100 100 passed node1 100 100 passed Result: Kernel parameter check passed for "semopm" Check: Kernel parameter for "semmni" Node Name Configured Required Comment ------------ ------------------------ ------------------------ ---------- node2 128 128 passed node1 128 128 passed Result: Kernel parameter check passed for "semmni" Check: Kernel parameter for "shmmax" Node Name Configured Required Comment ------------ ------------------------ ------------------------ ---------- node2 1054472192 536870912 passed node1 1054472192 536870912 passed Result: Kernel parameter check passed for "shmmax" Check: Kernel parameter for "shmmni" Node Name Configured Required Comment ------------ ------------------------ ------------------------ ---------- node2 4096 4096 passed node1 4096 4096 passed Result: Kernel parameter check passed for "shmmni" Check: Kernel parameter for "shmall" Node Name Configured Required Comment ------------ ------------------------ ------------------------ ---------- node2 2097152 2097152 passed node1 2097152 2097152 passed Result: Kernel parameter check passed for "shmall" Check: Kernel parameter for "file-max" Node Name Configured Required Comment ------------ ------------------------ ------------------------ ---------- node2 6815744 6815744 passed node1 6815744 6815744 passed Result: Kernel parameter check passed for "file-max" Check: Kernel parameter for "ip_local_port_range" Node Name Configured Required Comment ------------ ------------------------ ------------------------ ---------- node2 between 9000 & 65500 between 9000 & 65500 passed node1 between 9000 & 65500 between 9000 & 65500 passed Result: Kernel parameter check passed for "ip_local_port_range" Check: Kernel parameter for "rmem_default" Node Name Configured Required Comment ------------ ------------------------ ------------------------ ---------- node2 262144 262144 passed node1 262144 262144 passed Result: Kernel parameter check passed for "rmem_default" Check: Kernel parameter for "rmem_max" Node Name Configured Required Comment ------------ ------------------------ ------------------------ ---------- node2 4194304 4194304 passed node1 4194304 4194304 passed Result: Kernel parameter check passed for "rmem_max" Check: Kernel parameter for "wmem_default" Node Name Configured Required Comment ------------ ------------------------ ------------------------ ---------- node2 262144 262144 passed node1 262144 262144 passed Result: Kernel parameter check passed for "wmem_default" Check: Kernel parameter for "wmem_max" Node Name Configured Required Comment ------------ ------------------------ ------------------------ ---------- node2 1048586 1048576 passed node1 1048586 1048576 passed Result: Kernel parameter check passed for "wmem_max" Check: Kernel parameter for "aio-max-nr" Node Name Configured Required Comment ------------ ------------------------ ------------------------ ---------- node2 1048576 1048576 passed node1 1048576 1048576 passed Result: Kernel parameter check passed for "aio-max-nr" Check: Package existence for "make-3.80" Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 make-3.81-20.el6 make-3.80 passed node1 make-3.81-20.el6 make-3.80 passed Result: Package existence check passed for "make-3.80" Check: Package existence for "binutils-2.15.92.0.2" Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 binutils-2.20.51.0.2-5.34.el6 binutils-2.15.92.0.2 passed node1 binutils-2.20.51.0.2-5.34.el6 binutils-2.15.92.0.2 passed Result: Package existence check passed for "binutils-2.15.92.0.2" Check: Package existence for "gcc-3.4.6" Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 gcc-4.4.7-3.el6 gcc-3.4.6 passed node1 gcc-4.4.7-3.el6 gcc-3.4.6 passed Result: Package existence check passed for "gcc-3.4.6" Check: Package existence for "libaio-0.3.105 (i386)" Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 libaio-0.3.106-5 (i386) libaio-0.3.105 (i386) passed node1 libaio-0.3.106-5 (i386) libaio-0.3.105 (i386) passed Result: Package existence check passed for "libaio-0.3.105 (i386)" Check: Package existence for "libaio-0.3.105 (x86_64)" Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 libaio-0.3.107-10.el6 (x86_64) libaio-0.3.105 (x86_64) passed node1 libaio-0.3.107-10.el6 (x86_64) libaio-0.3.105 (x86_64) passed Result: Package existence check passed for "libaio-0.3.105 (x86_64)" Check: Package existence for "glibc-2.3.4-2.41 (i686)" Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 glibc-2.12-1.107.el6 (i686) glibc-2.3.4-2.41 (i686) passed node1 glibc-2.12-1.107.el6 (i686) glibc-2.3.4-2.41 (i686) passed Result: Package existence check passed for "glibc-2.3.4-2.41 (i686)" Check: Package existence for "glibc-2.3.4-2.41 (x86_64)" Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 glibc-2.12-1.107.el6 (x86_64) glibc-2.3.4-2.41 (x86_64) passed node1 glibc-2.12-1.107.el6 (x86_64) glibc-2.3.4-2.41 (x86_64) passed Result: Package existence check passed for "glibc-2.3.4-2.41 (x86_64)" Check: Package existence for "compat-libstdc++-33-3.2.3 (i386)" Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 compat-libstdc++-33-3.2.3-61 (i386) compat-libstdc++-33-3.2.3 (i386) passed node1 compat-libstdc++-33-3.2.3-61 (i386) compat-libstdc++-33-3.2.3 (i386) passed Result: Package existence check passed for "compat-libstdc++-33-3.2.3 (i386)" Check: Package existence for "compat-libstdc++-33-3.2.3 (x86_64)" Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 compat-libstdc++-33-3.2.3-69.el6 (x86_64) compat-libstdc++-33-3.2.3 (x86_64) passed node1 compat-libstdc++-33-3.2.3-69.el6 (x86_64) compat-libstdc++-33-3.2.3 (x86_64) passed Result: Package existence check passed for "compat-libstdc++-33-3.2.3 (x86_64)" Check: Package existence for "elfutils-libelf-0.97 (x86_64)" Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 elfutils-libelf-0.152-1.el6 (x86_64) elfutils-libelf-0.97 (x86_64) passed node1 elfutils-libelf-0.152-1.el6 (x86_64) elfutils-libelf-0.97 (x86_64) passed Result: Package existence check passed for "elfutils-libelf-0.97 (x86_64)" Check: Package existence for "elfutils-libelf-devel-0.97" Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 elfutils-libelf-devel-0.152-1.el6 elfutils-libelf-devel-0.97 passed node1 elfutils-libelf-devel-0.152-1.el6 elfutils-libelf-devel-0.97 passed Result: Package existence check passed for "elfutils-libelf-devel-0.97" Check: Package existence for "glibc-common-2.3.4" Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 glibc-common-2.12-1.107.el6 glibc-common-2.3.4 passed node1 glibc-common-2.12-1.107.el6 glibc-common-2.3.4 passed Result: Package existence check passed for "glibc-common-2.3.4" Check: Package existence for "glibc-devel-2.3.4 (x86_64)" Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 glibc-devel-2.12-1.107.el6 (x86_64) glibc-devel-2.3.4 (x86_64) passed node1 glibc-devel-2.12-1.107.el6 (x86_64) glibc-devel-2.3.4 (x86_64) passed Result: Package existence check passed for "glibc-devel-2.3.4 (x86_64)" Check: Package existence for "glibc-headers-2.3.4" Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 glibc-headers-2.12-1.107.el6 glibc-headers-2.3.4 passed node1 glibc-headers-2.12-1.107.el6 glibc-headers-2.3.4 passed Result: Package existence check passed for "glibc-headers-2.3.4" Check: Package existence for "gcc-c++-3.4.6" Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 gcc-c++-4.4.7-3.el6 gcc-c++-3.4.6 passed node1 gcc-c++-4.4.7-3.el6 gcc-c++-3.4.6 passed Result: Package existence check passed for "gcc-c++-3.4.6" Check: Package existence for "libaio-devel-0.3.105 (i386)" Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 libaio-devel-0.3.105-2 (i386) libaio-devel-0.3.105 (i386) passed node1 libaio-devel-0.3.105-2 (i386) libaio-devel-0.3.105 (i386) passed Result: Package existence check passed for "libaio-devel-0.3.105 (i386)" Check: Package existence for "libaio-devel-0.3.105 (x86_64)" Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 libaio-devel-0.3.107-10.el6 (x86_64) libaio-devel-0.3.105 (x86_64) passed node1 libaio-devel-0.3.107-10.el6 (x86_64) libaio-devel-0.3.105 (x86_64) passed Result: Package existence check passed for "libaio-devel-0.3.105 (x86_64)" Check: Package existence for "libgcc-3.4.6 (i386)" Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 libgcc-3.4.6-8 (i386) libgcc-3.4.6 (i386) passed node1 libgcc-3.4.6-8 (i386) libgcc-3.4.6 (i386) passed Result: Package existence check passed for "libgcc-3.4.6 (i386)" Check: Package existence for "libgcc-3.4.6 (x86_64)" Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 libgcc-4.4.7-3.el6 (x86_64) libgcc-3.4.6 (x86_64) passed node1 libgcc-4.4.7-3.el6 (x86_64) libgcc-3.4.6 (x86_64) passed Result: Package existence check passed for "libgcc-3.4.6 (x86_64)" Check: Package existence for "libstdc++-3.4.6 (i386)" Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 libstdc++-3.4.6-8 (i386) libstdc++-3.4.6 (i386) passed node1 libstdc++-3.4.6-8 (i386) libstdc++-3.4.6 (i386) passed Result: Package existence check passed for "libstdc++-3.4.6 (i386)" Check: Package existence for "libstdc++-3.4.6 (x86_64)" Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 libstdc++-4.4.7-3.el6 (x86_64) libstdc++-3.4.6 (x86_64) passed node1 libstdc++-4.4.7-3.el6 (x86_64) libstdc++-3.4.6 (x86_64) passed Result: Package existence check passed for "libstdc++-3.4.6 (x86_64)" Check: Package existence for "libstdc++-devel-3.4.6 (x86_64)" Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 libstdc++-devel-4.4.7-3.el6 (x86_64) libstdc++-devel-3.4.6 (x86_64) passed node1 libstdc++-devel-4.4.7-3.el6 (x86_64) libstdc++-devel-3.4.6 (x86_64) passed Result: Package existence check passed for "libstdc++-devel-3.4.6 (x86_64)" Check: Package existence for "sysstat-5.0.5" Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 sysstat-9.0.4-20.el6 sysstat-5.0.5 passed node1 sysstat-9.0.4-20.el6 sysstat-5.0.5 passed Result: Package existence check passed for "sysstat-5.0.5" Check: Package existence for "unixODBC-2.2.11 (i386)" Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 unixODBC-2.2.11-10.el5 (i386) unixODBC-2.2.11 (i386) passed node1 unixODBC-2.2.11-10.el5 (i386) unixODBC-2.2.11 (i386) passed Result: Package existence check passed for "unixODBC-2.2.11 (i386)" Check: Package existence for "unixODBC-2.2.11 (x86_64)" Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 unixODBC-2.2.14-12.el6_3 (x86_64) unixODBC-2.2.11 (x86_64) passed node1 unixODBC-2.2.14-12.el6_3 (x86_64) unixODBC-2.2.11 (x86_64) passed Result: Package existence check passed for "unixODBC-2.2.11 (x86_64)" Check: Package existence for "unixODBC-devel-2.2.11 (i386)" Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 unixODBC-devel-2.2.11-2 (i386) unixODBC-devel-2.2.11 (i386) passed node1 unixODBC-devel-2.2.11-2 (i386) unixODBC-devel-2.2.11 (i386) passed Result: Package existence check passed for "unixODBC-devel-2.2.11 (i386)" Check: Package existence for "unixODBC-devel-2.2.11 (x86_64)" Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 unixODBC-devel-2.2.14-12.el6_3 (x86_64) unixODBC-devel-2.2.11 (x86_64) passed node1 unixODBC-devel-2.2.14-12.el6_3 (x86_64) unixODBC-devel-2.2.11 (x86_64) passed Result: Package existence check passed for "unixODBC-devel-2.2.11 (x86_64)" Check: Package existence for "pdksh-5.2.14" Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 pdksh-5.2.14-24 pdksh-5.2.14 passed node1 pdksh-5.2.14-24 pdksh-5.2.14 passed Result: Package existence check passed for "pdksh-5.2.14" Check: Package existence for "expat-1.95.7 (x86_64)" Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 expat-2.0.1-11.el6_2 (x86_64) expat-1.95.7 (x86_64) passed node1 expat-2.0.1-11.el6_2 (x86_64) expat-1.95.7 (x86_64) passed Result: Package existence check passed for "expat-1.95.7 (x86_64)" Checking for multiple users with UID value 0 Result: Check for multiple users with UID value 0 passed Check: Current group ID Result: Current group ID check passed Checking Core file name pattern consistency... Core file name pattern consistency check passed. Checking to make sure user "grid" is not in "root" group Node Name Status Comment ------------ ------------------------ ------------------------ node2 does not exist passed node1 does not exist passed Result: User "grid" is not part of "root" group. Check passed Check default user file creation mask Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 0022 0022 passed node1 0022 0022 passed Result: Default user file creation mask check passed Starting Clock synchronization checks using Network Time Protocol(NTP)... NTP Configuration file check started... Network Time Protocol(NTP) configuration file not found on any of the nodes. Oracle Cluster Time Synchronization Service(CTSS) can be used instead of NTP for time synchronization on the cluster nodes Result: Clock synchronization check using Network Time Protocol(NTP) passed Pre-check for cluster services setup was successful.
chkconfig ntp off(将ntp服务,在所有的运行模式下,都给停止掉.)
1、SSH对等性
对等性配置,要注意名字不能写错:authorized_keys,勿将_写成-.
1.1、先是在node1上,oracle用户下执行如下步骤:
node1-> mkdir ~/.ssh node1-> chmod 700 ~/.ssh node1-> ssh-keygen -t rsa node1-> ssh-keygen -t dsa
1.2、上面四步骤,同样需要在node2上执行.
node1-> cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys node1-> cat ~/.ssh/id_dsa.pub >>~/.ssh/authorized_keys node1-> ssh node2 cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys node1-> ssh node2 cat ~/.ssh/id_dsa.pub >>~/.ssh/authorized_keys node1-> scp ~/.ssh/authorized_keys node2:~/.ssh/authorized_keys
1.3、node1节点验证:
node1-> ssh node1 date Sun Jun 30 08:50:48 CST 2013 node1-> ssh node2 date Sun Jun 30 08:50:57 CST 2013 node1-> ssh node1.localdomain date Sun Jun 30 08:50:55 CST 2013 node1-> ssh node2.localdomain date Sun Jun 30 08:51:05 CST 2013 node1-> ssh node1-priv date Sun Jun 30 08:51:13 CST 2013 node1-> ssh node2-priv date Sun Jun 30 08:51:23 CST 2013 node1-> ssh node1-priv.localdomain date Sun Jun 30 08:51:23 CST 2013 node1-> ssh node2-priv.localdomain date Sun Jun 30 08:51:33 CST 2013
1.4、将node1节点的验证步骤,同样在node2上同样执行一次.验证全部通过.
1.5、将上述四步(1.1、1.2、1.3、1.4)在两个节点的grid用户下再执行一遍.实现双节点(node1、node2)下,双用户(oracle、grid)下的SSH对等性验证.
2、共享磁盘添加成功
3、ASM磁盘配置完成
--------------
安装Grid,创建在griddg磁盘组上
安装grid infrastructure之前进行脚本验证
node1-> ./runcluvfy.sh stage -pre crsinst -n node1,node2 -fixup -verbose Performing pre-checks for cluster services setup Checking node reachability... Check: Node reachability from node "node1" Destination Node Reachable? ------------------------------------ ------------------------ node1 yes node2 yes Result: Node reachability check passed from node "node1" Checking user equivalence... Check: User equivalence for user "grid" Node Name Comment ------------------------------------ ------------------------ node2 passed node1 passed Result: User equivalence check passed for user "grid" Checking node connectivity... Checking hosts config file... Node Name Status Comment ------------ ------------------------ ------------------------ node2 passed node1 passed Verification of the hosts config file successful Interface information for node "node2" Name IP Address Subnet Gateway Def. Gateway HW Address MTU ------ --------------- --------------- --------------- --------------- ----------------- ------ eth0 192.168.1.192 192.168.1.0 0.0.0.0 192.168.1.1 00:0C:29:70:8F:EA 1500 eth1 192.168.137.12 192.168.137.0 0.0.0.0 192.168.1.1 00:0C:29:70:8F:F4 1500 Interface information for node "node1" Name IP Address Subnet Gateway Def. Gateway HW Address MTU ------ --------------- --------------- --------------- --------------- ----------------- ------ eth0 192.168.1.191 192.168.1.0 0.0.0.0 192.168.1.1 00:0C:29:A6:E0:06 1500 eth1 192.168.137.11 192.168.137.0 0.0.0.0 192.168.1.1 00:0C:29:A6:E0:10 1500 Check: Node connectivity of subnet "192.168.1.0" Source Destination Connected? ------------------------------ ------------------------------ ---------------- node2:eth0 node1:eth0 yes Result: Node connectivity passed for subnet "192.168.1.0" with node(s) node2,node1 Check: TCP connectivity of subnet "192.168.1.0" Source Destination Connected? ------------------------------ ------------------------------ ---------------- node1:192.168.1.191 node2:192.168.1.192 passed Result: TCP connectivity check passed for subnet "192.168.1.0" Check: Node connectivity of subnet "192.168.137.0" Source Destination Connected? ------------------------------ ------------------------------ ---------------- node2:eth1 node1:eth1 yes Result: Node connectivity passed for subnet "192.168.137.0" with node(s) node2,node1 Check: TCP connectivity of subnet "192.168.137.0" Source Destination Connected? ------------------------------ ------------------------------ ---------------- node1:192.168.137.11 node2:192.168.137.12 passed Result: TCP connectivity check passed for subnet "192.168.137.0" Interfaces found on subnet "192.168.1.0" that are likely candidates for VIP are: node2 eth0:192.168.1.192 node1 eth0:192.168.1.191 Interfaces found on subnet "192.168.137.0" that are likely candidates for a private interconnect are: node2 eth1:192.168.137.12 node1 eth1:192.168.137.11 Result: Node connectivity check passed Check: Total memory Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 1.96GB (2054996.0KB) 1.5GB (1572864.0KB) passed node1 1.96GB (2054996.0KB) 1.5GB (1572864.0KB) passed Result: Total memory check passed Check: Available memory Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 1.85GB (1943692.0KB) 50MB (51200.0KB) passed node1 1.77GB (1856724.0KB) 50MB (51200.0KB) passed Result: Available memory check passed Check: Swap space Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 5GB (5242876.0KB) 2.94GB (3082494.0KB) passed node1 5GB (5242876.0KB) 2.94GB (3082494.0KB) passed Result: Swap space check passed Check: Free disk space for "node2:/tmp" Path Node Name Mount point Available Required Comment ---------------- ------------ ------------ ------------ ------------ ------------ /tmp node2 / 12.2GB 1GB passed Result: Free disk space check passed for "node2:/tmp" Check: Free disk space for "node1:/tmp" Path Node Name Mount point Available Required Comment ---------------- ------------ ------------ ------------ ------------ ------------ /tmp node1 / 8.63GB 1GB passed Result: Free disk space check passed for "node1:/tmp" Check: User existence for "grid" Node Name Status Comment ------------ ------------------------ ------------------------ node2 exists passed node1 exists passed Result: User existence check passed for "grid" Check: Group existence for "oinstall" Node Name Status Comment ------------ ------------------------ ------------------------ node2 exists passed node1 exists passed Result: Group existence check passed for "oinstall" Check: Group existence for "dba" Node Name Status Comment ------------ ------------------------ ------------------------ node2 exists passed node1 exists passed Result: Group existence check passed for "dba" Check: Membership of user "grid" in group "oinstall" [as Primary] Node Name User Exists Group Exists User in Group Primary Comment ---------------- ------------ ------------ ------------ ------------ ------------ node2 yes yes yes yes passed node1 yes yes yes yes passed Result: Membership check for user "grid" in group "oinstall" [as Primary] passed Check: Membership of user "grid" in group "dba" Node Name User Exists Group Exists User in Group Comment ---------------- ------------ ------------ ------------ ---------------- node2 yes yes no failed node1 yes yes no failed Result: Membership check for user "grid" in group "dba" failed Check: Run level Node Name run level Required Comment ------------ ------------------------ ------------------------ ---------- node2 3 3,5 passed node1 3 3,5 passed Result: Run level check passed Check: Hard limits for "maximum open file descriptors" Node Name Type Available Required Comment ---------------- ------------ ------------ ------------ ---------------- node2 hard 65536 65536 passed node1 hard 65536 65536 passed Result: Hard limits check passed for "maximum open file descriptors" Check: Soft limits for "maximum open file descriptors" Node Name Type Available Required Comment ---------------- ------------ ------------ ------------ ---------------- node2 soft 1024 1024 passed node1 soft 1024 1024 passed Result: Soft limits check passed for "maximum open file descriptors" Check: Hard limits for "maximum user processes" Node Name Type Available Required Comment ---------------- ------------ ------------ ------------ ---------------- node2 hard 16384 16384 passed node1 hard 16384 16384 passed Result: Hard limits check passed for "maximum user processes" Check: Soft limits for "maximum user processes" Node Name Type Available Required Comment ---------------- ------------ ------------ ------------ ---------------- node2 soft 2047 2047 passed node1 soft 2047 2047 passed Result: Soft limits check passed for "maximum user processes" Check: System architecture Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 x86_64 x86_64 passed node1 x86_64 x86_64 passed Result: System architecture check passed Check: Kernel version Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 2.6.39-200.24.1.el6uek.x86_64 2.6.9 passed node1 2.6.39-200.24.1.el6uek.x86_64 2.6.9 passed Result: Kernel version check passed Check: Kernel parameter for "semmsl" Node Name Configured Required Comment ------------ ------------------------ ------------------------ ---------- node2 250 250 passed node1 250 250 passed Result: Kernel parameter check passed for "semmsl" Check: Kernel parameter for "semmns" Node Name Configured Required Comment ------------ ------------------------ ------------------------ ---------- node2 32000 32000 passed node1 32000 32000 passed Result: Kernel parameter check passed for "semmns" Check: Kernel parameter for "semopm" Node Name Configured Required Comment ------------ ------------------------ ------------------------ ---------- node2 100 100 passed node1 100 100 passed Result: Kernel parameter check passed for "semopm" Check: Kernel parameter for "semmni" Node Name Configured Required Comment ------------ ------------------------ ------------------------ ---------- node2 128 128 passed node1 128 128 passed Result: Kernel parameter check passed for "semmni" Check: Kernel parameter for "shmmax" Node Name Configured Required Comment ------------ ------------------------ ------------------------ ---------- node2 1054472192 536870912 passed node1 1054472192 536870912 passed Result: Kernel parameter check passed for "shmmax" Check: Kernel parameter for "shmmni" Node Name Configured Required Comment ------------ ------------------------ ------------------------ ---------- node2 4096 4096 passed node1 4096 4096 passed Result: Kernel parameter check passed for "shmmni" Check: Kernel parameter for "shmall" Node Name Configured Required Comment ------------ ------------------------ ------------------------ ---------- node2 2097152 2097152 passed node1 2097152 2097152 passed Result: Kernel parameter check passed for "shmall" Check: Kernel parameter for "file-max" Node Name Configured Required Comment ------------ ------------------------ ------------------------ ---------- node2 6815744 6815744 passed node1 6815744 6815744 passed Result: Kernel parameter check passed for "file-max" Check: Kernel parameter for "ip_local_port_range" Node Name Configured Required Comment ------------ ------------------------ ------------------------ ---------- node2 between 9000 & 65500 between 9000 & 65500 passed node1 between 9000 & 65500 between 9000 & 65500 passed Result: Kernel parameter check passed for "ip_local_port_range" Check: Kernel parameter for "rmem_default" Node Name Configured Required Comment ------------ ------------------------ ------------------------ ---------- node2 262144 262144 passed node1 262144 262144 passed Result: Kernel parameter check passed for "rmem_default" Check: Kernel parameter for "rmem_max" Node Name Configured Required Comment ------------ ------------------------ ------------------------ ---------- node2 4194304 4194304 passed node1 4194304 4194304 passed Result: Kernel parameter check passed for "rmem_max" Check: Kernel parameter for "wmem_default" Node Name Configured Required Comment ------------ ------------------------ ------------------------ ---------- node2 262144 262144 passed node1 262144 262144 passed Result: Kernel parameter check passed for "wmem_default" Check: Kernel parameter for "wmem_max" Node Name Configured Required Comment ------------ ------------------------ ------------------------ ---------- node2 1048586 1048576 passed node1 1048586 1048576 passed Result: Kernel parameter check passed for "wmem_max" Check: Kernel parameter for "aio-max-nr" Node Name Configured Required Comment ------------ ------------------------ ------------------------ ---------- node2 1048576 1048576 passed node1 1048576 1048576 passed Result: Kernel parameter check passed for "aio-max-nr" Check: Package existence for "make-3.80" Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 make-3.81-20.el6 make-3.80 passed node1 make-3.81-20.el6 make-3.80 passed Result: Package existence check passed for "make-3.80" Check: Package existence for "binutils-2.15.92.0.2" Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 binutils-2.20.51.0.2-5.34.el6 binutils-2.15.92.0.2 passed node1 binutils-2.20.51.0.2-5.34.el6 binutils-2.15.92.0.2 passed Result: Package existence check passed for "binutils-2.15.92.0.2" Check: Package existence for "gcc-3.4.6" Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 missing gcc-3.4.6 failed node1 missing gcc-3.4.6 failed Result: Package existence check failed for "gcc-3.4.6" Check: Package existence for "libaio-0.3.105 (i386)" Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 missing libaio-0.3.105 (i386) failed node1 missing libaio-0.3.105 (i386) failed Result: Package existence check failed for "libaio-0.3.105 (i386)" Check: Package existence for "libaio-0.3.105 (x86_64)" Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 libaio-0.3.107-10.el6 (x86_64) libaio-0.3.105 (x86_64) passed node1 libaio-0.3.107-10.el6 (x86_64) libaio-0.3.105 (x86_64) passed Result: Package existence check passed for "libaio-0.3.105 (x86_64)" Check: Package existence for "glibc-2.3.4-2.41 (i686)" Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 missing glibc-2.3.4-2.41 (i686) failed node1 missing glibc-2.3.4-2.41 (i686) failed Result: Package existence check failed for "glibc-2.3.4-2.41 (i686)" Check: Package existence for "glibc-2.3.4-2.41 (x86_64)" Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 glibc-2.12-1.80.el6 (x86_64) glibc-2.3.4-2.41 (x86_64) passed node1 glibc-2.12-1.80.el6 (x86_64) glibc-2.3.4-2.41 (x86_64) passed Result: Package existence check passed for "glibc-2.3.4-2.41 (x86_64)" Check: Package existence for "compat-libstdc++-33-3.2.3 (i386)" Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 missing compat-libstdc++-33-3.2.3 (i386) failed node1 missing compat-libstdc++-33-3.2.3 (i386) failed Result: Package existence check failed for "compat-libstdc++-33-3.2.3 (i386)" Check: Package existence for "compat-libstdc++-33-3.2.3 (x86_64)" Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 missing compat-libstdc++-33-3.2.3 (x86_64) failed node1 missing compat-libstdc++-33-3.2.3 (x86_64) failed Result: Package existence check failed for "compat-libstdc++-33-3.2.3 (x86_64)" Check: Package existence for "elfutils-libelf-0.97 (x86_64)" Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 elfutils-libelf-0.152-1.el6 (x86_64) elfutils-libelf-0.97 (x86_64) passed node1 elfutils-libelf-0.152-1.el6 (x86_64) elfutils-libelf-0.97 (x86_64) passed Result: Package existence check passed for "elfutils-libelf-0.97 (x86_64)" Check: Package existence for "elfutils-libelf-devel-0.97" Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 missing elfutils-libelf-devel-0.97 failed node1 missing elfutils-libelf-devel-0.97 failed Result: Package existence check failed for "elfutils-libelf-devel-0.97" Check: Package existence for "glibc-common-2.3.4" Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 glibc-common-2.12-1.80.el6 glibc-common-2.3.4 passed node1 glibc-common-2.12-1.80.el6 glibc-common-2.3.4 passed Result: Package existence check passed for "glibc-common-2.3.4" Check: Package existence for "glibc-devel-2.3.4 (x86_64)" Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 missing glibc-devel-2.3.4 (x86_64) failed node1 missing glibc-devel-2.3.4 (x86_64) failed Result: Package existence check failed for "glibc-devel-2.3.4 (x86_64)" Check: Package existence for "glibc-headers-2.3.4" Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 missing glibc-headers-2.3.4 failed node1 missing glibc-headers-2.3.4 failed Result: Package existence check failed for "glibc-headers-2.3.4" Check: Package existence for "gcc-c++-3.4.6" Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 missing gcc-c++-3.4.6 failed node1 missing gcc-c++-3.4.6 failed Result: Package existence check failed for "gcc-c++-3.4.6" Check: Package existence for "libaio-devel-0.3.105 (i386)" Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 missing libaio-devel-0.3.105 (i386) failed node1 missing libaio-devel-0.3.105 (i386) failed Result: Package existence check failed for "libaio-devel-0.3.105 (i386)" Check: Package existence for "libaio-devel-0.3.105 (x86_64)" Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 missing libaio-devel-0.3.105 (x86_64) failed node1 missing libaio-devel-0.3.105 (x86_64) failed Result: Package existence check failed for "libaio-devel-0.3.105 (x86_64)" Check: Package existence for "libgcc-3.4.6 (i386)" Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 missing libgcc-3.4.6 (i386) failed node1 missing libgcc-3.4.6 (i386) failed Result: Package existence check failed for "libgcc-3.4.6 (i386)" Check: Package existence for "libgcc-3.4.6 (x86_64)" Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 libgcc-4.4.6-4.el6 (x86_64) libgcc-3.4.6 (x86_64) passed node1 libgcc-4.4.6-4.el6 (x86_64) libgcc-3.4.6 (x86_64) passed Result: Package existence check passed for "libgcc-3.4.6 (x86_64)" Check: Package existence for "libstdc++-3.4.6 (i386)" Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 missing libstdc++-3.4.6 (i386) failed node1 missing libstdc++-3.4.6 (i386) failed Result: Package existence check failed for "libstdc++-3.4.6 (i386)" Check: Package existence for "libstdc++-3.4.6 (x86_64)" Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 libstdc++-4.4.6-4.el6 (x86_64) libstdc++-3.4.6 (x86_64) passed node1 libstdc++-4.4.6-4.el6 (x86_64) libstdc++-3.4.6 (x86_64) passed Result: Package existence check passed for "libstdc++-3.4.6 (x86_64)" Check: Package existence for "libstdc++-devel-3.4.6 (x86_64)" Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 missing libstdc++-devel-3.4.6 (x86_64) failed node1 missing libstdc++-devel-3.4.6 (x86_64) failed Result: Package existence check failed for "libstdc++-devel-3.4.6 (x86_64)" Check: Package existence for "sysstat-5.0.5" Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 sysstat-9.0.4-20.el6 sysstat-5.0.5 passed node1 sysstat-9.0.4-20.el6 sysstat-5.0.5 passed Result: Package existence check passed for "sysstat-5.0.5" Check: Package existence for "unixODBC-2.2.11 (i386)" Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 missing unixODBC-2.2.11 (i386) failed node1 missing unixODBC-2.2.11 (i386) failed Result: Package existence check failed for "unixODBC-2.2.11 (i386)" Check: Package existence for "unixODBC-2.2.11 (x86_64)" Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 unixODBC-2.2.14-11.el6 (x86_64) unixODBC-2.2.11 (x86_64) passed node1 unixODBC-2.2.14-11.el6 (x86_64) unixODBC-2.2.11 (x86_64) passed Result: Package existence check passed for "unixODBC-2.2.11 (x86_64)" Check: Package existence for "unixODBC-devel-2.2.11 (i386)" Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 missing unixODBC-devel-2.2.11 (i386) failed node1 missing unixODBC-devel-2.2.11 (i386) failed Result: Package existence check failed for "unixODBC-devel-2.2.11 (i386)" Check: Package existence for "unixODBC-devel-2.2.11 (x86_64)" Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 missing unixODBC-devel-2.2.11 (x86_64) failed node1 missing unixODBC-devel-2.2.11 (x86_64) failed Result: Package existence check failed for "unixODBC-devel-2.2.11 (x86_64)" Check: Package existence for "pdksh-5.2.14" Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 missing pdksh-5.2.14 failed node1 missing pdksh-5.2.14 failed Result: Package existence check failed for "pdksh-5.2.14" Check: Package existence for "expat-1.95.7 (x86_64)" Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 expat-2.0.1-11.el6_2 (x86_64) expat-1.95.7 (x86_64) passed node1 expat-2.0.1-11.el6_2 (x86_64) expat-1.95.7 (x86_64) passed Result: Package existence check passed for "expat-1.95.7 (x86_64)" Checking for multiple users with UID value 0 Result: Check for multiple users with UID value 0 passed Check: Current group ID Result: Current group ID check passed Checking Core file name pattern consistency... Core file name pattern consistency check passed. Checking to make sure user "grid" is not in "root" group Node Name Status Comment ------------ ------------------------ ------------------------ node2 does not exist passed node1 does not exist passed Result: User "grid" is not part of "root" group. Check passed Check default user file creation mask Node Name Available Required Comment ------------ ------------------------ ------------------------ ---------- node2 0022 0022 passed node1 0022 0022 passed Result: Default user file creation mask check passed Starting Clock synchronization checks using Network Time Protocol(NTP)... NTP Configuration file check started... Network Time Protocol(NTP) configuration file not found on any of the nodes. Oracle Cluster Time Synchronization Service(CTSS) can be used instead of NTP for time synchronization on the cluster nodes Result: Clock synchronization check using Network Time Protocol(NTP) passed Fixup information has been generated for following node(s): node2,node1 Please run the following script on each node as "root" user to execute the fixups: '/tmp/CVU_11.2.0.1.0_grid/runfixup.sh' Pre-check for cluster services setup was unsuccessful on all the nodes.
创建磁盘组,分别用来创建安装数据库的磁盘组和创建闪回区的磁盘组,ASM磁盘组的创建可以通过你ASMCA图形界面创建.
在安装grid infrastructure之前,进行验证的时候,如果出现Device Check for ASM警告信息,忽略即可;
安装oracle软件
安装数据库
--------------
OCR会自动备份
voting disk需要手工备份
--------------
如何验证负载均衡和failover?
负载均衡是由SCAN自行分配解决的.
模拟failover,使节点中的其中一个instance给shutdown掉,然后所有的请求都会自动切换到另外运行的节点上来.
要想实验loadbalance and failover,必须安装配置scanip
------------------------------------------------------------------------------------
DataGuard的安装与配置
>>只需要安装软件,不需要安装数据库
使用ASMCA创建ASM磁盘组.
------------------------------------------------------------------------------------
主库与备库同步
包含两部分:文件同步、数据同步
文件同步,通过创建表空间的方式来测试;
数据同步,通过添加修改删除记录的方式来测试同步;
------------------------------------------------------------------------------------
主库与备库同步切换
SQL> show parameter fal NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ fal_client string fal_server string
RAC的主库,RAC的备库;在将备库切换成主库之前,需要将RAC备库中的其他所有节点关闭,只有一个节点进行相关操作.
主备切换的先后顺序:先将主库切换成备库,此时备库也是备库,这个阶段是一个群龙无首,全是备库的阶段.
DataGuard中有算中模式:最大性能、最大保护、最高可用
------------------------------------------------------------------------------------
主库切换备库,备库切换主库
将备库switchover成主库 alter database commit to switchover to primary; 将主库switchover成备库 alter database commit to switchover to physical standby with session shutdown;
------------------------------------------------------------------------------------
--开启
--停掉REDO APPLY(先停掉REDO APPLY,再将备库切换成主库.这样操作,少报错;)
alter database recover managed standby database cancel;
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<DataGuard安装与配置>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
注意:DataGuard只需要安装grid、oracle软件,不需要安装数据库.
DataGuard机器的磁盘情况:ASM共享磁盘组GRIDDG、DATA、FLASH,两外还要配置一块硬盘,用来存放主库的备份信息. 而且主库上(一般node1),也需要配置一块空闲磁盘,用来存放主库的备份信息,将来需要将主库上的备份信息ftp到DataGuard上去.
普通的磁盘(非共享磁盘),在进行格式化分区之后,需要做成文件系统,才可使用.做成文件系统的命令mkfs.ext4 /dev/sdb1进行文件系统的制作.(/dev/sdb1注意不要搞错);然后文件系统做完了之后,需要到根目录(/)下创建一个挂载点
>#mkdir rman_backup
>#chown -R oracle:oinstall rman_backup/
>#mount -t ext4 /dev/sdb1 /rman_backup/
>cat /etc/fstab
[root@node1 ~]# cat /etc/fstab # # /etc/fstab # Created by anaconda on Thu Jun 27 23:44:22 2013 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # UUID=02ff7b7b-1f51-48a5-bd19-2e0bdb071ffb / ext4 defaults 1 1 UUID=91e314c2-cfe2-4e7f-b8a9-b07134233679 swap swap defaults 0 0 tmpfs /dev/shm tmpfs size=3000m 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0
在/etc/fstab中添加一条记录,用来挂载新添加的磁盘,将来机器重启的话,就会自动挂载此硬盘.