测试使用开源异构迁移工具dbswitch

news2024/11/25 4:20:16

dbswitch: 异构数据库迁移同步(搬家)工具

(base) root@node13:~# cat /etc/issue
Ubuntu 20.04.5 LTS \n \l

(base) root@node13:~# curl -k -sSL https://gitee.com/dromara/dbswitch/attach_files/1878800/download > /tmp/dbswitch_install.sh && bash /tmp/dbswitch_install.sh
Docker version 24.0.7, build afdd53b
docker-compose version 1.25.0, build unknown
Error response from daemon: No such container: dbswitch_webui
1.9.8: Pulling from inrgihc/dbswitch
e7c96db7181b: Pull complete 
f910a506b6cb: Pull complete 
b6abafe80f63: Pull complete 
7236bacef262: Pull complete 
bd5cabd0b908: Pull complete 
e5a4a63c5a3d: Pull complete 
Digest: sha256:b03c6132dd670666b9835310759c9c911b5f294a2e36fc97bea5bd6519eecde1
Status: Downloaded newer image for registry.cn-hangzhou.aliyuncs.com/inrgihc/dbswitch:1.9.8
registry.cn-hangzhou.aliyuncs.com/inrgihc/dbswitch:1.9.8
Creating network "dbswtich_default" with the default driver
Pulling mysqldb (mysql:5.7)...
5.7: Pulling from library/mysql
20e4dcae4c69: Pull complete
1c56c3d4ce74: Pull complete
e9f03a1c24ce: Pull complete
68c3898c2015: Pull complete
6b95a940e7b6: Pull complete
90986bb8de6e: Pull complete
ae71319cb779: Pull complete
ffc89e9dfd88: Pull complete
43d05e938198: Pull complete
064b2d298fba: Pull complete
df9a4d85569b: Pull complete
Digest: sha256:4bc6bc963e6d8443453676cae56536f4b8156d78bae03c0145cbe47c2aad73bb
Status: Downloaded newer image for mysql:5.7
Creating dbswitch_mysqldb ... done
Creating dbswitch_webui   ... done

*********************************************************************************************************************************************************************************************
   !!! 恭 喜 您 DBSWITCH 已 经 安 装 ( 或 升 级 ) 【成 功】 !!!


 DBSWITCH访问信息如下:

    地址:htttp://127.0.0.1:9088 
    账号:admin 
    密码:123456  

*********************************************************************************************************************************************************************************************
(base) root@node13:~# netstat -tunlp|grep 9088
tcp        0      0 0.0.0.0:9088            0.0.0.0:*               LISTEN      846951/docker-proxy 
tcp6       0      0 :::9088                 :::*                    LISTEN      846958/docker-proxy 
(base) root@node13:~# 

http://192.168.207.13:9088

admin/123456 

测试从mysql到oracle,可以导入成功,不过表名多了双引号:

同样oracle到postgresql表名也多了双引号:

 

不能删除数据源,否则由于外键依赖的问题,导致列表报错:

删掉一个数据源后任务列表报错 · Issue #IANBO8 · dromara/dbswitch - Gitee.com

临时处理办法:

进入容器:

(base) root@node13:~# docker exec -it 490cc6414c54 /bin/bash

bash-4.2# mysql -utangyibo -n dbswitch -p123456
bash-4.2# exit
exit

删除相关任务重来,或者恢复之前删除的信息:

启停容器操作:

(base) root@node13:~# docker ps
CONTAINER ID   IMAGE                                                      COMMAND                  CREATED          STATUS          PORTS                                       NAMES
45bb0453fadd   registry.cn-hangzhou.aliyuncs.com/inrgihc/dbswitch:1.9.8   "/dbswitch-release/b…"   39 minutes ago   Up 39 minutes   0.0.0.0:9088->9088/tcp, :::9088->9088/tcp   dbswitch_webui
490cc6414c54   mysql:5.7                                                  "docker-entrypoint.s…"   39 minutes ago   Up 39 minutes   3306/tcp, 33060/tcp                         dbswitch_mysqldb
(base) root@node13:~# docker stop 45bb0453fadd
45bb0453fadd
(base) root@node13:~# docker stop 490c
490c
(base) root@node13:~# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
(base) root@node13:~# docker start 490cc6414c54
490cc6414c54
(base) root@node13:~# docker start 45bb0453fadd
45bb0453fadd
(base) root@node13:~# docker ps
CONTAINER ID   IMAGE                                                      COMMAND                  CREATED          STATUS          PORTS                                       NAMES
45bb0453fadd   registry.cn-hangzhou.aliyuncs.com/inrgihc/dbswitch:1.9.8   "/dbswitch-release/b…"   40 minutes ago   Up 4 seconds    0.0.0.0:9088->9088/tcp, :::9088->9088/tcp   dbswitch_webui
490cc6414c54   mysql:5.7                                                  "docker-entrypoint.s…"   40 minutes ago   Up 14 seconds   3306/tcp, 33060/tcp                         dbswitch_mysqldb
(base) root@node13:~# 

 dbswitch_install.sh脚本内容:

