mysql自动备份

计划功能,设定一个时间,让系统定时跑脚本,不就实现了自动备份数据库的功能了吗?首
先把脚本代码贴出来:

1. @echo on
2.
3. REM------------------------backup bugdb which is InnoDB---------------------------
--
4. del F:\backup\website\bugdb_*.sql
5. cd F:\usr\wamp\mysql\bin
6. set year=%date:~0,4%
7. set month=%date:~5,2%
8. set day=%date:~8,2%
9. set filename=bugdb_%year%%month%%day%.sql
10. mysqldump.exe bugdb -uroot -p123456 > F:\backup\website\%filename%
11.
12. @echo off
依次解释一下每句代码的意思:

第四行:删除指定目录下的文件名包含有“bugdb_”字样的sql文件。因为这个代码是我先前写

的,在公司的服务器上每天晚上跑一次。所以每次备份之前,先删除头天已备份成功的文件。


第五行:进入MySQL的bin目录,因为在此目录下有个mysqldump.exe的文件,该文件时MySQL

数据库自带的备份和恢复MySQL数据库的工具,这个脚本文件正是用到该工具。

第六行:取当前系统日期的年份,以四位数字表示,如2010。


第七行:取当前系统日期的月份,以两位数字表示,如03。


第八行:取当前系统日期的日期,以两位数字表示,如12。


第九行:定义备份文件名,最终的文件名以bugdb_20100312.sql形式存在,即文件名加日期的形

式。

第十行:执行备份。

再来解释一下mysqldump的语法格式。格式为:
1. mysqldump.exe "要备份的数据库名" -u(接用户名) -p(接密码) > "备份文件存放的路径及文
件名"
其中“>”的作用是输出重定向,即把mysqldump.exe备份的数据输出到一个文件里并保存。
将以上脚本复制到一个文本文件里,并另存为*.bat,如backup.bat的批处理文件,接下来
会要用到该文件,我把它存在D:\scripts\backup_bugdb.bat。

注意:第五行和第十行是让系统知道mysqldump.exe工具
为避免写第五行的代码,可以再系统环境变量的path变量中输入mysql的
mysqldump.exe工具的路径,并以分号结束。

还原数据库的命令:
1. D:\html\wamp\mysql\bin\mysql.exe -uroot -p123456
2. --default-character-set=utf8 bugdb < F:\bugdb_20100312.sql
备份MySQL数据库的命令

mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql
备份MySQL数据库为带删除表的格式
备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有
数据库。
mysqldump -–add-drop-table -uusername -ppassword databasename > backupfile.sql
直接将MySQL数据库压缩备份

mysqldump -hhostname -uusername -ppassword databasename | gzip > backupfile.sql.gz
备份MySQL数据库某个(些)表

mysqldump -hhostname -uusername -ppassword databasename specific_table1 specific_table2 >
backupfile.sql
同时备份多个MySQL数据库

mysqldump -hhostname -uusername -ppassword –databases databasename1 databasename2
databasename3 > multibackupfile.sql
仅仅备份数据库结构

mysqldump –no-data –databases databasename1 databasename2 databasename3 >
structurebackupfile.sql
备份服务器上所有数据库

mysqldump –all-databases > allbackupfile.sql
还原MySQL数据库的命令

mysql -hhostname -uusername -ppassword databasename < backupfile.sql
还原压缩的MySQL数据库

gunzip < backupfile.sql.gz | mysql -uusername -ppassword databasename
将数据库转移到新服务器
mysqldump -uusername -ppassword databasename | mysql –host=*.*.*.* -C databasename

合集下载

MySQL中的逻辑备份和物理备份区别

MySQL中的逻辑备份和物理备份区别

MySQL中的逻辑备份和物理备份区别MySQL是目前使用最广泛的关系型数据库管理系统之一,备份是数据库管理中非常重要的一项工作。

