一般在多机环境下部署数据库的集群模式是比较繁琐的,下面我来分享一个如何通过shell脚本的方式简单、方便地部署我们的集群。
首先,我们要给机器配置信任关系,这样我们就无需手动的输入密码来执行ssh和scp操作
假设我们我们有四台机器:
suse1 suse2 suse3 suse4
suse1是部署控制机,suse2 suse3 suse4是需要部署的机器
suse2 suse3 suse4分别执行
ssh-keygen -d
产生秘钥和公钥,再将各自的公钥存储在suse1的authorized_keys文件中
如果suse1也是需要部署的机器,同样也是需要建立相应的信任关系


建立好信任关系后,将四个脚本文件和SequoiaDB安装软件放在同一个文件夹,我们就可以操作部署了
我将部署的脚本分成了四部分:
控制机执行脚本、远程机执行脚本、函数库脚本和部署配置脚本
控制机执行脚本  sequoiadb_deploy.sh
主要的工作是分发文件,将数据库软件、远程执行脚本、函数库脚本和配置脚本分发到远程机器的
再通知远程的机器执行远程文件


远程机执行脚本  remote_deploy.sh
主要工作
卸载旧版本的SequoiaDB数据库,安装新版本的SequoiaDB数据库,配置SequoiaDB引擎启动文件
启动本机的SequoiaDB引擎
针对部署方案,将磁盘mount到指定的目录,以备之后各个数据节点的数据存放
对系统的配置进行修改
包括

1              允许产生core文件,并且产生的core文件不做大小限制
   2              不限制数据库进程非配的内存大小
   3              不限制数据库进程所允许寻址的文件大小
   4              不限制数据库所允许的最大resident set大小
   5              不限制数据库进程所允许最大虚拟内存寻址空间

函数库脚本  deploy_function.sh
编写了整个部署过程中需要的所有方法,这样做的目的除了让部署的脚本看起来更简洁,也方便部署方案的灵活多变

1 cleanENV                                              卸载SequoiaDB数据库和清理环境

   2 installSoftware                               安装SequoiaDB数据库和拷贝引擎的配置文件
   3 write_coord_conf                          修改引擎的配置文件
   4 start_deploy                                     启动SequoiaDB数据库引擎
   5 deploy_sequoiadb_env             部署数据库集群模式,包括启动catalog和datanode
   6 cpToMachine                                    scp拷贝函数,方便调用
   7 writeSYSFile                                    修改系统的内核参数

部署配置脚本  common.sh
在部署过程中,可以灵活的根据部署方案做出相应的改变

INSTALL_DIR                                          控制机的部署文件所在路径(将四个脚本文件和SequoiaDB安装软件放在同一目录)

SOFTWARE_FILE_DIR                       部署机器临时存放文件路径
SDB_INSTALL_DIR                              SequoiaDB安装路径(不建议修改)
DATABASE_DIR                                    各个节点数据、信息、日志存放路径
INSTALL_SOFTWARE_FILE            SequoiaDB安装软件的名字(注意:不需要填写路径)
SDB_CMD                                                 SequoiaDB客户端路径
GROUP_LIST                                         建立数据节点的列表
HOST?                                                   部署的主机名(hostname)
dataNodeBasePort                        数据节点的开始端口号,如果建立多个,即在此基础上+10
DISKLIST                                                硬盘列表

代码下载链接: http://pan.baidu.com/share/link?shareid=2301605038&uk=1763139216

SequoiaDB下载地址:
Sequoiadb-1.3 for IBM Power Linux 64 Installer 202.60MB

Sequoiadb-1.3 for Linux x86_64 Installer 201.72MB

SequoiaDB Demo VMware 虚机镜像(只能体验功能,不能测试性能和可扩展性)

SequoiaDB教程: SequoiaDB信息中心

