2019.10.13MySQL 完整性备份还原及备份注意事项

一、MySQL完整备份操作

1、直接打包数据库文件夹

创建数据库auth:

MariaDB [(none)]> create database auth;
Query OK, 1 row affected (0.00 sec)

进入数据库:

MariaDB [(none)]> use auth
Database changed
创建数据表:

MariaDB [auth]> create table user(name char(10)not null,ID int(48));
Query OK, 0 rows affected (0.01 sec)

插入数据信息:

MariaDB [auth]> insert into user values(‘crushlinux‘,‘123‘);
Query OK, 1 row affected (0.01 sec)

查看数据信息:

MariaDB [auth]> select * from user;
+------------+------+
| name | ID |
+------------+------+
| crushlinux | 123 |
+------------+------+
1 row in set (0.00 sec)

对它进行备份

先退出MySQL停库

[[email protected] ~]# systemctl stop mariadb

直接对它进行打包压缩(新引入一个小命令)

[[email protected] ~]# rpm -q xz
xz-5.1.2-9alpha.el7.x86_64

[[email protected] ~]# mkdir backup                // 创建一个文件,把压缩包放进去
[[email protected] ~]# tar Jcf backup/mysql_all-$(date +%F).tar.xz /var/lib/mysql/
tar: 从成员名中删除开头的“/”

模拟数据丢失:

[[email protected] ~]# rm -rf /var/lib/mysql/auth/

起服务:[[email protected] ~]# systemctl start mariadb

恢复数据:

[[email protected] ~]# mkdir restore              //虽已创建一个文件
[[email protected] ~]# tar xf backup/mysql_all-2019-10-13.tar.xz -C restore/    将那个压缩包解压到这个文件里
[[email protected] ~]# cd restore/                    //切换到这个文件里查看
[[email protected] restore]# ls
var
[[email protected] restore]# cd var/lib/mysql/       // 继续查看
[[email protected] mysql]# ls
aria_log.00000001 auth ibdata1 ib_logfile1 performance_schema
aria_log_control crushlinux ib_logfile0 mysql test
[[email protected] mysql]# mv auth/ /var/lib/mysql/          //发现有auth,将它移动到/var/lib/mysql/下

登录MySQL查看:

MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| auth |
| crushlinux |
| mysql |
| performance_schema |
| test |
+--------------------+
6 rows in set (0.01 sec)

MariaDB [auth]> select * from user;
+------------+------+
| name | ID |
+------------+------+
| crushlinux | 123 |
+------------+------+
1 row in set (0.00 sec)

2、使用专用备份工具mysqldump

MySQL 自带的备份工具 mysqldump,可以很方便的对MySQL进行备份。通过该命令工具可以将数据库、数据表或全部的库导出为SQL脚本,便于该命令在不同版本的 MySQL务器上使用。例如, 当需要升级 MySQL 服务器时,可以先使用mysqldump命令将原有库信息到导出,然后直接在升级后的MySQL服务器中导入即可。

(1)对单个库进行完全备份

[[email protected] ~]# mysqldump -uroot -p123 --databases auth > backup/auth-$(date +%Y%m%d).sql

[[email protected] ~]# ls backup/
auth-20191013.sql mysql_all-2019-10-13.tar.xz
[[email protected] ~]# grep -Ev "^/|^$|^-" backup/auth-20191013.sql
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `auth` /*!40100 DEFAULT CHARACTER SET latin1 */;
USE `auth`;
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`name` char(10) NOT NULL,
`ID` int(48) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
LOCK TABLES `user` WRITE;
INSERT INTO `user` VALUES (‘crushlinux‘,123);
UNLOCK TABLES;

(2)对多个库进行完全备份:

[[email protected] ~]# mysqldump -uroot -p123 --databases auth mysql> backup/auth+mysql-$(date +%Y%m%d).sql

[[email protected] ~]# ls backup/
auth-20191013.sql auth+mysql-20191013.sql mysql_all-2019-10-13.tar.xz

(3)对所有库进行完全备份:

[[email protected] ~]# mysqldump -uroot -p123 --events --opt --all-databases > backup/mysql_all.$(date +%Y%m%d).sql

[[email protected] ~]# ls backup/
auth-20191013.sql mysql_all.20191013.sql
auth+mysql-20191013.sql mysql_all-2019-10-13.tar.xz

(4)对表进行完全备份:

