高级 DBA 和开发者篇2Word下载.docx
- 文档编号:18857402
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:26
- 大小:755.36KB
高级 DBA 和开发者篇2Word下载.docx
《高级 DBA 和开发者篇2Word下载.docx》由会员分享,可在线阅读,更多相关《高级 DBA 和开发者篇2Word下载.docx(26页珍藏版)》请在冰豆网上搜索。
当主服务器出现故障的时候,集群管理软件将物理存储器的所有权从主服务器转移到备用服务器上,并在备用服务器上启动数据库服务。
这样,提供给用户的服务只是产生很短一段时间的延迟,便能恢复正常。
图2.1同步可用的双机热备
下面对该解决方案的几个概念进行说明:
主服务器和备用服务器。
主服务器和备用服务器是建立双机热备的基本条件。
两个系统上的数据库服务器共享同一个数据库文件。
通常情况下,数据库文件挂靠在主数据库服务器上,用户连接到主服务器上进行数据库操作。
当主服务器出现故障时,备用服务器会自动连接数据库文件,并接替主系统的工作。
用户在未告知的情况下,通过备用数据库连接到数据库文件进行操作。
等主服务器的故障修复之后,又可以重新加入集群。
故障检测。
故障检测是实现双机热备的关键技术之一。
故障检测软件同时运行在主服务器和备用服务器上,并通过集群的节点间传送的数据包来监视主服务器和备用服务器的状态。
当备用服务器上的故障检测软件检测不到主系统发送来的信号时,便认为主服务器出现了故障。
此时,故障检测软件会协助备用服务器进行数据源移动(从主服务器移动到备用服务器)。
当主服务器的故障被排除重新加入集群时,故障检测软件检测到这一变化,可以重新执行数据源移动(从备用服务器移动到主服务器)。
数据源移动。
当主服务器出现故障时,在用户觉察不出的情况下,集群管理软件将数据源从主服务器上卸载下来并挂靠到备用服务器上,同时启动备用服务器上的服务,继续向用户提供服务。
而当主服务器重新开始运行后,集群管理软件可以执行同样的操作,将数据源移动到主服务器上,并启动主服务器的服务,停止备用服务器上的服务。
2.1.2异步可用
独立存储双机方式是通过支持映像的软件,将数据能实时复制到另一台服务器上。
这样,同样的数据就在两台服务器上各存在一份,如果一台服务器出现故障,数据能及时转换到另一台服务器。
独立存储双机方式的解决方案主要有3种:
数据复制选项、日志传送选项和高级存储选项。
。
1.数据复制选项
数据复制选项(见图2.2)捕获主服务器上源数据库的变更,并将之应用到备用数据库中。
DB2数据复制选项的实现包括两部分:
捕获变更和应用变更。
其实现过程为:
(1)在源数据发生变化时,数据会被记录到日志文件中。
(2)当主服务器上定义的源表发生数据变化时,被主服务器写入日志文件;
(3)捕获进程监控到主服务器上事务日志的变化,从中获取源表的所有更改,并将这些变更写入到预订变更表中;
(4)应用变更进程定期读取预订变更表,并将其中的变更应用到备用数据库上的目标表中。
图2.2数据复制选项
2.日志传送选项
日志传送选项(见图2.3)是将整个日志文件复制到备用服务器上,备用服务器通过日志的不断前滚会随着主服务器的变化而变化。
在主服务器发生故障时,备用服务器前滚完最新的日志数据后,将数据库置于联机方式。
所谓前滚(rollforward),是指应用数据库或日志备份中的全部已完成的事务,以将数据库恢复到某个时间点,相当于重新执行一遍“事务日志文件中的记录”和“所做修改尚未写入磁盘的事务”的每一步操作。
由于主服务器传送过来的事务日志在备用服务器上还没有被应用过,所以执行前滚以将备用数据库的状态与主数据库同步。
什么是回滚?
与前滚相对应,回滚(rollback)是指删除由一个或多个部分完成的事务执行的更新。
主要用于在应用程序、数据库或系统错误后还原数据库的完整性。
图2.3日志传送选项
3.暂挂I/O选项
暂挂I/O选项(如图2.4)是DB2提供的一个高级存储选项,它创建主数据库的分割镜像并将其安装在备用服务器上,以实现主/备用服务器的同步。
在创建分割镜像期间,为了防止在主服务器上出现数据的部分更新,DB2UDB暂时挂起主服务器上的数据库I/O,然后快速地创建数据库副本,再对主数据库取消I/O暂挂。
最后,分割镜像被应用到备用数据库上,实现了备用服务器与主服务器数据的一致性。
什么是分割镜像?
分割镜像(splitmirror)是具有同一性、独立性、瞬时性的磁盘卷拷贝,分割镜像可被应用到其他DB2服务器上。
图2.4暂挂I/O选项
2.2HA双机配置实践
本节介绍一个利用heartbeat软件实现的双机同步热备(双机异步热备的案例将在第3章中介绍)。
heartbeat是开源项目HighAvailabilityLinux提供的集群软件包之一,它提供了所有集群系统所需要的基本功能,比如启动和停止资源、监测集群中系统的可用性、在集群中的节点间共享IP地址等。
2.2.1构成
本节介绍的双机热备包括两个数据库服务器以及存放在共享存储器中的数据库文件。
在本案例中,主/备用服务器共享同一份数据库文件。
通常情况下,数据库文件挂在主服务器上,供主服务器进行访问。
当主服务器发生故障时,数据库文件转而挂在备用服务器上,通过备用服务器提供数据,以保证服务的可用性。
图2.5双机热备案例
该集群的详细构成(如图2.5所示)为:
Primary节点,主DB2数据库服务器,IP地址为192.168.168.131,并通过端口/dev/ttyS0与Standby节点相连;
Standby节点,备用DB2数据库服务器,IP地址为192.168.168.135,并通过端口/dev/ttyS0与Primary节点相连;
Nfsserver文件服务器,提供NFS文件共享服务的文件服务器,IP地址为192.168.168.129;
串口心跳线,为了保证主/备用数据库“心跳”一致,heartbeat软件用串口连线来监测多个节点的运行状态;
什么是心跳线?
心跳线是用于连接主机和备用机的连线。
集群管理软件通过心跳线来监测集群中节点的运行状态。
集群IP,集群的虚拟IP,DB2客户端通过连接虚拟IP来得到服务,IP地址为192.168.168.100;
DB2客户端,连接集群系统的DB2数据库客户端;
以太网络,节点间用来连接的TCP/IP网络。
为了安装方便,本案例节点的IP地址整理如表2.1所示(Linux下查看IP的命令为ifconfig)。
表2.1IP地址
节点名
说明
IP地址
Primary
主服务器
192.168.168.131
Standby
备用服务器
192.168.168.135
Nfsserver
NFS文件服务器
192.168.168.129
集群IP
集群虚拟地址
192.168.168.100
2.2.2配置
1.设置IP表(/etc/hosts)
hosts文件用于将主机名称映射到IP地址。
为了方便后面的连接,将三个物理节点的主机名与其IP间建立映射。
打开/etc/hosts文件,将各个节点的IP地址与节点名追加进去(在三台机器上都要做同样的配置)。
编辑完成的hosts文件如图2.6所示。
Hosts是什么文件?
Hosts,域名解析文件。
对于要经常访问的IP地址,我们可以通过在Hosts中配置主机名和IP的映射关系,这样以后访问的时候只要输入这个服务器的名字就行了。
图2.6/etc/hosts设置
查看原图(大图)
保存设置后,打开一个Terminal然后执行下面的命令以确认节点名与IP地址的映射结果。
# ping Primary
# ping Standby
# ping Nfsserver
2.建立串口连接
高可用性集群系统中,当主节点发生故障时,备用节点要及时监测到这个故障并接替主节点的工作。
因此,主备用节点的互相监听成为集群系统中必不可少的功能。
Heartbeat软件可以通过多种方式监听主/备用服务器,串口连接是其中比较简单的一种。
用一根串行线将Primary和Standby两个节点连接起来,并确认连接状况。
在Standby节点上执行命令:
# cat <
/dev/ttyS0
在Primary节点上执行命令:
# echo "
Connection test"
>
上面的命令是从Primary节点上通过串行端口,发送消息给Standby节点。
如果在Standby上能得到该消息,则证明串口连接成功。
如图2.7所示。
图2.7串口连接
3.配置NFS文件服务器
在本解决方案中,NFS文件服务器用于存放DB2数据库文件。
通常情况下只有主数据库节点连接NFS文件服务器,进行数据库的读写操作。
当主数据库服务器出现故障时,heartbeat软件会断开NFS文件服务器与主节点间的连接,而连接到备用服务器上。
同时备用节点的数据库服务器也启动起来,继续为客户提供服务。
什么是NFS?
NFS(NetworkFileSystem)网络文件系统,用于设置Linux/Unix系统之间的文件共享。
NFS既是一种文件系统,也是一个网络协议。
Nfsserver节点的配置过程如下:
(1)在Nfsserver上创建用于共享的目录/database:
# mkdir /database
(2)修改/etc/exports文件,以说明要共享的目录和共享的方式。
/etc/exports是一个访问控制列表,定义了可以被NFS客户端访问的路径。
/etc/exports文件的格式为:
[ shared_path ] [ nfs_client (parm,parm)]
其中:
shared_path:
NFS服务器上被共享的目录。
nfs_client:
可以访问共享目录的NFS客户端,当nfs_client省略时,代表可被任意客户端访问。
parm:
可选的访问参数,常用的访问参数有:
ro:
只读访问;
rw:
读写访问;
root_squash:
root用户的所有请求映射成如anonymous用户一样的权限(默认);
no_root_squas:
root用户具有根目录的完全管理访问权限。
本例中,如下设置/etc/exports文件(如图2.8),对Primary和Standby节点赋予对/database的读写权限。
图2.8配置共享的目录
(3)启动NFS服务。
#/etc/rc.d/init.d/nfsrestart
如果NFS服务已经在运行,也可以不用重新启动NFS服务,直接采用exports命令即可重新导出共享目录。
该命令格式如下:
exportfs [-aruv]
-a:
全部mount或者unmount/etc/exports中的内容。
什么是mount?
如果想在Linux服务器中访问文件系统的资源,就要用mount命令来实现。
mount的基本语法为:
mount[-参数][设备名称][挂载点]。
-r:
重新mount/etc/exports中分享出来的目录。
-u:
umount目录。
-v:
在export的时候,将详细的信息输出到屏幕上。
例如,可以执行下面的命令发布共享目录。
# /usr/sbin/exportfs – a
(4)客户机配置。
分别在Primary和Standby上挂载该共享文件。
# mount Nfsserver:
/database /database
如果执行mount时收到如图2.9所示的消息,说明NFS服务未启动,可以执行/etc/rc.d/init.d/nfsrestart来重启NFS服务。
图2.9NFS服务重启动
执行df命令确认Nfsserver/database被正确挂载。
df命令用来检查文件系统的磁盘空间占用情况。
可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
效果如图2.10所示。
图2.10NFS文件共享
4.创建数据库
(1)创建用户(两个节点上都要创建)。
DB2用户的创建,既可以使用第1章介绍的图形管理工具,也可以使用命令行。
在Linux命令行创建DB2用户的命令为useradd。
useradd命令的基本语法为:
useradd [-d home_dir]
[-g initial_group]
[-m ]
[-u uid]
[username]
-dhome_dir:
新账号每次登入时所使用的主目录。
-ginitial_group:
使用者所属的群组名,该群组名必须是既存的。
-m:
使用者目录如不存在则自动建立。
-uuid:
使用者的ID值,必须唯一的ID值。
Username:
用户账号。
本例中,要创建db2ha1用户,其所属群组为db2iadm1,主目录为/home/db2ha1。
该命令如下所示:
# useradd – u 504 – g db2iadm1 – m – d /home/db2ha1 db2ha1
(2)DB2用户创建完成后,接下来在两个节点上创建DB2实例db2ha1。
# db2icrt – u db2fenc1 db2ha1
(3)在Primary上以db2ha1登录,启动db2ha1实例,然后创建数据库HADB,路径为/database。
其中,/database路径是Nfsserver节点上/database目录的本地映射。
# su – db2ha1
$ db2start
$ db2 create database HADB on /database
创建成功后,断开到HADB的连接,并停止db2ha1实例。
# db2 connect reset
# db2stop
(4)在Standby节点上,以db2ha1登录,并编目/database目录下的HADB数据库。
$ db2 catalog database HADB on /database
编目HADB后,用db2connect命令连接到HADB上以确认创建是否成功。
如果收到下面的信息,表示编目成功(如图2.11)。
图2.11在Standby上连接HADB
断开连接,停止DB2管理服务器。
$ db2 connect reset
$ db2stop
5.配置集群软件
(1)下载Heartbeat(见图2.12)。
登录http:
//clusterlabs.org,针对相应的Linux版本选择Heartbeat的不同版本(本文中的Linux系统是CentOS5.0.2)。
图2.12下载Heartbeat
(2)安装依赖包。
在Heartbeat安装之前,要先安装两个软件包:
perl-TimeDate和perl-MailTools。
perl-TimeDate是用来提供时间日期函数的perl模块;
perl-MailTools是一组mail相关的perl模块。
由于Heartbeat的脚本是用perl脚本书写的,所以需要安装这两个软件包。
#yum install perl-TimeDate
#yum install perl-MailTools
yum是什么?
yum(YellowdogUpdater,Modified)是一个软件管理系统,它能自动解决安装包的依赖性问题,使得添加/删除/更新软件包更加方便。
关于软件包的依赖性问题,可以参考下面使用rpm来安装Heartbeat的过程。
(3)安装Heartbeat。
因为安装包之间的依赖关系,按照图2.13所示顺次安装Heartbeat。
图2.13Heartbeat安装
(4)拷贝/usr/share/doc/packages/heartbeat路径下的示例文件ha.cf,authkeys和haresources文件至/etc/ha.d。
01 # cd /usr/share/doc/packages/heartbeat
02 # cp authkeys /etc/ha.d
03 # cp haresources /etc/ha.d
04 # cp ha.cf /etc/ha.d
不同版本或安装方式下,Heartbeat示例文件的路径可能有所不同,可用“rpm–q”命令来确定该文件的位置(如图2.14)。
图2.14查询安装位置
(5)配置authkeys文件。
/etc/ha.d/authkeys文件定义了集群的认证密钥,集群中的所有节点必须有相同的认证密钥。
编辑/etc/ha.d/authkeys文件,取消下面两行内容前的注释符号:
## /etc/ha.d/authkeys
auth 1
1 crc
auth1:
指示系统用关键字1对应的加密方式(本例中关键字为1的加密方式为crc)来加密送出的数据。
1crc:
定义关键字1的加密方式为crc。
Heartbeat的加密方式
Heartbeat目前支持3种加密方式:
crc,sha1和md5。
其中crc的方式最简单,安全性也最低。
确保authkeys文件只能由root读取,将该文件的属性设为600。
# chmod 600 authkeys
(6)配置ha.cf文件。
/etc/ha.d/ha.cf文件定义了Heartbeat集群中的节点,以及Heartbeat用来监测系统运行状况的端口等配置。
ha.cf文件中可配置的内容如下:
use_logdon/off:
是否由Heartbeat记录日志文件。
serial/dev/ttyS0:
使用串口连线监听集群节点的运行状态。
如果不使用串口Heartbeat,则必须使用其他的设备文件代替/dev/ttyS0(如bcast等)。
bcasteth1:
表示在eth1接口上使用广播监听集群节点的运行状态。
nodelinuxha1.linux-ha.org:
必选项,集群中机器的主机名。
根据集群中节点的数据,可以有多行。
节点的主机名可以通过在Terminal中执行“uname–n”获得。
uname是什么?
uname是显示系统信息的命令。
uname–n显示在网络上的主机名称。
keepalive2:
设定Heartbeat之间的时间间隔为2秒。
auto_failbackon:
在主机发生故障(failover)之后,从节点接管主节点的所有资源。
当auto_failback设置为on时,一旦主节点重新恢复联机,将从节点取回所有资源。
若该选项设置为off,主节点便不能重新获得资源。
crmyes/no:
是否使用crm(集群资源管理器)来管理集群资源。
本例中,/etc/ha.d/ha.cf文件的相关设置如下:
01 ## /etc/ha.d/ha.cf
02 serial /dev/ttyS0
03 auto_failback on
04 node Primary
05 node Standby
06 use_logd yes
07 crm yes
其中,node中指定的Primary/Standby已经在/etc/hosts中定义过了。
(7)配置Haresources文件。
Heartbeat使用Haresources配置文件决定它首次启动时做些什么。
Hare
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高级 DBA 和开发者篇2 开发者