SequoiaDB数据库集群部署的更多相关文章

  1. k8s集群部署之环境介绍与etcd数据库集群部署

    角色 IP 组件 配置 master-1 192.168.10.11 kube-apiserver kube-controller-manager kube-scheduler etcd 2c 2g ...

  2. Redis非关系型缓存数据库集群部署、参数、命令工具

    <关系型数据库与非关系型数据库> 关系数据库:mysql.oracle.DB2.SQL Server非关系数据库:Redis(缓存数据库).MongodDB(处理海量数据).Memcach ...

  3. elasticSearch数据库、skywalking集群部署

    Centos6上面安装elasticsearc数据库的集群 安装的是6.3.2版本,安装之前首先要先安装jdk1.8版本 安装之前首先需要关闭防火墙 Centos6 sudo service ipta ...

  4. openstack(pike 版)集群部署(一)----基础环境部署

    一.环境 1.系统: a.CentOS Linux release 7.4.1708 (Core) b.更新yum源和安装常用软件 #  yum -y install  epel-release ba ...

  5. Kubernetes 企业级集群部署方式

    一.Kubernetes介绍与特性 1.1.kubernetes是什么 官方网站:http://www.kubernetes.io • Kubernetes是Google在2014年开源的一个容器集群 ...

  6. openstack高可用集群21-生产环境高可用openstack集群部署记录

    第一篇 集群概述 keepalived + haproxy +Rabbitmq集群+MariaDB Galera高可用集群   部署openstack时使用单个控制节点是非常危险的,这样就意味着单个节 ...

  7. Kubernetes 部署 Nebula 图数据库集群

    Kubernetes 是什么 Kubernetes 是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes 的目标是让部署容器化的应用简单并且高效,Kubernetes 提供了应 ...

  8. Quartz.net持久化与集群部署开发详解

    序言 我前边有几篇文章有介绍过quartz的基本使用语法与类库.但是他的执行计划都是被写在本地的xml文件中.无法做集群部署,我让它看起来脆弱不堪,那是我的罪过. 但是quart.net是经过许多大项 ...

  9. 【Data Cluster】真机环境下MySQL数据库集群搭建

    真机环境下MySQL-Cluster搭建文档  摘要:本年伊始阶段,由于实验室对不同数据库性能测试需求,才出现MySQL集群搭建.购置主机,交换机,双绞线等一系列准备工作就绪,也就开始集群搭建.起初笔 ...

随机推荐

  1. org.apache.hadoop.conf-Configurable

    从包名可以看出这个包里面都是配置相关的类:从类名上可以看出这是一个接口,或者说配置类接口.内容很少. package org.apache.hadoop.conf; /** Something tha ...

  2. iOS 10 推送必看(高阶1)

    来源:徐不同 链接:http://www.jianshu.com/p/3d602a60ca4f iOS10 推送必看(基础篇) 虽然这篇文章比较长,也不好理解,但是还是建议大家收藏,以后用到的时候,可 ...

  3. iOS一分钟学会环形进度条

    有几篇博客写到了怎么实现环形进度条,大多是使用Core Graph来实现,实现比较麻烦且效率略低,只是一个小小的进度条而已,我们当然是用最简单而且效率高的方式来实现.先看一下这篇博客,博客地址:htt ...

  4. Asp.Net 之 母版页中对控件ID的处理

    一.问题提出 由于总体排版和设计的需要,我们往往创建母版页来实现整个网站的统一性,最近我由于统一性的需要,把原来整个项目单独的页面全部套用了母版页.但是出现了一系列失效错误. 二. 抽象模型 由于整个 ...

  5. Quoit Design

    Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission ...

  6. TFS 2010 使用手册(二)项目集合与项目

    1.项目集合 1.1 项目集合创建 打开TFS管理控制台,点击“团队项目集合”. 图1点击“团队项目集合” 图2 点击“创建集合” 然后按照向导一步步完成项目集合的创建. 1.2 项目集合的删除 选中 ...

  7. java正则表达式常用实例——借鉴思路

    转载自:http://mp.weixin.qq.com/s?__biz=MjM5OTM4NDMyMg==&mid=2650044497&idx=1&sn=dc80fa35f7e ...

  8. Android Chronometer的正常暂停和继续

    最近做了个小实验--一个小的计数秒表,实现开始计时,暂停计时,重置的功能.界面如下

  9. 《算法导论》习题解答 Chapter 22.1-3(转置图)

    一.邻接表实现 思路:一边遍历,一边倒置边,并添加到新的图中 邻接表实现伪代码: for each u 属于 Vertex for v 属于 Adj[u] Adj1[v].insert(u); 复杂度 ...

  10. freeCodeCamp:Diff Two Arrays

    比较两个数组,然后返回一个新数组,该数组的元素为两个给定数组中所有独有的数组元素.换言之,返回两个数组的差异. function diff(arr1, arr2) { var newArr = []; ...