数据库RadonDB深入学习系列-安装

    作者:佚名2020-03-28 15:55:18

    RadonDB深入学习系列-安装。之前深入学习了一波xenon(MySQL高可用组件),近期打算深入学习一波Radon(MySQL中间件),将每日所学整理成一个系列文章,今天先来个简单的入门。

    数据库RadonDB深入学习系列-安装_数据库_MySQL_Oracle_课课家

     RadonDB深入学习

    之前深入学习了一波xenon(MySQL高可用组件),近期打算深入学习一波Radon(MySQL中间件),将每日所学整理成一个系列文章,今天先来个简单的入门。

    RadonDB是一个开源、云原生的数据库,支持无限伸缩和性能扩展,支持分布式事务,优秀特性如下:

    •  自动Sharding
    •  支持审计
    •  支持并行:支持并行查询,并行DML,并行DDL
    •  并行CHECKSUM TABLE: 结果同MySQL
    •  分布式事务: Snapshot Isolation隔离级别
    •  分布式关联查询: Sort-Merge Join, Nested-Loop Join
    •  分布式全文索引
    •  多租户
    •  支持Prepared SQL
    •  JSON

    git地址:httPS://github.com/radondb/radon

    一、安装

    下载

    1. git clone https://github.com/radondb/radon 

    编译安装

    首先前提是要有go环境,怎么安装的话自行google一下 

    1. cd radon  
    2.    make build 

    编译完成以后,会在bin文件夹下生成可执行文件radon

    二、配置文件

    1. {  
    2.   "proxy": {  
    3.   //元数据保存位置  
    4.   "meta-dir": "meta/radon-meta",  
    5.   //对外提供服务端口  
    6.   "endpoint": ":13308",  
    7.   //分布式事务二阶段提交  
    8.   "twopc-enable": false,  
    9.   //最大连接数  
    10.   "max-connections": 1024,  
    11.   //限制最大结果集大小  
    12.   "max-result-size": 1073741824,  
    13.   //最大关联行数  
    14.   "max-join-rows": 32768,  
    15.   //ddl超时时间  
    16.   "ddl-timeout": 36000000,  
    17.   //查询超时时间  
    18.   "query-timeout": 300000,  
    19.   //api及多个成员通信端口  
    20.   "peer-address": ":8080",  
    21.   //慢查询时间  
    22.   "long-query-time": 5,  
    23.   //流式处理内存大小  
    24.   "stream-buffer-size": 33554432,  
    25.   //超时连接处理  
    26.   "kill-idle-transaction": 60,  
    27.   "autocommit-false-is-txn": false  
    28.   },  
    29.   //审计相关  
    30.   "audit": {  
    31.   "mode": "N",  
    32.   "audit-dir": "meta/radon-audit",  
    33.   "max-size": 268435456,  
    34.   "expire-hours": 1  
    35.   },  
    36.   //这里定义了全局的分库分别的大小  
    37.   "router": {  
    38.   "slots-readonly": 4096,  
    39.   "blocks-readonly": 32  
    40.   },  
    41.   //日志等级  
    42.   "log": {  
    43.   "level": "INFO"  
    44.   },  
    45.   "monitor": {  
    46.   "monitor-address": "0.0.0.0:13380"  
    47.   },  
    48.   //XA事务相关  
    49.   "scatter": {  
    50.   "xa-check-interval": 10,  
    51.   "xa-check-dir": "./xacheck",  
    52.   "XaCheckRetrys": 10  
    53.   }  
    54.   } 

    三、启动Radon 

    1. ./radon -c radon.json > radon.log 2>&1 & 

    启动以后会报错如下:

    1. 2020/03/02 15:00:28.210378 privilege.go:96: [ERROR] plugin.privilege.update.privilege.error:backends.is.NULL 

    这个没有关系,因为我们现在还有添加后端数据节点,Radon检测到没有数据节点就会报错

    四、添加数据节点 

    1. curl -i -H 'Content-Type: application/json' -X POST -d '{"name": "backend1", "address": "127.0.0.1:3306", "user": "xucl", "password": "xuclxucl123", "max-connections":1024}' http://127.0.0.1:8080/v1/radon/backend 

    添加完成以后,输出如下

    1. HTTP/1.1 200 OK  
    2.   Date: Mon, 02 Mar 2020 07:02:32 GMT  
    3.   Content-Length: 0 

    表示添加成功

    五、登陆radon 

    1. mysql -h127.0.0.1 -uxucl -pxuclxucl123 -P13308 

    查看数据库

    1. xucl@mysqldb 15:03: [(none)]> show databases;  
    2.   +--------------------+  
    3.   | Database |  
    4.   +--------------------+  
    5.   | information_schema |  
    6.   | mysql |  
    7.   | performance_schema |  
    8.   | sys |  
    9.   +--------------------+  
    10.   4 rows in set (0.00 sec) 

    创建数据

    1. xucl@mysqldb 15:07: [(none)]> create database zst;  
    2.   Query OK, 1 row affected (0.01 sec) 

    六、目录结构

    在我们之前配置文件中定义的meta-dir位置,在这个位置中,保存了radon相关的一些元数据文件

    1. [root@izbp13wpxafsmeraypddyvz radon-meta]# cat backend.json|jq .  
    2.   {  
    3.   "backends": [  
    4.   {  
    5.   "name": "backend1",  
    6.   "address": "127.0.0.1:3306",  
    7.   "user": "xucl",  
    8.   "password": "xuclxucl123",  
    9.   "database": "",  
    10.   "charset": "utf8",  
    11.   "max-connections": 1024,  
    12.   "role": 0  
    13.   }  
    14.   ] 
    15.   } 

    backend.json保存的是后端节点的信息

    1. cat version.json |jq .  
    2. "version": 1583132882620481800  

    version.json保存的是版本信息

    此外,在meta文件夹下还会存放跟数据库表相关的元数据 

    1. [root@izbp13wpxafsmeraypddyvz radon-meta]# ls    
    2.    backend.json version.json zst 

    刚刚我们创建的zst的库就以文件夹的形式存放,后续在zst下建的表也会存放在zst这个文件夹下。

    严格来说,数据库是长期储存在计算机内、有组织的、可共享的数据集合。数据库中的数据指的是以一定的数据模型组织、描述和储存在一起、具有尽可能小的冗余度、较高的数据独立性和易扩展性的特点并可在一定范围内为多个用户共享。

课课家教育

未登录