Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1634418
  • 博文数量: 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-11-25 14:54:17

1. 说明
  
   在本人的blog中已经介绍了IQ 15.2版本的集群搭建示例,在这里将向大家介绍IQ 15.3集群和DQP(分布式查询处理)的搭建方法。
   IQ 15.3 Multiplex的一个重要增强是支持Shared MPP架构,同过它可以支持DQP(分布式查询处理),这可以使一个查询被分解为多个片段,集群中的不同节点可以运行不同的查询片段,查询结果最后进行合并然后返回给客户端。
   IQ 15.3集群搭建方法与IQ 15.2基本相同,下文中不同的地方我会加以特别说明(用蓝色字体表示)。 
 
2. 环境要求
   IQ 15.3 Multiplex支持的操作系统包括:IBM AIX、HP-IA、Linux、Sun Solaris和windows等平台。具体的版本和补丁要求这里就不说了,参见sybase官方网站或者本人的博文"IQ 15 官方资源汇集(2)"
   这个例子是两个运行Red Hat Linux的虚拟机构成的集群(虚拟机建立共享虚拟盘),IQ采用的是15.3企业版。
   IQ 15.3集群除具有两个集群之间的通讯机制:一个是INC(用于传递节点心跳信息和全局事物协调管理的信息),另一个是MIPC(用于DQP处理)。INC使用公有网络(public netework);MIPC可以与INC共用网络,也可以使用单独的私有网络(private network)。由于进行DQP处理时需要交换的信息相对较多、较大,建议MIPC使用单独的私有网络。
 
   两个节点的环境如下:
   (1) node1和node2两个节点分别具有两个虚拟网卡,地址如下:
       node1: 192.168.2.191      #public ip
       node1_priv 172.16.1.101   #private ip
 
       node2: 192.168.2.193      #public ip
       node2_priv 172.16.1.103   #private ip
  
  (2) node1和node2两个节点上要安装好IQ 15.3企业版软件,node1作为协调节点。
 
  (3) 用于IQ_SYSTEM_MAIN Store的共享设备:
      /dev/sdc1 2G, 映射为/dev/raw/raw21
  
  (4) 在本示例中,IQ_SYSTEM_TEMP Store使用本地文件作为存储,不使用裸设备
       
  (5) 用于IQ_SHARED_TEMP Store的裸设备的共享设备(IQ 15.3新增的,用于DQP处理):
      /dev/sdd1 4G, 映射为/dev/raw/raw31
  
  (6) 用于存放用户数据的user main dbspace的共享设备:
      /dev/sdd3 2G, 映射为/dev/raw/raw41
  
   注意:IQ Multiplex安装前对于存储的规划是最重要的一项准备工作,IQ_SYSTEM_MAIN、IQ_SHARED_TEMP和user main 等dbsapce中的设备必须是各节点可以读写的裸设备,并且裸设备的设备名要完全相同。IQ Temp Store中的设备是节点自己本地存储上的裸设备或文件系统中的文件。
 
2. 创建Simplex IQ Server
   IQ 15.3 Mulitplex创建比较有意思,首先要创建一个单IQ Server(又叫做Simplex),然后把它转换为Multiplex,再往其中增加其它节点。
   创建Simplex IQ Server的步骤:
   (1) 创建符号链接
      A.在node1和node2上用root用户分别执行(假设IQ Catalog DB在/sybiq/mp2目录下):
        ln -s /dev/raw/raw21 MP2_SYS_MAIN_FILE01.iq
        ln -s /dev/raw/raw31 MP2_SHARED_TEMP_FILE01.iq
        ln -s /dev/raw/raw41 MP2_USER_MAIN_FILE01.iq
       
      B.在node1上用root用户执行
        chmod 777 /dev/rawctl #这一步是为sybiq用户授权以便能存储设备。
 
      C.在node2上用root用户执行
        chmod 777 /dev/rawctl #这一步是为sybiq用户授权以便能存储设备
 
   (2) 在node1上启动iq utility server创建数据库
       start_iq -n utility_srv
      
   (3) 编写创建数据的脚本createdb.sql
       CREATE DATABASE '/sybiqdb/mp2/mp2.db'
         LOG ON 'mp2.log'
         CASE RESPECT
         ACCENT IGNORE
         PAGE SIZE 4096
         COLLATION '936ZHO'
         BLANK PADDING ON
         JCONNECT ON
         IQ PATH '/sybiqdb/mp2/MP2_SYS_MAIN_FILE01.iq' --IQ_SYSTEM_MAIN
         TEMPORARY PATH '/sybiqdb/mp2/MP2_SYS_TEMP_FILE01.iqtmp'  --使用文件方式。     
         TEMPORARY SIZE 2048  --使用文件方式必须指定尺寸。
         MESSAGE PATH 'mp2.iqmsg'
         IQ PAGE SIZE 131072;
   
   (4) 执行createdb.sql脚本,创建mp2数据库
       dbisql -c "uid=DBA;pwd=sql;dbn=utility_db;eng=utility_srv" -nogui createdb.sql
  
   (5) 编辑params.cfg参数文件
       -cl  128m
       -ch  256m
       -gc  20
       -gd  dba
       -gk  dba
       -gl  all
       -gm  20
       -ti  4400
       -tl  300
       -iqmc 256
       -iqtc 256
       -iqmsgsz 64
       -iqmsgnum 4
   (6)启动创建好的mp2库
        以sybiq用户登录操作系统,然后执行:
        cd /sybiqdb/mp2
        start_iq @params.cfg -n mp2node_c -x "tcpip{host=node1;port=4888}" mp2.db

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