备份可以帮助我们应对数据库意外损坏、误操作、数据丢失等情况,保证数据的安全性和完整性。

在MySQL中,常见的备份方式有逻辑备份和物理备份两种。

本文将详细介绍逻辑备份和物理备份的区别,并分析它们的适用场景以及优劣势。

一、概述逻辑备份和物理备份是MySQL中两种常见的备份方式。

它们的本质区别在于备份的对象不同。

逻辑备份是将数据库的逻辑结构、表、数据等以文本形式进行备份,而物理备份则是直接复制数据库的物理文件,包括数据文件、日志文件等。

下面我们将分别从备份内容、备份速度、备份恢复等方面对逻辑备份和物理备份进行详细比较。

二、备份内容逻辑备份的主要内容是数据库的逻辑结构和数据,备份文件通常以SQL语句的形式保存。

逻辑备份的优势在于备份文件相对较小,便于传输和存储。

此外,逻辑备份可以选择性地备份和恢复某个特定的表、库等,非常灵活。

但是,逻辑备份无法备份数据库的物理文件,因此无法还原数据库的物理结构和表空间等信息。

物理备份则是直接复制数据库的物理文件,备份的内容包括数据文件、日志文件、配置文件等。

物理备份的优势在于可以完整地备份和恢复整个数据库,包括数据库的物理结构、表空间等。

此外,物理备份速度较快,适用于大规模数据库的备份。

但是,物理备份的备份文件相对较大,传输和存储的成本较高。

三、备份速度逻辑备份的备份速度相对较慢。

由于逻辑备份需要逐条读取并处理SQL语句,对于大规模数据库来说,备份时间会比较长。

此外,逻辑备份还需要将数据以文本形式转储到备份文件中,因此对于数据量较大的数据库来说,备份文件的大小也会相应增加。

物理备份的备份速度相对较快。

因为物理备份是直接复制数据库的物理文件,不需要逐条处理SQL语句,因此备份速度较快。

此外,物理备份还可以采用增量备份和差异备份等方式,减少备份时间和备份文件的大小。

mysql冷备份 简书

mysql冷备份 简书

mysql冷备份简书MySQL冷备份是指在数据库不处于活动状态下进行的备份操作。

与热备份相比,冷备份不需要停止数据库的运行,因此可以在任何时间进行备份操作,不会对数据库的正常使用造成影响。

本文将介绍MySQL冷备份的相关知识和操作步骤,帮助读者了解和掌握这一技术。

一、什么是MySQL冷备份MySQL冷备份是指在数据库不处于活动状态下进行备份的一种方式。

冷备份的主要特点是备份过程中不会对数据库的正常使用产生影响,因此可以在任何时候进行备份操作。

冷备份一般适用于数据量较大、备份时间较长的情况,可以避免对数据库性能造成影响。

二、MySQL冷备份的优点1. 不影响数据库的正常使用:冷备份不需要停止数据库的运行,因此可以在任何时间进行备份操作,不会对数据库的正常使用造成影响。

2. 备份速度较快:由于数据库不处于活动状态,冷备份的速度相对较快,可以更快地完成备份操作。

3. 安全可靠:冷备份是在数据库关闭的状态下进行的,可以保证备份数据的一致性和完整性,备份结果更加可靠。

三、MySQL冷备份的操作步骤1. 停止MySQL服务:在进行冷备份之前,首先需要停止MySQL服务。

可以使用以下命令停止MySQL服务:```sudo service mysql stop```2. 备份数据文件:停止MySQL服务后,可以直接将数据库的数据文件进行备份。

数据文件一般存储在MySQL的数据目录下,可以使用以下命令进行备份:```sudo cp -R /var/lib/mysql /backup/```其中,`/var/lib/mysql`是MySQL的数据目录,`/backup/`是备份数据存放的目录。

3. 启动MySQL服务:完成数据文件的备份后,可以启动MySQL服务,继续使用数据库。

