MySQL数据库-完全备份及恢复

MySQL数据库-完全备份及恢复

数据库备份的分类

物理角度:

冷备份;也称脱机备份,特点:关掉数据库再备份

热备份:也称联机备份,特点:开启数据库再备份

温备份:数据库只有可读权限的状态下备份

逻辑角度:

对数据库的对象的备份,例如数据表,及数据表中的一些sql语句等

备份策略角度:

完全备份:每次对数据进行整体的备份

差异备份:在第一次完整备份a数据后,以后的每次的备份是a+b,b就是针对于a数据发生变化的数据,称之为‘差异数据’。缺点:b的数据内存会越来越大b+=b,导致数据恢复缓慢。恢复数据方法:只需恢复a和最后一次的b即可.(注意:这里的差异备份只能用a与b)

增量备份:

对象:固定的a数据+b1+b2+...+bn.

每次备份b都是独立的一次备份

恢复数据的方法:a+b1+b2+...+bn,缺点:若是b1次备份到bn次备份之间的任何一备份的数据出现问题,那么都无法恢复数据。

mysql的数据库,数据表的创建

[[email protected]~]# mysql -u root -p123456

Welcometo the MySQL monitor.  Commands end with; or \g.

YourMySQL connection id is 2

Serverversion: 5.5.22-log Source distribution

