超经典 超经典在linux上单机模拟Oracle 10g RAC集群

上传人:小*** 文档编号:73926796 上传时间:2022-04-12 格式:DOC 页数:19 大小:76.50KB
返回 下载 相关 举报
超经典 超经典在linux上单机模拟Oracle 10g RAC集群_第1页
第1页 / 共19页
超经典 超经典在linux上单机模拟Oracle 10g RAC集群_第2页
第2页 / 共19页
超经典 超经典在linux上单机模拟Oracle 10g RAC集群_第3页
第3页 / 共19页
点击查看更多>>
资源描述
一、简介 熟悉 Oracle 真正应用集群 (RAC) 10g 技术的最有效方法之一是访问一个实际的 Oracle RAC 10g 集群。没有什么方法比直接体验它们能够更好地理解其好处的了 包括容错、安全性、负载均衡和可伸缩性。 Oracle RAC 的核心是共享磁盘子系统。集群中的所有节点必须能够访问集群中所有节点的所有数据、重做日志文件、控制文件和参数文件。数据磁盘必须在全局范围内可用,以便允许所有节点访问数据库。每个节点拥有自己的重做日志和控制文件,但是其他节点必须能够访问这些文件,以便在系统故障时恢复该节点。希望本文能对一些手头上只有一台PC而没有真正的双机环境的朋友提供一个参考。二、本文实践环境1、PC主要配置:Celeron(R) CPU 1.80GHzMaxtor 6E040L0, ATA DISK drive 40GRelTek 8139C 网卡 一块内存DDR333 512MB * 2显示卡:ATI Radeon 9200 SE 操作系统:White Box Enterprise Linux 3 (本文同样适用于RedHat企业版,不同之处是WBEL3目前可以免费运用于商业)远程终端一台,装有windowsXP和远程X-server软件2、服务器分区方案Oracle 数据库文件RAC节点名实例名数据库名$ORACLE_BASE文件系统dbracorcl1orcl/home/oracleASMOracle CRS 共享文件文件类型 文件名 分区 挂载点文件系统oracle集群注册表/u01/orcl/orcfile/dev/hda8/u01OCFSCRS表决磁盘/u01/orcl/cssfile/dev/hda8/u01OCFS3、所涉及软件1) oracle 10g 数据库软件ship.db.lnx32.cpio.gz2) oracle 10g 集群服务软件ship.crs.lnx32.cpio.gz3) OCFS文件系统支持ocfs-2.4.21-EL-1.0.14-1.i686.rpmocfs-support-1.0.10-1.i386.rpmocfs-tools-1.0.10-1.i386.rpm4) ASMlib驱动程序oracleasm-2.4.21-EL-1.0.3-1.i686.rpmoracleasm-support-1.0.3-1.i386.rpmoracleasmlib-1.0.0-1.i386.rpm以上软件包均可以从oracle官方网站下载WBEL linux下载地址:http:/www.whiteboxlinux.org/download.html三、基础操作1、安装linux安装过程中一些需要注意的地方:1) 磁盘分区:swap分区大小建议是内存的2倍,这里是2048MB,划出一些系统必要的分区根分区/,var分区/var,usr分区/usr,home分区/home,临时文件分区/tmp。注意:这里不要把所有的硬盘空间划分进操作系统,留下一半给后面安装oarcle集群磁盘使用,本文示例2) 文件系统 容量挂载点/dev/hda1 1012M/dev/hda2 7.7G /home/dev/hda7 1012M /tmp/dev/hda3 5.8G /usr/dev/hda5 2.0G /var3) 组件选取:一定要选上delvelopment tools和X-windows两项,为了节省空间其他可以不要4) 防火墙:最好不要5) 网络设置:eth0取消选中 Configure using DHCP 复选项选中 Activate on bootIP 地址:192.168.22.44网络掩码: 255.255.255.06) 主机名:dbrac2、.安装完成后检查必需的 RPM3、必须安装以下程序包(或更高版本): make-3.79.1gcc-3.2.3-34glibc-2.3.2-95.20glibc-devel-2.3.2-95.20glibc-headers-2.3.2-95.20glibc-kernheaders-2.4-8.34cpp-3.2.3-34compat-db-4.0.14-5compat-gcc-7.3-2.96.128compat-gcc-c+-7.3-2.96.128compat-libstdc+-7.3-2.96.128compat-libstdc+-devel-7.3-2.96.128openmotif-2.2.2-16setarch-1.3-1四、设置1、更改/etc/hostsvi /etc/hosts127.0.0.1 localhost.localdomain localhost192.168.22.44 dbracint-dbrac192.168.22.244vip-dbrac确保RAC节点名没有出现在回送地址中。此处设置相当重要,不能跳过,一定按照此设置,IP和主机别名可以自己定oracle 10g RAC中 使用了虚拟IP(VIP)技术,这是一个令人心动的高可用性、多机无缝切换的解决方案,但在单机模拟环境中仅仅是个形式而已,为了以后的顺利安装,不得不配置它2、调整内核网络设置参数编辑/etc/sysctl.conf,增加下面的设置:vi /etc/sysctl.conf# Default setting in bytes of the socket receive buffernet.core.rmem_default=262144# Default setting in bytes of the socket send buffernet.core.wmem_default=262144# Maximum socket receive buffer size which may be set by using# the SO_RCVBUF socket optionnet.core.rmem_max=262144# Maximum socket send buffer size which may be set by using # the SO_SNDBUF socket optionnet.core.wmem_max=2621443、添加模块选项: 将下列行添加到 /etc/modules.conf 中: options sbp2 sbp2_exclusive_login=04、创建“oracle”用户和目录$su -#groupadd dba#useradd -g dba -m oracle#passwd oracle5、编辑.bash_profile文件,增加oracle环境变量$vi .bash_profileexport PATHunset USERNAMEexport LANG=zh_CN.EUCORACLE_BASE=/home/oracle;export ORACLE_BASEexport ORACLE_HOME=$ORACLE_BASE/product/10.1.0/db_1export ORA_CRS_HOME=$ORACLE_BASE/product/10.1.0/crs_1export ORACLE_SID=rac1export NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBKPATH=$ORACLE_HOME/bin:/bin:/sbin:/usr/bin:/usr/ccs/bin:/usr/local/bin:/usr/ucb;export PATHLD_LIBRARY_PATH=$ORACLE_HOME/libORACLE_HOME/network/libORACLE_HOME/oracm/lib:/usr/local/lib:/usr/lib;export LD_LIBRARY_PATHexport ORACLE_TERM=xtermexport CLASSPATH=$ORACLE_HOME/JREORACLE_HOME/jlibORACLE_HOME/rdbms/jlibORACLE_HOME/rdbms/jlibORACLE_HOME/network/jlibexport THREADS_FLAG=nativeexport TEMP=/tmpexport TMPDIR=/tmpexport LD_ASSUME_KERNEL=2.4.16、创建CRS分区和数据文件分区1) 先建立CRS分区挂载点mkdir /u01chown oracle:dba /u012) 接着创建CRS分区和共享数据文件分区fdisk /dev/hdaCRS分区只要500M就够了,剩下的全部划分给数据文件分区,这里为数据文件只分了1个区/dev/hda9CRS分区为/dev/hda8rootdbrac root# fdisk /dev/hdaThe number of cylinders for this disk is set to 4997.rootdbrac root# fdisk /dev/hdaThe number of cylinders for this disk is set to 4997.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)Command (m for help): pDisk /dev/hda: 41.1 GB, 41109061120 bytes255 heads, 63 sectors/track, 4997 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks IdSystem/dev/hda1 * 1 131 1052226 83Linux/dev/hda2 132 1151 8193150 83Linux/dev/hda3 1152 1916 6144862+83Linux/dev/hda4 1917 499824756165 fWin95 Extd (LBA)/dev/hda5 1917 2177 2096451 83Linux/dev/hda6 2178 2438 2096451 82Linux swap/dev/hda7 2439 2569 1052226 83LinuxCommand (m for help): nFirst cylinder (2570-4998, default 2570): Using default value 2570Last cylinder or +size or +sizeM or +sizeK (2570-4998, default 4998): +500MCommand (m for help): nFirst cylinder (2632-4998, default 2632): Using default value 2632Last cylinder or +size or +sizeM or +sizeK (2632-4998, default 4998): +15000MCommand (m for help): pDisk /dev/hda: 41.1 GB, 41109061120 bytes255 heads, 63 sectors/track, 4997 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks IdSystem/dev/hda1 * 1 131 1052226 83Linux/dev/hda2 132 1151 8193150 83Linux/dev/hda3 1152 1916 6144862+83Linux/dev/hda4 1917 499824756165 fWin95 Extd (LBA)/dev/hda5 1917 2177 2096451 83Linux/dev/hda6 2178 2438 2096451 82Linux swap/dev/hda7 2439 2569 1052226 83Linux/dev/hda8 2570 2631 497983+83Linux/dev/hda9 2632 445614659281 83LinuxCommand (m for help): wThe partition table has been altered!Calling ioctl() to re-read partition table.WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.The kernel still uses the old table.The new table will be used at the next reboot.Syncing disks.7、编辑/etc/sysctl.conf,增加下面2行以设置系统共享内存大小和文件句柄kernel.shmmax=2147483648kernel.sem=250 32000 100 128本文涉及到的linux操作系统的内核参数默认设置大多符合oracle安装所需,不需要做更大的改动8、配置 hangcheck-timer 内核模块在/etc/modules.conf中增加下面一行options hangcheck-timer hangcheck_tick=30 hangcheck_margin=180为了确保系统每次重新启动的时候都能自动加载hangcheck-timer 模块,需要在/etc/rc.local文件中增加下面一行echo “modprobe hangcheck-timer” /etc/rc.local重启系统并检查hangcheck-timer模块是否已经加载rootdbrac root# lsmod | grep hangcheck-timerhangcheck-timer 2616 0(unused)9、配置 RAC 节点以进行远程访问 在 RAC 节点上运行 Oracle Universal Installer 时,它将使用 rsh 、rcp或scp命令将 Oracle 软件复制到 RAC 集群中的所有其他节点。虽然是单机模拟,但仍然要配置,无法跳过,从oracle 10g开始已经支持ssh协议,本文将首先尝试使用它使用oracle用户创建ssh公共密匙:oracledbrac oracle$ ssh-keygen -t dsaGenerating 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:2d:09:9a:c0:40:c7:99:46:ea:43:0d:22:4b:d0:a0:26 email=oracledbraoracledbra/emailemail=oracledbracc/email复制公匙到其他节点(这里是单机)oracledbrac oracle$ cp -v .ssh/id_dsa.pub .ssh/authorized_keys测试密匙是否生效oracledbrac oracle$ ssh dbracThe authenticity of host dbrac (192.168.22.44) cant be established.RSA key fingerprint is e7:ff:ce:5e:92:ac:c4:96:a8:ca:3e:20:2e:5c:75:ae.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added dbrac,192.168.22.44 (RSA) to the list of known hosts.oracledbrac oracle$无需密码即可登陆表示密匙已经生效10、安装和配置 OCFSOCFS是Oracle 集群文件系统 (OCFS),由 Oracle 开发,用于消除数据库管理员和系统管理员管理原始设备这一负担,它提供了与通常的文件系统相同的功能和用法。尽量不要在OCFS文件系统上使用linux二进制文件系统操作命令在目前的版本种支持以下文件类型: Oracle 数据库文件 联机重做日志文件 归档重做日志文件 控制文件 服务器参数文件 (SPFILE) Oracle 集群注册表 (OCR) 文件 CRS 表决磁盘。安装和配置1) 上传ocfs-2.4.21-EL-1.0.14-1.i686.rpm,ocfs-support-1.0.10-1.i386.rpm,ocfs-tools-1.0.10-1.i386.rpm到/home/oracle/install/rac/ocfs目录2) 执行rpm -ivh ocfs*.rpm 开始安装oracledbrac oracle$ su -Password: rootdbrac root# cd /home/oracle/install/rac/ocfsrootdbrac ocfs# rpm -ivh ocfs*.rpmPreparing. # 100% 1cfs-support # 33% 2cfs-2.4.21-EL # 67% 3cfs-tools # 100%3) 生成并配置/etc/ocfs.conf文件rootdbrac ocfs# ocfstool &4) 使用 ocfstool GUI 工具执行以下步骤: 5) 选择 Task - Generate Config 在“OCFS Generate Config”对话框中,输入专用互连的接口和 DNS 名。验证所有节点上的所有值正确之后,请退出应用程序6) 检查/etc/ocfs.confrootdbrac ocfs# cat /etc/ocfs.conf# ocfs config# Ensure this file exists in /etc# node_name = dbrac ip_address = 192.168.22.44 ip_port = 7000 comm_voting = 1 guid = B907DC7945D81C0A2C8C000D61EB0166注意guid在集群中唯一对应一个节点,如果要更换网卡,请使用ocfs_uid_gen -c 命令重新创建7) 重新启动系统并确认ocfs模块已经正确加载oracledbrac oracle$ lsmod | grep ocfsocfs 299104 0 (unused)8) 创建 OCFS 文件系统oracledbrac oracle$ iduid=500(oracle) gid=500(dba) groups=500(dba)oracledbrac oracle$ su -Password: rootdbrac root# mkfs.ocfs -F -b 128 -L crs -m /u01 -u 500 -g 500 -p 0775 /dev/hda8Cleared volume header sectors Cleared node config sectors Cleared publish sectors Cleared vote sectors Cleared bitmap sectors Cleared data block Wrote volume header注意-u和-g 是oracle用户的id和dba组的id,一定要填写正确,-p是设置/u01目录的访问权限,如果要设置dba组用户有权管理集群注册文件的话,请设置07759) 载入 OCFS 文件系统$ su -# mount -t ocfs /dev/hda8 /u0110) 将 OCFS分区配置为在启动时自动载入11) 将以下条目添加到/etc/fstab 文件中/dev/hda8 /u01 ocfs _netdev 0 012) 重新启动服务器并检查CRS分区已经正确安装rootdbrac root# mount | grep ocfs/dev/hda8 on /u01 type ocfs (rw)如果没有被自动加载,请执行如下命令echo “mount -t ocfs /dev/hda8 /u01” /etc/rc.local,然后重新启动也可用使用oracle官方为我们提供的打过补丁的linux内核来解决此问题11、安装并配置自动存储管理和磁盘 Oracle 数据库 10g 中引入了 ASM,使管理员不必再管理单个文件和驱动器,ASM 被内置到 Oracle 内核中,通过它,数据库管理员可以全天候管理单个实例以及集群实例的上千个磁盘驱动器。本文将使用ASM来自动存储和管理所有 Oracle 物理数据库文件(数据、联机重做日志、控制文件、归档重做日志)。oracle不推荐使用裸设备,因此这里使用前面创建的/dev/hda9分区1) 上传oracleasm-2.4.21-EL-1.0.3-1.i686.rpm,oracleasmlib-1.0.0-1.i386.rpm,oracleasm-support-1.0.3-1.i386.rpm三个软件包到/home/oracle/install/rac/asm目录中,开始安装:oracledbrac asmlib$ su -Password: rootdbrac root# cd /home/oracle/install/rac/asmlibrootdbrac asmlib# rpm -ivh oracleasm*.rpmPreparing. # 100% 1racleasm-support # 33% 2racleasm-2.4.21-EL # 67% 3racleasmlib # 100%2) 配置并加载 ASMLib 程序包rootdbrac asmlib# /etc/init.d/oracleasm configureConfiguring the Oracle ASM library driver.This will configure the on-boot properties of the Oracle ASM librarydriver.The following questions will determine whether the driver isloaded on boot and what permissions it will have.The current valueswill be shown in brackets ().Hitting without typing ananswer will keep that current value.Ctrl-C will abort.Default user to own the driver interface : oracleDefault group to own the driver interface : dbaStart Oracle ASM library driver on boot (y/n) n: yFix permissions of Oracle ASM disks on boot (y/n) y: yWriting Oracle ASM library driver configuration OKLoading module oracleasm OKMounting ASMlib driver filesystem OKScanning system for ASM disks OK为 Oracle 共享数据文件创建 ASM 磁盘rootdbrac asmlib# /etc/init.d/oracleasm createdisk oradata /dev/hda9Marking disk /dev/hda9 as an ASM disk OK其中oradata是ASM磁盘的卷标列出ASM磁盘的命令是/etc/init.d/oracleasm listdisks删除ASM磁盘得命令是/etc/init.d/oracleasm deltedisk ORADATA(注意:此处大写)/etc/init.d/oraclerasm scandisk命令用于其它节点上扫描并识别新卷,由于此处是单机,所以这里不需要执行。五、安装oracle 10g集群服务软件 从这里开始,建议所有的安装过程全部使用英文界面安装,在简体中文环境下安装会有问题,如果安装操作系统的时候选择了默认语言为简体中文,请更改/etc/sysconfig/i18n文件中LANG的值,然后重新登陆系统。LANG=en_US.UTF-8在附录本文会给出全中文环境数据库安装解决方案1) 上传ship.crs.lnx32.cpio.gz到/home/oracle/install/rac目录中并解压缩;gzip -dv ship.crs.lnx32.cpio.gz;cpio -idmv ship.crs.lnx32.cpio2) 在安装过程中oracle 10g集群服务软件会在CRS分区创建2个文件,分别是/u01/orcl/ocrfile和/u01/orcl/cssfile,相当重要,不能跳过;检查/tmp目录是否有足够的空间,必须保证/tmp目录有500M以上空余空间;3) 更改oracle用户环境变量;unset ORA_CRS_HOME$ unset ORACLE_HOME$ unset ORA_NLS33$ unset TNS_ADMIN4) 转到安装源文件目录/home/oracle/install/rac/Disk1目录,执行./runInstaller &开始安装;屏幕名称回应Welcome Screen单击 Next Specify Inventory directory and credentials接受默认值Root Script Window - Run orainstRoot.sh以“root”用户帐户打开一个新的控制台窗口。改变目录到/home/oracle/oraInventory 目录,运行 orainstRoot.sh。 返回 OUI 并确认此对话框窗口。Specify File LocationsSource 目录使用默认值;Name: OraCrs10g_home1;Location:/home/oracle/product/10.1.0/crs_1Language Selection 请使用English,可以加入简体中文支持Cluster ConfigurationCluster Name: crs;Public Node Name:dbrac Private Node Name:int-dbracSpecify Network Interface Usage使用默认Oracle Cluster Registry/u01/orcl/ocrfileVoting Disk/u01/orcl/cssfileRoot Script Window - Run orainstRoot.sh以“root”用户帐户打开一个新的控制台窗口。转到/home/oracle/product/10.1.0/crs_1目录,运行root.sh。 返回 OUI 并确认此对话框窗口。5) 核实CRS安装a) 检查集群节点oracledbrac oracle$ product/10.1.0/crs_1/bin/olsnodes -ndbrac 1a) 检查CRS自启动脚本oracledbrac oracle$ ll /etc/init.d/init.*-r-xr-xr-x 1 root root 1204 May 10 16:54 /etc/init.d/init.crs-r-xr-xr-x 1 root root 5489 May 10 16:54 /etc/init.d/init.crsd-r-xr-xr-x 1 root root 18598 May 10 16:54 /etc/init.d/init.cssd-r-xr-xr-x 1 root root 4550 May 10 16:54 /etc/init.d/init.evmd六、安装 Oracle 10g数据库软件1) 上传ship.db.lnx32.cpio.gz至/home/oracle/install目录并解压gzip -dv ship.db.lnx32.cpio.gz & cpio -idmv show parameter serviceNAME TYPE VALUE- - -service_names string orcl, orcltest如果value只有一个值orcl,则需要手工添加orcltestSQL alter system set service_names =orcl, orcltest scope=spfile;九、测试集群先检查VIP是否已经启动oracledbrac oracle$ ifconfig eth0:1eth0:1 Link encap:EthernetHWaddr 00:0D:61:EB:01:66 inet addr:192.168.22.244Bcast:192.168.22.255Mask:255.255.255.0 UP BROADCAST RUNNING MULTICASTMTU:1500Metric:1 Interrupt:11 Base address:0xc000从外部客户端连接集群化数据库在装有oracle 10g 客户端的pc上执行下面的命令进行连接测试,客户端需要配置TNS,配置的时候把服务名指定为orcltest,数据库服务器IP使用VIP(192.168.22.244)C:Documents and SettingsAdministratorsqlplus /nologSQL*Plus: Release 10.1.0.2.0 - Production on 星期三 5月 11 13:24:34 2005Copyright (c) 1982, 2004, Oracle.All rights reserved.SQL connect sys/racracorcltest as sysdba已连接。在服务器上执行下面的命令oracledbrac oracle$ srvctl status database -d orcl例程 orcl1 正在节点 dbrac 上运行oracledbrac oracle$ srvctl status nodeapps -n dbracVIP 正在运行的节点: dbracGSD 正在运行的节点: dbrac监听程序正在节点上运行: dbracONS 守护程序正在节点上运行:dbracoracledbrac oracle$ srvctl status asm -n dbrac ASM 例程 +ASM1 正在节点 dbrac 上运行。显示数据库配置oracledbrac oracle$ srvctl config database -d orcldbrac orcl1 /home/oracle/product/10.1.0/db_1 scrctl命令还有很多测试功能,这里不再一一介绍十、启动和停止集群这里很重要,和一般的非集群数据库的启动和关闭有点不同.1) 停止 Oracle RAC 10g 环境先停止 Oracle 实例。当此实例(和相关服务)关闭后,关闭 ASM 实例。最后,关闭节点应用程序(虚拟 IP、GSD、TNS 监听器和 ONS)。 $ export ORACLE_SID=orcl1$ emctl stop dbconsole$ srvctl stop instance -d orcl -i orcl1$ srvctl stop asm -n dbrac$ srvctl stop nodeapps -n dbrac2) 启动 Oracle RAC 10g 环境第一步是启动节点应用程序(虚拟 IP、GSD、TNS 监听器和 ONS)。当成功启动节点应用程序后,启动 ASM 实例。最后,启动 Oracle 实例(和相关服务)以及企业管理器数据库控制台。$ export ORACLE_SID=orcl1$ srvctl start nodeapps -n dbrac$ srvctl start asm -n dbrac$ srvctl start instance -d orcl -i orcl1$ emctl start dbconsole3) 使用 SRVCTL 启动/停止所有实例$ srvctl start database -d orcl
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业管理 > 营销创新


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!