可以使用以下命令启动MySQL服务:```sudo service mysql start```4. 定期备份:为了保证数据的安全性,建议定期进行冷备份操作。

mysqldump 和 XtraBackup备份工具

mysqldump 和 XtraBackup备份工具

常用的MySQL备份工具对比:mysqldump 和XtraBackup当前,MySQL 数据库备份,有两种主要的备份方式,即mysqldump(逻辑备份)和XtraBackup(物理备份)。

一、mysqldump 对比Xtrabackup二、一些其他的重要差异两者除了上述差异,根据经验一些重要的建议如下:mysqldump是逻辑备份,在恢复的时候一方面跨版本的效果会更好,因为都是SQL语句;同时,也可能会因为字符集、数据库参数配置(如SQL_MODE等),导致恢复的时候失败或者出现一致性的问题。

而XtraBackup是物理备份,数据一致性总是可以保障,但是跨版本恢复能力比较弱。

mysqldump的备份与恢复的是官方自带的产品,所以也是被广泛使用的产品,但是因为他在大数据量(例如超过几百GB)时备份的性能、恢复的性能较差,所以,XtraBackup会是很好的补充。

在实践中,XtraBackup也是广泛被使用的,稳定性有比较好的保障,但是配置与使用的成本略微要高一些。

在构建自己的复制方案的时候,对于大型的生产系统中,比较建议使用。

三、概述mysqldump(逻辑备份)概要介绍:mysqldump 是MySQL 数据库备份的一种经典工具,它通过导出SQL 语句来备份数据库中的数据和结构。

这种备份方式被称为逻辑备份,因为它备份的是数据的逻辑表示,而不是物理数据文件。

以下是mysqldump 的一些关键特点:适用性:mysqldump 适用于小型到中型的MySQL 数据库,或者数据库大小不超过几百GB 的情况。

备份内容:mysqldump 会生成包含CREATE TABLE 和INSERT 语句的SQL 文件,其中包括数据表结构和数据内容。

优点:数据备份以文本格式存储,易于查看和编辑。

跨MySQL 版本的兼容性较好,可以在不同版本之间迁移备份数据。

具有备份数据库、表或特定查询结果的灵活性。

缺点:对于大型数据库,备份和还原速度相对较慢。

MySQL备份与恢复(6)source命令恢复和mysql恢复数据

MySQL备份与恢复(6)source命令恢复和mysql恢复数据

MySQL备份与恢复(6)source命令恢复和mysql恢复数据⼀、恢复数据库实践 1、利⽤source命令恢复数据库 进⼊mysql数据库控制台,mysql -uroot -p登录后 mysql>use 数据库 然后使⽤source命令,后⾯参数为脚本⽂件(如这⾥⽤到的 .sql) mysql>source oldboy_db.sql #这个⽂件是系统路径,默认是登陆mysql前的系统路径[root@localhost ~]# mysql -uroot -pdubinWelcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is75Server version: 5.5.32-log Source distributionCopyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h'for help. Type '\c' to clear the current input statement.mysql> show databases;+--------------------+| Database |+--------------------+| information_schema || mysql || oldboy || oldboy_gbk || oldboy_utf8 || performance_schema |+--------------------+6 rows in set (0.00 sec)mysql> drop database oldboy;Query OK, 4 rows affected (7.34 sec)mysql> show databases;+--------------------+| Database |+--------------------+| information_schema || mysql || oldboy_gbk || oldboy_utf8 || performance_schema |+--------------------+5 rows in set (0.00 sec)mysql> system ls /optall_bak.sql.gz mysql_bak_B_compact.sql mysql_bak.sql.gz oldboy_bak1.sql oldboy.sql.gza.sql.gz mysql_bak_B.sql mysqlbin_oldboy.000001 oldboy_bak.sql oldboy_utf8.sql.gzbak mysql_bak.sql mysql.sql.gz oldboy_gbk.sql.gz table.sqlmysql> source /opt/mysql_bak_B.sqlQuery OK, 0 rows affected (0.00 sec)…………Query OK, 0 rows affected (0.00 sec)mysql> show databases;+--------------------+| Database |+--------------------+| information_schema || mysql || oldboy || oldboy_gbk || oldboy_utf8 || performance_schema |+--------------------+6 rows in set (0.00 sec)mysql> select *from oldboy.test;+----+---------+| id | name |+----+---------+| 1 | oldboy || 2 | oldgirl || 3 | inca || 4 | zuma || 5 | kaka |+----+---------+5 rows in set (0.00 sec) 2、利⽤mysql命令恢复(标准) 问题:分库分表备份的数据如何快速恢复呢? 还是通过脚本指定的库和表,调⽤mysql命令恢复。

