【MySQL 利器之 mysqldump】

news2024/12/23 10:50:12

文章目录

  • 前言
  • 一、mysqldump
  • 二、环境
  • 三、使用步骤
    • 1.服务器与服务器间直接同步
    • 2.导出到sql文件
    • 3.sql文件导入
  • 总结
    • 使用方式 1 服务器间直连方式同步:
    • 使用中间SQL 文件方式:
    • datax:


前言

1.随着服务器环境改造,新旧数据库环境更换,需要迁移数据。
2.以前数据表结构设计不合理,索引建立不完善,需重新构建表结构。
3.数据量很大,某个表一天增加1千万条数据。
4.总数据空间占用 10T 左右。


一、mysqldump

没错,我是用 mysqldump。
可能你觉得 mysql 自带的东西,比不上其它第三方工具比如(datax)。事实在此过程我也用 datax,最后实践出真理,mysqldump 比 datax 好用多了。
为啥说 datax 不好用,是因为我用它同步一个任务,那个任务估计在1千5百万条左右,开始的时候估计在 1.6M/s, 但是跑着跑着就会越来越慢, 到了 1千2百万左右就出现很多次 0M/s。还不止这样,最后直接就报错终止了,报了一个 write time out 的信息。这可是大忌呀, 你跑慢点我就忍了,但是你突然就终止了,这次等了几个小时的时间就白费了呀,后面还得从零开始导。(也许是我用不惯)

二、环境

Mysql 数据库服务 A (需导出的数据库) 端口 3306
Mysql 数据库服务 B (需导入的数据库)端口 3308

三、使用步骤

核心参数解释:

nohup : 使用后台方式执行
-h : 指定host 地址
-P : (大写)指定端口, 
-u : 指定账号,紧挨着账号名中间没有空格
-p : (小写)指定密码, 紧挨着密码名中间没有空格
--databases : 指定数据库名称
--tables : 指定表名称, 多个表名称用空格分隔
--where : 指定条件
--no-create-info : 不导出建表语句
--compact : 简洁导出,忽略开头、末尾的非必要信息
--complete-insert : 使用完整的一条 insert 语句,减少多次insert
--add-drop-table : 在建表语句前添加删除表语句
--no-tablespaces : 不导出表空间
--skip-lock-tables : 不锁表
--set-gtid-purged=OFF : 这个不是跟清楚,只是不加这个会报 gtid 的错误
--skip-triggers : 不导出触发器
--skip-triggers : 不导出事件
| : 管道符号,左边输出作为右边参数

1.服务器与服务器间直接同步

nohup sh -c "/pddyjc/mysql/bin/mysqldump -h A的IP -P 3306 -uA的账号 -pA的密码 \
--databases A的数据库名 --tables A的表名1 A的表名2 ... \
--where=\"sjsjday between '2022-01-00' and '2022-01-32'\" \
--add-drop-table \
--no-tablespaces --skip-lock-tables \
--set-gtid-purged=OFF --skip-triggers --skip-events|mysql -h B的IP -P 3308 \
-uB的账号 -pB的密码 B的数据库名" > 日志.out &

2.导出到sql文件

nohup sh -c "/pddyjc/mysql/bin/mysqldump -h A的IP -P 3306 -uA的账号 -pA的密码 \
--databases A的数据库名 --tables A的表名 --no-create-info \
--no-tablespaces --compact --skip-lock-tables --complete-insert --set-gtid-purged=OFF \
--skip-triggers --skip-events > SQL文件.sql " > 日志.log &

3.sql文件导入

nohup sh -c "mysql -h B的IP -P 3308 -uB的账号 -pB的密码 B的数据库名 < SQL文件.sql " > 日志.out &

总结

使用方式 1 服务器间直连方式同步:

优点: 不用中间存贮,适合空间紧缺环境,
缺点: 偶尔还是会报错,估计是我的网络不稳定。

使用中间SQL 文件方式:

优点: 导出的时候很快,文件保留,以后可以慢慢导入。不容易出现网络问题错误。
缺点: 需要中间存储资源。

以下是用 SQL文件方式导入导出的情况:
73G 的文件, 1亿多的记录。
导入没有报错
看不到结束时间,我就晚上挂着,第二早上过来看结果。
重点是不报错,时间可以慢慢导入。
在这里插入图片描述
在这里插入图片描述

datax:

官网: https://github.com/alibaba/DataX
提到了 datax , 我把配置也发出来。