Copyright(c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracleis a registered trademark of Oracle Corporation and/or its

affiliates.Other names may be trademarks of their respective

owners.

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

mysql>

mysql> create database auth1;

QueryOK, 1 row affected (0.04 sec)

mysql>use auth1;

Databasechanged

mysql>create table user(name char(10) not null,ID int(30));

QueryOK, 0 rows affected (0.09 sec)

mysql>insert into user values(‘amber‘,‘123‘);

QueryOK, 1 row affected (0.01 sec)

mysql>select * from user;

+-------+------+

|name  | ID   |

+-------+------+

|amber |  123 |

+-------+------+

1row in set (0.00 sec)

冷备份:

[[email protected]~]# service mysqld stop

Shuttingdown MySQL....                                    [确定]

[[email protected]~]# yum -y install xz

[[email protected]~]# tar Jcf mysql_all-$(date +%F).tar.xz /usr/local/mysql/data/

tar:从成员名中删除开头的“/”

[[email protected]~]# mkdir bak

[[email protected]~]# mv /usr/local/mysql/data/*  bak/

[[email protected]~]# tar xf mysql_all-2017-06-20.tar.xz

[[email protected]~]# cd usr/local/mysql/data/

[[email protected]]# mv  * /usr/local/mysql/data/

[[email protected]]# /etc/init.d/mysqld start

StartingMySQL...                                          [确定]

[[email protected]]# mysql -uroot -p123456

Welcometo the MySQL monitor.  Commands end with; or \g.

YourMySQL connection id is 1

Serverversion: 5.5.22-log Source distribution

Copyright(c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracleis a registered trademark of Oracle Corporation and/or its

affiliates.Other names may be trademarks of their respective

owners.

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

mysql>select  * from auth.user;

ERROR1146 (42S02): Table ‘auth.user‘ doesn‘t exist

mysql>select  * from auth1.user;

+-------+------+

|name  | ID   |

+-------+------+

|amber |  123 |

+-------+------+

1row in set (0.01 sec)

单个库完全备份

[[email protected]]# mkdir /backup

[[email protected]]# mysqldump -uroot -p auth1 >/backup/auth1-$(date +%Y%m%d).sql

对多个库进行完全备份

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

对所有库进行备份

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

对表进行完全备份

[[email protected]]# mysqldump -uroot -p123456  auth1 user>/backup/auth1_user-$(date +%Y%m%d).sql

[[email protected]
data]# mysqldump -uroot -p123456 -d mysql user
>/backup/desc_mysql_user.$(date +%y%m%d)

[[email protected]
data]# egrep -Ev ‘^/|^--|^$‘ /backup/desc_mysql_user.170620  //

DROP
TABLE IF EXISTS `user`;

CREATE
TABLE `user` (

`Host` char(60) COLLATE utf8_bin NOT NULL
DEFAULT ‘‘,

`User` char(16) COLLATE utf8_bin NOT NULL
DEFAULT ‘‘,

`Password` char(41) CHARACTER SET latin1
COLLATE latin1_bin NOT NULL DEFAULT ‘‘,

`Select_priv` enum(‘N‘,‘Y‘) CHARACTER SET utf8
NOT NULL DEFAULT ‘N‘,

`Insert_priv` enum(‘N‘,‘Y‘) CHARACTER SET
utf8 NOT NULL DEFAULT ‘N‘,

`Update_priv` enum(‘N‘,‘Y‘) CHARACTER SET
utf8 NOT NULL DEFAULT ‘N‘,

`Delete_priv` enum(‘N‘,‘Y‘) CHARACTER SET
utf8 NOT NULL DEFAULT ‘N‘,

`Create_priv` enum(‘N‘,‘Y‘) CHARACTER SET
utf8 NOT NULL DEFAULT ‘N‘,

`Drop_priv` enum(‘N‘,‘Y‘) CHARACTER SET utf8
NOT NULL DEFAULT ‘N‘,

`Reload_priv` enum(‘N‘,‘Y‘) CHARACTER SET
utf8 NOT NULL DEFAULT ‘N‘,

`Shutdown_priv` enum(‘N‘,‘Y‘) CHARACTER SET
utf8 NOT NULL DEFAULT ‘N‘,

`Process_priv` enum(‘N‘,‘Y‘) CHARACTER SET
utf8 NOT NULL DEFAULT ‘N‘,

`File_priv` enum(‘N‘,‘Y‘) CHARACTER SET utf8
NOT NULL DEFAULT ‘N‘,

`Grant_priv` enum(‘N‘,‘Y‘) CHARACTER SET utf8
NOT NULL DEFAULT ‘N‘,

`References_priv` enum(‘N‘,‘Y‘) CHARACTER SET
utf8 NOT NULL DEFAULT ‘N‘,

`Index_priv` enum(‘N‘,‘Y‘) CHARACTER SET utf8
NOT NULL DEFAULT ‘N‘,

`Alter_priv` enum(‘N‘,‘Y‘) CHARACTER SET utf8
NOT NULL DEFAULT ‘N‘,

`Show_db_priv` enum(‘N‘,‘Y‘) CHARACTER SET
utf8 NOT NULL DEFAULT ‘N‘,

`Super_priv` enum(‘N‘,‘Y‘) CHARACTER SET utf8
NOT NULL DEFAULT ‘N‘,

`Create_tmp_table_priv` enum(‘N‘,‘Y‘)
CHARACTER SET utf8 NOT NULL DEFAULT ‘N‘,

`Lock_tables_priv` enum(‘N‘,‘Y‘) CHARACTER
SET utf8 NOT NULL DEFAULT ‘N‘,

`Execute_priv` enum(‘N‘,‘Y‘) CHARACTER SET
utf8 NOT NULL DEFAULT ‘N‘,

`Repl_slave_priv` enum(‘N‘,‘Y‘) CHARACTER SET
utf8 NOT NULL DEFAULT ‘N‘,

`Repl_client_priv` enum(‘N‘,‘Y‘) CHARACTER
SET utf8 NOT NULL DEFAULT ‘N‘,

`Create_view_priv` enum(‘N‘,‘Y‘) CHARACTER
SET utf8 NOT NULL DEFAULT ‘N‘,

`Show_view_priv` enum(‘N‘,‘Y‘) CHARACTER SET
utf8 NOT NULL DEFAULT ‘N‘,

`Create_routine_priv` enum(‘N‘,‘Y‘) CHARACTER
SET utf8 NOT NULL DEFAULT ‘N‘,

`Alter_routine_priv` enum(‘N‘,‘Y‘) CHARACTER
SET utf8 NOT NULL DEFAULT ‘N‘,

`Create_user_priv` enum(‘N‘,‘Y‘) CHARACTER
SET utf8 NOT NULL DEFAULT ‘N‘,

`Event_priv` enum(‘N‘,‘Y‘) CHARACTER SET utf8
NOT NULL DEFAULT ‘N‘,

`Trigger_priv` enum(‘N‘,‘Y‘) CHARACTER SET
utf8 NOT NULL DEFAULT ‘N‘,

`Create_tablespace_priv` enum(‘N‘,‘Y‘)
CHARACTER SET utf8 NOT NULL DEFAULT ‘N‘,

`ssl_type` enum(‘‘,‘ANY‘,‘X509‘,‘SPECIFIED‘)
CHARACTER SET utf8 NOT NULL DEFAULT ‘‘,

`ssl_cipher` blob NOT NULL,

`x509_issuer` blob NOT NULL,

`x509_subject` blob NOT NULL,

`max_questions` int(11) unsigned NOT NULL
DEFAULT ‘0‘,

`max_updates` int(11) unsigned NOT NULL
DEFAULT ‘0‘,

`max_connections` int(11) unsigned NOT NULL
DEFAULT ‘0‘,

`max_user_connections` int(11) unsigned NOT
NULL DEFAULT ‘0‘,

`plugin` char(64) COLLATE utf8_bin DEFAULT
‘‘,

`authentication_string` text COLLATE
utf8_bin,

PRIMARY KEY (`Host`,`User`)

)
ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT=‘Users and global
privileges‘;

使用MySQLdump备份后,恢复数据

数据库恢复

[[email protected]
data]# mysql -uroot -p123456 -e "drop database auth1;"

[[email protected]
data]# mysql -uroot -p123456 < /backup/mysql_all-20170620.sql

mysql> source
/backup/mysql_all-20170620.sql

数据表恢复

[[email protected]
data]# mysql -uroot -p123456 -e ‘drop table auth1.user;‘

[[email protected]
data]# mysql -uroot -p123456 auth1 < /backup/auth1_user-20170620.sql

时间: 2024-12-25 18:11:27

MySQL数据库-完全备份及恢复的相关文章

Python进阶----pymysql的安装与使用,mysql数据库的备份和恢复,mysql的事务和锁

Python进阶----pymysql的安装与使用,mysql数据库的备份和恢复,mysql的事务和锁 一丶安装 pip install PyMySQL 二丶pymysql连接数据库 ### 语法: import pymysql # 导入py模块 conn= pymysql.connect("数据库ip","用户","密码","数据库" ) # 打开数据库连接 cursor.execute("SELECT VERSI

mysql数据库的备份和恢复

下面的命令都是在Ubuntu下面执行的,假如数据库的名称为test 第一步,备份数据库 mysqldump -u 用户名 -p 备份的数据库名>备份的文件的名称 回车,然后输入密码即可 例如备份一个数据库为test的,备份后的名称为test.sql mysqldump -u root -p test>/home/xywei/test.sql 回车输入密码,没出现提示的东西就表示备份成功了.备份的包括数据库表和表中的数据. 第二步,恢复数据库 首先得新建立一个数据库,比如说建立个数据库名称为te

MySQL数据库数据备份和恢复详解(上)

本文讨论 MySQL 的备份和恢复机制,以及如何维护数据表,包括最主要的两种表类型:MyISAM和Innodb,文中设计的 MySQL 版本为 5.0.22. 目前 MySQL 支持的免费备份工具有:mysqldump.mysqlhotcopy,还可以用 SQL 语法进行备份:BACKUP TABLE 或者 SELECT INTO OUTFILE,又或者备份二进制日志(binlog),还可以是直接拷贝数据文件和相关的配置文件.MyISAM 表是保存成文件的形式,因此相对比较容易备份,上面提到的几

[知了堂学习笔记]_Java代码实现MySQL数据库的备份与还原

通常在MySQL数据库的备份和恢复的时候,多是采用在cmd中执行mysql命令来实现. 例如: mysqldump -h127.0.0.1 -uroot -ppass test > d:/test.sql ---备份test数据库到 D 盘 mysql -h127.0.0.1 -uroot -ppass test< test.sql ---将D备份的数据库脚本,恢复到数据库中 更多命令参看:http://www.cnblogs.com/xcxc/archive/2013/01/30/28828

使用MySQL命令行备份及恢复数据库

使用MySQL命令行,可以实现对数据库的备份以及恢复,下面就为您介绍使用MySQL命令行实现该功能的详细方法步骤,供您参考. MySQL命令行导出数据库:1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录如我输入的命令行:cd C:\Program Files\MySQL\MySQL Server 4.1\bin(或者直接将windows的环境变量path中添加该目录) 2,导出数据库:mysqldump -u 用户名 -p 数据库名 > 导出的文件名 如我输入的命令

mysql大数据备份及恢复(一)

Mysql大数据备份和恢复一 MySQL备份一般采取全库备份.日志备份:MySQL出现故障后可以使用全备份和日志备份将数据恢复到最后一个二进制日志备份前的任意位置或时间:mysql的二进制日志记录着该数据库的所有增删改的操作日志还包括了这些操作的执行时间 Binlog的用途:主从同步.恢复数据库 使用binlog工具备份 查看binlog是否开启,因为默认是关闭的 从上图可知off为关闭状态,一般logbin为只读,在/etc/my.cnf下开启 重启数据库 重启后在目录下查看是否生成bin日志

mysqldump常用于MySQL数据库逻辑备份

mysqldump常用于MySQL数据库逻辑备份. 1.各种用法说明 A. 最简单的用法: mysqldump -uroot -pPassword [database name] > [dump file] 上述命令将指定数据库备份到某dump文件(转储文件)中,比如: mysqldump -uroot -p123 test > test.dump 生成的test.dump文件中包含建表语句(生成数据库结构哦)和插入数据的insert语句. B. --opt 如果加上--opt参数则生成的du

【windows】环境下mysql的数据备份以及恢复

[windows]环境下mysql的数据备份以及恢复 无论是刚刚入行的'猿友'还是入行很久的'老猿',我相信都会遇到过因为各种原因(很多情况下是自己误删了数据库)的操作.drop databases xxxxx 而误删了线上项目的数据库是一件很恐怖的事情,那么如果大家遇到这种情况怎么办呢?首先不要着急(我感觉说了也白说-,-),先看一看自己的mysql是否开启了binlog日志功能,如果没有???game over !!! 关于查看binlog日志有没有开启,请到自己的Mysql文件下找my.i

从MySQL全库备份中恢复某个库和某张表【转】

从MySQL全库备份中恢复某个库和某张表 一.全库备份-A [[email protected] backup]#mysqldump -uroot -p123456 --default-character-set=utf8 --single-transaction --extended-insert=false --hex-blob --master-data=2 --log-error=/tmp/test.err --routines --triggers --events --quick -