#!/bin/bash

set -e

shellwidth=$(stty size | awk '{print $2}')
DOWNLOAD_URL_DOCKER="https://get.docker.com"
TMP_DBSWITCH_DIR="/tmp/dbswtich"

command_exists() {
        command -v "$@" > /dev/null 2>&1
}

# install docker
install_docker_service() {
	if command_exists docker && [ -e /var/run/docker.sock ]; then
		docker --version
	else
		mkdir -p /etc/docker/
		cat > /etc/docker/daemon.json <<EOF
{
    "registry-mirrors":[
        "https://docker.mirrors.ustc.edu.cn",
        "http://hub-mirror.c.163.com",
        "https://dhyjbe13.mirror.aliyuncs.com"
    ],
    "insecure-registries": ["127.0.0.1/8"],
    "max-concurrent-downloads":10,
    "log-driver":"json-file",
    "log-level":"warn",
    "log-opts":{
        "max-size":"10m",
        "max-file":"3"
    },
    "data-root":"/var/lib/docker"
}
EOF
		curl -sSL ${DOWNLOAD_URL_DOCKER} -o /tmp/docker.sh
		sh /tmp/docker.sh --mirror Aliyun
		docker --version
		rm -f /tmp/docker.sh
		service docker restart
	fi
}

# install docker-compose
install_docker_compose() {
	if command_exists docker-compose ; then
		docker-compose --version
	else
		echo "download docker-compose now ..."
		curl -SL https://gitee.com/dromara/dbswitch/attach_files/1601064/download > /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose
		docker-compose --version
	fi
}

# install dbswitch
install_dbswitch_service() {
        docker rm -f dbswitch_webui || true >>/dev/null
        docker pull registry.cn-hangzhou.aliyuncs.com/inrgihc/dbswitch:1.9.8
	rm -rf ${TMP_DBSWITCH_DIR} && mkdir -p ${TMP_DBSWITCH_DIR}
	cat > ${TMP_DBSWITCH_DIR}/docker-compose.yml <<EOF
version: '3.3'
services:
  mysqldb:
    container_name: dbswitch_mysqldb
    image: mysql:5.7
    volumes:
      - "/data/mysql:/var/lib/mysql"
    environment:
      TZ: Asia/Shanghai
      MYSQL_DATABASE: dbswitch
      MYSQL_USER: tangyibo
      MYSQL_PASSWORD: 123456
      MYSQL_ROOT_PASSWORD: 123456
      MYSQL_ROOT_HOST: '%'
  dbswitch:
    container_name: dbswitch_webui
    image: registry.cn-hangzhou.aliyuncs.com/inrgihc/dbswitch:1.9.8
    environment:
      MYSQLDB_HOST: dbswitch_mysqldb
      MYSQLDB_PORT: 3306
      MYSQLDB_USERNAME: tangyibo
      MYSQLDB_PASSWORD: 123456
      MYSQLDB_NAME: dbswitch
    ports:
      - 9088:9088
    depends_on:
      - mysqldb
EOF
	cd ${TMP_DBSWITCH_DIR} && docker-compose up -d
	rm -rf ${TMP_DBSWITCH_DIR}
}

# pring line on screen
function print_line() {
    for ((i = 1; i <= $shellwidth; i++)); do
        echo -n '*'
    done
}

