首页 > 其他分享 >DBMotion技术预演

DBMotion技术预演

时间:2024-01-15 11:13:31浏览次数:24  
标签:monitor phoenix DBMotion 技术 server -- conf dts 预演

## 功能
1. 先同步表、视图、存储过程、函数、触发器、事件等对象
2. 同步表数据
3. 增量同步
![image](/i/l/?n=24&i=blog/986761/202401/986761-20240115105758282-1072703037.png)

## 优点
1. 与阿里DTS差不多,不单支持表数据,还同时同步视图、存储过程、函数、触发器、事件
2. 支持一次性同步整个库,也支持指定对象,如指定表、指定函数、指定视图
3. 支持实时同步
4. 操作简单
5. 支持并发


## 缺点
1. 不支持目标表批量改名添加前缀
2. 不开源工具,无法进行二次开发,定制功能。
3. 看启动的pod较多,需要资源较多,
![image](/i/l/?n=24&i=blog/986761/202401/986761-20240115110213063-1451177745.png)


## 注意点
1. 有在线版本和docker-compose本地化部署两个版本,本线版本未做测试,不知是否收费。
2. 本地版本免费,功能不限制,但有带宽限制,32M的总带宽,按任务分配,最小1M,最大不限,所以最多只支持创建32个任务,不适用于高性能的生产环境。
3. 任务停止后,带宽会释放出来,可以启动其它任务。


#### 官网
https://squids.cn/

#### docker-compose.yaml下载
https://www.woqutech.com/dts/docker-compose.yaml
version: '3.8'

