informix HDR基本管理

更新时间:2023-10-12 00:55:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

informix HDR基本管理

分类: informix 2011-12-11 19:47 508人阅读 评论(0) 收藏 举报

1.测试下如何主服务器宕机 $ onstat -c|grep DRAUTO

# DRAUTO – Controls automatic failover of primary DRAUTO 0 -手工切换 $onmode -ky

观察sercondary服务器状态 onstat -

IBM Informix Dynamic Server Version 11.70.UC1IE — Updates Blocked (Sec) — Up 00:20:14 — 152348 Kbytes $onstat -m

IBM Informix Dynamic Server Version 11.70.UC1IE — Updates Blocked (Sec) — Up 00:21:16 — 152348 Kbytes

Message Log File: /opt/IBM/informix/informix.log

11:04:33 Fri Jun 3 – loguniq 22, logpos 0×90018, timestamp: 0xd0612 Interval: 527

11:04:33 Maximum server connections 0

11:04:33 Checkpoint Statistics – Avg. Txn Block Time 0.000, # Txns blocked 0, Plog used 19, Llog used 0

11:05:40 Checkpoint Completed: duration was 0 seconds.

11:05:40 Fri Jun 3 – loguniq 22, logpos 0×92018, timestamp: 0xd0618 Interval: 528

11:05:40 Maximum server connections 0

11:05:40 Checkpoint Statistics – Avg. Txn Block Time 0.000, # Txns blocked 0, Plog used 2, Llog used 0

11:05:41 SMX thread is exiting because of network error code -25582 11:05:41 SMX thread is exiting because of network error code -25582 11:05:41 DR: Receive error

11:05:41 ASF Echo-Thread Server: asfcode = -25582: oserr = 0: errstr = : Network connection is broken.

11:05:41 DR_ERR set to -1

11:05:42 DR: Turned off on secondary server

11:05:42 Updates from secondary currently not allowed 11:05:42 Updates from secondary currently not allowed 开启primary服务器: $oninit $onstat -

IBM Informix Dynamic Server Version 11.70.UC1IE — On-Line (Prim) — Up 00:00:41 — 144156 Kbytes 观察secondary状态: $onstat -

IBM Informix Dynamic Server Version 11.70.UC1IE — Updatable (Sec) — Up 00:23:55 — 152348 Kbytes

可以看到,主服务器恢复以后仍能保持主服务器的地位 2.添加chunk或者创建dbspace

HDR对中,当需要添加/删除chunks/dbspace时,需要注意的是: 操作只能在主服务器进行

操作可以由HDR主服务器自动同步到辅助服务器 主辅服务器需要预先创建相应的文件或者link 如:

先在主备库均创建好chunk文件: $touch /opt/IBM/informix/dbspaces/testdbs $chmod 660 /opt/IBM/informix/dbspaces/testdbs 然后回到primary服务器操作:

$ onspaces -c -d testdbs -p /opt/IBM/informix/dbspaces/testdbs -o 0 -s 1000 Verifying physical disk space, please wait … Space successfully added.

** WARNING ** A level 0 archive of Root DBSpace will need to be done. 这样就创建成功。 3.手工切换主备

刚才我们看到DRAUTO设置为0 ,所以采用手工切换方式,如何手工切换呢?也就是主机切换为备机,备机切换成主机。

关闭原来primary服务器上: $onmode -ky

切换secondary服务器角色: $onmode -d standard

$onmode -d primary shanghai(备机的数据库服务器名) 开启primary服务器并切换角色: $onmode -ky $oninit -PHY

$onmode -d secondary beijing(主机的数据库服务器名)

High Availability Data Replication(HDR)是一种将数据从主服务器复制到从服务器的方法。HDR 将所有启用日志记录功能的数据库从主服务器复制

到从服务器。尽管可以把从服务器看作主服务器的复制品,但是它不包含未启用日志记录功能的数据库的数据。在从服务器上存在这些数据库和模式,因为 DML(Data Manipulation Language)语句总是记录在日志中的;但是除非数据库启用了日志记录功能,否则插入、更新或删除的数据不会被复制。HDR 确保从服务器总是与主服务器保持同步。如果主服务器发生故障,那么从服务器可以作为备用服务器,直到主服务器恢复运行为止。

