mysql 针对单张表的备份与还原
A、MySQL 备份工具xtrabackup 的安装
. percona 官方xtrabackup 的二进制版本;二进制版本解压就能用了。
. 解压xtrabackup & 创建连接
tar -xzvf percona-xtrabackup-2.3.-Linux-x86_64.tar.gz -C /usr/local/
ln -s /usr/local/percona-xtrabackup-2.3. /usr/local/xtrabackup
. 设置PATH环境变量
export PATH=/usr/local/xtrabackup/bin/:$PATH B、在mysql数据库中创建一个用户备份的用户 & 授权
. 创建用户
create user backuper@'localhost' identified by 'backup123';
create user backuper@'127.0.0.1' identified by 'backup123';
. 授权
grant reload,lock tables,replication client,process,super on *.* to 'backuper'@'localhost';
grant create,insert,select on percona_schema.xtrabackup_history to 'backuper'@'localhost';
grant reload,lock tables,replication client,process,super on *.* to 'backuper'@'127.0.0.1';
grant create,insert,select on percona_schema.xtrabackup_history to 'backuper'@'127.0.0.1'; C、备份前的检查,这一步的主要目地是在之后做还原操作时,验证还原是不是有效;(生产是没有这一步的,
. select * from tempdb.dict__major;
select * from dict__major;
+--------------+-----------------+
| column_value | column_mean |
+--------------+-----------------+
| | 汉语言文学 |
| | 精算 |
| | 生物制药 |
| | 材料化学 |
| | 商务英语 |
| | 考古 |
| | 外交 |
| | 导游 |
+--------------+-----------------+ D、备份tempdb.dict__major 表
. 备份命令
innobackupex --host=127.0.0.1 --user=backuper --password=backup123 --port= --include='tempdb.dict__major' /tmp/tempdb . 备份完成后会在备份目录(/tmp/tempdb) 下生成用当前时间命名的目录,里面保存的就是备份文件
tree /tmp/tempdb/
/tmp/tempdb/
└── --10_18--
├── backup-my.cnf
├── ibdata1
├── tempdb
│ ├── dict__major.frm
│ └── dict__major.ibd
├── xtrabackup_binlog_info
├── xtrabackup_checkpoints
├── xtrabackup_info
└── xtrabackup_logfile E、备份完成后就可以删除tempdb.dict__major表了(注意这里一定要保存一份表的定义,还原时会用到)
mysql>drop table tempdb.dict__major; F、为了得到一个一致的备份集 在还原操作前还要进行一次日志的前滚和回滚
. 前滚&回滚日志
innobackupex --apply-log --export /tmp/tempdb/--10_18--/ . 与前滚& 回滚前的对比
tree /tmp/tempdb/
/tmp/tempdb/
└── --10_18--
├── backup-my.cnf
├── ibdata1
├── ib_logfile0
├── ib_logfile1
├── tempdb
│ ├── dict__major.cfg
│ ├── dict__major.exp
│ ├── dict__major.frm
│ └── dict__major.ibd
├── xtrabackup_binlog_info
├── xtrabackup_binlog_pos_innodb
├── xtrabackup_checkpoints
├── xtrabackup_info
└── xtrabackup_logfile G、还原tempdb.dict__major表
. 创建 tempdb.dict__major表
create table dict__major(
column_value tinyint not null,
column_mean varchar() not null,
constraint pk__dict__major primary key (column_value));
. 删除 tempdb.dict__major的表空间文件
alter table tempdb.dict__major discard tablespace; . 把备份中的表空间文件复制到tempdb.dict__major 表空间应该在的位置
cp /tmp/tempdb/--10_18--/tempdb/dict__major.ibd /usr/local/mysql/data/tempdb/
cp /tmp/tempdb/--10_18--/tempdb/dict__major.exp /usr/local/mysql/data/tempdb/
cp /tmp/tempdb/--10_18--/tempdb/dict__major.cfg /usr/local/mysql/data/tempdb/
chown -R mysql:mysql /usr/local/mysql/data/tempdb/* 4. 导入表空间文件
alter table tempdb.dict__major import tablespace; 5. 查看dict__major表恢复情况
select * from dict__major;
+--------------+-----------------+
| column_value | column_mean |
+--------------+-----------------+
| 1 | 汉语言文学 |
| 2 | 精算 |
| 3 | 生物制药 |
| 4 | 材料化学 |
| 5 | 商务英语 |
| 6 | 考古 |
| 7 | 外交 |
| 8 | 导游 |
+--------------+-----------------+ ---------------------------------------------------------------------------------------------------------------------------------------------- 上一节用的是xtrabackup 对表进行备份,它的应用场景是单表的数据量大且在备份的过程中还要支持对表的写操作;也就是说在目前的场景下mysqldump 这个简单的
备份工具也是可以满足要求的; 现给出mysqldump 备份的一般步骤 A:创建备份用户
1.
create user dumper@'127.0.0.1' identified by 'dumper123';
grant select on *.* to dumper@'127.0.0.1';
grant show view on *.* to dumper@'127.0.0.1';
grant lock tables on *.* to dumper@'127.0.0.1';
grant trigger on *.* to dumper@'127.0.0.1'; B:备份tempdb.dict__major表
1.
mysqldump --host=127.0.0.1 --port=3306 --user=dumper --password=dumper123 --quick tempdb dict__major >/tmp/tempdb.dict__major.sql C: 删除已经备份的表
1.
mysql>drop table tempdb.dict__major; D:还原tempdb.dict__major表
1.
mysql -uroot -pxxxxx -h127.0.0.1 -p3306 tempdb </tmp/tempdb.dict__major.sql E:检证还原的有效性
1.
select * from dict__major;
+--------------+-----------------+
| column_value | column_mean |
+--------------+-----------------+
| 1 | 汉语言文学 |
| 2 | 精算 |
| 3 | 生物制药 |
| 4 | 材料化学 |
| 5 | 商务英语 |
| 6 | 考古 |
| 7 | 外交 |
| 8 | 导游 |
+--------------+-----------------+
mysql 针对单张表的备份与还原的更多相关文章
- MySQL 拷贝数据库表方式备份,还原后提示 table xxx '' doesn`t exist
MySQL很强大,支持直接拷贝数据库文件快速备份,那数据库文件在哪里呢? 打开MySQL的配置文件 my.ini,找到 datadir 节点,如 datadir="D:/Program Fi ...
- MySQL(四)数据备份与还原
数据备份与还原: 备份:将当前已有的数据或者记录保留 还原:将已经保留的数据恢复到对应的表中 为什么要做备份还原: 1.防止数据丢失:被盗.误操作 2.保护数据的记录 数据备份还原的方式很多:数据表备 ...
- mysql的sql文件的备份与还原
1.备份 $mysqldump –u root –p*** dbname > filename.sql 2.还原 前提是数据库必须存在 $mysql –u root –p*** dbname ...
- SQL Server 2012入门图解:建表、备份、还原
一.建立你的第一个数据库和表 例:建立一个用于描述一个学校学生情况的数据库.把它命名为School.并且要在School数据库下建立保存学生信息的表Student.在可视化界面下,我们通常这样操作 ...
- mysql数据库每个表的备份脚本
对mysql数据库中的每张表进行按日期备份,思想是:先把每张表的表名取出取出,然后通过for循环去对每个表进行按日期备份 [root@ZFVM-APP-- backup]# vim dataname. ...
- php+mysql 数据库分表分段备份程序--宋正河
<?php //宋正河 转载请注明出处 set_time_limit(0); header('content-type:text/html;charset=utf-8'); mysql_conn ...
- mysql针对单个库进行备份
#!/bin/bashBakDir=/backup/mysql_backupLogFile=/backup/mysql_backup.logDate=`date +%Y%m%d`Begin=`date ...
- mysql备份、还原数据库(命令行)
这里记录下MySQL如何通过命令行备份和还原数据库. 简单的三个步骤 方法很简单,可以分为三个步骤: 1.打开cmd控制台(命令行). 2.输入相应命令完成备份还原操作. 3.关闭cmd控制台. 就和 ...
- mysql 备份和还原
1.使用mysqldump命令 备份:mysqldump -u username -p dbname table1 table2 ...> BackupName.sql 还原:mysql -u ...
随机推荐
- 深度学习word2vec笔记之算法篇
深度学习word2vec笔记之算法篇 声明: 本文转自推酷中的一篇博文http://www.tuicool.com/articles/fmuyamf,若有错误望海涵 前言 在看word2vec的资料 ...
- BZOJ 2324 营救皮卡丘
http://www.lydsy.com/JudgeOnline/problem.php?id=2324 思路:最小费用最大流 考虑设数组d[k][i][j],代表只用前k个城市,i到j的最短路 然后 ...
- LeetCode_Reverse Integer
Reverse digits of an integer. Example1: x = , Example2: x = -, class Solution { public: int reverse( ...
- Qt基于FFmpeg播放本地 H.264(H264)文件(灿哥哥的博客)
最近在弄H264的硬件编解码,基于DM3730,但是为了调试方便,在小红帽上用FFmpeg实现了H264的软件编解码.现在弄了一个Windows的例子,给需要的同学参考一下,如果大家觉得有帮助,可以小 ...
- InnoSetup中枚举出INI文件的所有sections和键值
原文 http://blog.chinaunix.net/uid-23480430-id-3016899.html InnoSetup支持一些INI文件操作函数, 例如GetIniString,Ini ...
- mysql/Java服务端对emoji的支持
更改好后的字符集: 乱码 推荐大家看 深入MySQL字符集设置 ,区分检查client端.server端的编码:最简单暴力的方式,是在所有的环节都显式明确的指定相同的编码. 比如使用python的My ...
- Java中ThreadLocal无锁化线程封闭实现原理
虽然现在可以说很多程序员会用ThreadLocal,但是我相信大多数程序员还不知道ThreadLocal,而使用ThreadLocal的程序员大多只是知道其然而不知其所以然,因此,使用ThreadLo ...
- The method setOnClickListener(View.OnClickListener) in the type View is not applicable
开始学习 android 了,学习的是高明鑫老师的android视频教程(android视频教学). 学到第八讲时, 在写动态设置时报错: The method setOnClickListener( ...
- MVC 简单数据传递
Mode: namespace MVCDemo.Models { public class Data { //申明为静态 归类所有,取数据不要实例化 ; public static string st ...
- python学习之路-8 面向对象之进阶
上篇内容回顾和补充 面向对象三大特性 封装 继承 多态 在python中没有多态的概念 变量的类型允许为多种数据类型称之为多态 # c#/java中的多态 # 伪代码 def func(int arg ...