位置: 编程技术 - 正文

浅谈mysql 针对单张表的备份与还原(mysql单表数据建议)

编辑:rootadmin

推荐整理分享浅谈mysql 针对单张表的备份与还原(mysql单表数据建议),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:mysql单表操作,mysql单价用什么类型,mysql单机,mysql单表数据建议,mysql单机,mysql单表数据建议,mysql单表数据建议,mysql单例模式,内容如对您有帮助,希望把文章链接给更多的朋友!

A、MySQL 备份工具xtrabackup 的安装

1. percona 官方xtrabackup 的二进制版本;二进制版本解压就能用了。

2. 解压xtrabackup & 创建连接

tar -xzvf percona-xtrabackup-2.3.4-Linux-x_.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' identified by 'backup'; create user backuper@'.0.0.1' identified by 'backup';

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'@'.0.0.1'; grant create,insert,select on percona_schema.xtrabackup_history to 'backuper'@'.0.0.1';

C、备份前的检查,这一步的主要目地是在之后做还原操作时,验证还原是不是有效;(生产是没有这一步的,

1. select * from tempdb.dict__major; select * from dict__major;

+--------------+-----------------+ | column_value | column_mean | +--------------+-----------------+ | 1 | 汉语言文学 | | 2 | 精算 | | 3 | 生物制药 | | 4 | 材料化学 | | 5 | 商务英语 | | 6 | 考古 | | 7 | 外交 | | 8 | 导游 | +--------------+-----------------+

D、备份tempdb.dict__major 表

1. 备份命令

innobackupex --host=.0.0.1 --user=backuper --password=backup --port= --include='tempdb.dict__major' /tmp/tempdb

2. 备份完成后会在备份目录(/tmp/tempdb) 下生成用当前时间命名的目录,里面保存的就是备份文件

tree /tmp/tempdb/ /tmp/tempdb/ └── --_-- ├── 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、为了得到一个一致的备份集 在还原操作前还要进行一次日志的前滚和回滚

1. 前滚&回滚日志

innobackupex --apply-log --export /tmp/tempdb/--_--/

2. 与前滚& 回滚前的对比

tree /tmp/tempdb/ /tmp/tempdb/ └── --_-- ├── 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

浅谈mysql 针对单张表的备份与还原(mysql单表数据建议)

G、还原tempdb.dict__major表

1. 创建 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));

2. 删除 tempdb.dict__major的表空间文件

alter table tempdb.dict__major discard tablespace;

3. 把备份中的表空间文件复制到tempdb.dict__major 表空间应该在的位置

cp /tmp/tempdb/--_--/tempdb/dict__major.ibd /usr/local/mysql/data/tempdb/ cp /tmp/tempdb/--_--/tempdb/dict__major.exp /usr/local/mysql/data/tempdb/ cp /tmp/tempdb/--_--/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@'.0.0.1' identified by 'dumper'; grant select on *.* to dumper@'.0.0.1'; grant show view on *.* to dumper@'.0.0.1'; grant lock tables on *.* to dumper@'.0.0.1'; grant trigger on *.* to dumper@'.0.0.1';

B:备份tempdb.dict__major表

1.mysqldump --host=.0.0.1 --port= --user=dumper --password=dumper --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 -h.0.0.1 -p 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 create routine 权限的一些说明 1、如果用户有createroutine权限那么他就可以创建procedure|function。2、如果用户创建了procedure|function那么mysql会自动赋予它对procedure|function的alterroutine和execut

关于MySQL innodb_autoinc_lock_mode介绍 innodb_autoinc_lock_mode这个参数控制着在向有auto_increment列的表插入数据时,相关锁的行为;通过对它的设置可以达到性能与安全(主从的数据一致性)的平衡

mysql巡检脚本(必看篇) 如下所示:#!/usr/bin/envpython3.5importpsutilimportmysql.connectorimportargparseimportjsonimportdatetimedefget_cpu_info(verbose):cpu_info={}ifverbose0:print("[cpu]startcollectcpuinfo...")data=psu

本文链接地址:https://www.jiuchutong.com/biancheng/349942.html 转载请保留说明!

上一篇:MySQL删除表的时候忽略外键约束的简单实现(mysql里删除表里的数据)

下一篇:关于mysql create routine 权限的一些说明(关于月亮的诗句)

免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

鄂ICP备2023003026号

网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

友情链接: 武汉网站建设 电脑维修 湖南楚通运网络