高可用性数据复制 HDR 技术,从 Informix 6 版本就开始提供,它是采用一主、一备方式,通过读取数据库逻辑日志方式,实现主备机互相切换功能。

在 Informix 11.5 之前,HDR 备机支持只读方式,我们通常会通过备机来完成数据查询、报表功能,分担主机系统的压力。从 Informix 11.5 开始,HDR 备机支持读写操作,提供了更灵活的功能。HDR方式通常用来提供高可用性及 hot standby 功能。注意,支持读写功能是指用分布式写入将数据写入到辅助数据库中。 本文就是模拟环境中informix HDR的配置实验 主机 :

primary: server beijing,主服务器 standby: server shanghai, 辅助服务器 操作系统 : Redhat AS 5 网络 :

两台机器在同一网段:192.168.1.200/192.168.1.210

informix版本 :

IBM Informix Dynamic Server Version 11.70.UC1IE

本文略去关于informix的安装配置方面的细节,着重是对informix HDR的配置。 在做配置前首先要明白HDR 配置成功有哪些前提条件。

在实际的安装配置过程中要成功完成informix HDR需要满足如下要求: 两台服务器的 IDS version 必须相同 (OS 的版本可以有细微的不同 )。 a.两台服务器关于 Root Dbspace 的参数必须相同: ROOTNAME ROOTOFFSET ROOTPATH ROOTSIZE

实际环境中我们的配置为: ROOTNAME rootdbs

ROOTPATH $INFORMIXDIR/hdr/rootdbs ROOTOFFSET 0 ROOTSIZE 1000000

关于磁盘镜像,不要求两台服务器的MIRROR 配置必须相同,但是如果在主服务器对root dbspace 做了镜像设置的话,

辅助服务器也必须做相应的配置,也就是说如下参数须相同: MIRROR MIRROPATH MIRROROFFSET

实际上我们不用做太多的修改,使用默认值即可,上面我们注意到这些文件路径信息,实际上我们测试时无法提供双机环境,那么其实我们直接将

绝对路径改成相对路径,因为informix查找决定路径直接通过搜索INFORMIXDIR路径来获得。

关于物理日志配置的以下参数必须相同: PHYSBUFF PHYSILE

关于逻辑日志配置的以下参数必须相同: LOGBUFF LOGFILES

LOGSIZE DYNAMIC_LOGS

关于 HDR 配置的以下参数必须相同: DRAUTO DRINTERVAL DRTIMEOUT

可以采用默认值,但是实际上本次配置为: DRAUTO 0 DRINTERVAL -1 DRTIMEOUT 30

如果 HDR 对之间的数据传输需要加密的话,那么以下加密参数必须相同: ENCRYPT_HDR ENCRYPT_CIPHERS ENCRYPT_MAC ENCRYPT_SWITCH ENCRYPT_MACFILE

实际环境中我们没有对这些参数做修改,使用了默认值。

我们知道从informix 11.5开始辅助服务器可写,所以如下参数设置,具体含义后面会讲到:

UPDATABLE_SECONDARY 1

两台服务器关于服务名的设置根据实际分配的情况分别设置为: SERVERNUM 0/1

DBSERVERNAME beijing/shanghai 1.配置操作系统信任关系

为了满足 HDR 主辅服务器之间进行数据传输和相互操作的需要,我们在配置 HDR 之前首先要在两台服务器之间建立操作系统级别的信任关系。 具体而言是要在主辅服务器之间建立 RSH 信任关系。 确认 rsh 已经安装并且启动 使用以下命令检查: #chkconfig | grep rsh rsh: on

针对 Informix 用户配置 rsh

当然这里也可以针对所有用户配置互信关系,但是只针对 Informix 用户配置互信关系就够用了,这个主要在后期采用标准I/O备份恢复中需要。 首先,在两台机器的 /home/informix 目录下创建 .rhosts 文件。 其次,在primary的 .rhosts 文件中添加它信任的机器名字或者 IP 也就是 :standby 或者192.168.1.210,在standby 的 .rhosts 文件中加它信任的机器名字或者 IP 也就是:primary或者192.168.1.200。