{
    "job": {
        "setting": {
            "speed": {
                 "channel":1
            }
        },
        "content": [
            {
                "reader": {
                    "name": "mysqlreader",
                    "parameter": {
                        "username": "A的账号",
                        "password": "A的密码",
                        "column": [
                            "*"
                        ],

                        "connection": [
                            {
                                "table": [
                                    "A的表名"
                                ],
                                "jdbcUrl": [
                                    "jdbc:mysql://A的IP/A的库名"
                                ]
                            }
                        ],
                        "where": " sjsj_year_month = 202305 "
                    }
                },
                "writer": {
                    "name": "mysqlwriter",
                    "parameter": {
                        "writeMode": "insert",
                        "batchSize": 16384,
                        "username": "B的账号",
                        "password": "B的密码",
                        "column": [
                            "*"
                        ],
                        "session": [

                        ],
                        "preSql": [
                            " set global foreign_key_checks = 0 ",
                            " set global unique_checks = 0 " 
                        ],
                        "connection": [
                            {
                                "jdbcUrl": "jdbc:mysql://B的IP:3308/B的库名?useUnicode=true&characterEncoding=utf-8",
                                "table": [
                                    "B的表名"
                                ]
                            }
                        ]
                    }
                }
            }
        ]
    }
}

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

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

相关文章

微流控压力控制器和微流控注射泵的性能比较

摘要&#xff1a;针对微流控技术中的压力和流量控制&#xff0c;本文介绍了目前常用的两类装置&#xff1a;注射泵和压力泵&#xff0c;重点介绍了这两种装置的性能特点&#xff0c;并对这两种压力控制装置进行了简要的分析对比。分析结论是压力泵将逐渐替代注射泵的应用&#…

Addressable CRC设置详解

设置 Asset Bundle的CRC设置中有三个选项&#xff1a; Disable&#xff1b; Enable,InClude Cached; Enable,Excludeing Cached; 修改后实际改的是这里的选项&#xff1a; Disable 设置为Disable&#xff0c;实际上是将BundledAssetGroupSchema类的UseAssetBundleCrc参数设…

软考:软件工程:软件设计,总体设计,详细设计,耦合内聚流程图,NS图,PAD图,判定树判定图。

软考&#xff1a;软件工程: 提示&#xff1a;系列被面试官问的问题&#xff0c;我自己当时不会&#xff0c;所以下来自己复盘一下&#xff0c;认真学习和总结&#xff0c;以应对未来更多的可能性 关于互联网大厂的笔试面试&#xff0c;都是需要细心准备的 &#xff08;1&#…

【吃透网络安全】2023软考网络管理员考点网络安全(二)网络攻击详解

涉及知识点 黑客的攻击手段介绍&#xff0c;常见的网络攻击&#xff0c;软考网络管理员常考知识点&#xff0c;软考网络管理员网络安全&#xff0c;网络管理员考点汇总。 后面还有更多续篇希望大家能给个赞哈&#xff0c;这边提供个快捷入口&#xff01; 第一节网络管理员考…

多版本管理node.js

多版本管理node.js 1. 安装2. 配置使用2.1 修改node源2.2 常用命令 在Windows 计算机上管理node.js的多个安装版本。 这是朋友推荐的&#xff0c;就是自己在升级node的时候给搞崩了&#xff0c; 不得不提升效率&#xff0c;于是发现了这个好工具&#xff0c;可以反过来理解&…

金蝶云星空RCE漏洞复现

0x01 产品简介 金蝶云星空是一款云端企业资源管理&#xff08;ERP&#xff09;软件&#xff0c;为企业提供财务管理、供应链管理以及业务流程管理等一体化解决方案。金蝶云星空聚焦多组织&#xff0c;多利润中心的大中型企业&#xff0c;以 “开放、标准、社交”三大特性为数字…

端午安康,节日送祝福

端午节是在中国农历的五月份&#xff0c;今年是&#xff08;公历&#xff09;&#xff16;月22日&#xff0c;它是中国最古老的节日 之一&#xff0c;已经有两千多年的历史。The Duanwu or Dragon Boat Festival, is generally celebrated on the fifth month of the Chinese l…

(自定义包导包失败一万次的经验)ModuleNotFoundError: No module named ‘xxx‘

导自定义的包遇到的问题 首先我列一下我的目录结构 |-src|-__init__.py|-Dao|-insertData.py|-pojo|-DataBaseDao|-everyData我现在在我的insertData.py通过from src.pojo import DataBaseDao,everyData导包,在pycharm中可以正常运行,但是在控制台运行失败,提示 ModuleNotFo…

移植微雪例程-2.6寸双色墨水屏到ESP32IDF中

微雪官网&#xff1a;E-Paper ESP32 Driver Board - Waveshare Wiki 去微雪官网&#xff0c;把墨水屏的例程下下来。 我这个使用的是2.6寸的双色墨水屏。 下载下来之后&#xff0c;然后移植到IDF上面。 移植epd2in13bc-demo这个例程。将EPD_2in13bc.h这个头文件中的宽&#…

