mysql 归档方案(一次性)

摘要:
1、 存档过程:1.导出所需数据2.创建临时表_Tmp 3.将数据导入临时表4.将原始表名修改为表_Bak 5.将临时表修改为原始表名2.比较存档方法1.选择intoutfileloaddatainfile导入/导出方法Select*FROMstudentwhere Create_time

一、 归档流程:

               1. 导出需要的数据

               2. 创建临时表table_tmp

               3. 导入数据到临时表

               4. 修改原始表名为table_bak

               5. 修改临时表为原始表名

二、归档方式对比

  1. select into outfile load data infile 导入导出的方式

    SELECT * FROM student where create_time > '2018-10-01 00:00:00' into  /data/mysql/student.sql

    source  /data/mysql/student.sql

  2. INSERT INTO 直接读取写入的方式

    INSERT INTO student_tmp SELECT * FROM student where create_time > '2019-02-16 00:00:00'

  3. mysql官方自带逻辑备份工具mysqldump

    mysqldump --user=root --host=127.0.0.1 -p --skip-lock-tables --single-transaction --flush-logs --hex-blob --master-data=2 test student --where="create_time > '2019-04-16 00:00:00'" > /data/mysql/student.sql

  4. Percona归档工具pt-archiver

    pt-archiver 

    --source h=127.0.0.1, u=root, p=123456, D=test, t=student

    --dest h=127.0.0.1, P=3306,u=root,p=123456, D=test,t=student_tmp

     --progress 50000

    --where "create_time > '2019-02-16 00:00:00'"

    --bulk-insert

    --statistics

    --charset=UTF8

    --limit=50000

    --txn-size 1000 

    --no-delete  

    参数说明:

      --source      #源数据库信息

      --dest    #目标数据库信息

      --progress 5000    #每处理5000行输出一次处理信息

      --where         #设置操作条件

      --bulk-insert    #批量插入数据到dest主机

      --statistics     #输出执行过程及最后的操作统计

      --charset=UTF8    #指定字符集为UTF8

      --limit=50000     #每次取1000行数据用pt-archive处理

      --txn-size 1000    #设置1000行为一个事务提交一次

      --no-delete      #不删除源数据

      --purge     #删除source数据库的相关匹配记录 

免责声明:文章转载自《mysql 归档方案(一次性)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇关闭 Chrome 浏览器阅读清单功能App Crawler下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

MySQL 详细解读undo log :insert undo,update undo

转自aobao.org/monthly/2015/04/01/ 本文是对整个Undo生命周期过程的阐述,代码分析基于当前最新的MySQL5.7版本。本文也可以作为了解整个Undo模块的代码导读。由于涉及到的模块众多,因此部分细节并未深入。 前言 Undo log是InnoDB MVCC事务特性的重要组成部分。当我们对记录做了变更操作时就会产生undo记录...

mysql只显示表名和备注

查看某个数据下的表及其备注: select table_name,table_comment from information_schema.tables where table_schema='db' ; 只要改后面的table_schema为你的数据库名 结果: 查看某个表下的字段及其备注 desc 表名; show columns from表名...

如何通过命令行创建和设置一个MySQL用户

我想要在MySQL服务器上创建一个新的用户帐号,并且赋予他适当的权限和资源限制。如何通过命令行的方式来创建并且设置一个MySQL用户呢? 要访问一个MySQL服务器,你需要使用一个用户帐号登录其中方可进行。每个MySQL用户帐号都有许多与之相关连的属性,例如用户名、密码以及权限和资源限制。"权限"定义了特定用户能够在MySQL服务器中做什么,而"资源限制"...

MySQL 日期与时间的处理

1.查询当前日期时间:函数有now(),localtime(),current_timestamp(),sysdate()。 mysql> select now(),localtime(),current_timestamp(),sysdate(); +---------------------+---------------------+--...

mysql全文检索

mysql到版本3.23.23时,开始支持全文检索,通过语句SELECT ... FROM ... MATCH(...) AGAINST(...) 来在整个表中检索是否有匹配的,全文索引是一个定义为fulltext的类型索引,应用在myisam表中。值得一提的是对于一个大的数据库来说,把数据装载到一个没有fulltext索引的表中,然后再添加索引,这样速度...

Mysql批量更新的一个坑-&allowMultiQueries=true允许批量更新

前言        实际上,我们经常会遇到这样的需求,那就是利用Mybatis批量更新或者批量插入,但是,实际上即使Mybatis完美支持你的sql,你也得看看你说操作的数据库是否支持,而阿福,最近就遇到这样的一个坑。 问题        先带大家来看一段sql的配置, <update id="updateAllAvailable"> <...