Mysql单库迁移的操作方法

目录
  • 为什么要迁移
  • 一、导出数据库文件
  • 二、上传至目标机器
  • 三、 登录目标机器mysql,创建数据库
  • 四、导入数据库文件

为什么要迁移

MySQL 迁移是 DBA 日常维护中的一个工作。迁移,究其本义,无非是把实际存在的物体挪走,保证该物体的完整性以及延续性。就像柔软的沙滩上,两个天真无邪的小孩,把一堆沙子挪向其他地方,铸就内心神往的城堡。

生产环境中,有以下情况需要做迁移工作,如下:
1.磁盘空间不够。比如一些老项目,选用的机型并不一定适用于数据库。随着时间的推移,硬盘很有可能出现短缺;
2.业务出现瓶颈。比如项目中采用单机承担所有的读写业务,业务压力增大,不堪重负。如果 IO 压力在可接受的范围,会采用读写分离方案;
3.机器出现瓶颈。机器出现瓶颈主要在磁盘 IO 能力、内存、CPU,此时除了针对瓶颈做一些优化以外,选择迁移是不错的方案;
4.项目改造。某些项目的数据库存在跨机房的情况,可能会在不同机房中增加节点,或者把机器从一个机房迁移到另一个机房。再比如,不同业务共用同一台服务器,为了缓解服务器压力以及方便维护,也会做迁移。

一句话,迁移工作是不得已而为之。实施迁移工作,目的是让业务平稳持续地运行。

下面看下Mysql单库迁移的问题。

一、导出数据库文件

1.输入导出命令

# 导出所有表结构+数据
mysqldump -h localhost -u root -p distribute_search_db > d:/distribute_search_db.sql
# 仅导出所有表结构
mysqldump -h localhost -u root -p -d distribute_search_db > d:/distribute_search_db.sql
# 仅导出某个表的表结构+数据
mysqldump -h localhost -u root -p distribute_search_db my_table > d:/distribute_search_db.sql
# 仅导出某个表的表结构
mysqldump -h localhost -u root -p -d distribute_search_db my_table > d:/distribute_search_db.sql

2.输入密码

二、上传至目标机器

三、 登录目标机器mysql,创建数据库

1.登录

mysql -u root -p

2.输入密码
3.创建数据库

create database distribute_search_db;

4.退出mysql

quit;

四、导入数据库文件

1.输入导入命令

mysql -h localhost -u root -p distribute_search_db < d:/distribute_search_db.sql

2.输入密码

