[计算机]Oracle 10g RAC 的部署.doc
-
资源ID:4561043
资源大小:64.50KB
全文页数:9页
- 资源格式: DOC
下载积分:10金币
|
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
[计算机]Oracle 10g RAC 的部署.doc
Oracle 10g RAC 的部署一 硬件架构1共享的存储Oracle RAC依赖于共享磁盘体系结构。共享的磁盘中存放的如下内容,以便各个Node访问:(1) 数据库文件(2) 联机重做日志(3) 控制文件(4) Oracle Cluster Registry(5) Voting Disk2专用网络Cache Fusion技术使用专用网络将每个节点的物理内存(RAM)有效地组合成一个高速缓存。(1) 通过在专用网络上传输某个Oracle实例高速缓存中存储的数据,允许其他任何实例访问这些数据。(2) 在集群节点中传输锁定和其他同步信息保持数据完整性和高速缓存一致性。专用网络通常是用千兆以太网构建的,但是对于高容量的环境,很多厂商提供了专门为Oracle RAC设计的低延迟、高带宽的专有解决方案。Linux还提供一种将多个物理NIC绑定为一个虚拟NIC的方法来增加带宽和提高可用性。3公共网络为维持高可用性,为每个集群节点分配了一个虚拟IP地址(VIP)。 如果主机发生故障,则可以将故障节点的IP地址重新分配给一个可用节点,从而允许应用程序通过相同的IP地址继续访问数据库。二 软件在软件级别上,RAC集群中的每个节点需要:一个操作系统 (多种)Oracle集群就绪服务 (CRS)一组用于集群环境的与平台无关的系统服务。CRS维护着两个文件:Oracle Cluster Registry (OCR)和Voting Disk。OCR和Voting Disk,这两个文件须以原始分区(RAW)或集群文件系统文件(OCFS)的形式存在于共享磁盘上。虽然CRS与第三方厂商供应的集群件协同工作,但Oracle RAC 10g所需组件只是CRS。Oracle RAC软件,可选.在一个节点上安装RAC OUI会自动部署到其他的节点。一个Oracle自动存储管理实例(ASM关于Oracle自动存储管理(ASM)的说明:ASM是Oracle数据库10g中的一个新特性,它以一种与平台无关的方式提供文件系统服务、逻辑容量管理器和软件RAID。Oracle ASM可以条带化和镜像磁盘,从而实现了在数据库被加载的情况下添加或移除磁盘以及自动平衡I/O以删除“热点”。它还支持直接和异步的I/O。Oracle ASM不是通用的文件系统,只能用于Oracle数据文件、重做日志、控制文件和RMAN快速恢复区。ASM中的文件既可以由数据库自动创建和命名(使用Oracle管理文件特性),也可以由DBA手动创建和命名。由于操作系统无法访问ASM中存储的文件,因此对使用ASM文件的数据库执行备份和恢复操作的唯一途径就是使用恢复管理器(RMAN)。ASM作为单独的Oracle实例实施,只有它在运行时其他数据库才能访问它。ASM需要的内存不多:对大部分系统来说只需64MB。 在Oracle RAC环境中,ASM实例必须运行在每个集群节点上。三 安装Llinux1确认Red Hat Enterprise Linux 4 (RHEL4)的安装 (所有节点)所需内核:2.6.9-5.EL或更高版本验证内核版本:# uname -r 2.6.9-5.ELsmp其他所需程序包的版本(或更高版本): make-3.80-5 gcc-3.4.3-9.EL4 compat-db-4.1.25-9验证已安装的程序包:# rpm -q make gcc compat-db make-3.80-5 gcc-3.4.3-9.EL4 compat-db-4.1.25-9如果有程序包没有安装的话,则找到需要安装的程序包,例如#rpm ivhmake-3.80-52为Oracle配置Linux创建Oracle组和用户帐户(所有节点,但是第一个节点和其他节点不同)在一个节点上如下操作。# /usr/sbin/groupadd oinstall /建立组oinstall # /usr/sbin/groupadd dba /建立组dba # /usr/sbin/useradd -m -g oinstall -G dba oracle /建立用户oracle # id oracle /查看oracle的ID uid=501(oracle) gid=501(oinstall) groups=501(oinstall),502(dba) # passwd oracle /设置Oracle口令用户ID和组ID在所有集群主机上必须相同,如果采用虚拟机拷贝的方式,则自动一样了。不用如下的操作。在其余节点上如下操作# /usr/sbin/groupadd -g 501 oinstall # /usr/sbin/groupadd -g 502 dba # /usr/sbin/useradd -m -u 501 -g oinstall -G dba oracle # id oracle uid=501(oracle) gid=501(oinstall) groups=501(oinstall),502(dba) # passwd oracle /设置Oracle口令,所有节点设置为相同的密码创建挂载点(在所有节点上)以root用户身份执行以下命令:# mkdir -p /u01/app/oracle /主目录 # chown -R oracle:oinstall /u01/app/oracle /改变Owner(用户和组) # chmod -R 775 /u01/app/oracle /改变目录的权限配置内核参数(在所有节点上)以root用户身份登录配置Linux内核参数。#cat >> /etc/sysctl.conf >>EOF kernel.shmall = 2097152 kernel.shmmax = 2147483648 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 fs.file-max = 65536 net.ipv4.ip_local_port_range = 1024 65000 net.core.rmem_default=262144 net.core.wmem_default=262144 net.core.rmem_max=262144 net.core.wmem_max=262144 EOF #/sbin/sysctl -p为oracle用户设置Shell限制(在所有节点上) 以root用户身份登录执行以下命令,对每个Linux帐户可以使用的进程数量和打开文件的数量设置限制#cat >> /etc/security/limits.conf >>EOF oracle soft nproc 2047 /proc的软限制 oracle hard nproc 16384 /proc的硬限制 oracle soft nofile 1024 /文件的软限制 oracle hard nofile 65536 /文件的硬限制 EOF #cat >> /etc/pam.d/login >>EOF session required /lib/security/pam_limits.so EOF #cat >> /etc/profile >>EOF /K Shell if $USER = "oracle" then if $SHELL = "/bin/ksh" then ulimit -p 16384 /同proc的硬限制 ulimit -n 65536 /同文件的硬限制 else ulimit -u 16384 -n 65536 fi umask 022 fi EOF #cat >> /etc/csh.login >>EOF /C Shell if ( $USER = "oracle" ) then limit maxproc 16384 /同proc的硬限制 limit descriptors 65536 /同文件的硬限制 umask 022 endif EOF配置Hangcheck计时器(在所有节点上)该模块是用来监控集群的状态情况。以root用户登陆#modprobe hangcheck-timer hangcheck_tick=30 hangcheck_margin=180 /配置 #cat >> /etc/rc.d/rc.local >>EOF /加载 modprobe hangcheck-timer hangcheck_tick=30 hangcheck_margin=180 EOF提示1:linux as4中已经安装了此模块,使用下面的命令确认:#find /lib/modules -name "hangcheck-timer.o" 看看有没有 #modprobe hangcheck-timer #grep Hangcheck /var/log/messages | tail -2 Jul 31 15:01:49 ha2pub kernel: Hangcheck: starting hangcheck timer 0.5.0 (tick is 30 seconds, margin is 180 seconds).配置/etc/hosts (在所有节点上)以root用户登陆有些Linux发行版本将主机名与回送地址(127.0.0.1)相关联。 如果出现这种情况,则从回送地址中删除主机名。用于此指南的/etc/hosts文件: 127.0.0.1 localhost.localdomain localhost 192.168.100.51 ds1-priv.orademo.org ds1-priv # ds1 private 192.168.100.52 ds2-priv.orademo.org ds2-priv # ds2 private 192.168.200.51 ds1.orademo.org ds1 # ds1 public 192.168.200.52 ds2.orademo.org ds2 # ds2 public 192.168.200.61 ds1-vip.orademo.org ds1-vip # ds1 virtual 192.168.200.62 ds2-vip.orademo.org ds2-vip # ds2 virtual每个节点有3个IP,一个用于专用网,一个用于公共网络,一个用于虚拟地址为用户等效性配置SSH(所有节点,第一个节点与其他节点稍有不同)(1)第一步是生成SSH的公共密钥和专用密钥。SSH协议有两个版本;版本1使用RSA,版本2使用DSA,因此我们将创建这两种类型的密钥,以确保SSH能够使用任一版本。生成的id_rsa.pub和id_dsa.pub文件是您的公共密钥,id_rsa和id_dsa是私有密匙文件需保密。在每个节点,以oracle用户身份登录:$ mkdir /.ssh $ chmod 755 /.ssh $ /usr/bin/ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/oracle/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/oracle/.ssh/id_rsa. Your public key has been saved in /home/oracle/.ssh/id_rsa.pub. The key fingerprint is: 4b:df:76:77:72:ba:31:cd:c4:e2:0c:e6:ef:30:fc:37 oracleds1.orademo.org $ /usr/bin/ssh-keygen -t dsa Generating public/private dsa key pair. Enter file in which to save the key (/home/oracle/.ssh/id_dsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/oracle/.ssh/id_dsa. Your public key has been saved in /home/oracle/.ssh/id_dsa.pub. The key fingerprint is: af:37:ca:69:3c:a0:08:97:cb:9c:0b:b0:20:70:e3:4a oracleds1.orademo.org(2)第二步将每个主机上的公共密钥文件id_rsa.pub和id_dsa.pub的内容复制到其他每个主机的/.ssh/authorized_keys文件中在第一个节点,以oracle用户身份登录:$ cat /.ssh/id_rsa.pub >> /.ssh/authorized_keys $ cat /.ssh/id_dsa.pub >> /.ssh/authorized_keys /本地的共享密钥 $ ssh oracleds2 cat /.ssh/id_rsa.pub >> /.ssh/authorized_keys /另外节点的共享密钥is_rsa.pub The authenticity of host 'ds2 (192.168.200.52)' can't be established. RSA key fingerprint is d1:23:a7:df:c5:fc:4e:10:d2:83:60:49:25:e8:eb:11. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'ds2,192.168.200.52' (RSA) to the list of known hosts. oracleds2's password: $ ssh oracleds2 cat /.ssh/id_dsa.pub >> /.ssh/authorized_keys /另外节点的共享密钥is_dsa.pub oracleds2's password: $ chmod 644 /.ssh/authorized_keys /改变权限现在对其余节点做同样的处理。请注意,这次SSH会提示您输入在创建密钥时所使用的口令短语而非oracle的口令。这是因为第一个主机(ds1)现在知道了第二个主机的公共密钥$ cat /.ssh/id_rsa.pub >> /.ssh/authorized_keys $ cat /.ssh/id_dsa.pub >> /.ssh/authorized_keys $ ssh oracleds1 cat /.ssh/id_rsa.pub >> /.ssh/authorized_keys The authenticity of host 'ds1 (192.168.200.51)' can't be established. RSA key fingerprint is bd:0e:39:2a:23:2d:ca:f9:ea:71:f5:3d:d3:dd:3b:65. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'ds1,192.168.200.51' (RSA) to the list of known hosts. Enter passphrase for key '/home/oracle/.ssh/id_rsa': $ ssh oracleds1 cat /.ssh/id_dsa.pub >> /.ssh/authorized_keys Enter passphrase for key '/home/oracle/.ssh/id_rsa': $ chmod 644 /.ssh/authorized_keys(3)第三步建立用户等效性(第一个节点) 以oracle用户身份在将要安装Oracle 10g软件的节点(ds1)上:$ exec /usr/bin/ssh-agent $SHELL $ /usr/bin/ssh-add Enter passphrase for /home/oracle/.ssh/id_rsa: Identity added: /home/oracle/.ssh/id_rsa (/home/oracle/.ssh/id_rsa) Identity added: /home/oracle/.ssh/id_dsa (/home/oracle/.ssh/id_dsa)注意:用户等效性仅为当前会话建立。如果您切换到其他会话或注销并重新登录,则必须再次运行ssh-agent和ssh-add才能重新建立用户等效性。(4)第四步测试联通性(所有节点之间)您现在就可以使用ssh在其他集群主机上不必输入口令而登录、执行程序和复制文件了。$ ssh ds2 date Sun Jun 27 19:07:19 CDT 2004在远程节点上第一次执行操作时才会出现:The authenticity of host 'ds2 (192.168.200.52)' can't be established. RSA key fingerprint is 8f:a3:19:76:ca:4f:71:85:42:c2:7a:da:eb:53:76:85. Are you sure you want to continue connecting (yes/no)? yes所以通过测试连通性(最好公共和私有两个节点名都测试),您不仅确保了远程操作的正常运行,还完成了初始的安全密钥交换。3准备共享磁盘三种共享磁盘的方法(1)Oracle集群文件系统(OCFS)(2) 自动存储管理器(ASM)(3) 原始设备OCFSOCFS第1版是原始设备的一个优秀替代品。 它不仅更易于管理和维护,而且克服了255个原始设备的限制。但是,它并不是一个通用集群文件系统。 它只能用于存储以下类型的文件:Oracle数据文件*联机重做日志 *归档重做日志控制文件 *SpfileCRS共享文件(Oracle Cluster Registry和CRS voting disk)。*获取ocfs安装程序转到 RPM。您需要三个RPM:ocfs-support、ocfs-tools和ocfs-kernel-specific模块安装ocfs (在每个节点上,以root身份登陆)# rpm -Uvh ocfs-support-1.0.10-1.i386.rpm ocfs-tools-1.0.10-1.i386.rpm ocfs-2.4.21-EL-smp-1.0.12-1.i686.rpm Preparing. # 100% 1:ocfs-support # 33% 2:ocfs-tools # 67% 3:ocfs-2.4.21-EL-smp # 100% Linking OCFS module into the module path OK 配置OCFS (在每个节点上,以root身份登陆)在每个节点上,以root用户身份运行ocfstool: # ocfstool选择Tasks Generate Config选择与RAC专用网络相对应的接口单击OK生成/etc/ocfs.conf文件,然后退出ocfstool对集群中的每个节点重复这些操作。在/etc/ocfs2/目录下面将有cluster.conf文件,内容应该大致如下node: ip_port = 7777 ip_address = 192.168.200.51 number = 0 name = ds1 cluster = ocfs2 node: ip_port = 7777 ip_address = 192.168.200.52 number = 1 name = ds2 cluster = ds cluster: node_count = 2 name = ds 所有节点配置完毕,在所有节点开始加载ocfs # /sbin/load_ocfs /sbin/insmod ocfs node_name=ds1.orademo.org ip_address=192.168.100.51 cs=1795 guid=2FB60EDD8B872FC4216C00010324C023 comm_voting=1 ip_port=7000 Using /lib/modules/2.4.21-EL-smp-ABI/ocfs/ocfs.o Warning:kernel-module version mismatch /lib/modules/2.4.21-EL-smp-ABI/ocfs/ocfs.o was compiled for kernel version 2.4.21-4.ELsmp while this kernel is version 2.4.21-15.0.2.ELsmp Warning:loading /lib/modules/2.4.21-EL-smp-ABI/ocfs/ocfs.o will taint the kernel:forced load See http:/www.tux.org/lkml/#export-tainted for information about tainted modules Module ocfs loaded, with warnings在所有节点,为OCFS文件系统创建一个挂载点:#mkdir /u02创建OCFS文件系统(在第一个节点上):#fdisk /dev/sdb /将共享磁盘分区 #mkfs.ocfs -b 128 -L /u02 -m /u02 -p 0775 -u root -g root /dev/sdb1 F /-b块大小L标签名m加载点/dev/sdb1共享磁盘的分区1 mkfs.ocfs只完成OCFS文件系统初始化工作的一部分。其余的初始化工作在第一次挂载文件系统时进行。 因此,对于新创建的文件系统,您必须在创建它的同一主机上挂载它。 #mount -t ocfs -L /u02 /u02请注意,mount命令使用了在创建文件系统期间所使用的文件系统标签(-L /u02)。 这是一种既引用文件系统又不必记住设备名的便利方法。要验证已挂载OCFS文件系统,可执行mount命令或运行df:#mount -t ocfs /dev/sdb1 on /u02 type ocfs (rw) #df /u02 Filesystem 1K-blocks Used Available Use% Mounted on /dev/sdb1 35557856 36064 35521792 1% /u02再次执行#umount /u02 #mount -t ocfs -L /u02 /u02在所有节点上挂载OCFS文件系统#mount -t ocfs -L /u02 /u02为了系统启动时自动挂载OCFS文件系统,可以在所有节点的/etc/fstab中添加类似以下的一行:LABEL=/u02 /u02 ocfs _netdev 0 0