SequoiaDB数据库集群部署
一般在多机环境下部署数据库的集群模式是比较繁琐的,下面我来分享一个如何通过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数据库集群部署的更多相关文章
- k8s集群部署之环境介绍与etcd数据库集群部署
角色 IP 组件 配置 master-1 192.168.10.11 kube-apiserver kube-controller-manager kube-scheduler etcd 2c 2g ...
- Redis非关系型缓存数据库集群部署、参数、命令工具
<关系型数据库与非关系型数据库> 关系数据库:mysql.oracle.DB2.SQL Server非关系数据库:Redis(缓存数据库).MongodDB(处理海量数据).Memcach ...
- elasticSearch数据库、skywalking集群部署
Centos6上面安装elasticsearc数据库的集群 安装的是6.3.2版本,安装之前首先要先安装jdk1.8版本 安装之前首先需要关闭防火墙 Centos6 sudo service ipta ...
- openstack(pike 版)集群部署(一)----基础环境部署
一.环境 1.系统: a.CentOS Linux release 7.4.1708 (Core) b.更新yum源和安装常用软件 # yum -y install epel-release ba ...
- Kubernetes 企业级集群部署方式
一.Kubernetes介绍与特性 1.1.kubernetes是什么 官方网站:http://www.kubernetes.io • Kubernetes是Google在2014年开源的一个容器集群 ...
- openstack高可用集群21-生产环境高可用openstack集群部署记录
第一篇 集群概述 keepalived + haproxy +Rabbitmq集群+MariaDB Galera高可用集群 部署openstack时使用单个控制节点是非常危险的,这样就意味着单个节 ...
- Kubernetes 部署 Nebula 图数据库集群
Kubernetes 是什么 Kubernetes 是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes 的目标是让部署容器化的应用简单并且高效,Kubernetes 提供了应 ...
- Quartz.net持久化与集群部署开发详解
序言 我前边有几篇文章有介绍过quartz的基本使用语法与类库.但是他的执行计划都是被写在本地的xml文件中.无法做集群部署,我让它看起来脆弱不堪,那是我的罪过. 但是quart.net是经过许多大项 ...
- 【Data Cluster】真机环境下MySQL数据库集群搭建
真机环境下MySQL-Cluster搭建文档 摘要:本年伊始阶段,由于实验室对不同数据库性能测试需求,才出现MySQL集群搭建.购置主机,交换机,双绞线等一系列准备工作就绪,也就开始集群搭建.起初笔 ...
随机推荐
- 开发工具 之 PowerDesigner 应用积累
1.在默认情况下,code与name是联动,修改了name中的数据. 解决方法:设置菜单栏选择"Tools→General Options→Dialog" 中的 "Na ...
- 1.6.6 De-Duplication(重复数据删除)
1. 重复数据删除 solr通过<Signature>类的类型来支持重复数据删除技术的.一个Signature可以通过以下几种方式实现: 方法 描述 MD5Signature 128 ...
- TextRank算法提取关键词的Java实现
转载:码农场 » TextRank算法提取关键词的Java实现 谈起自动摘要算法,常见的并且最易实现的当属TF-IDF,但是感觉TF-IDF效果一般,不如TextRank好. TextRank是在 G ...
- linux_iptables 详解
iptables工具__过滤包—命令(-A.-I.-D.-R.-L等).参数(-p.-s.-d.--sport.--dport.-i.-o等).动作-j (ACCEPT.DROP.REJECT.RED ...
- XML 命名空间
XML 命名空间 一.XML命名冲突 在 XML 中,元素名称是由开发者定义的,当两个不同的文档使用相同的元素名时,就会发生命名冲突. 这个 XML 文档携带着某个表格中的信息: <table& ...
- 剑指Offer47 不用加减乘除做加法
/************************************************************************* > File Name: 47_AddTwo ...
- POJ 3921 Destroying the bus stations 沿着最短路迭代加深搜索
题目:给出一个图,问最少删除多少个点,使得从点1到点n经过的点数超过k个. 分析: 上网搜了一下,发现很多人用网络流做的,发现我不会.再后来看到这篇说网络流的做法是错的,囧. 后来发现点数有点少,直接 ...
- 微软测试版Visual Studio for Mac下载
地址:https://www.visualstudio.com/thank-downloading-visual-studio-mac/?sku=vsmac#
- android 开源库集合的链接列表
1. 内容挺多的 https://github.com/Trinea/android-open-project
- web服务器内置对象,或者说是ServletAPI的实例
final javax.servlet.jsp.PageContext pageContext; javax.servlet.http.HttpSession session = null; // ...