services:

  dts-mysql:
    image: swr.cn-east-2.myhuaweicloud.com/squids/mysql:latest
    container_name: dts-mysql
    environment:
      MYSQL_ROOT_PASSWORD: dbmotion 
      MYSQL_DATABASE: phoenix
    command: [ 'mysqld', '--character-set-server=utf8mb4', '--collation-server=utf8mb4_unicode_ci', --default-time-zone=UTC ]
    volumes:
      - mysql-conf:/etc/mysql/conf.d
    depends_on:
      - monitor-conf
    healthcheck:
      test: [ "CMD", "mysqladmin" ,"ping", "-h", "localhost" ]
      timeout: 30s
      retries: 10
    networks:
      dts-network:

  dts-proxy-files:
    image: swr.cn-east-2.myhuaweicloud.com/squids/dbmotion-proxy-linux:latest
    container_name: dts-proxy-files
    command: [ sh, -c, 'cp * /client_files/' ]
    volumes:
      - /var/dbmotion/client_files:/client_files
    privileged: true
    networks:
      dts-network:

  dts-proxy-server:
    image: swr.cn-east-2.myhuaweicloud.com/squids/dbmotion-proxy-server:latest
    container_name: dts-proxy-server
    command: [ -L, 'forward+ssh://:3002' ]
    ports:
      - "31002:3002"
    networks:
      dts-network:

  dts-api-server:
    image: swr.cn-east-2.myhuaweicloud.com/squids/dbmotion:2308.01
    container_name: dts-api-server
    environment:
      - SERVER_MODE=DOCKER
      - MYSQL_URI=root:dbmotion@(dts-mysql)/dbmotion
      - PHOENIX_ENDPOINT=http://phoenix:9091/phoenix/api/v2/
    depends_on:
      monitor-conf:
        condition: service_started
      dts-mysql:
        condition: service_healthy
      dts-proxy-files:
        condition: service_started
      dts-proxy-server:
        condition: service_started
    volumes:
      - /var/dbmotion:/dbmotion/log
      - /var/dbmotion/client_files:/client_files
    ports:
      - "31000:3000"
      # export grpc server
      - "31001:3001"
    privileged: true
    networks:
      dts-network:

  dts-ui:
    image: swr.cn-east-2.myhuaweicloud.com/squids/dbmotion-ui:2308.01
    container_name: dts-ui
    ports:
      - "30000:80"
    depends_on:
      - monitor-conf
      - dts-mysql
      - dts-api-server
    networks:
      dts-network:

  phoenix:
    image: swr.cn-east-2.myhuaweicloud.com/squids/phoenix:v1.4.1-dbmotion
    container_name: phoenix
    entrypoint:
      - /phoenix
      - --database-address=dts-mysql
      - --database-port=3306
      - --database-username=root
      - --database-password=dbmotion
      - --database-database=phoenix
      - --data-dir=/etc/phoenix/monitor
      - --rule-config=/rules.yml
      - --prom-url=http://prometheus:9090
      - --alert-url=http://alertmanager:9093
      - --tmpl-dir=/etc/alert/tmpl
      - --alerting-target-type-file-path=/etc/phoenix/conf/target_type.yml
      - --alerting-type-file-path=/etc/phoenix/conf/alerting_type.yml
      - --alerting-model-file-paths=/etc/phoenix/conf/dbmotion_model.yml
      - --default-templates-file-path=/etc/phoenix/conf/templates.yml
      - --notify-base-url=http://phoenix:9091
      - --http-receivers-discovery-endpoint=http://dts-api-server:3000/api/v2/alert/phoenix/receivers
      - --http-targets-discovery-endpoints=http://dts-api-server:3000/api/v2/alert/phoenix/targets
      - --alert-hook=http://dts-api-server:3000/api/v2/alert/notice
      - --http-discovery-interval=60
      - --enable-multi-tenant=false
      - --tailor-port=15100
    ports:
      - "9091:9091"
    volumes:
      - phoenix-volume:/etc/phoenix/conf
      - monitor-volume:/etc/phoenix/monitor
    depends_on:
      monitor-conf:
        condition: service_started
      dts-mysql:
        condition: service_healthy
      dts-api-server:
        condition: service_started
    privileged: true
    networks:
      dts-network:

  prometheus:
    image: swr.cn-east-2.myhuaweicloud.com/squids/prometheus:v2.30.4
    container_name: prometheus
    ports:
      - "9090:9090"
    command: [ "--config.file=/etc/prometheus/prometheus.yml",
               "--web.enable-lifecycle",
               "--storage.tsdb.retention=180d",
               "--storage.tsdb.path=/prometheus/data",
               "--storage.tsdb.retention.time=10d",
               "--web.route-prefix=/",
               "--storage.tsdb.no-lockfile",
               "--storage.tsdb.min-block-duration=2h",
               "--storage.tsdb.max-block-duration=2h",
               "--log.level=debug" ]
    volumes:
      - monitor-volume:/etc/prometheus
    depends_on:
      - monitor-conf
      - dts-api-server
    networks:
      dts-network:

  alertmanager:
    image: swr.cn-east-2.myhuaweicloud.com/squids/alertmanager:v0.23.0
    container_name: alertmanager
    ports:
      - "9093:9093"
    command: [ "--storage.path=/alertmanager/data",
               "--config.file=/etc/alertmanager/alertmanager.yml" ]
    volumes:
      - monitor-volume:/etc/alertmanager
      - tmpl-volume:/etc/alert/tmpl
    depends_on:
      - monitor-conf
      - dts-api-server
    networks:
      dts-network:

  grafana:
    image: swr.cn-east-2.myhuaweicloud.com/squids/grafana:9.2.8
    container_name: grafana
    ports:
      - "3000:3000"
    environment:
      GF_SECURITY_ADMIN_PASSWORD: admin
      GF_AUTH_ANONYMOUS_ENABLED: true
      GF_SECURITY_ALLOW_EMBEDDING: true
    volumes:
      - datasource-conf:/etc/grafana/provisioning/datasources
      - dashboards-conf:/etc/grafana/provisioning/dashboards
      - dashboards-volumes:/var/lib/grafana/dashboards
    depends_on:
      - monitor-conf
      - prometheus
    networks:
      dts-network:

  monitor-conf:
    image: swr.cn-east-2.myhuaweicloud.com/squids/dbmotion-monitor-conf:latest
    container_name: monitor-conf
    volumes:
      - phoenix-volume:/phoenix-conf
      - monitor-volume:/monitor-conf
      - tmpl-volume:/alert-tmpl
      - mysql-conf:/mysql
      - datasource-conf:/grafana/config/datasources
      - dashboards-conf:/grafana/config/dashboards
      - dashboards-volumes:/grafana/dashboards
    networks:
      dts-network:

volumes:
  phoenix-volume:
  monitor-volume:
  tmpl-volume:
  mysql-conf:
  datasource-conf:
  dashboards-conf:
  dashboards-volumes:

