Chinaunix首页 | 论坛 | 博客
  • 博客访问: 104647648
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: DB2/Informix

2008-05-31 17:28:10

HDR:启动和管理

本节讨论与 HDR 的启动和管理相关的以下主题:



为了创建 HDR 服务器对,必须在主服务器上生成一个存档文件,然后在从服务器上恢复它。采用的步骤如下:



步骤 在主服务器上 在从服务器上
1 安装 UDR、UDT 和 DataBlade 模块。注册 UDR、UDT 和 DataBlade 模块。 安装 UDR、UDT 和 DataBlade 模块。
2 ontape -s -L 0,或 onbar -b -L 0,或执行外部备份
3 onmode -d primary sec_name
4
ontape -p,或 ontape -r -p -e,或 onbar -r,或 onbar -r -p -e
5
onmode -d secondary prim_name
6
ontape -l,或 onbar -r -l


下面详细描述这 6 个步骤:

  1. 在两个服务器上 用户定义的类型、用户定义的例程和 DataBlade 模块,然后只在主服务器上注册它们。
  2. 在两个服务器上 一次0级存档。对主服务器上的逻辑日志进行备份(如果需要的话)。
  3. 运行以下命令,将 IDS 服务器 为主服务器:

    onmode -d primary sec_name
                

    sec_name 替换为作为从服务器的 IDS 系统的 DBSERVERNAME。执行这个命令之后,检查消息日志文件。它应该包含以下消息:

    DR: new type = primary, server name = sec_name
    DR: Cannot connect to secondary server
                

  4. 在从服务器上用第二步中创建的0级备份 物理恢复。不要执行逻辑恢复。如果使用:
    • onbar,那么使用 onbar -r -p 命令执行物理恢复
    • onbar 并执行外部恢复,那么使用 onbar -r -p -e 命令执行物理恢复
    • ontape,那么使用 ontape -p 选项。不能使用 ontape -r 选项,因为它同时执行物理恢复和逻辑恢复
    • ontape 并执行外部恢复,那么使用 ontape -p -e 命令执行物理恢复
  5. 运行以下命令,将 IDS 服务器 为从服务器:

    onmode -d secondary pri_name
                

    pri_name 替换为作为主服务器的系统的 DBSERVERNAME。执行这个命令之后,检查消息日志文件。它应该包含以下消息:

    DR: new type = secondary, primary server name = prim_name
                

    如果在主服务器上备份了逻辑日志文件并删除了它们,那么这些文件中的记录就不再保留在主服务器上了。从服务器会提示从磁带恢复这些文件。在这种情况下,必须执行第六步。
  6. 过去写到主服务器的逻辑日志记录不再保留在主服务器磁盘上,那么从服务器会提示从磁带备份恢复这些文件。在恢复磁带上的所有逻辑日志文件之后,使用主服务器磁盘上的逻辑日志文件完成逻辑恢复。






在 HDR 服务器对中,改变一个服务器的模式就会影响另一个服务器的模式。本节讨论每个服务器上可能产生的影响:

  • 在主服务器上,运行 onmode -k 会有以下效果:
    • 从服务器在消息日志中记录一个消息:DR: Receive error. HDR is turned off.
    • 如果 DRAUTO = 0,那么从服务器仍然处于只读模式
    • 如果 DRAUTO = 1,那么从服务器切换到标准服务器模式,可以接受更新
    • 如果 DRAUTO = 2,那么一旦与原来的主服务器的连接中断,从服务器就切换为主服务器模式
  • 在主服务器上,运行 onmode -sonmode -uonmode -j 分别将模式切换为在线、静默(quiescent)或管理,就会产生以下效果:
    • 从服务器不接收错误
    • HDR 仍然打开
    • 模式仍然是只读的
  • 在从服务器上,运行 onmode -k 会产生以下效果:
    • 主服务器在消息日志中记录一个消息:DR: Receive error. HDR is turned off.

可以改变主服务器或从服务器的类型。

只有在从服务器上关闭了 HDR 时,才能将从服务器改为标准服务器(onmode -d standard)。当到主服务器的复制连接中断,或者从服务器上的复制失败时,HDR 就会关闭。在将从服务器切换为标准服务器后,它不会尝试连接复制服务器对中的另一个服务器。

使用以下脚本切换服务器类型:hdrmksec.[sh|bat] 和 hdrmkpri.[sh|bat] 脚本。







有时候,主服务器和从服务器上的索引可能会不一致。老的修复方法是删除索引并重建它。这个过程要锁定整个表,而且需要花费相当长的时间。现在可以采用另一种方法 —— 可以将索引从主服务器复制到从服务器,而不必在主服务器上重建索引。可以选择手工重建索引,或者让从服务器自动复制索引。

为了将索引自动复制到从服务器,必须执行以下步骤:

  • 在从服务器上运行 onmode -d idxauto on,这在下一次服务器切换之前会一直生效
  • 在 onconfig 文件中将 DRIDXAUTO 配置参数设置为 1,这不受服务器切换的影响

有时候索引的自动复制不起作用,比如在表被锁定时。为了将索引手工复制到 HDR 从服务器,需要关闭自动复制特性并运行以下命令:

onmode -d index database:[ownername].table#index
        







如果您以前没有设置过 HDR,现在就来实践一下前面讨论的操作。

练习 1:在两个服务器上设置一个 HDR 对。创建 stores 7 数据库的两个拷贝 —— 一个启用日志,一个不启用。可以使用以下命令创建这两个数据库:

  • dbaccessdemo7 stores7_log -log
  • dbaccessdemo7 stores7_nolog

在从服务器上检查这两个数据库。对于启用日志和不启用日志的数据库,会有什么不同吗?

练习 2:使用每个实例的相对路径在同一台服务器上设置 HDR 对。







练习 1:这个练习的目标是帮助您熟悉 HDR 的设置,了解 HDR 的效果并理解它的工作方式。应该会看到,从服务器上的 'stores7_log' 数据库与主服务器上相同 —— 数据库已经创建,所有表都存在,所有行也都存在。它们是完全相同的拷贝。对于不启用日志的数据库,您会发现数据库和表也已经创建,但是没有 复制行。这是因为 HDR 只复制逻辑日志中的内容。对于不启用日志的数据库,只有 DDL(Data Definition Language)语句被写入逻辑日志中。

练习 2:这个练习的目标是帮助您熟悉用相对路径在同一台服务器上启用 HDR。

阅读(1300) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~