linux环境下建asm rac
RAC集群的关键点:
1.共享存储
2.节点间需要内部通讯,以协调集群正常运行,所以每个节点需要提供外部 络与内部 络.
3.CRS集群软件: 需要集群软件(Clusterware)协调各节点.
4.集群注册文件(OCR): 需要注册集群,保存在共享磁盘上.
5.仲裁磁盘(Voting Disk): 需要协调各节点决定控制权,做为表决器,保存在共享磁盘上.
6.虚拟IP(Virturl IP): 提供客户端连接,IP由集群软件接管,当集群就绪时,虚拟IP可以连接.
共享存储访问方式(存储系统):
1.集群文件系统(CFS:Cluster File System)
2.自动存储管理(ASM:Automatic Storage Management)
3. 络文件系统(NFS)
4.裸设备(RAW)
单机文件系统FAT32,NTFS,ext3不能作为共享存储
选择以下储存方案来建立集群系统:
项目 存储系统 存储位置
Clusterware软件 本地文件系统 本地磁盘
voting disk RAW 共享磁盘
OCR RAW 共享磁盘
数据库软件 本地文件系统 共享磁盘
数据库 ASM 共享磁盘
环境:2台虚拟机(rac1,rac2),2块 卡,一块共享存储30g,内存2g
安装前准备 :
一、 络主机名(每个节点)
1、修改 卡IP vi /etc/sysconfig/network-scripts/ifcfg-eth0 (1)
2、修改hosts文件 vi /etc/hosts
#rac1
192.168.56.10 rac1
10.10.10.10 rac1priv
192.168.56.211 rac1vip
#rac2
192.168.56.11 rac2
10.10.10.11 rac2priv
192.168.56.212 rac2vip
3、修改主机名 vi /etc/sysconfig/network
4、修改完成后,重启 络服务 service network restart
二、关闭不需要的服务(每个节点)
chkconfig autofs off
chkconfig acpid off
chkconfig sendmail off
chkconfig cups-config-daemon off
chkconfig cpus off
chkconfig xfs off
chkconfig lm_sensors off
chkconfig gpm off
chkconfig openibd off
chkconfig pcmcia off
chkconfig cpuspeed off
chkconfig nfslock off
chkconfig ip6tables off
chkconfig rpcidmapd off
chkconfig apmd off
chkconfig sendmail off
chkconfig arptables_jf off
chkconifg microcode_ctl off
chkconfig rpcgssd off
chkconfig ntpd off
三、安装支持oracle软件所需的系统插件(每个节点) (不确定)
安装oracle依赖的软件包
mount光盘
[root@node1 ~]# mount /dev/cdrom /mnt
mount: block device /dev/cdrom is write-protected, mounting read-only
修改yum源
[root@node1 ~]# vi /etc/yum.repos.d/rhel-debuginfo.repo
name=Red Hat Enterprise Linux $releasever – $basearch – Debug
baseurl=file:///mnt/Server
enabled=1
gpgcheck=0
改好后 刷新
[root@node1 ~]# yum clean all
安装包
[root@server1 yum.repos.d]# yum install -y lib*
yum install -y binutils-* libXp* compat-libstdc++-33-* elfutils-libelf-* elfutils-libelf-devel-* gcc-* gcc-c++-* glibc-* glibc-common-* glibc-devel-* glibc-headers-* ksh-* libaio-* libgcc-* libstdc++-* make-* sysstat-* unixODBC-* unixODBC-devel-*
mount /dev/cdrom /mnt
cd /mnt/Server
rpm -p compat-db-4*
rpm -Uvh libaio-0*
rpm -Uvh compat-libstdc++-33-3*
rpm -Uvh compat-gcc-34-3*
rpm -Uvh compat-gcc-34-c++-3*
rpm -Uvh libXp-1*
rpm -Uvh openmotif-2*
rpm -Uvh gcc-4*
rpm -Uvh glibc-2.5-12.i686.rpm
四、创建oracle用户和dba组,rac的各个节点都要创建
groupadd -g 1100 dba
useradd -u 1000 -g dba oracle
passwd oracle
五、配置互信,每台机器都要执行
su – oracle
/usr/bin/ssh-keygen -t rsa
/usr/bin/ssh-keygen -t dsa
在第二个节点
cd .ssh
scp id_rsa.pub rac1:/home/oracle/.ssh/id_rsa.pub2
scp id_dsa.pub rac1:/home/oracle/.ssh/id_dsa.pub2
在第一台机器执行
cd .ssh
cat id_dsa.pub id_dsa.pub2 id_rsa.pub id_rsa.pub2>authorized_keys
chmod 644 authorized_keys
scp authorized_keys rac02:/home/oracle/.ssh
请注意,当您使用 ssh 第一次访问远程主机时,其 RSA 密钥将是未知的,从而将提示您确认是否希望连接该主机。 SSH 将记录该远程主机的 RSA 密钥,并在以后连接该主机时不再做出相关提示。
在每台机器上,以 oracle 用户身份登录,运行
ssh rac1 date
ssh rac1priv date
ssh rac2 date
ssh rac2priv date
六、修改系统参数
1、修改系统核心参数 vi /etc/sysctl.conf (root用户)
kernel.core_uses_pid = 1
fs.file-max = 65536
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 1048576
net.core.rmem_max = 1048576
net.core.wmem_default = 262144
net.core.wmem_max = 262144
kernel.shmmni = 4096
kernel.sem = 500 64000 100 128
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
sysctl -p 使它生效
3、往vi /etc/csh.login文件里追加以下内容:
if ( $USER == “oracle” ) then
limit maxproc 16384
limit descriptors 65536
umask 022
endif
4、修改用户限制 vi /etc/security/limits.conf
oracle soft nofile 655360
oracle hard nofile 635360
oracle soft nproc 10240
oracle hard nproc 16384
七、修改oracle用户的环境变量 vi /home/oracle/.bash_profile
export ORACLE_BASE=/oracle/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2/db_1
export ORA_CRS_HOME=$ORACLE_BASE/product/10.2/crs
export ORACLE_SID=test1(test2)
export PATH=$ORACLE_HOME/bin:$ORA_CRS_HOME/bin:$PATH
八、创建/oracle目录,并赋予oracle用户的权限
mkdir /oracle
chown -R oracle:dba /oracle
chmod -R 755 /oracle
九、配置Hangcheck 计时器 (可以不用配置,把安装软件的节点时间调的比其他节点时间慢)
vi /etc/rc.local
增加:
modprobe hangcheck-timer hangcheck-tick=30 hangcheck_margin=180
这个增加后,记住一定要重新或者执行生效啊!
要立即加载模块,执行
modprobe -v hangcheck-timer
查看是否执行成功,下面为成功
lsmod | grep hangcheck_timer
hangcheck_timer 8153 0
——————-修改时间方法(修改节点1比节点2慢)
date -s 13:00:00( 例子:修改为13点整)
十、划分共享磁盘分区
1、查看磁盘信息 fdisk -l
Disk /dev/sda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 535 4192965 82 Linux swap / Solaris
/dev/sda3 536 3916 27157882+ 83 Linux
Disk /dev/sdb: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/sdb doesn’t contain a valid partition table
2、划分/dev/sdb磁盘分区
fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
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 3916.
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-3916, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-3916, default 3916): +400M
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (51-3916, default 51):
Using default value 51
Last cylinder or +size or +sizeM or +sizeK (51-3916, default 3916): +400M
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 3
First cylinder (101-3916, default 101):
Using default value 101
Last cylinder or +size or +sizeM or +sizeK (101-3916, default 3916):
Using default value 3916
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
把分区映射为raw盘,2个节点
节点一:
cd /etc/udev/rules.d
vi 60-raw.rules
在里面添加
ACTION==”add”, KERNEL==”sdb1″, RUN+=”/bin/raw /dev/raw/raw1 %N”
ACTION==”add”, KERNEL==”sdb2″, RUN+=”/bin/raw /dev/raw/raw2 %N”
ACTION==”add”, KERNEL==”sdb3″, RUN+=”/bin/raw /dev/raw/raw3 %N”
ACTION==”add”, KERNEL==”raw[1-3]”,OWNER=”oracle”,GROUP=”dba”,MODE=”660″
保存完成后,使它生效 start_udev
验证:raw -qa
[root@rac1 rules.d]# raw -qa
/dev/raw/raw1: bound to major 8, minor 17
/dev/raw/raw2: bound to major 8, minor 18
/dev/raw/raw3: bound to major 8, minor 19
节点二:
cd /etc/udev/rules.d
vi 60-raw.rules
在里面添加
ACTION==”add”, KERNEL==”sdb1″, RUN+=”/bin/raw /dev/raw/raw1 %N”
ACTION==”add”, KERNEL==”sdb2″, RUN+=”/bin/raw /dev/raw/raw2 %N”
ACTION==”add”, KERNEL==”sdb3″, RUN+=”/bin/raw /dev/raw/raw3 %N”
ACTION==”add”, KERNEL==”raw[1-3]”,OWNER=”oracle”,GROUP=”dba”,MODE=”660″
partprobe –重新读取分区
start_udev — 启动
raw -qa –查看
[root@rac2 rules.d]# raw -qa
/dev/raw/raw1: bound to major 8, minor 17
/dev/raw/raw2: bound to major 8, minor 18
/dev/raw/raw3: bound to major 8, minor 19
十一、上传软件至/oracle目录下
解压:gunzip *.gz
cpio -idcmv c
unzip *.zip
chown -R oracle:dba /oracle
chmod -R 755 /oracle
开始安装:
一、安装集群软件
用oracle用户,执行安装
用root用户执行rootpre.sh 脚本,两个节点
[root@rac1 ~]# cd /oracle/clusterware/
[root@rac1 clusterware]# cd rootpre/
[root@rac1 rootpre]# ls
rootpre.sh
[root@rac1 rootpre]# ./rootpre.sh
No OraCM running
[root@rac1 rootpre]# scp rootpre.sh rac2:/oracle
The authenticity of host ‘rac2 (192.168.56.30)’ can’t be established.
RSA key fingerprint is c6:99:59:37:f5:e5:0d:9e:c6:72:18:ab:1c:2a:46:19.
Are you sure you want to continue connecting (yes/no)es
Warning: Permanently added ‘rac2,192.168.56.30’ (RSA) to the list of known hosts.
root@rac2’s password:
rootpre.sh 100% 2981 2.9KB/s 00:00
执行完成后,在 按Y键
出现以下界面,现在可以开始安装了
把警告忽略
每个节点执行上面的脚本,执行一个脚本后,再去另外个节点执行,切记不要同时执行
/oracle/app/oracle/oraInventory/orainstRoot.sh
/oracle/app/oracle/product/10.2/crs/root.sh
执行第二个脚本时间用的久,耐心等待!!!!!!!
在第二个节点,执行第二个脚本, 错
正常,这是oracle10g安装在red hat5上的bug
解决方法:1.直接升级集群软件
2.修改vipca
[oracle@rac2 ~]$ oifcfg iflist
eth0 192.168.56.0
eth1 10.10.10.0
在root用户下执行
./oifcfg setif -global eth0/192.168.56.0:public
./oifcfg setif -global eth1/10.10.10.0:cluster_interconnect
再执行./vipca
错。。。。
直接下一步,还是 错
估计原因就是因为,vipca服务没启动
退出重来吧。。。。或者直接升级也可以解决,我选择重来。
删掉集群
1 、 cd $ORA_CRS_HOME/install root用户
执行 ./rootdeinstall.sh
./rootdelete.sh
2. Stop the Nodeapps on all nodes:
srvctl stop nodeapps -n
3. rm -f /etc/init.d/init.cssd
rm -f /etc/init.d/init.crs
rm -f /etc/init.d/init.crsd
rm -f /etc/init.d/init.evmd
rm -f /etc/rc2.d/K96init.crs
rm -f /etc/rc2.d/S96init.crs
rm -f /etc/rc3.d/K96init.crs
rm -f /etc/rc3.d/S96init.crs
rm -f /etc/rc5.d/K96init.crs
rm -f /etc/rc5.d/S96init.crs
rm -Rf /etc/oracle/scls_scr
rm -f /etc/inittab.crs
cp /etc/inittab.orig /etc/inittab
4.rm -rf
5. dd if=/dev/zero of=/dev/raw/raw1 bs=8192 count=2560
dd if=/dev/zero of=/dev/raw/raw2 bs=8192 count=12800
6.删完重启
——再次安装,这次执行到最后,只出现一个脚本。。。。
又 这个错
运行完成后,直接OK,
安装oracle软件
执行/oracle/app/oracle/product/10.2/db_1/root.sh
建监听 oracle用户
netca
完成
创建数据库 oracle 用户 dbca
dbca
安装完成
————————-升级集群数据库—————
1、首先升级集群软件
[oracle@rac1 oracle]$ cd Disk1
[oracle@rac1 Disk1]$ ls
install patch_note.htm response runInstaller stage
[oracle@rac1 Disk1]$ ./runInstaller
每个节点执行这2个脚本
[root@rac1 bin]# /oracle/app/oracle/product/10.2/crs/bin/crsctl stop crs –停止集群服务
Stopping resources.
Successfully stopped CRS resources
Stopping CSSD.
Shutting down CSS daemon.
Shutdown request successfully issued.
[root@rac1 bin]# /oracle/app/oracle/product/10.2/crs/install/root102.sh —更新集群,并启动集群
Creating pre-patch directory for saving pre-patch clusterware files
Completed patching clusterware files to /oracle/app/oracle/product/10.2/crs
Relinking some shared libraries.
Relinking of patched files is complete.
WARNING: directory ‘/oracle/app/oracle/product/10.2’ is not owned by root
WARNING: directory ‘/oracle/app/oracle/product’ is not owned by root
WARNING: directory ‘/oracle/app/oracle’ is not owned by root
WARNING: directory ‘/oracle/app’ is not owned by root
WARNING: directory ‘/oracle’ is not owned by root
Preparing to recopy patched init and RC scripts.
Recopying init and RC scripts.
Startup will be queued to init within 30 seconds.
Starting up the CRS daemons.
Waiting for the patched CRS daemons to start.
This may take a while on some systems.
.
10205 patch successfully applied.
clscfg: EXISTING configuration version 3 detected.
clscfg: version 3 is 10G Release 2.
Successfully deleted 1 values from OCR.
Successfully deleted 1 keys from OCR.
Successfully accumulated necessary OCR keys.
Using ports: CSS=49895 CRS=49896 EVMC=49898 and EVMR=49897.
node
node 1: rac1 rac1priv rac1
Creating OCR keys for user ‘root’, privgrp ‘root’..
Operation successful.
clscfg -upgrade completed successfully
Creating ‘/oracle/app/oracle/product/10.2/crs/install/paramfile.crs’ with data used for CRS configuration
Setting CRS configuration values in /oracle/app/oracle/product/10.2/crs/install/paramfile.crs
–升级oracle软件
oracle软件升级包和cluster软件包集合在一起,所以直接执行就行了。
错:原因是因为我还没关闭数据库及监听
我们直接关闭集群服务吧(两边都执行)root用户
/oracle/app/oracle/product/10.2/crs/bin/crsctl stop crs
执行脚本/oracle/app/oracle/product/10.2/db_1/root.sh
—升级数据库
1、首先把集群服务起来 (每个节点都执行)
[root@rac2 /]# cd /etc/init.d
[root@rac2 init.d]# ./init.crs start
Startup will be queued to init within 30 seconds.
2、查看alert日志
cd $ORACLE_BASE/admin/test/bdump
tail -f alert_test2.log
发现数据库,启不来,要以升级模式upgrade启
3、创建pfile参数文件
①首先查看原pfile参数文件
cd $ORACLE_HOME/dbs
查看里面内容
SPFILE=’+DATADG/test/spfiletest.ora’
②进入到sqlplus中去
创建一个pfile文件并存放到/home/oracle目录下
SQL> create pfile=’/home/oracle/a.txt’ from SPFILE=’+DATADG/test/spfiletest.ora’;
③修改刚刚创建的pfile文件(a.txt)
把cluster_database 注释掉
④以upgrade模式启动数据库
SQL> startup upgrade pfile=’/home/oracle/a.txt’;
ORACLE instance started.
Total System Global Area 599785472 bytes
Fixed Size 2098112 bytes
Variable Size 163580992 bytes
Database Buffers 427819008 bytes
Redo Buffers 6287360 bytes
Database mounted.
Database opened.
SQL>spool /home/oracle/upgrd.log 创建升级日志
SQL> @dbms/admin/catupgrd.sql 开始升级
@dbms/admin/utlrp.sql检测无效对象
SQL>spool off
数据库升级完成后,一定要正常关闭数据库
shutdown immediate
然后再启startup
文章知识点与官方知识档案匹配,可进一步学习相关知识CS入门技能树Linux入门初识Linux24975 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!