详细介绍mysql针对单张表的备份与还原的示例代码
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了详细介绍mysql针对单张表的备份与还原的示例代码,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含5463字,纯文字阅读大概需要8分钟。
内容图文
![详细介绍mysql针对单张表的备份与还原的示例代码](/upload/InfoBanner/zyjiaocheng/539/4d8a72b2f7dc464bad9564c0907b55a9.jpg)
A、MySQL 备份工具xtrabackup 的安装
1. percona 官方xtrabackup 的二进制版本;二进制版本解压就能用了。
2. 解压xtrabackup & 创建连接
tar -xzvf percona-xtrabackup-2.3.4- Linux -x86_64.tar.gz -C /usr/local/ ln -s /usr/local/percona-xtrabackup-2.3.4 /usr/local/xtrabackup
3. 设置PATH环境变量
export PATH=/usr/local/xtrabackup/bin/:$PATH
B、在mysql数据库中创建一个用户备份的用户 & 授权
1. 创建用户
create user backuper@'localhost' ident if ied by 'backup123'; create user backuper@'127.0.0.1' identified by 'backup123';
2. 授权
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、备份前的检查,这一步的主要目地是在之后做还原操作时,验证还原是不是有效;(生产是没有这一步的,
1.
select * from tempdb.dictmajor; select * from dictmajor; +--------------+-----------------+ | column_value | column_mean | +--------------+-----------------+ | 1 | 汉语言文学 | | 2 | 精算 | | 3 | 生物制药 | | 4 | 材料化学 | | 5 | 商务英语 | | 6 | 考古 | | 7 | 外交 | | 8 | 导游 | +--------------+-----------------+
D、备份tempdb.dictmajor 表
1. 备份命令
innobackupex --host=127.0.0.1 --user=backuper --password=backup123 --port=3306 --include='tempdb.dictmajor' /tmp/tempdb
2. 备份完成后会在备份目录(/tmp/tempdb) 下生成用当前时间命名的目录,里面保存的就是备份文件
tree /tmp/tempdb/ /tmp/tempdb/ └── 2016-09-10_18-25-16 ├── backup-my.cnf ├── ibdata1 ├── tempdb │ ├── dictmajor.frm │ └── dictmajor.ibd ├── xtrabackup_binlog_info ├── xtrabackup_checkpoints ├── xtrabackup_info └── xtrabackup_logfile
E、备份完成后就可以删除tempdb.dictmajor表了(注意这里一定要保存一份表的定义,还原时会用到)
mysql>drop table tempdb.dictmajor;
F、为了得到一个一致的备份集 在还原操作前还要进行一次日志的前滚和回滚
1. 前滚&回滚日志
innobackupex --apply-log --export /tmp/tempdb/2016-09-10_18-25-16/
2. 与前滚& 回滚前的对比
tree /tmp/tempdb/ /tmp/tempdb/ └── 2016-09-10_18-25-16 ├── backup-my.cnf ├── ibdata1 ├── ib_logfile0 ├── ib_logfile1 ├── tempdb │ ├── dictmajor.cfg │ ├── dictmajor.exp │ ├── dictmajor.frm │ └── dictmajor.ibd ├── xtrabackup_binlog_info ├── xtrabackup_binlog_pos_innodb ├── xtrabackup_checkpoints ├── xtrabackup_info └── xtrabackup_logfile
G、还原tempdb.dictmajor表
1. 创建 tempdb.dictmajor表
create table dictmajor( column_value tinyint not null, column_mean varchar(32) not null, constraint pkdictmajor primary key (column_value));
2. 删除 tempdb.dictmajor的表空间文件
alter table tempdb.dictmajor discard tablespace;
3. 把备份中的表空间文件复制到tempdb.dictmajor 表空间应该在的位置
cp /tmp/tempdb/2016-09-10_18-25-16/tempdb/dictmajor.ibd /usr/local/mysql/data/tempdb/ cp /tmp/tempdb/2016-09-10_18-25-16/tempdb/dictmajor.exp /usr/local/mysql/data/tempdb/ cp /tmp/tempdb/2016-09-10_18-25-16/tempdb/dictmajor.cfg /usr/local/mysql/data/tempdb/ chown -R mysql:mysql /usr/local/mysql/data/tempdb/*
4. 导入表空间文件
alter table tempdb.dictmajor import tablespace;
5. 查看dictmajor表恢复情况
select * from dictmajor; +--------------+-----------------+ | 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.dictmajor表
1.
mysqldump --host=127.0.0.1 --port=3306 --user=dumper --password=dumper123 --quick tempdb dictmajor >/tmp/tempdb.dictmajor.sql
C: 删除已经备份的表
1.
mysql>drop table tempdb.dictmajor;
D:还原tempdb.dictmajor表
1.
mysql -uroot -pxxxxx -h127.0.0.1 -p3306 tempdb </tmp/tempdb.dictmajor.sql
E:检证还原的有效性
1.
select * from dictmajor;
+--------------+-----------------+ | column_value | column_mean | +--------------+-----------------+ | 1 | 汉语言文学 | | 2 | 精算 | | 3 | 生物制药 | | 4 | 材料化学 | | 5 | 商务英语 | | 6 | 考古 | | 7 | 外交 | | 8 | 导游 | +--------------+-----------------+
以上就是详细介绍mysql针对单张表的备份与还原的示例代码的详细内容,更多请关注Gxl网其它相关文章!
内容总结
以上是互联网集市为您收集整理的详细介绍mysql针对单张表的备份与还原的示例代码全部内容,希望文章能够帮你解决详细介绍mysql针对单张表的备份与还原的示例代码所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。