官方文档:http://docs.hexnova.com/amoeba/
Amoeba软件致力于MySQL的分布式数据库前端代理层,它主要在应用层访问MySQL的 时候充当SQL路由功能,专注于分布式数据库代理层(Database Proxy)开发。座落与 Client、DB Server(s)之间,对客户端透明。具有负载均衡、高可用性、SQL 过滤、读写分离、可路由相关的到目标数据库、可并发请求多台数据库合并结果。 通过Amoeba你能够完成多数据源的高可用、负载均衡、数据切片的功能,目前Amoeba已在很多 企业的生产线上面使用。
架构图:
点击在新窗口中浏览此图片

Amoeba for Mysql 与MySQL Proxy比较
在MySQL proxy 6.0版本 上面如果想要读写分离并且 读集群、写集群 机器比较多情况下,用mysql proxy 需要相当大的工作量,目前mysql proxy没有现成的 lua脚本。mysql proxy根本没有配置文件, lua脚本就是它的全部,当然lua是相当方便的。那么同样这种东西需要编写大量的脚本才能完成一 个复杂的配置。而Amoeba for Mysql只需要进行相关的配置就可以满足需求。

Amoeba不能做什么?
目前还不支持事务
暂时不支持存储过程(近期会支持)
不适合从amoeba导数据的场景或者对大数据量查询的query并不合适(比如一次请求返回10w以上甚至更多数据的场合)
暂时不支持分库分表,amoeba目前只做到分数据库实例,每个被切分的节点需要保持库表结构一致


mysql 数据库 切表脚本 不指定

kangyang , 2014/09/23 16:46 , MYSQL , 评论(0) , 阅读(7281) , Via 本站原创

mysql切表原理:
1、创建临时表
2、修改源table名称为tablename_$date
3、修改临时表名称为源table名称

#!/bin/sh
host=$1
port=$2
host=${host:="localhost"}  #host没赋值,那么就赋值为localhost
port=${port:="3306"}
#schema是数据库名字
schema=$3
echo $host, $port, $schema

#sleep 15
echo "=====bre2.0 archive tables ...."
date "+%F %T"

dater=`date -d "-1 day" "+%Y%m%d"`
exe_sql="create table Mapping_event_tmp like Mapping_event; rename table Mapping_event to Mapping_event_$dater, Mapping_event_tmp to Mapping_event;"

#如果只传了schema进来, 则只修改该schema下的所有表
if [ "$schema" ]
then
echo "===="$schema
echo $exe_sql
echo $exe_sql | mysql -h $host -P $port -uusername -ppassword $schema
#如果schema没传则修改该服务器下面的所有表
else
mysql -h $host -P $port -uusername -ppassword -e "show databases like 'DMP_GDMP%';" -N | while read schema
do
echo "===="$schema
echo $exe_sql
echo $exe_sql | mysql -h $host -P $port -uusername -ppassword $schema
done
fi
date "+%F %T"

转载:http://blog.csdn.net/crazyhacking/article/details/12649797


redis监控利器redis-live 不指定

kangyang , 2014/09/23 15:44 , WEB技术 , 评论(0) , 阅读(8124) , Via 本站原创

安装redis-live:
因为redis-live是基于python开发的,所以首先要部署所需要的python环境
1、安装epel源
wget http://download.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
rpm -ivh epel-release-5-4.noarch.rpm

2、安装python依赖环境
yum install python-pip
pip-python install tornado
pip-python install argparse
pip-python install python-dateutil
或者
yum install tornado
yum install python-dateutil
yum install argparse


3、获取redis-live版本
git clone https://github.com/kumarnitin/RedisLive.git
cd RedisLive/src
vi redis-live.conf
{  
        "RedisServers":  
        [  
                {  
                  "server" : "127.0.0.1",  
                  "port"  : 6379
                }
        ],  
          
        "DataStoreType" : "redis",  

        "RedisStatsServer":  
        {  
                "server" : "127.0.0.1",  
                "port" : 6379  
        }  
}

RedisServers :redis服务器的配置。
DataStoreType :选择是存储到redis还是sqlite里面
RedisStatsServer:是redis服务器的监控信息可以存放在其他的redis服务器中.也就是RedisStatsServe.

配置好之后,就可以启动服务了。
chmod 777 www   修改web页面权限
./redis-monitor.py –duration 120 &
./redis-live.py &

注:启动服务之后,如果访问web页面的话,会在当前终端输出日志,如果不想在终端输出,可以查看redis-live.py的参数
访问:http://ip:8888/index.html
监控效果图
点击在新窗口中浏览此图片

安装报错信息:
1、not found redis module
解决办法
下载:https://codeload.github.com/andymccurdy/redis-py/zip/master
unzip redis-py-master.zip
cd redis-py-master
python setup.py install


2、pip-python安装tornado和python-dateutil失败解决办法
https://cloud.github.com/downloads/tornadoweb/tornado/tornado-1.2.1.tar.gz
tar zxvf tornado-1.2.1.tar.gz
cd tornado-1.2.1
python setup.py build
python setup.py install

wget http://labix.org/download/python-dateutil/python-dateutil-1.5.tar.gz
tar zxvf python-dateutil-1.5.tar.gz
cd python-dateutil-1.5
python setup.py install




Tags: ,
分页: 1/1 第一页 1 最后页 [ 显示模式: 摘要 | 列表 ]