到此这篇关于Mysql单库迁移的文章就介绍到这了,更多相关Mysql单库迁移内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 一次mysql迁移的方案与踩坑实战记录

    目录 背景 方案一:老数据备份 方案二:分表 方案三:迁移至tidb 重点说下同步老数据遇到的坑 最终同步脚本方案 总结 背景 由于历史业务数据采用mysql来存储的,其中有一张操作记录表video_log,每当用户创建.更新或者审核人员审核的时候,对应的video_log就会加一条日志,这个log表只有insert,可想而知,1个video对应多条log,一天10w video,平均统计一个video对应5条log,那么一天50w的log, 一个月50 * 30 = 1500w条记录, 一年就

  • 解决mysql数据库数据迁移达梦数据乱码问题

    受到领导的嘱托,接手了一个java项目,要进行重构,同时了项目的整体建设要满足信创的要求. 那么首先就要满足两点: 1,使用国产数据库达梦8替换mysql数据库 2,使用金蝶中间件替换tomcat进行容器部署 在不懈的努力下,我已在本地的搭建和安装完成达梦8(dm8)数据库,也完成了代码框架更改数据库源,替换达梦数据库的demo验证工作. driverClassName: dm.jdbc.driver.DmDriver url: jdbc:dm://10.0.3.132:5236/XC-SERV

  • MySQL迁移KingbaseESV8R2的实现步骤

    目录 1. 使用Oracle中转 2. 使用KingbaseESV8R3中转 3. 其他问题 1.自增 2.uuid 4. 已发现的 SQL 问题 1. 使用Oracle中转 KingbaseESV8R2只支持从Oracle迁移,所以先MySQL迁移到Oracle. 迁移到Oracle问题:1.oracle对表名有最大30位限制2.invalid hex number,无效16进制3.表数据空,报cannot insert NULL into4.索引名太长 MySQL迁移Oracle问题就很多了

  • MySQL数据迁移相关总结

    前言: 在平时工作中,经常会遇到数据迁移的需求,比如要迁移某个表.某个库或某个实例.根据不同的需求可能要采取不同的迁移方案,数据迁移过程中也可能会遇到各种大小问题.本篇文章,我们一起来看下 MySQL 数据迁移那些事儿,希望能帮助到各位. 1.关于数据迁移 首先引用下维基百科中对数据迁移的解释: 数据迁移(data migration)是指选择.准备.提取和转换数据,并将数据从一个计算机存储系统永久地传输到另一个计算机存储系统的过程.此外,验证迁移数据的完整性和退役原来旧的数据存储,也被认为是整

  • MySQL 线上日志库迁移实例

    说说最近的一个案例吧,线上阿里云RDS上的一个游戏日志库最近出现了一点问题,随着游戏人数的增加,在线日志库的数据量越来越大,最新的日志库都已经到50G大小了,在线变更的时间非常长. 之前之所以没有发现,是因为之前一直没有进行过日志库的变更,但是随着业务的深入,需要增加一些游戏属性,要对之前的日志库进行变更,这样一来,长时间的维护窗口让业务方和DBA都望而却步,日志优化迫在眉睫. 首先看日志库的情况: 1.日志库中数据量大于5000w的大表有5张: 2.这5张表开量前每个月的数据量大概在2000w

  • Mysql单库迁移的操作方法

    目录 为什么要迁移 一.导出数据库文件 二.上传至目标机器 三. 登录目标机器mysql,创建数据库 四.导入数据库文件 为什么要迁移 MySQL 迁移是 DBA 日常维护中的一个工作.迁移,究其本义,无非是把实际存在的物体挪走,保证该物体的完整性以及延续性.就像柔软的沙滩上,两个天真无邪的小孩,把一堆沙子挪向其他地方,铸就内心神往的城堡. 生产环境中,有以下情况需要做迁移工作,如下:1.磁盘空间不够.比如一些老项目,选用的机型并不一定适用于数据库.随着时间的推移,硬盘很有可能出现短缺:2.业务

  • MySQL如何恢复单库或单表,以及可能遇到的坑

    前言: MySQL 逻辑备份工具最常用的就是 mysqldump 了,一般我们都是备份整个实例或部分业务库.不清楚你有没有做过恢复,恢复场景可能就比较多了,比如我想恢复某个库或某个表等.那么如何从全备中恢复单库或单表,这其中又有哪些隐藏的坑呢?这篇文章我们一起来看下. 1.如何恢复单库或单表 前面文章有介绍过 MySQL 的备份与恢复.可能我们每个数据库实例中都不止一个库,一般备份都是备份整个实例,但恢复需求又是多种多样的,比如说我想只恢复某个库或某张表,这个时候应该怎么操作呢? 如果你的实例数

  • 从MySQL 5.5迁移到Mariadb 10.1.14所遇到的问题

    迁移计划如下: 1.备份MySQL 5.5的数据库,对指定库进行备份. 2.还原到Mariadb,然后建立复制. 3.然后就可以愿意啥时候切换就啥时候切换. 遇到的问题: 因为一般都是innodb,所以我想用xtrabackup工具备份.备份后发现还原需要依赖innodb的表空间切换. 1.表空间切换,必须要打开innodb_file_per_table.也就是说所有的表都要有独立的文件.有一些表虽然是innodb但是存在ibdata下面. 幸好可以申请维护窗口,简单粗暴的重建了. 2.从MyS

  • centos上安装mysql并设置远程访问的操作方法

    1.下载mysql的repo源 $ wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm 2.安装mysql-community-release-el7-5.noarch.rpm包 $ sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm 安装这个包后,会获得两个mysql的yum repo源:/etc/yum.repos.d/mysql-community.

  • Spring Boot 配置MySQL数据库重连的操作方法

    使用jdbc连接MySQL,如果连接失效,可能会报类似的错误: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully received from the server was 84,371,623 milliseconds ago. The last packet sent successfully to the server was 78,860,631 millisecond

  • 为什么说MySQL单表数据不要超过500万行

    今天,探讨一个有趣的话题:MySQL 单表数据达到多少时才需要考虑分库分表?有人说 2000 万行,也有人说 500 万行.那么,你觉得这个数值多少才合适呢? 曾经在中国互联网技术圈广为流传着这么一个说法:MySQL 单表数据量大于 2000 万行,性能会明显下降.事实上,这个传闻据说最早起源于百度.具体情况大概是这样的,当年的 DBA 测试 MySQL性能时发现,当单表的量在 2000 万行量级的时候,SQL 操作的性能急剧下降,因此,结论由此而来.然后又据说百度的工程师流动到业界的其它公司,

  • MySQL单表多关键字模糊查询的实现方法

    在最近的一个项目需要实现在MySQL单表多关键字模糊查询,但这数个关键字并不一定都存在于某个字段.例如现有table表,其中有title,tag,description三个字段,分别记录一条资料的标题,标签和介绍.然后根据用户输入的查询请求,将输入的字串通过空格分割为多个关键字,再在这三个字段中查询包含这些关键字的记录. 可目前遇到的问题是,这些关键字是可能存在于三个字段中的任意一个或者多个,但又要求三个字段必须包含所有的关键词.如果分别对每个字段进行模糊匹配,是没法实现所需的要求,由此想到两种

  • mysql建库时提示Specified key was too long max key length is 1000 bytes的问题的解决方法

    索引字段长度太长, 1.修改字段长度 2.修改mysql默认的存储引擎 在/etc/mysql/my.cnf 的[mysqld] 下面加入default-storage-engine=INNODB 但是在建库时已经明确表明了需要使用INNODB引擎 Sql代码 复制代码 代码如下: CREATE TABLE `acs` ( ... ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 检查当前的引擎 复制代码 代码如下: mysql> show engines; 果然没有I

随机推荐