[[email protected] ~]# mysqldump -uroot -p123 auth user > backup/auth_user-$(date +%Y%m%d).sql
[[email protected] ~]# ls backup/
auth-20191013.sql auth_user-20191013.sql mysql_all-2019-10-13.tar.xz
auth+mysql-20191013.sql mysql_all.20191013.sql

[[email protected] ~]# grep -Ev "^/|^$|^-" backup/auth_user-20191013.sql
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`name` char(10) NOT NULL,
`ID` int(48) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
LOCK TABLES `user` WRITE;
INSERT INTO `user` VALUES (‘crushlinux‘,123);
UNLOCK TABLES;

(5)对表结构的备份

[[email protected] ~]# mysqldump -uroot -p123 -d auth user > backup/desc_auth_user-$(date +%Y%m%d).sql

[[email protected] ~]# grep -Ev "^/|^$|^-" backup/desc_auth_user-20191013.sql
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`name` char(10) NOT NULL,
`ID` int(48) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

二、恢复数据

1、使用source命令

[[email protected] ~]# mysql -uroot -p123
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 8
Server version: 5.5.41-MariaDB MariaDB Server

Copyright (c) 2000, 2014, Oracle, MariaDB Corporation Ab and others.

Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.

MariaDB [(none)]> drop database auth;
Query OK, 1 row affected (0.02 sec)

MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| crushlinux |
| mysql |
| performance_schema |
| test |
+--------------------+
5 rows in set (0.00 sec)

先确定auth的备份的路径:backup/auth-20191013.sql

MariaDB [(none)]> source backup/auth-20191013.sql

MariaDB [auth]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| auth |
| crushlinux |
| mysql |
| performance_schema |
| test |
+--------------------+
6 rows in set (0.00 sec)

2、用mysql命令

MariaDB [auth]> drop database auth;
Query OK, 1 row affected (0.01 sec)

[[email protected] ~]# mysql -uroot -p123 < backup/auth-20191013.sql

MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| auth |
| crushlinux |
| mysql |
| performance_schema |
| test |
+--------------------+
6 rows in set (0.00 sec)

-e后面可以加执行的语句:

[[email protected] ~]# mysql -uroot -p123 -e ‘select * from auth.user;‘
+------------+------+
| name | ID |
+------------+------+
| crushlinux | 123 |
+------------+------+

三、MySQL备份思路
1、定期实施备份,指定备份计划或策略,并严格遵守.
2、除了进行完全备份,开启 MySQL 服务器的 binlog_日志功能是很重要的(完全备份加上日志,可以对MySQL进行最大化还原)。

3、使用统一和易理解的备份名称,推荐使用库名或者表名加上时间的命名规则,如mysql_user-20181214.sql,不要使用backup1或者abc之类没有意义的名字。

4、定期抽查备份的可靠性,做还原测试或者检查文件大小等方式。

5、通过异地或者跨机房等方式来存放备份数据,防止源数据和备份文件一起损坏。

原文地址:https://www.cnblogs.com/990624lty-jhc/p/11668049.html

时间: 2024-12-15 16:25:38

2019.10.13MySQL 完整性备份还原及备份注意事项的相关文章

(4.3)mysql备份还原——mysql备份策略