最后需要特别注意:两台机器上都要保证 .rhosts 的权限为 600 否则该文件将被忽略,信任关系配置将失败。也就是要执行: chmod 600 .rshosts 验证 rsh 配置

在primary上用informix用户登录执行: $rsh standby hostname stadnby

在standby上用informix用户登录执行: $rsh primary hostname primary

此处关于informix的redhat AS 上如何配置RSH的详细过程,略去,具体方法需要参照我的上篇博文《RedHat linux配置RSH服务》 2. 配置相互指向的服务名

在beijing服务器的sqlhosts文件中加入shanghai服务器的条目: shanghai onsoctcp 192.168.1.210 sqlexec1

在shanghai服务器的sqlhosts文件加入指向上海服务器的条目: beijing onsoctcp 192.168.1.200 sqlexec2

最后两台服务器的sqlhosts文件都要包含以下内容: beijing onsoctcp 192.168.1.200 sqlexec2 shanghai onsoctcp 192.168.1.210 sqlexec1 3.分别修改服务器的/etc/services

在/etc/services文件中修改添加,确保均包含如下条目: sqlexec1 8088/tcp sqlexec2 8089/tcp

4.安装配置 UDR、UDT、DataBlade模块

如果数据库需要用到 UDR、UDT、DataBlade 等,需要先在主服务器进行安装和注册,然后在辅助服务器安装 UDR、UDT、DataBlade,当然如果不需要的话,可以不安装这些组件,这步骤可以省略。 5.在主服务器primary上设置服务器状态 $onmode -d primary shanghai

这一步是告知primary的beijing数据库服务器实例,它将要被赋予 HDR 主服务器的角色,与它配对的辅助服务器实例为shanghai。 6.关闭辅助服务器

一般来说在设置HDR前我们需要检查辅助服务器配置是否正确,所以会有一个初始化的操作,即 $oninit -ivy

记住这个命令很危险只能在创建的新服务器实例上执行,因为其会重新初始化内存和存储空间,导致丢失数据。

这时辅助服务器的informix实例是处于online状态,这主要是确保内存和磁盘不存在问题,由于创建过程中需要使用ontape做物理恢复, 故需要其未静默或关闭状态: $onmode – ky

在恢复前,如果还有其他的dbspace chunk文件,请确保备库主机的chunk文件和主机的chunk文件的路径和名称数量上相同,创建好需要恢复的物理chunk. 不然会失败,过程可参考如下: touch $INFORMIXDATA/datachunk chmod 660 $INFORMIXDATA/datachunk

7.在primary数据库服务器上做0级全备份,然后再辅助服务器做全恢复 这一步可以通过其他的的传统方法来完成,但是为了方便起见,充分利用informix的特性,这里使用 ontape通过STDIO管道来完成,

也就是说数据库的0级全备份不需要占用磁盘空间,也省去了全备份文件拷贝的步骤,主服务器在做全备的同时通过管道把数据发送给辅助服务器,

辅助服务器同时做全恢复,备份数据只在内存中临时存在,节省了空间又加快了速度。所以这一步只需要一个命令就可以完成:

$ontape -s -L 0 -t STDIO -F|rsh 192.168.1.210 ―. ~/.bash_profile;ontape -p -t STDIO‖

对于/.bash_profile;这个命令很有必要,因为我在多次过程中发现没有这个文件,执

行的informix用户报错,会找到默认的环境变量文件,而不是给informix用户指定的目录下。

这时候standby上的 shanghai实例会自动启动,状态由not initialized 变为initialization,进而变为 Fast Recovery: $onstat -

IBM Informix Dynamic Server Version 11.70.UC1IE — Initialization — Up 00:35:23 — 152348 Kbytes $onstat -

IBM Informix Dynamic Server Version 11.70.UC1IE — Fast Recovery — Up 00:35:23 — 152348 Kbytes 8. 设置辅助服务器的数据库状态 $onmode -d secondary beijing

这一步是告知standby的实例shanghai,它是被设置为HDR辅助服务器的角色,与它配对的主服务器实例为beijing。 9.状态验证

执行完毕后,稍后可以看到辅助服务器standby上shanghai实例的状态由Fast Recovery 变化为 Updatable(Sec) ,也就是如下: 辅助服务器: $ onstat -