# print success
print_success(){
	echo ''
	print_line
	echo ''
	echo "   !!! 恭 喜 您 DBSWITCH 已 经 安 装 ( 或 升 级 ) 【成 功】 !!!"
	echo ''
	echo ''
	echo " DBSWITCH访问信息如下:"
	echo ""
	echo "    地址:htttp://127.0.0.1:9088 "
	echo "    账号:admin "
	echo "    密码:123456  "
	echo ''
	print_line
	echo ''
}

install_docker_service
install_docker_compose
install_dbswitch_service
print_success

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2086827.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

地级市地理相邻矩阵(地级市名称版、行政区划代码版)

地级市地理相邻矩阵&#xff08;地级市名称版、行政区划代码版&#xff09; 范围&#xff1a;294个地级市 格式&#xff1a;地级市名称版、行政区划代码版 说明&#xff1a;数据为同省下城市之间的相邻矩阵&#xff0c;表示同一省份内各个城市相互之间邻近关系。如果同一省份…

VTK+Qt+Cmake+VS的环境搭建

VTKQtCmakeVS的环境搭建 一、准备工作二、VTK源码安装过程三、错误排查四、Cmake中引用VTK五、代码示例 本文的主要内容&#xff1a;简单介绍如何使用Cmake编译安装VTK源代码&#xff1b;如何配置VTK在Qt中的使用环境&#xff1b;如何以VS作为IDE在C下使用QtVTK。 哪些人适合阅…

android studio .android和.gradle迁移到其他盘

操作 可以看到gradle和android占用不小 .android 将C盘的.android迁移到D盘 切换到.android下面的avd目录&#xff0c;修改ini文件 .gradle 将.gradle复制到D盘 在Android studio的文件夹下面新建一个文件夹&#xff0c;我这里命名androidcache。接着在Android studio的…

「bug」nvitop ERROR: Failed to initialize curses

nvitop 作为一个优秀个 Nvidia显卡查询库&#xff0c;简单易用且显示信息十分丰富&#xff0c;相比 Nvidia-smi 更方便&#xff0c;简直是每个 开发人员必备的库&#xff0c;安装也十分方便&#xff0c;直接采用 pip install nvitop 即可&#xff0c;调用的时候也是直接在 Term…

51单片机波特率的计算方法

通过51单片机的波特率&#xff0c;来计算定时器的初始值。 定时器的溢出率公式 &#xff1a; 1 / ov 1/f * 12 *&#xff08;256 - init) &#xff08;ov为溢出率&#xff0c;溢出频率&#xff1b; init 为初始值; f为时钟频率&#xff0c; 比如12M或者11.0592M等&#xff09…

自己开发完整项目一、登录注册功能-01

一、创建spingboot项目框架 1.首先创建一个空的项目作为父项目&#xff0c;之后的所有都在此基础上创建模块进行开发。 2.创建负责登录注册功能模块 二、启动项目 1.出现如下错误&#xff0c;代表着端口号被占用&#xff0c;这个时候&#xff0c;我们可以进行端口号的修改。 …

如何从笔记本电脑或台式电脑恢复丢失的照片和视频

意外删除或丢失笔记本电脑或 PC 上的照片和视频是一个常见问题。不用担心&#xff0c;在此博客中&#xff0c;我们解释了从笔记本电脑或 PC 恢复丢失的照片和视频的各种方法。专业的数据恢复软件&#xff0c;例如奇客 数据恢复工具&#xff0c;可以帮助用户找回丢失的文件。 提…

微信小程序uni :class不支持xxx语法

问题代码&#xff1a; <view class"cellTop"><view>{{list.payTime}}</view><view :class"payStatusClass${list.payStatus}">{{payStatusDe[list.payStatus]}}</view></view> .payStatusClass1{color: rgb(246, 122,…

传输层协议-UDP数据报

UDP协议的特点 面向数据报&#xff0c;无连接&#xff0c;不可靠&#xff0c;全双工 面向数据报&#xff1a;是指该协议在传输数据的时候使用的是数据报&#xff1b; 无连接&#xff1a;指的是发送数据不需要两个进程连接在一起&#xff0c;类似生活中我们发送短信&#xff0…

代码随想录跟练第九天——LeetCode 232.用栈实现队列、225. 用队列实现栈、20. 有效的括号、1047. 删除字符串中的所有相邻重复项