networks:
  dts-network:
    ipam:
      config:
      - subnet: 172.22.22.0/24
        gateway: 172.22.22.1

标签:monitor,phoenix,DBMotion,技术,server,--,conf,dts,预演
From: https://www.cnblogs.com/chenzechao/p/17964972

相关文章

  • 如何利用隐私计算技术消除贫困?
    PrimiHub一款由密码学专家团队打造的开源隐私计算平台,专注于分享数据安全、密码学、联邦学习、同态加密等隐私计算领域的技术和内容。贫困是全世界都在面对的一个终极问题,每个国家都有自己的政策,也有自己的创新和尝试,本文将通过荷兰的尝试,来看看隐私计算技术在其中如何发挥作用......
  • ElasticSearch降本增效常见的方法 | 京东云技术团队
    Elasticsearch在db_ranking的排名不断上升,其在存储领域已经蔚然成风且占有非常重要的地位。随着Elasticsearch越来越受欢迎,企业花费在ES建设上的成本自然也不少。那如何减少ES的成本呢?今天我们就特地来聊聊ES降本增效的常见方法:弹性伸缩分级存储其他:(1)数据压缩(2)off......
  • ElasticSearch降本增效常见的方法 | 京东云技术团队
    Elasticsearch在db_ranking的排名不断上升,其在存储领域已经蔚然成风且占有非常重要的地位。随着Elasticsearch越来越受欢迎,企业花费在ES建设上的成本自然也不少。那如何减少ES的成本呢?今天我们就特地来聊聊ES降本增效的常见方法:弹性伸缩分级存储其他:(1)数据压缩(2)offheap1弹性伸缩......
  • 视野修炼-技术周刊第69期
    欢迎来到第69期的【视野修炼-技术周刊】,下面是本期的精选内容简介......
  • C#/.NET学习值得推荐的在线论坛和技术社区
    思维导航前言DotNetGuide简介.NET官网.NET开发者社区.NETBlog官方博客.NET中文官方博客VisualStudioBlogStackOverflowCSDN.NET社区论坛博客园.NET技术专区51CTO技术社区.NET专栏.NET在线源码查询.NETAPI在线目录查询DotNetGuide技术社区交流群前言本......
  • C#/.NET学习值得推荐的在线论坛和技术社区
    前言本文来源于知乎的一个提问,C#/.NET程序员学习有哪些值得推荐的在线论坛和技术社区?其实很早之前DotNetGuide就已经新增了C#/.NET/.NETCore充电站栏目,当然大家有更好的.NET相关学习站点和资源欢迎PR投稿......
  • 网工人在职场中光有技术就够了?
    IT人在职场中,专业技能当然是基本功,而且也是不可或缺的基石,但如果你认为只要有专家级别的技术就够了,那你的事业发展将会有所局限,如何能为仕途何锦上添花,我将从三个方面给大家分享你需要什么样的”综合能力”。01技术相关在IT网络领域,思科确实有着举足轻重的地位,。但......
  • 每日总结2024/1/13(白盒技术)
    第一节:什么是白盒测试?白盒测试是软件测试技术,白盒测试也称结构测试或逻辑驱动测试,是针对被测单元内部是如何进行工作的测试。它根据程序的控制结构设计测试用例,主要用于软件程序验证。白盒测试中也称为透明盒测试、基于代码的测试和玻璃盒测试。它是BoxTesting软件测试方法之一......
  • 网络攻击技术开篇——SQL Injection
    网络攻击技术开篇——SQLInjection 1.1.1摘要     日前,国内最大的程序员社区CSDN网站的用户数据库被黑客公开发布,600万用户的登录名及密码被公开泄露,随后又有多家网站的用户密码被流传于网络,连日来引发众多网民对自己账号、密码等互联网信息被盗取的普遍担忧。  ......
  • 网络攻击技术(二)——Cross-site scripting
    网络攻击技术(二)——Cross-sitescripting 1.1.1摘要     在本系列的第一篇博文中,我向大家介绍了SQLInjection常用的攻击和防范的技术。这个漏洞可以导致一些非常严重的后果,但幸运的是我们可以通过限制用户数据库的权限、使用参数化的SQL语句或使用ORM等技术来防范......