IBM Informix Dynamic Server Version 11.70.UC1IE — Updatable (Sec) — Up 00:35:35 — 152348 Kbytes $ onstat -g dri

IBM Informix Dynamic Server Version 11.70.UC1IE — Updatable (Sec) — Up 00:35:57 — 152348 Kbytes Data Replication at 0x4b4241a0:

Type State Paired server Last DR CKPT (id/pg) Supports Proxy Writes

HDR Secondary on shanghai 22 / 23 Y DRINTERVAL -1 DRTIMEOUT 30 DRAUTO 0

DRLOSTFOUND /opt/IBM/informix/etc/dr.lostfound

DRIDXAUTO 0 ENCRYPT_HDR 0 Backlog 0 主服务器: $onstat -

IBM Informix Dynamic Server Version 11.70.UC1IE — On-Line (Prim) — Up 00:42:17 — 152348 Kbytes $onstat -g dri

IBM Informix Dynamic Server Version 11.70.UC1IE — On-Line (Prim) — Up 00:42:21 — 152348 Kbytes Data Replication at 0x4b4241a0:

Type State Paired server Last DR CKPT (id/pg) Supports Proxy Writes

primary on beijing 22 / 23 NA DRINTERVAL -1 DRTIMEOUT 30 DRAUTO 0

DRLOSTFOUND /opt/IBM/informix/etc/dr.lostfound DRIDXAUTO 0 ENCRYPT_HDR 0 Backlog 0

以上看起来HDR配置就成功了,并且我们的辅助服务器和主服务器一样是可以执行写操作的,至于这一块我后期做下验证,据说备机也可以写了,从上面的状态也是这样,但是我从相关资料上查的

informix实际上支持分布式读写,本质上还是在主机上更新后在同步到备机上的。 10.HDR相关参数介绍

简单介绍 下上面HDR配置用到的相关参数,详细的说明请参见 IDS技术文档。 UPDATABLE_SECONDARY

这个参数是11.50才有的新功能,取值范围为:0到2×(CPU VP), CPU VP一般就是服务器上CPU 的个数。

作用:用于控制辅助服务器是否可写,也就是说如果设置为大于 0 的数,则在辅助服务器可以执行 (delete/insert/update) 操作,相应的状态为:Updatable (Sec) ,

如果设置为 0 ,则在辅助服务器只能执行 select 操作,相应的状态为:Read-Only (Sec) 。

进一步的说,实际上这个参数的直接含义是辅助服务器上进行写操作的连接个数。 DRINTERVAL

这个参数单位为秒,用于设置多久才把日志发送到辅助服务器做数据同步,如果设置为 -1 则为同步模式,也就是说任何时候只要logical log buffer要写到磁盘中,就同时把日志内容发送到辅助服务器,得到辅助服务器确认后才认为写磁盘操作成功。在我们的实际设置中,设置成了 -1,这样在发生灾难情况下不会因为缓冲区的问题而丢失数据,但是性能上会受到一些影响。 DRAUTO,取值范围为: 0 Manual

1 Retain server type 2 Reverse server type

3 Connection Manager Arbitrator controls

简单来说,这个参数用于控制HDR中IDS 实例重启后怎样确定自己的角色,1表示保持原有角色,2表示转换为新的角色,3 表示使用连接管理器来仲裁。举个例子说:比如 HDR 主服务器重启后,DRAUTO 为 1 时,主服务器仍为主服务器;DRAUTO 为 2 时主服务器变为辅助服务器,原来的辅助服务器成为新的主服务器。 DRTIMEOUT

单位为秒,用来指定HDR对之间多少时间间隔没有响应被认为是超时。 DRLOSTFOUND

指定一个目录,用于存放逻辑日志,内容是主服务器已经提交但是辅助服务器没有同步的数据。用于防止数据丢失。 DRIDXAUTO 取值范围为 0、1。 是否自动进行索引修复。 关于传输加密参数

ENCRYPT_HDR 取值范围为:0、1

ENCRYPT_CIPHERS 各种支持的加密算法组合,详见文档。 ENCRYPT_MAC 取值范围:off, low, medium, high ENCRYPT_SWITCH 两个秒为单位的时间,例如:60,60

本文来源:https://www.bwwdw.com/article/7klf.html

Top