Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1560119
  • 博文数量: 201
  • 博客积分: 2812
  • 博客等级: 少校
  • 技术积分: 3029
  • 用 户 组: 普通用户
  • 注册时间: 2011-01-18 18:28
个人简介

从事数据库工作多年,目前看好分布式NeSQL/HTAP数据库在企业客户市场的发展。未来的主要方向是——致力于 NewSQL/HTAP 数据库的推广普及。

文章存档

2016年(1)

2015年(8)

2014年(23)

2013年(50)

2012年(32)

2011年(87)

分类: Sybase

2011-03-04 14:55:15

4. 恢复
   在Multiplex的协调节点上进行数据库恢复时分为两种情况:
 (1) 恢复Catalog DB到原位置
   举个例子说吧:备份时协调节点上的Catalog DB (mp2.db) 位于/sybiqdb/mp2目录下,在恢复时仍然恢复到相同的目录位置,并且文件名也相同。
 
   (2) 恢复Catalog DB到不同的位置
   即备份时协调节点上的Catalog DB (mp2.db) 位于/sybiqdb/mp2目录下,在恢复时恢复到相同不同的目录位置,例如:/sybiqdb/mp2new。
 
   为了能简化IQ Multiplex数据库的恢复步骤,减少发生错误返工的可能性。最好能把IQ Catalog DB恢复到原位置并且文件名也相同。
   对于这两种情况,在进行恢复时的某些步骤是不相同的,下面将分别进行说明。
4.1 恢复到原位置
 
下面是具体的步骤:
  (1) 确保IQ Multiplex中每个server所在机器上的IQ 数据库(即Catalog DB)的Home目录还存在。如果不存在的话需要创建它们。
      例如:node1(协调节点)上的/sybiqdb/mp2目录是数据库的Home目录,如果在恢复前发现这个目录没有存在,那么需要创建它。
 
  (2) 停止(shutdown) IQ Multiplex中的每一个IQ Server(包括“协调”服务器和所有的“辅助”服务器)
      建议使用stop_iq停止iq server。
  (3) 在停止所有IQ Server之后,确保数据库真正成功的停止。
      在UNIX或LINUX上,使用: ps -ef | grep iqsrv15命令检查是否真正停止了相应的IQ Server。
 
  (4) 移动或复制需要的文件
      a.使用操作系统命令制作.iqmsg文件的copy。
      b.在Multiplex中的每个server上,保留IQ_SYSTEM_TEMP dbspace所使用的文件或裸设备。
      c.在“协调节点”上删除下面的文件:
          /.db
          /.log
        在删除.db和.log文件之前最好能使用OS的cp命令复制一份。
  (5) 在“协调节点”上启动启动utility server数据库
      例如:
        start_iq -n NODE1_UTILITY -c 256m -gd DBA -gm 20 -ti 8400 -x "tcpip(port=3638)"

(6) 使用dbisql连接到utility server
        dbisql -c "uid=DBA;pwd=sql;eng=NODE1_UTILITY;dbn=utility_db" –nogui
  (7) 执行RESTORE命令
      例如:
         RESTORE DATABASE '/sybiqdb/mp2/mp2.db' FROM '/backup/mp2db.20110302.db.full.dmp'  
  (8) 使用stop_iq停止utility数据库
  
  (9) 确定协调节点和辅助接点上的IQ_SYSTEM_TEMP中的dbfiles所使用的文件或裸设备存在,并且具有正确的尺寸
 (10) 以正常的方式启动协调服务器
 
 (11) 同步Multiplex中的每一个辅助服务器
 
      例如,在node2节点上进行同步:
          dbbackup -y -d -c "uid=DBA;pwd=sql;links=tcpip;eng=mp2node_c" /sybiqdb/mp2

 (12) 启动每个辅助服务器
 
4.2 恢复到不同位置
 
下面是具体的步骤:
 
  (1) 确保IQ Multiplex中每个server所在机器上的IQ 数据库(即Catalog DB)的Home目录还存在。如果不存在的话需要创建它们。
     例如:node1(协调节点)上的/sybiqdb/mp2目录是数据库的Home目录,如果在恢复前发现这个目录没有存在,那么需要创建它。

(2) 停止(shutdown) IQ Multiplex中的每一个IQ Server(包括“协调”服务器和所有的“辅助”服务器)
(3) 在停止所有IQ Server之后,确保IQ Server已经成功停止。
      在UNIX或LINUX上,使用: ps -ef | grep iqsrv15命令检查是否真正停止了相应的IQ Server。
  (4) 移动或复制需要的文件
      a.使用操作系统命令制作.iqmsg文件的copy。
      b.在Multiplex中的每个server上,保留IQ_SYSTEM_TEMP dbspace所使用的文件或裸设备。
 
  (5) 在“协调节点”上启动启动utility server数据库
      例如:
        start_iq -n NODE1_UTILITY -c 256m -gd DBA -gm 20 -ti 8400 -x "tcpip(port=3638)"
 