(4.3)mysql备份还原——mysql备份策略 1.指定备份策略时需要考虑的点 [1.1]备份周期:2次备份间隔时长 [1.2]备份方式:在备份周期中,使用什么备份方式.备份模式 [1.3]实现方式:自动/手动备份 [1.4]备份介质:思考好存放介质,介质目录,raid等 [1.5]保证良好的一致性 [1.6]备份成本:时间.空间.性能 的消耗 [1.7]恢复成本:数据恢复消耗时间,数据恢复容忍丢失量,业务宕机时间 2.一般备份策略 [2.1]小型(10G以内): 直接拷贝数据库文件(文件系

MongoDB 基础(五)备份还原与导出导入

参考官方文档 : MongoDB Backup Methods 原本使用操作系统的快照进行备份还原,备份成功后,还原没有成功(参考:Backup and Restore with Filesystem Snapshots) 所以这个方法就先不记录到这里了. 当前测试以下?种备份还原方法(个人初学理解): 1. 使用拷贝和替换数据库文件进行备份还原 2. 使用mongodump和mongorestore 3. 使用mongoimport 和 mongoexport 1. 使用拷贝和替换数据库文件进

备份校验两不误,MySQL自动备份还原校验设计详解

作者介绍庞阔,优朋普乐传媒运维基础部经理.负责数据库运营管理及平台设计开发,监控设计改进,问题跟踪处理,机房网络维护管理,目前四个专利已在专利局申请中.擅长数据库运维管理及Shell.Perl.PHP编写. 最近关于数据库故障出现的问题较多,不论大小公司对数据的备份要求都很高,但对校验数据备份的有效性要求更为迫切,很多公司对于自动备份和还原都已经形成体系,但对于还原后的备份有效性校验可能都不太完善,而且目前网上也没有较为完善的检验机制(可能我没找到). 对数据库备份的有效性校验的方法或样例选择,

mysql重点、视图、事务、备份还原【mysqldump】、mysql编程【触发器、存储函数、存储过程】、存储引擎

1.删除数据需要注意的问题[删除记录delete] 删除数据本身没有太多说的,还是删除表的时候有truncate用法 delete from是逐条删除记录[加不加条件全删,效率低,在删除表方面] truncate是重建表[删除表时效率高] 2.修改数据[update] [一下重点性能] 3.视图(view)[是一张虚拟的表:使客户端在虚拟的表中进行操作] 视图就是一条查询语句的结果[因为查询之后的结果本身就会形成一张表给客户端][视图使用到mysql的内置机制] create view 视图名

MSSQL2008数据库备份还原和数据恢复

原文:MSSQL2008数据库备份还原和数据恢复   序言 一直想写一篇关于数据库备份与恢复的文章,但基于能力的有限对数据库认知的有限怕不足以准确的表达,最后思考很久还是决定把自己的一些理解写出来供大家参考,也是为了回报自己:出于能力及语言表达能力的有限还望大家包含,如果里面有说的不对的地方还望大家及时提出.好及时修改不至于错误的引导他人. 认识数据库备份和事务日志备份 数据库备份与日志备份是数据库维护的日常工作,备份的目的是在于当数据库出现故障或者遭到破坏时可以根据备份的数据库及事务日志文件还

java sql编辑器 动态报表 数据库备份还原 quartz定时任务调度 自定义表单 java图片爬虫

获取[下载地址]   QQ: 313596790   [免费支持更新] 三大数据库 mysql  oracle  sqlsever   更专业.更强悍.适合不同用户群体 [新录针对本系统的视频教程,手把手教开发一个模块,快速掌握本系统] A 集成代码生成器(开发利器)+快速构建表单;            QQ:313596790 freemaker模版技术 ,0个代码不用写,生成完整的一个模块,带页面.建表sql脚本,处理类,service等完整模块 B 集成阿里巴巴数据库连接池druid;

IIS7 备份还原

介绍: 由于IIS配置网站比较繁琐,有时候需要迁移所有网站到另外一台机器,如果不使用导出导入功能,每台配置起来,会相当花费人力物力,下面使用IIS的共享的配置功能,备份和还原操作. 一 备份方法 打开IIS7,选择 "共享的配置",如下图: 点击 "导出配置-..",根据下面选项,选择备份路径,设置加密秘钥(注意:需要记住下面密码,还原的时候需要输入) 二 还原 进入IIS,找到"共享的配置"选项,点击打开功能,勾选"启动共享的配置&q

MySQL之XtraBackup实现完全备份、增量备份、数据还原

XtraBackup:是一个开源的免费的备份工具,支持热备份,对Innodb和MyISam存储引擎都支持备份,Innodb为热备.MyISam为温备份.且支持将备份结果进行压缩存放.支持部分备份(如只备份某个库或者某个库中的某个表).支持即时点数据还原.支持完全备份.支持增量备份.支持并行备份.流式备份.并行备份压缩.支持将单个表数据从一个数据库中导出然后导入另一个数据库中.支持将表恢复到一个不同的数据库server上 mylvmbackup:是一款可以实现自动化对LVM逻辑卷上的数据实现几乎热

Linux系统备份还原脚本

\ #!/bin/sh #备份linux系统. #命令如:sh 当前脚本.sh /dev/sdax 备份文件名 #参数1:备份的盘,备份前先umount.如:/dev/sda1 #参数2:备份保存的文件名. if [ $# -ne 2 ]; then echo "请传入两个参数." exit 0 fi #当前日期,用于建立临时文件夹和备份文件. datename=`date +%Y%m%d_%H%M%S` #临时挂载的文件夹名称 tmpdir="/tmp/dir${daten