资源描述
作者:大漠飞鹰 现就职于大唐软件 oracle 工程师 DBA
1、IP规划
127.0.0.1 localhost.localdomain localhost
#public ip
10.62.1.201 rac1
10.62.1.202 rac2
#priv ip
10.10.10.10 rac1-priv
10.10.10.11 rac2-priv
#vip ip
10.62.1.211 rac1-vip
10.62.1.212 rac2-vip
#scan ip
10.62.1.200 rac-scan
2、磁盘规划
+DATA 两个2G的盘
+DBDATA 两个10G的盘
+DBRECOVERY 两个5G的盘
/usr/sbin/groupadd -g 501 oinstall
/usr/sbin/groupadd -g 502 dba
/usr/sbin/groupadd -g 503 oper
/usr/sbin/groupadd -g 504 asmadmin
/usr/sbin/groupadd -g 505 asmoper
/usr/sbin/groupadd -g 506 asmdba
/usr/sbin/useradd -g oinstall -G dba,asmdba,oper oracle
/usr/sbin/useradd -g oinstall -G asmadmin,asmdba,asmoper,oper,dba grid
[root@ora1 ~]# id oracle
uid=501(oracle) gid=501(oinstall) groups=501(oinstall),502(dba),503(oper),506(asmdba)
[root@ora1 ~]# id grid
uid=502(grid) gid=501(oinstall)
groups=501(oinstall),502(dba),503(oper),504(asmadmin),505(asmoper),506(asmdba)
3、 建立用户组
mkdir -p /u01/app/grid
mkdir -p /u01/app/11.2.0/grid
chown -R grid:oinstall /u01
mkdir -p /u01/app/oracle
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01
4、 设置环境变量
Grid 用户
vi /home/grid/.bash_profile
alias df='df -h'
alias du='du -sh'
alias la='ls -lha'
ORACLE_SID=+ASM1; export ORACLE_SID
JAVA_HOME=/usr/local/java; export JAVA_HOME
ORACLE_BASE=/u01/app/grid; export ORACLE_BASE
ORACLE_HOME=/u01/app/11.2.0/grid; export ORACLE_HOME
ORACLE_PATH=/u01/app/oracle/common/oracle/sql; export ORACLE_PATH
ORACLE_TERM=xterm; export ORACLE_TERM
NLS_DATE_FORMAT="DD-MON-YYYY HH24:MI:SS"; export NLS_DATE_FORMAT
TNS_ADMIN=$ORACLE_HOME/network/admin; export TNS_ADMIN
ORA_NLS11=$ORACLE_HOME/nls/data; export ORA_NLS11
PATH=.:${JAVA_HOME}/bin:${PATH}:$HOME/bin:$ORACLE_HOME/bin
PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
PATH=${PATH}:/u01/app/common/oracle/bin
export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
export CLASSPATH
THREADS_FLAG=native; export THREADS_FLAG
export TEMP=/tmp
export TMPDIR=/tmp
umask 022
oracle 用户
vi /home/oracle/.bash_profile
alias df='df -h'
alias du='du -sh'
alias la='ls -lha'
ORACLE_SID=racdb1; export ORACLE_SID
ORACLE_UNQNAME=racdb; export ORACLE_UNQNAME
JAVA_HOME=/usr/local/java; export JAVA_HOME
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1; export ORACLE_HOME
ORACLE_PATH=/u01/app/common/oracle/sql; export ORACLE_PATH
ORACLE_TERM=xterm; export ORACLE_TERM
NLS_DATE_FORMAT="DD-MON-YYYY HH24:MI:SS"; export NLS_DATE_FORMAT
TNS_ADMIN=$ORACLE_HOME/network/admin; export TNS_ADMIN
ORA_NLS11=$ORACLE_HOME/nls/data; export ORA_NLS11
PATH=.:${JAVA_HOME}/bin:${PATH}:$HOME/bin:$ORACLE_HOME/bin
PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
PATH=${PATH}:/u01/app/common/oracle/bin
export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
export CLASSPATH
THREADS_FLAG=native; export THREADS_FLAG
export TEMP=/tmp
export TMPDIR=/tmp
umask 022
5、修改系统参数:
vi /etc/security/limits.conf
#ORACLE SETTING
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
vi /etc/pam.d/login
#ORACLE SETTING
session required pam_limits.so
# vi /etc/sysctl.conf
#ORACLE SETTING
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
重起生效
/sbin/sysctl –p
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
vi /etc/csh.login
if ( $USER == "oracle" )||( $USER == "grid" ) then
limit maxproc 16384
limit descriptors 65536
umask 022
endif
6 、gird时间同步所需要的设置(11gR2新增检查项)
#Network Time Protocol Setting
/sbin/service ntpd stop
chkconfig ntpd off
mv /etc/ntp.conf /etc/ntp.conf.org
7、配置创建ASM
格式化硬盘
fdisk /dev/sdb
需要你输入的依次是"n/p/1/回车/回车/w"。
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklab
el
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.
The number of cylinders for this disk is set to 1044.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
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):
Using default value 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!
Calling ioctl() to re-read partition table.
Syncing disks.
然后类似执行fdisk /dev/sdc,fdisk /dev/sdd, fdisk /dev/sde, fdisk /dev/sdf
安装asm所需要的支持包
安装 oracleasmlib 程序包。从 OTN 下载 ASM 库,并以 root 用户身份安装 ASM RPM
查看操作系统内核版本:
node1 dev]# uname -a
Linux node1 2.6.18-8.el5xen #1 SMP Fri Jan 26 14:42:21 EST 2007 i686 i686 i386 GNU/Linux
查看小版本号
rpm -q redhat-release
redhat-release-5Server-5.2.0.4
Library and Tools
· oracleasm-support-2.1.4-1.el5.i386.rpm
· oracleasmlib-2.0.4-1.el5.i386.rpm
Drivers for kernel 2.6.18-92.el5
oracleasm-2.6.18-92.el5-2.0.5-1.el5.i686.rpm
oracleasm-2.6.18-92.el5PAE-2.0.5-1.el5.i686.rpm
配置asm
两个节点运行
/etc/init.d/oracleasm configure
Configuring the Oracle ASM library driver.
o
This will configure the on-boot properties of the Oracle ASM library
driver. The following questions will determine whether the driver is
loaded on boot and what permissions it will have. The current values
will be shown in brackets ('[]'). Hitting <ENTER> without typing an
answer will keep that current value. Ctrl-C will abort.
Default user to own the driver interface []: grid
Default group to own the driver interface []: asmadmin
Start Oracle ASM library driver on boot (y/n) [n]: y
Scan for Oracle ASM disks on boot (y/n) [y]: y
Writing Oracle ASM library driver configuration: done
Initializing the Oracle ASMLib driver: [ OK ]
Scanning the system for Oracle ASMLib disks: [ OK ]
创建asm
节点1执行
/etc/init.d/oracleasm createdisk CRS1 /dev/sdb1
/etc/init.d/oracleasm createdisk CRS1 /dev/sdc1
/etc/init.d/oracleasm createdisk DATA1 /dev/sdd1
/etc/init.d/oracleasm createdisk DATA2 /dev/sde1
/etc/init.d/oracleasm createdisk REC1 /dev/sdf1
/etc/init.d/oracleasm createdisk REC2 /dev/sdg1
/etc/init.d/oracleasm listdisks
节点2 执行
[root@rac2 dev]# /etc/init.d/oracleasm scandisks
Scanning the system for Oracle ASMLib disks: [ OK ]
[root@rac2 dev]# /etc/init.d/oracleasm listdisks
CRS1
CRS2
DATA1
DATA2
REC1
REC2
8、 配置信任关系 设置SSH
1).在主节点RAC1上以grid,oracle用户身份生成用户的公匙和私匙
# ping rac02
# ping rac02
# su - oracle
$ mkdir ~/.ssh
$ ssh-keygen -t rsa
$ ssh-keygen -t dsa
2).在副节点RAC2上执行相同的操作,确保通信无阻
# ping rac01
# ping rac01
# su - oracle
$ mkdir ~/.ssh
$ ssh-keygen -t rsa
$ ssh-keygen -t dsa
3).在主节点RAC1上oracle用户执行以下操作
$ cat ~/.ssh/id_rsa.pub >> ./.ssh/authorized_keys
$ cat ~/.ssh/id_dsa.pub >> ./.ssh/authorized_keys
$ ssh rac02 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ ssh rac02 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
$ scp ~/.ssh/authorized_keys rac02:~/.ssh/authorized_keys
4).主节点RAC1上执行检验操作 $ ssh rac01 date
$ ssh rac01 date
$ ssh rac02 date
$ ssh rac01-priv date
$ ssh rac02-priv date
5).在副节点RAC2上执行检验操作 $ ssh rac1 date
$ ssh rac1 date
$ ssh rac2 date
$ ssh rac1-priv date
$ ssh rac2-priv date
9、 安装cvuqdisk包并验证
在两个 Oracle RAC 节点上安装操作系统程序包 cvuqdisk。如果没有 cvuqdisk,集群验证实用程序就无法发现共享磁盘,当运行(手动运行或在 Oracle Grid Infrastructure 安装结束时自动运行)集群验证实用程序时,您会收到这样的错误消息:“Package cvuqdisk not installed”。使用适用于您的硬件体系结构(例如,x86_64 或 i386)的 cvuqdisk RPM。 cvuqdisk RPM 包含在 Oracle Grid Infrastructure 安装介质上的 rpm 目录中。 设置环境变量 CVUQDISK_GRP,使其指向作为 cvuqdisk 的所有者所在的组(本文为 oinstall):export CVUQDISK_GRP=oinstall
使用 CVU 验证是否满足 Oracle 集群件要求 记住要作为 grid 用户在将要执行 Oracle 安装的节点 (racnode1) 上运行。此外,必须为 grid 用户配置通过用户等效性实现的 SSH 连通性。 在grid软件目录里运行以下命令:
节点1 执行
/home/grid/linux_11gR2_grid/grid/runcluvfy.sh stage -pre crsinst -n rac01,rac02 -fixup -verbose
如果缺少安装包,用 rpm –ivh 安装
使用 CVU 验证硬件和操作系统设置
/home/grid/linux_11gR2_grid/grid/runcluvfy.sh stage -post hwos -n rac01,rac02 -verbose
10、安装 crs
./runInstaller
根据提示运行一下脚本:
/u01/app/oraInventory/orainstRoot.sh
/u01/app/11.2.0/grid/root.sh
[root@rac2 ~]# /u01/app/11.2.0/grid/root.sh
Running Oracle 11g root.sh script...
The following environment variables are set as:
ORACLE_OWNER= grid
ORACLE_HOME= /u01/app/11.2.0/grid
Enter the full pathname of the local bin directory: [/usr/local/bin]:
Copying dbhome to /usr/local/bin ...
Copying oraenv to /usr/local/bin ...
Copying coraenv to /usr/local/bin ...
Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.
2011-01-25 19:12:22: Parsing the host name
2011-01-25 19:12:22: Checking for super user privileges
2011-01-25 19:12:22: User has super user privileges
Using configuration parameter file: /u01/app/11.2.0/grid/crs/install/crsconfig_params
Creating trace directory
如果 运行root失败,调整后需重新运行。
解决办法是在rac2上删除之的crs配置信息,然后重新运行root.sh脚本即可。
[root@rac02 ~]# /u01/app/11.2.0/grid/crs/install/rootcrs.pl -verbose -deconfig -force
[root@rac02 ~]# /u01/app/11.2.0/grid/root.sh
11、 集群的 Oracle Grid Infrastructure 的安装后任务:
(1)验证oracle clusterware的安装
以grid身份运行以下命令:
检查crs状态:
[grid@rac1 ~]$ 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
检查 Clusterware 资源:
[grid@rac1 ~]$ crs_stat -t -v
Name Type R/RA F/FT Target State Host
----------------------------------------------------------------------
ora.CRS.dg ora....up.type 0/5 0/ ONLINE ONLINE rac1
ora....N1.lsnr ora....er.type 0/5 0/0 ONLINE ONLINE rac1
ora.asm ora.asm.type 0/5 0/ ONLINE ONLINE rac1
ora.eons ora.eons.type 0/3 0/ ONLINE ONLINE rac1
ora.gsd ora.gsd.type 0/5 0/ OFFLINE OFFLINE
work ora....rk.type 0/5 0/ ONLINE ONLINE rac1
ora.oc4j ora.oc4j.type 0/5 0/0 OFFLINE OFFLINE
ora.ons ora.ons.type 0/3 0/ ONLINE ONLINE rac1
ora....SM1.asm application 0/5 0/0 ONLINE ONLINE rac1
ora.rac1.gsd application 0/5 0/0 OFFLINE OFFLINE
ora.rac1.ons application 0/3 0/0 ONLINE ONLINE rac1
ora.rac1.vip ora....t1.type 0/0 0/0 ONLINE ONLINE rac1
ora....SM2.asm application 0/5 0/0 ONLINE ONLINE rac2
ora.rac2.gsd application 0/5 0/0 OFFLINE OFFLINE
ora.rac2.ons application 0/3 0/0 ONLINE ONLINE rac2
ora.rac2.vip ora....t1.type 0/0 0/0 ONLINE ONLINE rac2
ora....ry.acfs ora....fs.type 0/5 0/ ONLINE ONLINE rac1
ora.scan1.vip ora....ip.type 0/0 0/0 ONLINE ONLINE rac1
检查集群节点:
[grid@rac1 ~]$ olsnodes
rac01
rac02
确认针对 Oracle Clusterware 文件的 Oracle ASM 功能:
如果在 Oracle ASM 上安装了 OCR 和表决磁盘文件,则以 Grid Infrastructure 安装所有者的身份,使用下面的命令语法来确认当前正在运行已安装的 Oracle ASM:
[grid@rac01 ~]$ srvctl status asm -a
ASM is running on rac01,rac02
ASM is enabled.
[grid@rac01 ~]$
检查 Oracle 集群注册表 (OCR):
[grid@rac01 ~]$ ocrcheck
Status of Oracle Cluster Registry is as follows :
Version : 3
Total space (kbytes) : 262120
Used space (kbytes) : 2256
Available space (kbytes) : 259864
ID : 1994061654
Device/File Name : +DATA
Device/File integrity check succeeded
Device/File not configured
Device/File not configured
Device/File not configured
Device/File not configured
Cluster registry integrity check succeeded
Logical corruption check bypassed due to non-privileged user
检查表决磁盘:
[grid@rac01 ~]$ crsctl query css votedisk
## STATE File Universal Id File Name Disk group
-- ----- ----------------- --------- ---------
1. ONLINE 80d6695dfc2d4f64bf7ebfe09146f827 (ORCL:CRS1) [DATA]
Located 1 voting disk(s).
(2)为数据和快速恢复区创建 ASM 磁盘组:
grid@rac01 ~]$ export DISPLAY=10.61.1.71:0.0
[grid@rac01 ~]$ asmca
单击Exit退出ASM配置向导。
12、安装oracle 11g r2 database:
[oracle@rac01 database]$ export DISPLAY=10.62.1.71:0.0
[oracle@rac01 database]$ ./runInstaller
I wish 取消打勾
点击yes
选择仅安装软件
选择 Real Application Clusters database installation 单选按钮(此为默认选择),确保选中 Node Name 窗口中的两个 Oracle RAC 节点。
单击 [SSH Connectivity] 按钮。输入 oracle 用户的 OS Password,然后单击 [Setup] 按钮。这会启动 SSH Connectivity 配置过程
选上简体中文
默认选企业版
待安装完成后在各个节点执行/u01/app/oracle/product/11.2.0/dbhome_1/root.sh脚本,完成后退出向导。
配置监听,必须以grid
展开阅读全文