MySQL入门篇(七)之Xtrabackup备份与恢复

MySQL入门篇(七)之Xtrabackup备份与恢复

MySQL⼊门篇(七)之Xtrabackup备份与恢复 MySQL冷备、mysqldump、MySQL热拷贝都⽆法实现对数据库进⾏增量备份。

在实际⽣产环境中增量备份是⾮常实⽤的,如果数据⼤于50G或100G,存储空间⾜够的情况下,可以每天进⾏完整备份,如果每天产⽣的数据量较⼤,需要定制数据备份策略。

例如每周实⽤完整备份,周⼀到周六实⽤增量备份。

⽽Percona-Xtrabackup就是为了实现增量备份⽽出现的⼀款主流备份⼯具,xtrabakackup有2个⼯具,分别是xtrabakup、innobakupe。

Percona-xtrabackup是 Percona公司开发的⼀个⽤于MySQL数据库物理热备的备份⼯具,⽀持MySQL、Percona server和MariaDB,开源免费,是⽬前较为受欢迎的主流备份⼯具。

xtrabackup只能备份innoDB和xtraDB两种数据引擎的表,⽽不能备份MyISAM数据表。

(1)备份速度快,物理备份可靠(2)备份过程不会打断正在执⾏的事务(⽆需锁表)(3)能够基于压缩等功能节约磁盘空间和流量(4)⾃动备份校验(5)还原速度快(6)可以流传将备份传输到另外⼀台机器上(7)在不增加服务器负载的情况备份数据Xtrabackup备份流程图:(1)innobackupex启动后,会先fork⼀个进程,⽤于启动xtrabackup,然后等待xtrabackup备份ibd数据⽂件;(2)xtrabackup在备份innoDB数据是,有2种线程:redo拷贝线程和ibd数据拷贝线程。

xtrabackup进程开始执⾏后,会启动⼀个redo拷贝的线程,⽤于从最新的checkpoint 点开始顺序拷贝redo.log;再启动ibd数据拷贝线程,进⾏拷贝ibd数据。

这⾥是先启动redo拷贝线程的。

在此阶段,innobackupex进⾏处于等待状态(等待⽂件被创建)(4)xtrabackup拷贝完成ibd数据⽂件后,会通知innobackupex(通过创建⽂件),同时xtrabackup进⼊等待状态(redo线程依旧在拷贝redo.log)(5)innobackupex收到xtrabackup通知后哦,执⾏FLUSH TABLES WITH READ LOCK(FTWRL),取得⼀致性位点,然后开始备份⾮InnoDB⽂件(如frm、MYD、MYI、CSV、opt、par等格式的⽂件),在拷贝⾮InnoDB⽂件的过程当中,数据库处于全局只读状态。

Shell脚本编写如何进行数据库操作和备份

Shell脚本编写如何进行数据库操作和备份

Shell脚本编写如何进行数据库操作和备份数据库操作和备份是许多软件开发和系统管理工作中的重要任务。

Shell脚本是一种强大的工具,可以用于自动化这些操作,提高工作效率。

