MySQL切换服务器数据迁移记录
老服务器性能不足计划迁移数据至新服务器一、查询 MySQL 数据库 / 表数据量大小1、查询所有数据库的总大小SELECTCONCAT(ROUND(SUM(data_lengthindex_length)/1024/1024,2), MB)AStotal_database_size,CONCAT(ROUND(SUM(data_lengthindex_length)/1024/1024/1024,2), GB)AStotal_database_size_gbFROMinformation_schema.TABLES;2、查询单个数据库的大小把 your_database 替换成你的库名SELECTtable_schemaASdatabase_name,CONCAT(ROUND(SUM(data_lengthindex_length)/1024/1024,2), MB)ASdatabase_sizeFROMinformation_schema.TABLESWHEREtable_schemayour_databaseGROUPBYtable_schema;3、查询某个库下所有表的大小按大小排序SELECTtable_nameAS表名,CONCAT(ROUND(data_length/1024/1024,2), MB)AS数据大小,CONCAT(ROUND(index_length/1024/1024,2), MB)AS索引大小,CONCAT(ROUND((data_lengthindex_length)/1024/1024,2), MB)AS总大小,table_rowsAS行数FROMinformation_schema.TABLESWHEREtable_schemayour_database-- 替换成你的库名ORDERBY(data_lengthindex_length)DESC;4、查询所有数据库的大小排名SELECTtable_schemaASdatabase_name,CONCAT(ROUND(SUM(data_lengthindex_length)/1024/1024,2), MB)AStotal_sizeFROMinformation_schema.TABLESGROUPBYtable_schemaORDERBYSUM(data_lengthindex_length)DESC;字段说明data_length数据文件大小index_length索引文件大小table_rows表行数近似值总大小 数据大小 索引大小二、备份恢复1.本地备份恢复1.1 MySQL 全库导出语句备份mysqldump-u用户名-p 数据库名导出文件路径.sql1.2 MySQL 全库导入语句恢复mysql-u用户名-p 目标数据库名备份文件路径.sql2.带编码、防乱码的完整版导出 / 导入2.1 导出不乱码、包含结构 数据mysqldump-u用户名-p--default-character-setutf8mb4 数据库名 备份.sql2.2 导入mysql-u用户名-p--default-character-setutf8mb4 数据库名 备份.sql3.所有数据库备份恢复整台 MySQL3.1 导出mysqldump-u用户名-p--all-databases all_databases.sql3.2导入全部数据库mysql-u用户名-pall_databases.sql4.直接导出到另一台 Linux 服务器适用场景:你现在在 服务器 A要把 MySQL 备份直接发到 服务器 B4.1 导出mysqldump-uroot-p mydb|ssh root192.168.1.100cat /backup/mydb_backup.sql带压缩的版本大数据库必备数据库大的时候一定要压缩速度快 10 倍以上mysqldump-u用户名-p 数据库名|gzip|ssh 用户名另一台IPcat /路径/备份.sql.gz或者mysqldump-uroot-pAAAAA--all-databases --single-transaction --quick --lock-tablesfalse --default-character-setutf8mb4 | gzip | ssh root10.10.100.42 cat /opt/all.sql.gz解压命令备用gzip-d 备份文件.sql.gz5 xtrabackup 物理备份迁移5.1 安装 xtrabackup1.先安装 Percona 源必须 yum install-y https://repo.percona.com/yum/percona-release-latest.noarch.rpm 2.启用 xtrabackup 80 仓库 percona-releaseenable-onlytools release 3.安装 xtrabackup 8.0支持 MySQL 8.0 yum install-y percona-xtrabackup-80 4.验证是否安装成功 xtrabackup--version 出现版本信息 安装成功5.2 源库 MySQL8.0.20 热备不停业务# 全量备份到/opt/mysql_backupxtrabackup--userroot--passwordVQaRUYH_o5 \--backup--target-dir/opt/mysql_backup# 备份完成必须执行事务日志预提交恢复必备xtrabackup--prepare--target-dir/opt/mysql_backup5.3 打包传到新服务器# 压缩备份tar-zcf mysql80_bak.tar.gz/opt/mysql_backup# 传到新MySQL机器scp mysql80_bak.tar.gz root10.10.100.42:/opt/5.4 目标机器 MySQL8.0.45 恢复步骤1.停止 mysql systemctl stop mysqld 2.清空原有数据目录重要提前确认无有用数据rm-rf/var/lib/mysql/*3.解压备份包 tar-zxf/opt/mysql80_bak.tar.gz-C/opt/ 4.执行数据恢复 xtrabackup--copy-back--target-dir/opt/mysql_backup 5.修复权限 chown-R mysql:mysql/var/lib/mysql chmod-R 700/var/lib/mysql 6.启动 MySQL systemctlstartmysqld systemctl enable mysqld5.5 关键注意点8.0.20→8.0.45 必看大版本一致都是 8.0物理恢复完全兼容权限、库表、存储过程、事件全部原样迁移恢复后root 密码、用户账号全部和原库一模一样不用重新建用户迁移完成建议执行一次升级适配mysql_upgrade-uroot-pAAAA
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2628666.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!