Amoeba分布式数据库的安装与配置
- 格式:doc
- 大小:7.09 MB
- 文档页数:45
Amoeba+keepalived+mysql高可用性方案注:未在生成环境实施过本方案主要针对amoeba和keepalived的配置与实施,有关mysql的部分,请自行参考其他文档!优点1:读写分离,支持水平分区,对开发透明2:amoeba实现对从库组灵活的负载均衡和故障自动转移,keepalived实现amoeba的主备切换、故障转移缺点不支持主库故障转移,依然存在主库的单点故障AMOEBA[安装篇]1、什么是Amoba?Amoeba(变形虫)项目,该开源框架于2008年开始发布一款Amoeba for Mysql软件。
这个软件致力于MySQL的分布式数据库前端代理层,它主要在应用层访问MySQL的时候充当SQL路由功能,专注于分布式数据库代理层(Database Proxy)开发。
座落与Client、DB Server(s)之间,对客户端透明。
具有负载均衡、高可用性、SQL过滤、读写分离、可路由相关的到目标数据库、可并发请求多台数据库合并结果。
通过Amoeba你能够完成多数据源的高可用、负载均衡、数据切片的功能,目前Amoeba已在很多企业的生产线上面使用。
2、Linux下安装AmobaA.JAVA环境安装Amoeba框架是基于Java SE1.5开发的,建议使用Java SE 1.5版本。
1.6的版本也可以。
准备Java安装包jdk-1_5_0_22-linux-i586-rpm.bin,上传二进制包至/usr/java(没有,请新建)。
cd /usr/java给予执行权限,chmodu+xjdk-1_5_0_22-linux-i586-rpm.binshjdk-1_5_0_22-linux-i586-rpm.bin或者./jdk-1_5_0_22-linux-i586-rpm.bin #执行接下来是LICENSE,空格跳过,最后按提示输入yes.设置java环境变量在/etc/profile尾部加入下面的内容export JAVA_HOME=/usr/java/jdk1.5.0_22export PATH=$JAVA_HOME/bin:$PATHexport CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarsource /etc/profile 使环境变量生效java –version 验证javajava version "1.5.0_22"Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_22-b03)Java HotSpot(TM) Client VM (build 1.5.0_22-b03, mixed mode, sharingB 安装Amoeba去/projects/amoeba/files/下载最新版本的Amoaba2.0。
配置amoeba实现读写分离配置环境:Mater :192.168.1.229 server1 读Slave :192.168.1.181 server2 写网站主机: 192.168.1.120 测试读写一,配置mysql主从复制:请见另外一个文档。
二,配置jdk环境变量。
Amoeba框架是基于Java SE1.5开发的,建议使用Java SE 1.5版本。
目前Amoeba 经验证在JavaTM SE 1.5和Java SE 1.6能正常运行,(可能包括其他未经验证的版本)。
变量设置(在master主机上配置),此处可以设置全局环境变量设置,也可使用root 用户变量设置,同样,如果是别的用户安装的amoeba软件,则使用相应的账号来设置jdk环境变量。
全局设置如下:加入下信息:vi /etc/profileJAVA_HOME=/usr/local/jdk1.6.0_25PATH=$JAVA_HOME/bin:$PATHPATH=$PATH:$HOME/bin:/usr/local/amoeba/binCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexport JAVA_HOMEexport PATHexport CLASSPATH解释如下:第一行指定了jdk的安装目录。
第二行指定了其家目录的路径。
第三行指定了amoeba的安装目录。
第四行指定了java相应的工具盒功能。
同样,如果是root用户的环境变量,则使用下面的位置的变量。
vi ~/.bash_profile加入如上得到内容即可。
完成之后,执行命令 source ~/.bash_profile 或者source /etc/profile使用如下的命令查看java手否被成功安装:[root@localhost ~]# java -versionjava version "1.6.0_25"Java(TM) SE Runtime Environment (build 1.6.0_25-b06)Java HotSpot(TM) Client VM (build 20.0-b11, mixed mode, sharing)上述显示已经成功安装1.6版本。
dophinsdb 使用指南【实用版】目录1.DophinsDB 简介2.安装与配置 DophinsDB3.使用 DophinsDB 进行数据存储4.使用 DophinsDB 进行数据查询5.DophinsDB 的高级功能6.DophinsDB 的优势与不足7.总结正文DophinsDB 是一款开源的分布式数据库,其设计目标是为了满足大规模数据存储和查询的需求。
它具有高性能、可扩展性强、易于使用等特点,因此在大数据领域得到了广泛的应用。
一、DophinsDB 简介DophinsDB 是一款新型的分布式数据库,其采用了分布式计算和存储技术,可以有效地处理海量数据。
它支持多种数据类型,包括结构化数据、半结构化数据和非结构化数据,可以满足不同场景下的数据存储和查询需求。
二、安装与配置 DophinsDB安装 DophinsDB 需要先准备好环境,包括操作系统、Java 运行环境和相关依赖库。
具体的安装步骤可以参考官方文档。
配置 DophinsDB 主要包括设置数据存储、数据查询和索引等参数,可以根据实际需求进行调整。
三、使用 DophinsDB 进行数据存储DophinsDB 支持多种数据存储方式,包括 HDFS、HBase 和 Cassandra 等。
用户可以根据数据量和查询需求选择合适的存储方式。
存储数据时,可以使用 SQL 语句或者 API 接口,十分方便。
四、使用 DophinsDB 进行数据查询DophinsDB 支持 SQL 查询和 API 查询两种方式。
其中,SQL 查询可以利用 DophinsDB 自带的查询引擎进行加速,提高查询效率。
API 查询则可以利用 Java 语言进行编程,灵活性更高。
五、DophinsDB 的高级功能DophinsDB 支持多种高级功能,包括数据加密、数据压缩、实时数据处理等。
这些功能可以有效地提高数据安全性和存储效率,满足更多场景下的需求。
六、DophinsDB 的优势与不足DophinsDB 的优势在于其高性能、可扩展性强和易于使用。
一个完整的mysql读写分离环境包括以下几个部分:∙应用程序client∙database proxy∙database集群在本次实战中,应用程序client基于c3p0连接后端的database proxy。
database proxy负责管理client实际访问database的路由策略,采用开源框架amoeba。
database集群采用mysql的master-slave的replication方案。
整个环境的结构图如下所示:实战步骤与详解一.搭建mysql的master-slave环境1)分别在host1(10.20.147.110)和host2(10.20.147.111)上安装mysql(5.0.45),具体安装方法可见官方文档2)配置master首先编辑/etc/f,添加以下配置:log-bin=mysql-bin #slave会基于此log-bin来做replicationserver-id=1 #master的标示binlog-do-db = amoeba_study #用于master-slave的具体数据库然后添加专门用于replication的用户:mysql> GRANT REPLICATION SLAVE ON *.* TO repl@10.20.147.111 IDENTIFIED BY '111111';重启mysql,使得配置生效:/etc/init.d/mysqld restart最后查看master状态:3)配置slave首先编辑/etc/f,添加以下配置:server-id=2 #slave的标示配置生效后,配置与master的连接:mysql> CHANGE MASTER TO-> MASTER_HOST='10.20.147.110',-> MASTER_USER='repl',-> MASTER_PASSWORD='111111',-> MASTER_LOG_FILE='mysql-bin.000003',-> MASTER_LOG_POS=161261;其中MASTER_HOST是master机的ip,MASTER_USER和MASTER_PASSWORD就是我们刚才在master上添加的用户,MASTER_LOG_FILE和MASTER_LOG_POS对应与master status里的信息最后启动slave:mysql> start slave;4)验证master-slave搭建生效通过查看slave机的log(/var/log/mysqld.log):100703 10:51:42 [Note] Slave I/O thread: connected to master'repl@10.20.147.110:3306', replication started in log 'mysql-bin.000003' at position 161261如看到以上信息则证明搭建成功,如果有问题也可通过此log找原因二.搭建database proxy此次实战中database proxy采用amoeba,它的相关信息可以查阅官方文档,不在此详述1)安装amoeba下载amoeba(1.2.0-GA)后解压到本地(D:/openSource/amoeba-mysql-1.2.0-GA),即完成安装2)配置amoeba先配置proxy连接和与各后端mysql服务器连接信息(D:/openSource/amoeba-mysql-1.2.0-GA/conf/amoeba.xml):[xhtml]view plaincopyprint?1.<server>2. <!-- proxy server绑定的端口 -->3.<property name="port">8066</property>4.5. <!-- proxy server绑定的IP -->6. <!--7. <property name="ipAddress">127.0.0.1</property>8. -->9. <!-- proxy server net IO Read thread size -->10.<property name="readThreadPoolSize">20</property>11.12. <!-- proxy server client process thread size -->13.<property name="clientSideThreadPoolSize">30</property>14.15. <!-- mysql server data packet process thread size -->16.<property name="serverSideThreadPoolSize">30</property>17.18. <!-- socket Send and receive BufferSize(unit:K) -->19.<property name="netBufferSize">128</property>20.21. <!-- Enable/disable TCP_NODELAY (disable/enable Nagle's algorithm). -->22.<property name="tcpNoDelay">true</property>23.24. <!-- 对外验证的用户名 -->25.<property name="user">root</property>26.27. <!-- 对外验证的密码 -->28.<property name="password">root</property>29.</server>1.<dbServerList>2.<dbServer name="server1">3. <!-- PoolableObjectFactory实现类 -->4.<factoryConfig class=".MysqlServerConnectionFactory">5.<property name="manager">defaultManager</property>6.7. <!-- 真实mysql数据库端口 -->8.<property name="port">3306</property>9.10. <!-- 真实mysql数据库IP -->11.<property name="ipAddress">10.20.147.110</property>12.<property name="schema">amoeba_study</property>13.14. <!-- 用于登陆mysql的用户名 -->15.<property name="user">root</property>16.17. <!-- 用于登陆mysql的密码 -->18.<property name="password"></property>19.20.</factoryConfig>21.22. <!-- ObjectPool实现类 -->23.<poolConfig class=".poolable.PoolableObjectPool">24.<property name="maxActive">200</property>25.<property name="maxIdle">200</property>26.<property name="minIdle">10</property>27.<property name="minEvictableIdleTimeMillis">600000</property>28.<property name="timeBetweenEvictionRunsMillis">600000</property>29.<property name="testOnBorrow">true</property>30.<property name="testWhileIdle">true</property>31.</poolConfig>32.</dbServer>33.<dbServer name="server2">34.35. <!-- PoolableObjectFactory实现类 -->36.<factoryConfig class=".MysqlServerConnectionFactory">37.<property name="manager">defaultManager</property>38.39. <!-- 真实mysql数据库端口 -->40.<property name="port">3306</property>41.42. <!-- 真实mysql数据库IP -->43.<property name="ipAddress">10.20.147.111</property>44.<property name="schema">amoeba_study</property>45.46. <!-- 用于登陆mysql的用户名 -->47.<property name="user">root</property>48.49. <!-- 用于登陆mysql的密码 -->50.<property name="password"></property>51.52.</factoryConfig>53.54. <!-- ObjectPool实现类 -->55.<poolConfig class=".poolable.PoolableObjectPool">56.<property name="maxActive">200</property>57.<property name="maxIdle">200</property>58.<property name="minIdle">10</property>59.<property name="minEvictableIdleTimeMillis">600000</property>60.<property name="timeBetweenEvictionRunsMillis">600000</property>61.<property name="testOnBorrow">true</property>62.<property name="testWhileIdle">true</property>63.</poolConfig>64.</dbServer>65.</dbServerList>1.<queryRouter class="com.meidusa.amoeba.mysql.parser.MysqlQueryRouter">2.<property name="LRUMapSize">1500</property>3.<property name="defaultPool">server1</property>4.<property name="writePool">server1</property>5.<property name="readPool">server2</property>6.<property name="needParse">true</property>7.</queryRouter>在命令行里运行D:/openSource/amoeba-mysql-1.2.0-GA/amoeba.bat即可:log4j:WARN log4j config load completed fromfile:D:/openSource/amoeba-mysql-1.2.0-GA/conf/log4j.xmllog4j:WARN ip access config load completed fromfile:D:/openSource/amoeba-mysql-1.2.0-GA/conf/access_list.conf2010-07-03 09:55:33,821 INFO net.ServerableConnectionManager - Server listening on0.0.0.0/0.0.0.0:8066.三.client端调用与测试1)编写client调用程序具体程序细节就不详述了,只是一个最普通的基于mysql driver的jdbc的数据库操作程序2)配置数据库连接本client基于c3p0,具体数据源配置如下:[xhtml]view plaincopyprint?1.<bean id="dataSource"class="com.mchange.vboPooledDataSource"2.destroy-method="close">3.<property name="driverClass"value="com.mysql.jdbc.Driver"/>4.<property name="jdbcUrl"value="jdbc:mysql://localhost:8066/amoeba_study"/>5.<property name="user"value="root"/>6.<property name="password"value="root"/>7.<property name="minPoolSize"value="1"/>8.<property name="maxPoolSize"value="1"/>9.<property name="maxIdleTime"value="1800"/>10.<property name="acquireIncrement"value="1"/>11.<property name="maxStatements"value="0"/>12.<property name="initialPoolSize"value="1"/>13.<property name="idleConnectionTestPeriod"value="1800"/>14.<property name="acquireRetryAttempts"value="6"/>15.<property name="acquireRetryDelay"value="1000"/>16.<property name="breakAfterAcquireFailure"value="false"/>17.<property name="testConnectionOnCheckout"value="true"/>18.<property name="testConnectionOnCheckin"value="false"/>19.</bean>得知写操作发生在master机上通过查看slave机上的日志/var/lib/mysql/mysql_log.log:100703 11:58:42 2 Query insert into zone_by_id(id,name)values(20003,'name_20003')得知slave同步执行了这条语句然后查一条数据:select from zone_by_id t where t.id = 20003通过查看slave机上的日志/var/lib/mysql/mysql_log.log:100703 12:02:00 33 Query set names latin133 Prepare [1] select from zone_by_id t where t.id = ?33 Prepare [2] select from zone_by_id t where t.id = ?33 Execute [2] select from zone_by_id t where t.id = 20003得知读操作发生在slave机上并且通过查看slave机上的日志/var/lib/mysql/mysql_log.log发现这条语句没在master上执行通过以上验证得知简单的master-slave搭建和实战得以生效。
soybase使用方法摘要:1.Soybase简介2.Soybase安装与配置3.Soybase主要功能与使用方法4.实战案例与应用场景5.总结与建议正文:近年来,大数据技术在我国得到了广泛的应用和发展,其中Soybase作为一种开源的分布式大数据处理平台,受到了越来越多企业的关注。
本文将为您介绍Soybase的使用方法,包括安装与配置、主要功能与使用方法,以及实战案例与应用场景。
希望通过本文,能帮助您更好地理解和应用Soybase,为您的数据分析工作提供助力。
一、Soybase简介Soybase是一个基于Apache Hadoop和Apache Spark的开源大数据处理平台,提供了海量数据存储、实时数据处理、数据挖掘、机器学习等功能。
Soybase具有高性能、高可靠性、易扩展等特点,可以应对各种复杂的数据处理任务。
二、Soybase安装与配置1.安装:首先,确保您的系统满足Soybase的最低硬件要求。
然后,根据Soybase的官方文档,下载并安装相应的版本。
需要注意的是,Soybase适用于Linux、Windows和Mac OS等操作系统。
2.配置:在安装完成后,您需要对Soybase进行配置。
主要包括以下几个方面:(1)修改配置文件:根据官方文档,修改Soybase的配置文件,包括核心组件的地址、端口等信息。
(2)启动相关服务:根据配置文件,启动Soybase的相关服务,如YARN、HBase、Spark等。
(3)验证配置:启动服务后,可以通过命令行或Web界面验证Soybase 的配置是否正确。
三、Soybase主要功能与使用方法1.数据存储:Soybase支持多种数据存储方式,如HDFS、HBase、Cassandra等。
您可以根据实际需求,选择合适的数据存储方案。
2.数据处理:Soybase提供了丰富的数据处理功能,包括数据清洗、数据转换、数据聚合等。
主要通过编写MapReduce、Spark等作业来实现。
如何在Docker中安装和配置CassandraDocker已经成为现代应用开发和部署的标准工具之一。
它提供了一种轻量级的容器化技术,使开发人员能够更轻松地构建、打包和发布应用程序。
在Docker中安装和配置Cassandra数据库是一项常见的任务,本文将探讨如何在Docker中进行这一过程。
Cassandra是一种高度可扩展的分布式数据库系统,它的设计目标是实现高吞吐量的读写操作以及无单点故障的计算能力。
它被广泛用于大规模数据存储和处理场景。
首先,我们需要确保已经正确安装并配置了Docker。
根据不同操作系统,可以在Docker官方网站上找到相应的安装说明。
安装完成后,可以通过运行`docker --version`来验证是否成功安装。
接下来,我们需要下载Cassandra的Docker镜像。
打开终端或命令行界面,运行以下命令:```docker pull cassandra:latest```该命令将从Docker Hub上下载最新版本的Cassandra镜像。
根据网络状况,下载过程可能需要一些时间。
下载完成后,我们可以使用以下命令来创建Cassandra容器并启动:```docker run --name my-cassandra -d cassandra:latest```此命令将创建一个名为“my-cassandra”的容器,并在后台以守护进程方式运行Cassandra。
完成后,我们可以通过运行`docker ps`来查看正在运行的容器。
由于Cassandra是一个分布式数据库系统,我们可以使用多个Docker容器来模拟一个Cassandra集群。
为此,我们需要创建多个容器,并将它们连接到同一个网络中。
可以使用以下命令创建并连接第二个Cassandra容器:```docker run --name my-cassandra2 -d --network my-network cassandra:latest```这里,我们使用了`--network`参数来指定容器连接到的网络。
数据库管理员的基本职责数据库管理员的基本职责1职责:1、负责系统数据库(Oracle、Mysql为主)的日常运维及管理工作;2、负责数据库的安装、配置、升级与迁移;3、负责数据库的存储规划,协助系统规划设计;4、负责制定和实施数据库备份恢复策略;5、负责数据库监控,性能检查和优化工作;6、负责诊断、故障检测和解决任何数据库相关的问题,配合其他数据库相关管理和维护工作。
7、编写用于自动处理数据及数据分析的程序或脚本任职要求:1、熟悉数据库结构设计,对系统架构和数据库理论有较好的理解;2、熟悉Oracle或Mysql数据库体系结构和性能优化;3、熟悉SQL优化原理,具备较好的SQL优化能力;4、熟悉一种或者多种主流的UNIX/LINUX系统;5、具有OCP相关认证证书者优先。
数据库管理员的基本职责2职责:1、负责公司主流数据库平台部署、系统安装、配置和管理;2、配合系统实施团队提供数据库管理服务,对系统和业务数据进行统一存储、数据备份和容灾管理,制定和优化相关制度,并定期演练和进行数据有效性验证;3、负责数据库日常备份与恢复管理,负责主流数据库日常运维,包括数据库报警排查、数据库运行状况进行监控,及时对故障进行处理,并分析故障原因,记录解决文档;4、研究数据库架构、分布式存储和开展数据库优化等技术,提高系统的稳定性和健壮性。
任职要求:1、全日制统招本科及以上学历,计算机相关专业;2、具备3年及以上大型数据库管理和运维经验,能够独立承担大型数据库的运维工作;3、精通主流的数据库系统的安装、配置、升级、维护、调优等工作;4、较强的PL/SQL编程功底和脚本编写能力,具备数据库相关表结构及数据库的开发、设计、优化经验,具备数据库相关认证者为佳;5、具备优秀的职业道德素养,保密意识强;6、熟练的英语读写能力,具备较强的沟通协调能力。
数据库管理员的基本职责3职责:1. 负责数据库日常运维、性能优化和故障处理;2. 承担研发过程中的数据库相关问题的定位和解决;3. 负责拟定数据库相关的开发、测试、运维和日常管理规范,承担规范落地的检查工作;4. 完成领导交办的其它工作。
Commvault 安装实施文档网络科技有限公司技术部2013-5-24目录一、文档概述 (4)二、Commvault 容灾备份架构 (4)2.1、实施前用户现状 (4)2.2、容灾备份网络拓扑 (4)2.3、Commvault 容灾备份简述 (5)三、Commvault 已安装模块列表 (5)四、备份服务器的安装配置 (5)4.1、备份服务器安装 (5)4.2、备份服务器补丁安装 (18)五、Commvault Windows下客户端的安装 (20)5.1、Windows 文件系统客户端安装 (20)5.2、Windows 其余模块安装 (28)六、Unix 平台下客户端的安装 (29)6.1、Unix Oracle IDA 的安装 (29)6.2、Unix 升级补丁 (43)七、Commserver 的基本配置 (45)7.1、磁盘库配置 (45)7.2、磁带库配置 (53)7.3、CommServer存储策略配置 (53)7.3.1、创建存储策略 (53)7.3.2、创建存储策略辅助拷贝 (58)八、客户端备份设置 (61)8.1、Windows客户端文件系统备份 (61)8.2、虚拟机备份设置 (63)8.3、Unix客户端文件系统备份设置 (69)8.4、Unix客户端oracle数据库备份设置 (71)8.5、Simpana9作业计划设置 (78)8.5.1、文件系统备份计划设置 (78)8.5.2、Oracle备份计划设置(Database Backup) (79)8.5.3、Oracle备份计划设置(Archivelog Backup) (81)九、维护和管理 (84)9.1、定期查看作业摘要 (84)9.2、查看和修改计划 (87)版本历史一、文档概述本文档主要描述了在的容灾备份项目中,针对commvault 容灾备份的安装配置过程,另外对commvault 日常维护操作也进行了详细的介绍。
目录联系我们 (3)字体约定 (4)捐献给Amoeba基金会 (4)Chapter 1. 介绍Amoeba (6)Amoeba是什么? (6)为何要使用Amoeba? (6)分布式数据库代理的相关概念 (7)Amoeba相关产品及其介绍 (7)Amoeba for MySQL (8)Amoeba for Aladdin (9)Amoeba for MongoDB (10)比较Amoeba及其类似产品 (10)Amoeba for Mysql 与MySQL Proxy比较 (10)Amoeba for mongoDB与mongos比较 (10)Amoeba不能做什么? (11)验证Java安装 (11)下载Amoeba (11)安装Amoeba (12)在Microsoft Windows上安装Amoeba (12)在Linux上安装Amoeba (12)在Mac OSX上安装Amoeba (13)在FreeBSD或OpenBSD上安装Amoeba (13)验证Amoeba的安装 (13)Chapter 3. Amoeba入门 (13)通过Amoeba对一个数据库实例进行操作 (13)校验amoeba的运行状态 (14)验证数据库是否可以正常连接 (14)配置Amoeba (15)运行及验证 (31)通过Amoeba对数据进行简单的分片 (34)Amoeba的分区相关配置 (34)运行及验证 (36)Chapter 4. Amoeba高级使用 (39)基于Amoeba的数据水平切分 (40)基于Amoeba的数据垂直切分 (41)在Master/Slave结构下的读写分离 (43)Amoeba切分规则配置详解 (49)tableRule的配置 (49)rule元素的配置 (50)规则未命中的情况 (51)Chapter 5. Amoeba性能调优 (51)Java虚拟机内存参数设置 (51)多线程相关配置 (52)网络相关配置 (54)Chapter 6. Benchmark使用教程 (56)Amoeba Benchmark工具介绍 (56)Amoeba for MySQL Benchmark使用方法 (57)Amoeba for MySQL Benchmark使用示例 (58)Amoeba for MySQL Benchmark高级使用 (59)本书为amoeba使用者提供使用指南,首先感谢一下本书的最大撰写者 Daisy Li,她负责了本书的整体目录以及详细章节的编写,还有感谢本书的样式设计者Sunng Ning。
Amoeba小组说明文档本组成员:刘灿彬(组长),易莘秦,莫家峻1,Amoeba概述Amoeba是一个以MySQL为底层数据存储,并对应用提供MySQL协议接口的proxy。
它集中地响应应用的请求,依据用户事先设置的规则,将SQL请求发送到特定的数据库上执行。
基于此可以实现负载均衡、读写分离、高可用性等需求。
与MySQL官方的MySQL Proxy相比,作者强调的是amoeba配置的方便(基于XML的配置文件,用SQLJEP语法书写规则,比基于lua脚本的MySQL Proxy简单)。
Amoeba相当于一个SQL请求的路由器,目的是为负载均衡、读写分离、高可用性提供机制,而不是完全实现它们。
用户需要结合使用MySQL的Replication 等机制来实现副本同步等功能。
amoeba对底层数据库连接管理和路由实现也采用了可插拨的机制,第三方可以开发更高级的策略类来替代作者的实现。
这个程序总体上比较符合KISS的思想。
Amoeba(变形虫)项目,该开源框架于2008年开始发布一款Amoeba for Mysql软件。
这个软件致力于MySQL的分布式数据库前端代理层,它主要在应用层访问MySQL的时候充当SQL路由功能,专注于分布式数据库代理层(Database Proxy)开发。
座落与Client、DB Server(s)之间,对客户端透明。
具有负载均衡、高可用性、SQL 过滤、读写分离、可路由相关的到目标数据库、可并发请求多台数据库合并结果。
通过Amoeba你能够完成多数据源的高可用、负载均衡、数据切片的功能,目前Amoeba已在很多企业的生产线上面使用。
随着传统的数据库技术日趋成熟、计算机网络技术的飞速发展和应用范围的扩充,数据库应用已经普遍建立于计算机网络之上。
这时集中式数据库系统表现出它的不足:集中式处理,势必造成性能瓶颈;应用程序集中在一台计算机上运行,一旦该计算机发生故障,则整个系统受到影响,可靠性不高;集中式处理引起系统的规模和配置都不够灵活,系统的可扩充性差。
在这种形势下,集中式数据库将向分布式数据库发展。
而Amoeba的透明、简易配置及多个优点使其成为分布式数据库代理产品中的优秀选择。
优势Amoeba主要解决以下问题:a). 数据切分后复杂数据源整合b). 提供数据切分规则并降低数据切分规则给数据库带来的影响c). 降低数据库与客户端连接d). 读写分离路由f).支持分库,分表,事务不足a)、目前还不支持事务b)、暂时不支持存储过程(近期会支持)c)、不适合从amoeba导数据的场景或者对大数据量查询的query并不合适(比如一次请求返回10w以上甚至更多数据的场合)d)、暂时不支持分库分表,amoeba目前只做到分数据库实例,每个被切分的节点需要保持库表结构一致:Amoeba:阿米巴原虫2,MySQLMySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。
MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL的SQL语言是用于访问数据库的最常用标准化语言。
MySQL 软件采用了双授权政策(本词条“授权政策”),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。
由于其社区版的性能卓越,搭配PHP 和Apache可组成良好的开发环境。
MySQL简介MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司。
目前MySQL被广泛地应用在Internet上的中小型网站中。
由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
背景MySQL最初的开发者的意图是用mSQL和他们自己的快速低级例程(ISAM)去连接表格。
经过一些测试后,开发者得出结论:mSQL并没有他们需要的那么快和灵活。
这导致了一个使用几乎和mSQL一样的API接口的用于他们的数据库的新的SQL接口的产生,这样,这个API被设计成允许为用于mSQL而写的第三方代码更容易移植到MySQL。
MySQL这个名字是怎么来的已经不清楚了。
基本指南和大量的库和工具带有前缀“my”已经有10年以上,而且不管怎样,MySQL AB创始人之一的女儿也叫My。
这两个到底是哪一个给出了MySQL这个名字至今依然是个迷,包括开发者在内也不知道。
MySQL的海豚标志的名字叫“sakila”,它是由MySQL AB的创始人从用户在“海豚命名”的竞赛中建议的大量的名字表中选出的。
获胜的名字是由来自非洲斯威士兰的开源软件开发者Ambrose Twebaze提供。
根据Ambrose所说,Sakila 来自一种叫SiSwati的斯威士兰方言,也是在Ambrose的家乡乌干达附近的坦桑尼亚的Arusha的一个小镇的名字。
2008年1月16号MySQL AB被Sun公司收购。
而2009年,SUN又被Oracle收购。
就这样如同一个轮回,MySQL成为了Oracle公司的另一个数据库项目。
应用环境与其他的大型数据库例如Oracle、DB2、SQL Server等相比,MySQL自有它的不足之处,如规模小、功能有限(MySQL Cluster的功能和效率都相对比较差)等,但是这丝毫也没有减少它受欢迎的程度。
对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本。
目前Internet上流行的网站构架方式是LAMP(Linux+Apache+MySQL+PHP/Perl/Python)和LNMP (Linux+Nginx+MySQL+php/perl/Python),即使用Linux作为操作系统,Apache 和Nginx作为Web服务器,MySQL作为数据库,PHP/Perl/Python作为服务器端脚本解释器。
由于这四个软件都是免费或开放源码软件(FLOSS),因此使用这种方式不用花一分钱(除开人工成本)就可以建立起一个稳定、免费的网站系统。
系统特性1.使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性2.支持AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统3.为多种编程语言提供了API。
这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。
4.支持多线程,充分利用CPU资源5.优化的SQL查询算法,有效地提高查询速度6.既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中。
7.提供多语言支持,常见的编码如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名。
8.提供TCP/IP、ODBC和JDBC等多种数据库连接途径。
9.提供用于管理、检查、优化数据库操作的管理工具。
10.支持大型的数据库。
可以处理拥有上千万条记录的大型数据库。
11.支持多种存储引擎。
3.CentosCentOS(Community ENTerprise Operating System)是Linux发行版之一,它是来自于Red Hat Enterprise Linux依照开放源代码规定释出的源代码所编译而成。
由于出自同样的源代码,因此有些要求高度稳定性的服务器以CentOS替代商业版的Red Hat Enterprise Linux使用。
两者的不同,在于CentOS并不包含封闭源代码软件。
简介CentOS 6.4放出下载[1]。
上个版本是2012-07-09的6.3.Redhat Enterprise Linux RHEL 6.4是2013-02-21发布的。
速度已经很快。
上游RHEL 6.4主要改进:支持Parallel NFS (pNFS),增强了Vmware和Hyper-V的虚拟机支持及性能,安全增强了身份管理,支持cgroups(及PMU),更多的新工具等。
CentOS 是一个基于Red Hat Linux 提供的可自由使用源代码的企业级Linux 发行版本。
每个版本的CentOS都会获得十年的支持(通过安全更新方式)。
新版本的CentOS 大约每两年发行一次,而每个版本的CentOS 会定期(大概每六个月)更新一次,以便支持新的硬件。
这样,建立一个安全、低维护、稳定、高预测性、高重复性的Linux 环境。
[2]CentOS是Community Enterprise Operating System的缩写。
CentOS 是RHEL(Red Hat Enterprise Linux)源代码再编译的产物,而且在RHEL的基础上修正了不少已知的Bug ,相对于其他Linux 发行版,其稳定性值得信赖。
RHEL 在发行的时候,有两种方式。
一种是二进制的发行方式,另外一种是源代码的发行方式。
无论是哪一种发行方式,你都可以免费获得(例如从网上下载),并再次发布。
但如果你使用了他们的在线升级(包括补丁)或咨询服务,就必须要付费。
[3]CentOS中文论坛聚集了许许多多CentOS系统工作和学习者,是国内一个专门讨论CentOS技术的论坛。
特点1.可以把CentOS理解为Red Hat AS系列!它完全就是对Red Hat AS进行改进后发布的!各种操作、使用和RED HAT没有区别!2.CentOS完全免费,不存在RED HAT AS4需要序列号的问题。
3.CentOS独有的yum命令支持在线升级,可以即时更新系统,不像RED HAT 那样需要花钱购买支持服务!4.CentOS修正了许多RED HAT AS的BUG!5.CentOS版本说明:CentOS3.1 等同于RED HAT AS3 Update1 CentOS3.4 等同于RED HAT AS3 Update44.CentOS4.0 等同于RED HAT AS4与RHEL的关系RHEL 在发行的时候,有两种方式。
一种是二进制的发行方式,另外一种是源代码的发行方式。
无论是哪一种发行方式,你都可以免费获得(例如从网上下载),并再次发布。
但如果你使用了他们的在线升级(包括补丁)或咨询服务,就必须要付费。
RHEL 一直都提供源代码的发行方式,CentOS 就是将RHEL 发行的源代码重新编译一次,形成一个可使用的二进制版本。
由于LINUX 的源代码是GNU,所以从获得RHEL 的源代码到编译成新的二进制,都是合法。