本文将介绍如何使用Shell脚本进行数据库操作和备份。

一、数据库连接在进行数据库操作之前,首先需要连接到数据库。

Shell脚本中可以使用命令行工具如mysql或者psql来实现数据库连接。

以下是一个连接到MySQL数据库的示例脚本:```#!/bin/bashDB_HOST="localhost"DB_USER="username"DB_PASSWORD="password"DB_NAME="database_name"mysql -h $DB_HOST -u $DB_USER -p$DB_PASSWORD$DB_NAME```在脚本中,需要根据实际情况修改`DB_HOST`、`DB_USER`、`DB_PASSWORD`和`DB_NAME`这些变量的值。

通过运行上述脚本,就能够连接到指定的MySQL数据库。

二、执行SQL查询连接到数据库之后,可以在Shell脚本中执行SQL查询操作。

以下是一个示例脚本,用于在MySQL数据库中查询数据并输出结果:```#!/bin/bashDB_HOST="localhost"DB_USER="username"DB_PASSWORD="password"DB_NAME="database_name"QUERY="SELECT * FROM table_name"mysql -h $DB_HOST -u $DB_USER -p$DB_PASSWORD$DB_NAME -e "$QUERY"```在脚本中,`QUERY`变量保存了要执行的SQL查询语句。

数据库备份与恢复工具使用指南

数据库备份与恢复工具使用指南数据库备份与恢复工具是数据库管理系统中必不可少的工具之一。

它们的功能是将数据库中的数据和结构定期备份并存储起来,以便在数据丢失或损坏时能够进行快速恢复。

本文将介绍几种常见数据库备份与恢复工具的使用方法及注意事项。

一、MySQL备份与恢复工具MySQL是一种常用的关系型数据库管理系统,具有备份与恢复工具的良好支持。

以下是使用MySQL备份与恢复工具的步骤:1. 导出数据库:使用命令行或可视化工具登录MySQL数据库,并执行以下命令来导出整个数据库:```mysqldump -u username -p databasename > backup.sql```其中,username为数据库用户名,databasename为要备份的数据库名称,backup.sql为备份文件的存储路径。

2. 导入数据库:使用命令行或可视化工具登录MySQL数据库,创建一个新的数据库,然后执行以下命令来导入备份文件:```mysql -u username -p newdatabasename < backup.sql```其中,username为数据库用户名,newdatabasename为要导入的数据库名称,backup.sql为备份文件的存储路径。

注意事项:- 在执行导出和导入命令时,确保已经正确安装和配置了MySQL服务。

- 备份和恢复过程可能需要一段时间,取决于数据库的大小和复杂性。

二、Oracle备份与恢复工具Oracle是一种强大的企业级关系型数据库管理系统,也有自己的备份与恢复工具。

以下是使用Oracle备份与恢复工具的步骤:1. 导出数据库:登录Oracle数据库,在命令终端或SQL*Plus中执行以下命令来导出整个数据库:```exp username/password@SID file=backup.dmp full=y```其中,username/password为数据库用户名和密码,SID为数据库的唯一标识,backup.dmp为备份文件的存储路径。

MySQL 数据库基础与应用 第11章 备份和恢复


