数据库运维需要掌握的技能之一数据库的迁移,而MySQL数据库是我们常用的数据库之一,掌握mysql 数据库的数据迁移,也是必备的技能选项。数据库的迁移,我们必须要思考如下几个点:
Mysqldump 导出工具,mysql数据库安装后都有该工具,所以使用mysqldump 工具导出也时最方便的工具。使用mysqldump 的优点就是方便快捷的使用,不用安装;缺点是导入时受目标服务器的内存与CPU 资源限制,导入会花很长的时间导入。
Mysqldump 使用-B 参数,默认导出数据库的表,索引,视图,触发器等对象,需要导出存储过程与函数,需要使用-R 参数,不同参数的组合,可以帮助我们操作一些失败的对象。
统计mysql数据库的数据库大小主要考虑的数据与索引占用的空间,需要使用的系统表为information_schema.tables
csharp 体验AI代码助手 代码解读复制代码select table_schema as ‘数据库’, concat(round((sum(DATA_LENGTH)+sum(INDEX_LENGTH))/1024/1024/1024,2),'G') as total_size from information_schema.tables group by table_schema;
csharp 体验AI代码助手 代码解读复制代码SELECT table_schema as ‘数据库’, concat(round(sum(DATA_LENGTH/1024/1024/1024),2),'GB') as data_size FROM information_schema.TABLES group by TABLE_SCHEMA;
sql 体验AI代码助手 代码解读复制代码 #select table_schema as '数据库',table_name, concat(round((DATA_LENGTH+INDEX_LENGTH)/1024/1024,2),'MB') as total_size from information_schema.tables where table_schema='XXXX' order by round((DATA_LENGTH+INDEX_LENGTH)/1024/1024,2) desc;
csharp 体验AI代码助手 代码解读复制代码 SELECT table_schema as '数据库', table_name, concat(round(DATA_LENGTH/1024/1024,2),'MB') as data_size FROM information_schema.TABLES where table_schema='XXXX' order by round(DATA_LENGTH/1024/1024,2) desc;
Mysql 的非表对象比较少,主要包括函数,存储过程,视图
Mysql8 查询的系统表为information_schema.routines
sql 体验AI代码助手 代码解读复制代码select * from information_schema.routines where routine_schema ='XXXX'; -- XXXX代表数据库名称
mysql5.7 查询
sql 体验AI代码助手 代码解读复制代码select `name` from mysql.proc where db = 'XXXX' -- -- XXXX代表数据库名称
vbnet 体验AI代码助手 代码解读复制代码#mysqldump -uroot -p11111111 -B dt_news -R --single-transaction >dt_news.sql
mysqldump: [Warning] Using a password on the command line interface can be insecure.
-B 参数,会在备份的sql 语句中产生CREATE DATABASE /*!32312 IF NOT EXISTS*/ `dt_news` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */;
如果目标库中的数据库与源库不一致,需要单独在目标库中创建数据库,同时源库中导出就不使用-B 参数, 直接使用数据库名称,使用source 导入
将数据复制到目标库中,使用source 数据文件路径 导入数据库
shell 体验AI代码助手 代码解读复制代码# source /home/mysql/dt_new.sql
参考信息
css 体验AI代码助手 代码解读复制代码 #mysqldump -uroot -p11111111 -ndt -B dt_news -R --single-transaction >dt_news.sql
-n 不创建数据库,-d 不迁移数据,-t 不产生创建表格的语句
css 体验AI代码助手 代码解读复制代码mysqldump -uroot -p11111111 -d -B dt_news >dt_news_view1.sql
导出创建数据库语句,表语句,以及视图信息
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。