拔了智齿后&#xff0c;好久没有总结了&#xff0c;先补一点 232.用栈实现队列 力扣题目链接(opens new window) 使用栈实现队列的下列操作&#xff1a; push(x) -- 将一个元素放入队列的尾部。 pop() -- 从队列首部移除元素。 peek() -- 返回队列首部的元素。 empty() -- …

解锁App推广新姿势,Xinstall带你玩转投放查看

在移动互联网时代&#xff0c;App推广和运营成为了各大企业和开发者关注的焦点。然而&#xff0c;在这个过程中&#xff0c;推广者常常面临一些痛点&#xff0c;比如无法实时查看投放效果、数据不透明、难以精准定位目标用户等。这些问题不仅影响了推广效果&#xff0c;还可能导…

这些网络设备知名厂商你都不知道?白干这行了

号主&#xff1a;老杨丨11年资深网络工程师&#xff0c;更多网工提升干货&#xff0c;请关注公众号&#xff1a;网络工程师俱乐部 你们好啊&#xff0c;我的网工朋友。 信息技术的快速发展&#xff0c;网络行业已经成为推动全球经济和社会进步的重要力量之一。无论是企业还是个…

CI/CD实践(五)Jenkins Docker 自动化构建部署Node服务

微服务CI/CD实践系列&#xff1a; 微服务CI/CD实践&#xff08;一&#xff09;环境准备及虚拟机创建 微服务CI/CD实践&#xff08;二&#xff09;服务器先决准备 微服务CI/CD实践&#xff08;三&#xff09;gitlab部署及nexus3部署 微服务CI/CD实践&#xff08;四&#xff09…

Linux驱动学习之input子系统

简介 input 子系统就是管理输入的子系统&#xff0c;和pinctrl、gpio 子系统一样&#xff0c;都是 Linux 内核针对某一类设备而创建的框架。按键、鼠标、键盘、触摸屏等都属于输入设备&#xff0c;linux内核为此专门做了一个叫做input子系统的框架来处理输入事件。输入设备本…

day44——面向对象特征

一、封装 1.1 面向对象的三大特质 封装、继承、多态&#xff0c;如果问有四大特征&#xff0c;可以外加一个抽象 封装&#xff1a;将实现同一事物的所有的属性&#xff08;成员变量&#xff09;和行为&#xff08;成员函数&#xff09;封装到一个整体&#xff0c;我们称之为…

【Datawhale AI夏令营】从零上手CV竞赛Task2

文章目录 前言一、YOLO是什么&#xff1f;二、YOLO的历史三、性能指标四、 性能指标计算公式五、性能优化总结 前言 本文的Task2是对Task1的baseline代码进行优化的过程。 一、YOLO是什么&#xff1f; 首先简单介绍一下YOLO模型&#xff1a; 物体检测算法主要分为两类&#…

MSTP多实例生成树的配置

SW1配置&#xff1a; vlan batch 1 to 100 interface GigabitEthernet0/0/1 port link-type trunk port trunk allow-pass vlan 2 to 4094 interface GigabitEthernet0/0/2 port link-type trunk port trunk allow-pass vlan 2 to 4094 stp mode mstp //修改生成树的模式为…

【多线程】创建线程到底是多少种方法?

&#x1f970;&#x1f970;&#x1f970;来都来了&#xff0c;不妨点个关注叭&#xff01; &#x1f449;博客主页&#xff1a;欢迎各位大佬!&#x1f448; 文章目录 1. 创建线程的两种方式总结(最官方)1.1 继承 Thread 类1.2 实现 Runnable 接口1.3 优先考虑使用第二种 —— …

三. Spring Boot 当中的“容器功能” 和 “配置绑定” 的详细剖析(附+源代码流程)

三. Spring Boot 当中的“容器功能” 和 “配置绑定” 的详细剖析(附源代码流程) 文章目录 三. Spring Boot 当中的“容器功能” 和 “配置绑定” 的详细剖析(附源代码流程)1. Spring Boot 是继续支持了 Spring 当中的注解的1.2 Spring 当中的 Component&#xff0c;Controller…

通过visual studio进行dump文件调试和分析

0、前言 很多时候程序crash之后需要分析原因。对于C/C程序&#xff0c;一般最常见的场景和方法就是根据dump文件进行分析。 1、分析的前提条件 进行dump文件分析&#xff0c;需要以下文件&#xff1a; 进程crash时产生的dump文件程序源码进程对应的程序exe文件编译exe文件时产…