[计算机软件及应用]oracle+rhcs单集群服务.doc_第1页
[计算机软件及应用]oracle+rhcs单集群服务.doc_第2页
[计算机软件及应用]oracle+rhcs单集群服务.doc_第3页
[计算机软件及应用]oracle+rhcs单集群服务.doc_第4页
[计算机软件及应用]oracle+rhcs单集群服务.doc_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一 环境1主机 iscsi存储,为两个节点提供sdb共享存储,存储数据库文件。 集群节点1,只安装数据库软件。 集群节点2,只安装数据库软件。2 IP地址分配归属IP地址及对应解析作用集群10 gddb1-vip数据库vipgddb111 gddb1心跳01 gddb1-privIscsi专用gddb212 gddb2心跳02 gddb2-privIscsi专用gdiscsi1303 gdiscsi提供存储3 存储节点本地磁盘ISCSI磁盘文件系统ORACLE应用挂载点Gddb1/dev/sda1/dev/sdb1EXT3Db1主库/u01/oradataGddb2/dev/sda1/dev/sdb1EXT3Db1备库/u01/oradata二 iscsi 配置2.1 iscsi-target配置2.1.1在gdiscsi上安装iscsi-target# yum install scsi-target-utils添加以下几行 backing-store /dev/VolGroup00/iscsi initiator-address 01 initiator-address 02红字部分根据实际情况替换为要共享出去的盘,这里使用的是逻辑卷。注意:被共享的分区要在服务启动前划分好,否则无法启动服务。启动target服务:# service tgtd start设置开机自启动:# chkconfig tgtd on查看共享的磁盘:# tgtadm -lld iscsi -op show -mode target2.2 配置两个节点的iscsi-initiator2.2.1安装iscsi-initiator-utils# yum install iscsi-initiator-utils(通常已经安装了)2.2.2 挂载iscsi设置开机自启动:# chkconfig iscsi on启动服务:# service iscsi start探测Target# iscsiadm -m discovery -t sendtargets -p 03发现如下设备03:3260,1 .example:server.target1连接指定Target# iscsiadm-mnode-T .example:server.target1 -p03-login提示成功Logging in to iface: default, target: .example:server.target1, portal: 03,3260 (multiple)Login to iface: default, target: .example:server.target1, portal: 03,3260 successful.连接之后使用fdisk -l查看是否有新的磁盘列出来。rootgddb1 # fdisk -lDisk /dev/sda: 21.4 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System/dev/sda1 * 1 38 305203+ 83 Linux/dev/sda2 39 2353 18595237+ 83 Linux/dev/sda3 2354 2610 2064352+ 82 Linux swap / SolarisDisk /dev/sdb: 4294 MB, 4294967296 bytes133 heads, 62 sectors/track, 1017 cylindersUnits = cylinders of 8246 * 512 = 4221952 bytesDisk /dev/sdb doesnt contain a valid partition table可以看见sdb分区已经挂载2.3 对ISCSI磁盘进行分区在任一节点运行即可:rootgddb1 # fdisk /dev/sdb Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabelBuilding a new DOS disklabel. Changes will remain in memory only,until you decide to write them. After that, of course, the previouscontent wont be recoverable.Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)Command (m for help): nCommand action e extended p primary partition (1-4)pPartition number (1-4): 1First cylinder (1-1017, default 1): Using default value 1Last cylinder or +size or +sizeM or +sizeK (1-1017, default 1017): Using default value 1017Command (m for help): pDisk /dev/sdb: 4294 MB, 4294967296 bytes133 heads, 62 sectors/track, 1017 cylindersUnits = cylinders of 8246 * 512 = 4221952 bytes Device Boot Start End Blocks Id System/dev/sdb1 1 1017 4193060 83 LinuxCommand (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: Device or resource busy.The kernel still uses the old table.The new table will be used at the next reboot.Syncing disks.如果出现如下提示: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.可以使用下面命令:# partx -a /dev/sdc最后格式化磁盘:# mkfs.ext3 /dev/sdb1三 安装集群和数据库3.1 设置第一个集群服务3.1.1 在两个节点安装rhcs所需要的包# yum install cman cman-devel ipvsadm perl-Net-Telnet piranha rgmanager system-config-cluster gfs2-utils gfs-utils kmod-gfs kmod-gfs-xen lvm2-cluster openais openais-devel3.1.2 在两个节点设置集群服务开机启动# chkconfig cman on # chkconfig clvmd on # chkconfig gfs on # chkconfig gfs2 on # chkconfig rgmanager on(可以简略的写成:# for i in cman,clvmd,gfs,gfs2,rgmanager ; do chkconfig $i on ;done,查看:# for i in cman,clvmd,gfs,gfs2,rgmanager ; do chkconfig -list| grep $i ;done)3.1.3 在两个节点配置/etc/hosts文件内容如下# Do not remove the following line, or various programs# that require network functionality will fail. gddb1 localhost.localdomain localhost:1 localhost6.localdomain6 localhost610 gddb1-vip11 gddb101 gddb1-priv12 gddb202 gddb2-priv3.1.4 挂载存储在两个节点创建目录# mkdir -p /u01/oradata编辑两节点的/etc/fstab添加下面一条:/dev/sdb1 /u01/oradata ext3 _netdev 0 0保存退出后,使其生效# mount -a3.1.5操作系统补丁包安装和参数调整操作系统补丁包安装和参数调整# yum install gcc gcc-c+ libXp libaio make binutils openmotif setarch compat-db rsh binutils control-center glibc glibc.i686 glibc-devel.x86_64 glibc-devel.i386 glibc-common libstdc+ libstdc+-devel pdksh sysstat compat-libstdc+-33 compat-libstdc+-296创建oracle用户# groupadd oinstall# groupadd dba# useradd -d /u01/oracle/ -g oinstall -G dba oracle# passwd oracle# chown -R oracle:oinstall /u01/(合体:groupadd oinstall; groupadd dba; useradd -d /u01/oracle/ -g oinstall -G dba oracle; chown -R oracle:oinstall /u01/; passwd oracle)创建 oracle 用户环境文件# su - oracle$ vi .bash_profile添加如下内容export EDITOR=vi export ORACLE_SID=gddb1 export ORACLE_BASE=/u01/oracle export NLS_LANG=AMERICAN_AMERICA.ZHS16GBKexport ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1 export LD_LIBRARY_PATH=$ORACLE_HOME/lib export PATH=$ORACLE_HOME/bin:$PATH umask 022使其生效$ source .bash_profile创建系统文件目录结构$ mkdir -p $ORACLE_BASE/admin$ mkdir -p $ORACLE_HOME提高oracle用户的shell限制使用文本编辑器将下面列出的行添加到 /etc/security/limits.conf、/etc/pam.d/login 和 /etc/profile。其他信息可以从文档中获得。以root身份登陆 # vi /etc/security/limits.conf oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536vi /etc/pam.d/login session required /lib/security/pam_limits.so# vi /etc/profile if $USER = oracle ; thenif $SHELL = /bin/ksh ; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi umask 022 fi配置内核参数。 使用文本编辑器将下面列出的行添加到 /etc/sysctl.conf。要使更改立即生效,请执行 /sbin/sysctl -p。 # vi /etc/sysctl.conf 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 = 1048576 net.core.rmem_max = 1048576 net.core.wmem_default = 262144 net.core.wmem_max = 262144# sysctl -p在两个节点安装数据库软件,安装时选择仅安装软件,不建库,与单机安装方法相同,过程略。(安装之前使用export LANG=en_US.UTF-8可以开启英文安装,解决乱码问题)3.1.6 在两个节点配置LISTENER在节点A打开net manager$ netmgr打开后会看到如下界面点击local前面的加号展开后,点击Listeners,再点左边的“+”,在弹出的框中输入LISTENER1后,点ok点击下面的add address将host修改为集群服务的vip点击上方的下拉菜单,选择Database Service点击下方的Add Database修改为对应的内容完成后点击左上角的File菜单,选择保存后推出查看一下配置文件是否正确$ cat /u01/oracle/product/10.2.0/db_1/network/admin/listener.ora内容应为:# listener.ora Network Configuration File: /u01/oracle/product/10.2.0/db_1/network/admin/listener.ora# Generated by Oracle configuration tools.LISTENER1 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 10)(PORT = 1521) )SID_LIST_LISTENER1 = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = gddb1) (ORACLE_HOME = /u01/oracle/product/10.2.0/db_1) (SID_NAME = gddb1) ) )将配置文件传到第二个节点$ scp /u01/oracle/product/10.2.0/db_1/network/admin/listener.ora gddb2:/u01/oracle/product/10.2.0/db_1/network/admin/在节点1调用DBCA创建数据库$ export LANG=us_EN.UTF-8$ export ORACLE_SID=gddb1$ dbca在用dbca创建数据库与单机基本一致,只需要注意选择数据库创建在文件系统上,并指明目录为/u01/oradata/。选择文件系统手动选择目录3.1.7 将第一个数据库迁移到另一个节点把密码文件和参数文件复制到gddb2$ cd $ORACLE_HOME/dbs$ scp orapwgddb1 gddb2:/u01/oracle/product/10.2.0/db_1/dbs/$ scp spfilegddb1.ora gddb2:/u01/oracle/product/10.2.0/db_1/dbs/在gddb2(第二个节点)上创建需要的一些目录$ mkdir -p /u01/oracle/admin/gddb1/adump/ $ mkdir /u01/oracle/admin/gddb1/bdump/ $ mkdir /u01/oracle/admin/gddb1/cdump/ $ mkdir /u01/oracle/admin/gddb1/dpdump/ $ mkdir /u01/oracle/admin/gddb1/pfile/ $ mkdir /u01/oracle/admin/gddb1/udump/ $ mkdir -p flash_recovery_area/GDDB1/onlinelog/$ mkdir /u01/oracle/script/(合体:mkdir -p /u01/oracle/admin/gddb1/adump,bdump,cdump,dpdump,pfile,udump; mkdir -p /u01/oracle/flash_recovery_area/GDDB1/onlinelog/; mkdir /u01/oracle/script/)3.1.8创建第一个数据库的RHCS监控脚本创建数据库gddb1的启动和关闭脚本为了以后方便管理我们把所用的脚本都放置在$ORACLE_BASH/script下# su - oracle$ mkdir /u01/oracle/script/$ cd /u01/oracle/script/gddb1的启动脚本 $ vi startgddb1 lsnrctl start listener1 export ORACLE_SID=gddb1 sqlplus /nolog EOF conn / as sysdba startup EOF gddb1的关闭脚本 $ vi stopgddb1 lsnrctl stop listener1 export ORACLE_SID=gddb1 sqlplus /nolog select instance_name,status from v$instance;如下图4.3在集群中数据库的迁移测试把数据库1从运行在第1节点迁移到运行在第2节点上。# clusvcadm -r gddb1_ha e -m gddb2Trying to relocate service:gddb1_ha to gddb2.Successservice:gddb1_ha is now running on gddb2查看集群服务1运行在那个节点,如下图4.4 fence测试由于没有专用的fence设备,所以只用使用手动fence,在实际使用中可以使用服务器的管理接口或者虚拟机fence等等来fence服务器。详见第五章fence介绍现在断掉gddb2的eth0接口(心跳线)# ifdown eth0现在观察gddb1的日志# tail -f -n 100 /var/log/message(-f参数为实时查看,ctrl+c停止监视日志)当日志中出现如图中的字样时使用:# fence_ack_manual -n gddb2将节点2暂时移出集群,并在节点1上启动服务。执行fence命令后,如下图现在可以看到,集群服务运行在了节点1上这时只要重新启动节点2,就可以让节点2重新加入集群。五 fence介绍5.1 fence简介在RHCS 中,最难理解的是Fence 机制。其实跟其它的集群软件一样,RHCS中的FENCE就是解决集群环境中的脑裂现象。在微软的WINDOWS 2003和ORACLE的RAC中都是采用“仲裁磁盘”来解决脑裂现象。IBM的HACMP中采用的是“非IP网络”(如串口线)或者“磁盘心跳”心跳来解决脑裂现象。而RHCS与其它的集群软件不同,采用的是大部份品牌服务器都已标配了的,但其本上都闲置不用的接口用来做FENCE设备来处理集群中的脑裂现象。 什么情况下会造成的脑裂现象如:心跳线断连,此时两台服务器都无法找到对方,无法向对方发出操作指令,都各自认为自己是主节点;又或者主服务器系统崩溃,系统能接收到备用服务器的操作指令,但无法返回运行情况的确认信号,导致备用服务器无法获知系统资源的使用情况。 Fence 主要就是通过服务器或存储本身的硬件管理接口,又或者是外部电源管理设备,来对服

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论