MySQL 数据库基础与应用
5
11.2 导出表数据和备份数据
ESCAPED BY子句用来指定转义字符,例如,“ESCAPED BY '*'”将“*”指定为转义字符,取代“\”,如空格将表示为“*N”。
● LINES子句:在LINES子句中使用TERMINATED BY指定一行 结束的标志,如“LINES TERMINATED BY '?'”表示一行以“?”作为 结束标志。
语法格式:
SELECT columnist FROM table WHERE condition INTO OUTFILE 'filename' [OPTIONS]
其中,OPTIONS的语法格式:
FIELDS TERMINATED BY 'value' FIELDS [OPTIONALLY] ENCLOSED BY 'value' FIELDS ESCAPED BY 'value' LINES STARTING BY 'value' LINES TERMINATED BY 'value'
MySQL 数据库基础与应用
6
11.2 导出表数据和备份数据
【例11.1】将sales数据库中的goods表中数据备份到指定目录: C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/,要求字段值如果是字 符就用“”””标注,字段值之间用“,”隔开,每行以“?”为结束标志。
MySQL 数据库基础与应用
3
11.2 导出表数据和备份数据
11.2.1 导出表数据
使用SELECT…INTO OUTFILE语句可以导出表数据的文本文 件。可以使用LOAD DATA INFILE语句恢复先前导出的表数据。 但SELECT…INTO OUTFILE只能导出或导入表的数据内容,而不 能导出表结构。

NavicatPremium实现mysql数据库备份还原

NavicatPremium实现mysql数据库备份还原
Navicat Premium 是⼀个⾮常好⽤的数据库(⽀持 MySQL、SQLite、Oracle、SQL Server 及 PostgreSQL 等数据库)的图形化⼯具,今天我们主要是讲解如何⽤Navicat(Navicat Premium ,或者Navicat for mysql等的类似)备份和恢复数据库。

主要是讲解两种简单的⽅法:
⽅法⼀、利⽤数据库中⾃带的备份⼯具备份和恢复
⾸先要打开⼀个数据库连接,找到需要备份的数据库,按照下图数据操作即可(我这⾥⽤的是英⽂版的,以mysql为案例讲解)
1,先打开 Navicat 图形化⼯具,双击打开连接,在打开niwoxuexi数据库(这个是我们作为测试的数据库)
2,展开数据库,找到Backups(备份) 右键-------> 点击 New Backup (新建备份) ------>点击 Start(开始) 如图就备份成功了
3,恢复数据库,直接上图:
好了第⼀种备份和恢复数据库的⽅法就好了
⽅法⼆、直接保存sql⽂件
1,右键要备份的数据库-------> 点击 Dump SQL File------>点击Structure + Data--------> 输⼊⽂件名并选择保存的位置,点击 Start(开始) 如图
就备份成功了
始,成功后刷新数据库。

Mac命令行数据库备份技巧使用mysqldump和sqlite备份和还原数据库

Mac命令行数据库备份技巧使用mysqldump 和sqlite备份和还原数据库在Mac上使用命令行进行数据库备份是一种高效且灵活的方式。

本文将介绍如何使用命令行工具mysqldump和sqlite来备份和还原数据库。

以下是详细步骤:一、使用mysqldump备份MySQL数据库mysqldump是一个可用于备份MySQL数据库的命令行工具。

以下是使用mysqldump备份MySQL数据库的步骤:1. 打开终端(Terminal)应用程序。

2. 输入以下命令,其中username是你的MySQL用户名,password是你的MySQL密码,db_name是你要备份的数据库名称,backup.sql是备份文件的名称:```mysqldump -u username -p password db_name > backup.sql```3. 按下回车键执行命令,系统会提示你输入MySQL密码。

4. 输入正确的MySQL密码后,mysqldump会开始备份数据库,并将备份文件保存为backup.sql。

5. 备份完成后,你可以在当前路径下找到backup.sql文件,这就是你的数据库备份文件。

二、使用mysqldump还原MySQL数据库除了备份数据库,mysqldump还可以用于还原数据库。

以下是使用mysqldump还原MySQL数据库的步骤:1. 打开终端(Terminal)应用程序。

2. 输入以下命令,其中username是你的MySQL用户名,password 是你的MySQL密码,db_name是你要还原的数据库名称,backup.sql 是备份文件的名称:```mysql -u username -p password db_name < backup.sql```3. 按下回车键执行命令,系统会提示你输入MySQL密码。

4. 输入正确的MySQL密码后,mysqldump会开始还原数据库,并将备份文件中的数据导入到数据库。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档