(6) 使用dbisql连接到utility数据库
      例如:
        dbisql -c "uid=DBA;pwd=sql;eng=NODE1_UTILITY;dbn=utility_db" –nogui
  (7) 执行RESTORE命令把Catalog DB恢复到新的目录位置中
      例如:
      原协调节点的IQ数据库Catalog DB目录是 /sybiqdb/mp2,在restore时恢复到/sybiqdb/mp2new目录中。
      在Mulitplex数据库的备份中,包括Catalog DB的备份.由于系统表中记录了Catalog DB的绝对路径,所以当restore到Catalog DB到新的路径时,需要删除Mulitplex中的各辅助服务器,然后重建。注意:如果使用了符号链接,那么需要在新的目录中建立它们;如果restore时希望恢复到不同的设备,或是使用了符号链接,但符号链接的位置(即所在目录)放生了变化,那么需要在RESTORE时增加RENAME子句把dbfiles映射到正确的新位置。
      注意:如果在创建数据时MESSAGE PATH使用了绝对路径,那么也需要RENAME IQ_SYSTEM_MSG到正确的位置;如果MESSAGE PATH使用了相对路径,即dbname.iqmsg格式,那么在RESTORE时不需要对IQ_SYSTEM_MSG进行RENAME。

(8) 停止utility数据库
 
  (9) 使用-iqmpx_sn 1和-iqmpx_ov 1启动协调节点
      例如:
        start_iq @params.cfg -n mp2node_c -x "tcpip{port=4888}" -iqmpx_sn 1 -iqmpx_ov 1 mp2.db

 (10) 使用dbisql连接到协调服务器,执行DROP MULTIPLEX SERVER语句删除所有的辅助服务器。
      例如:
          DROP MULTIPLEX SERVER casnode_w1
      如果你删除了最后一个服务服务器,协调服务器会自动shutdown,表示Multipelx转化为Simplex。
 
 (11) 重启协调节点上的IQ Server(不加-iqmpx_sn和-iqmpx_ov选项)
      例如:
         start_iq @params.cfg -n mp2node_c -x "tcpip{port=4888}" mp2.db

 (12) 用正确的目录位置重新创建所有的辅助服务器
      例如:
        CREATE MULTIPLEX SERVER mp2node_w1 DATABASE '/sybiqdb/mp2new/mp2.db' HOST 'node2' PORT 4888 ROLE WRITER STATUS INCLUDED;
      需要注意的是:
      如果协调服务器上的Catalog DB被恢复到新的目录,并且在新的目录中生成了新的符号链接文件,那么在辅助服务器上对于指向共享IQ Store设备的符号链接的绝对路径名应该与协调服务器相同。例如:在协调节点上把Catalog DB恢复到/sybiqdb/mp2new目录下(原先是在/sybiqdb/mp2目录下)。并且在/sybiqdb/mp2new 目录下创建了符号链接/sybiqdb/mp2new/MP2_SYS_MAIN_FILE01.iq,那么在辅助节点上应该也有这个符号链接文件,并且绝对路径和文件名应该与其完全相同。为了不容易出错,辅助节点的Catalog DB所在目录与符号链接最好与协调节点保持一致。例如:在辅助服务器上也创建一个/sybiqdb/mp2new目录,在这个目录下使用dbbackup命令同步,同步生成的.db文件也位于这个目录,并且保持符号链接文件的绝对路径和文件名与协调服务器相同。
     在创建了头一个辅助服务器后,协调服务器会自动shutdown,表示Simplex转化为Multiplex
 
 (13) 重启“协调服务器”时,在控制台和.srvlog文件中会看到“WARNING : Multiplex environment incorrect for this server Please connect and run procedure sp_iqmpxvalidate”警告消息。这是因为增加的辅助服务器的IQ_SYSTEM_TEMP dbspaces还没有增加过dbfiles。可以忽略这个警告。
 
 (14) 同步辅助服务器
    例如,在node2节点上执行如下命令:
        dbbackup -y -d -c "uid=DBA;pwd=sql;links=tcpip;eng=mp2node_c" /sybiqdb/mp2new
 
 (15) 启动辅助服务器
 
 (16) 连接到每一个辅助服务器,为IQ_SYSTEM_TEMP增加dbfiles。
 
 (17) 在协调服务器上运行sp_iqmpxvalidate存储过程以检查Multiplex是否有效。如果执行返回“no error detected”,那么表示Mulitplex环境正常。
阅读(2226) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~