2022年广西壮族自治区第二届职业技能大赛“网络安全项目”比赛任务书

2022年广西壮族自治区第二届职业技能大赛 “网络安全项目”比赛任务书 一、竞赛时间 总计&#xff1a;12小时 竞赛阶段 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 A A-1 登录安全加固 240分钟 350分 A-2 本地安全策略配置 A-3 流量完整性保护 A-4 事件监控…

算法程序设计 之 背包问题(5/8)

一、实验目的&#xff1a; 理解并掌握利用-动态规划算法与贪心算法求解不同背包问题。 实验内容 0-1背包问题给定n种物品和一个背包。物品i的重量是w[i]&#xff0c;其价值为vi&#xff0c;背包的容量为C。问如何选择装入背包的物品&#xff0c;使得装入背包中物品的总价值最大…

CDH集群离线部署-6.3.1

1. 文件下载 CDH 安装使用到的相关文件&#xff1a;链接: https://pan.baidu.com/s/1xDQD1Sa8s47Qiu_EFYdhUA?pwd5mrt 提取码: 5mrt 2. 机器基础调整 所有机器都需要执行下面所有的步骤。 2.1. 准备机器 至少三台2核16G机器。 2.1.1. ECS 服务器 如果买的是 ECS 服务器&…

Apikit 自学日记:邀请成员一起协作

邀请成员一起协作 在 Apikit 中&#xff0c;所有的 API 接口都是以项目的方式进行管理&#xff0c;因此首先需要创建一个 API 管理项目。 除了创建 API 项目&#xff0c;还可以创建项目组来对项目进行分类或者设置统一的用户操作权限。 一、手动创建项目 进入 API 研发管理项…

有趣的笔试题——贪吃蛇游戏(确定不进来看看?)

原题 贪吃蛇游戏是一款耳熟能详的小游戏&#xff0c;通过上下左右控制蛇的方向&#xff0c;寻找吃的果子&#xff0c;每吃一口果子&#xff0c;蛇的身子会越吃越长&#xff0c;身子越长玩的难度就越大&#xff0c;不能碰墙&#xff0c;不能咬到自己的身体&#xff0c;更不能咬自…

关于springboot中前端传递多个数组以及其他参数及json在前后端转变方法技巧的记录

文末含一种json的动态解析方法,感兴趣的大佬记得看到最后评论交流 * 因公司GIS保密要求仅放部分代码在这儿 前端传输json的方法 json格式不再赘述 常规json传递 使用formData封装传递 好处就是当页面同时传递多个数组甚至是同时传递数组和参数到后台&#xff0c;可以自定义…

2023计算机组成原理复习【1-4】

第一章 计算机系统概述 1&#xff0e;计算机语言的分类&#xff1a;高级语言&#xff0c;低级语言&#xff08;汇编语言与机器语言&#xff09;。P8 高级语言是人类可读写的编程语言。低级语言包括汇编语言和机器语言两种。汇编语言是一种直接使用符号代替计算机指令的语言&a…

C++静态对象的移动问题

7.1返回普通的静态对象 MyString func(const char* p) {static MyString tmp(p);return tmp; } int main() {MyString s1("hello");s1func("helloworld");s1.Print();MyString s2;s2func("hello");s2.Print();return 0; } 结果&#xff1a; 进…

Elagamal和ECC

Elgamal加密方案 椭圆曲线加密体制 椭圆曲线应该是非奇异的&#xff0c;曲线的图不会自我相交或者没有顶点。 椭圆曲线的基本运运算 相异点相加PQ&#xff1a; 相同点相加PP: ## 椭圆曲线加解密 加解密原理&#xff1a; Alice选取一个椭圆曲线 E p ( a , b ) E_p(a,b) Ep​…

从0到1精通自动化测试,pytest自动化测试框架,生成html报告与html报告报错截图+失败重跑(五)

目录 一、生成html报告 1、pytest-html 2、html报告 3、指定报告路径 4、显示选项 5、更多功能 二、html报告报错截图失败重跑 1、conftest.py 2、报告展示 3、失败重试 一、生成html报告 1、pytest-html pytest-HTML是一个插件&#xff0c;pytest用于生成测试结果…

C. Ranom Numbers(统计前缀)

Problem - C - Codeforces 不&#xff0c;不是“随机”数字。 Ranom 数字由大写拉丁字母 A 到 E 表示。此外&#xff0c;字母 A 的值为 1&#xff0c;B 为 10&#xff0c;C 为 100&#xff0c;D 为 1000&#xff0c;E 为 10000。 一个 Ranom 数字是一个 Ranom 数字序列。这个…