`

Mysql的备份(命令方式)

阅读更多

定期的备份可使我们数据库崩溃造成的损失大大降低。在MySQL中进行数据备份的方法有两种,一种是使用mysqldump程序,一种是使用mysqlhotcopy、cp、tar或cpio等打包程序直接拷贝数据库文件。mysqldump程序备份数据库较慢,但它生成的文本文件便于移植。使用mysqlhotcopy等程序备份速度快,因为它直接对系统文件进行操作,需人为协调数据库数据的备份前后一致性。 

使用mysqldump备份数据库其实就是把数据库转储成一系列CREATE TABLE和INSERT语句,通过这些语句我们就可重新生成数据库。使用mysqldump的方法如下: 

% mysqldump --opt testdb | gzip > /data/backup/testdb.bak 
#--opt选项会对转储过程进行优化,生成的备份文件会小一点,后的管道操作会进行数据压缩 
% mysqldump --opt testdb mytable1,mytable2 | gzip > /data/backup/testdb_mytable.bak 
#可在数据库后接数据表名,只导出指定的数据表,多个数据表可用逗号分隔 


--opt选项还可激活--add-drop-table选项,它将会在备份文件的每条CREATE TABLE前加上一条DROP TABLE IF EXISTS语句。这可方便进行数据表的更新,而不会发生“数据表已存在”的错误。 

用mysqldump命令还可直接把数据库转移到另外一台服务器上,不用生成备份文件。重复执行可定期更新远程数据库。 

% mysqladmin -h remote_host create testdb 
% mysqldump --opt testdb | mysql -h remote_host testdb 
另外还可通过ssh远程调用服务器上的程序,如: 
% ssh remote_host mysqladmin create testdb 
% mysqldump --opt testdb | ssh remote_host mysql testdb 

通过直接拷贝系统文件的方式备份数据库,在备份时,要确保没有人对数据库进行修改操作。要做到这点,最好关闭服务器。如果不能关闭的,要以只读方试锁定有关数据表。下面是一些示例: 

% cp -r db /backup/db #备份db数据库到/backup/db目录 
% cp table_name.* /backup/db #只备份table_name数据表 
% scp -r db remotehot:/usr/local/mysql/data #用scp把数据库直接拷贝到远程服务器 


在把数据库直接拷贝到远程主机时,应注意两台机器必须有同样的硬件结构,或者将拷贝的数据表全部是可移植数据表类型。 

使用mysqlhotcopy工具,它是一个Perl DBI脚本,可在不关闭服务器的情况下备份数据库,它主要的优点是: 

它直接拷贝文件,所以它比mysqldump快。 

可自动完成数据锁定工作,备份时不用关闭服务器。 

能刷新日志,使备份文件和日志文件的检查点能保持同步。 

下面是该工具的使用示例: 

% mysqlhotcopy db /bakcup/ #把db数据库备份到backup/db目录里,会自动创建一个db目录 

使用BACKUP TABLE语句进行备份,该语句最早出现在MySQL 3.23.25版本中,仅适用于MyISAM数据表。用法如下: 

mysql> BACKUP TABLE mytable TO '/backup/db'; #把mytable数据表备份到/backup/db目录下 

为了执行该语句,你必须拥有那些表的FILE权限和SELECT权限,备份目录还必须是服务器可写的。该语句执行时,会先把内存中的数据写入磁盘,再把各个数据表的.frm(表结构定义文件)、.MYD(数据)文件从数据目录拷贝到备份目录。它不拷贝.MYI(索引)文件,因为它能用另外两个文件重建。BACKUP TABLE语句备份时,依次锁定数据表,当同时备份多个数据表时,数据表可能会被修改,所以备份0完成时,备份文件中的数据和现时数据表中的数据可能会有差异,为了消除该差异,我们可用只读方式锁定数据表,在备份完成后再解锁。如: 

mysql> LOCK TABLES tb1 READ,tb2 READ; 
mysql> BACKUP TABLE tb1,tb2 TO 'backup/db'; 
mysql> UNLOCK TABLES; 

使用BACKUP TABLE语句备份的数据表可用RESTORE TABLE重新加载到服务器。 

InnoDB和BDB数据库也可用mysqldump和直接拷贝法进行备份。使用直接拷贝法时应注意需把组成InnoDB和BDB数据库的所有文件都拷贝下来,如InnoDB的.frm文件、日志文件和表空间配置文件;BDB的数据文件、日志文件等。 

使用镜像机制进行备份,我们可用SLAVE STOP语句挂起从服务器的镜像,在从服务器上通过直接拷贝法或其它工具制作备份。备份完成,用SLAVE START重新启动镜像,从服务器重新与主服务器同步,接收备份时主服务器所做的修改。 

在MySQL中没有为数据库重命名的命令,但我们可用mysqldump转储数据库,再创建一个新的空数据库,把转储文件加载到该新数据库,这样就完成数据库重命名的工作。如: 

% mysqldump old_db >db.sql #转储db数据库数据 
% mysqladmin create new_db #新建一个空的数据库 
% mysql new_db < db.sql #把db数据库的数据加载到新的数据库中 
% mysqladmin drop old_db #删除旧的数据库 

一个更简单的重命名数据库的方法是直接修改数据库目录名,但该方法不适用于InnoDB和BDB数据库。注意,在更名后,需在权限表中更新相关数据表信息,需执行以下语句: 

mysql> UPDATE db SET db='new_db' WHERE db='old_db'; 
mysql> UPDATE tables_priv SET db='new_db' WHERE db='old_db'; 
mysql> UPDATE columns_priv SET db='new_db' WHERE db='old_db'; 
mysql> UPDATE host SET db='new_db' WHERE db='old_db';

分享到:
评论

相关推荐

    mysql数据备份和还原的常用命令

    MySQL 数据备份命令 1. 备份 MySQL 数据库的命令 mysqldump -hhostname -uusername -ppassword databasename &gt; backupfile.sql 该命令将备份整个 MySQL 数据库,包括结构和数据。 2. 备份 MySQL 数据库为带删除...

    Mysql备份还原命令

    以下是一些基本的备份命令: 1. 备份整个数据库: ```bash mysqldump -h localhost -u root -p -R database_name &gt; backup.sql ``` 这个命令会备份包括所有表和存储过程在内的`database_name`数据库,并将其...

    Java操作mysql备份

    总的来说,Java操作MySQL备份是一项实用的技术,它使得开发者可以通过自动化的方式定期备份数据库,保障数据的安全。通过阅读和理解提供的文件,你可以掌握这一技能,为自己的项目提供可靠的数据库备份方案。

    mysql数据库的备份命令详解

    本文将深入探讨MySQL数据库的备份命令,通过具体操作步骤和实战演练,帮助读者理解并掌握MySQL数据库的备份与恢复流程。 ### MySQL数据库备份的重要性 数据库备份是指为了防止系统故障、误操作或自然灾害等意外...

    MYSQL备份并压缩bat

    一个用于备份MYSQL数据库的bat文件, 使用mysqldump命令, 并在dump后使用winrar命令将文件压缩成rar文件(前提: 需要安装winrar并将其添加到环境变量中)

    mysql手动备份命令

    mysql window linux手动备份命令,自动包含时间戳

    mysql备份脚本-按日期进行备份,并进行压缩

    ### MySQL备份脚本知识点解析 #### 一、脚本概述 该脚本主要实现了MySQL数据库的备份功能,并根据当前日期创建对应的备份文件夹与备份文件,同时对备份文件进行了压缩处理。此脚本适用于Windows环境。 #### 二、...

    Windows下mysql备份

    ### Windows 下 MySQL ...综上所述,Windows 环境下的 MySQL 备份可以通过多种方式进行,包括简单的文件复制、逻辑备份以及实时同步等,每种方法都有其适用场景和局限性,选择合适的备份方案对于保障数据安全至关重要。

    Windows下MySql自动备份脚本(有备份日志,且可以删除历史备份).zip

    在这个特定的场景中,`MysqlAutoBackup.bat`文件包含了一系列的DOS命令和MySQL相关命令,如`mysqldump`,来实现数据库的备份。 1. **mysqldump命令**:这是MySQL的一个实用程序,用于导出数据库结构和数据。在...

    MYSQL备份、还原

    MySQL备份主要是为了防止数据丢失,这可能由于硬件故障、软件错误、人为操作失误或恶意攻击等原因引起。备份策略通常包括全量备份、增量备份和差异备份,每种都有其适用场景和优缺点。 全量备份是最基础的备份类型...

    mysqldump java远程备份mysql数据库 cmd备份

    例如,如果远程服务器地址是`192.168.1.100`,用户名是`admin`,数据库名为`mydb`,则备份命令应为: ```shell mysqldump -h 192.168.1.100 -u admin -p mydb &gt; backup.sql ``` 执行此命令后,会生成一个名为`...

    mysql备份.zip

    "mysql备份.zip"这个压缩包提供了在Windows和Linux操作系统上进行MySQL数据库自动备份的解决方案。 在Windows环境下,"db.bat"是一个批处理文件,用于执行MySQL的备份任务。批处理文件通常包含一系列命令,这里可能...

    实验报告六 MYSQL备份与恢复.docx

    根据提供的实验报告“MYSQL备份与恢复”的相关内容,我们可以总结出以下几个关键知识点: ### 一、MYSQL日志管理 #### 1. 错误日志 - **定义**: 记录MySQL运行过程中的错误信息和警告信息。 - **作用**: 帮助管理...

    mysql 文件夹 备份

    MySQL是世界上最流行的开源关系型数据库管理系统之一,它提供了多种方式来备份和恢复数据。这篇博客链接(https://qinya.iteye.com/blog/1668634)可能详细介绍了如何对MySQL数据库进行文件夹级别的备份,但在此我们...

    mysql批处理 备份数据库-压缩文件

    1. **连接数据库**:使用`mysql`命令或者`mysqldump`命令,登录到MySQL服务器,指定服务器地址、端口、用户名、密码和需要备份的数据库名。 2. **创建备份**:使用`mysqldump`命令生成SQL文件,这将包含数据库的...

    MySQL备份数据库的命令.doc

    MySQL备份数据库的命令 MySQL 是一个流行的开源关系型数据库管理系统,备份数据库是数据库管理员的重要任务之一。备份数据库可以防止数据丢失,确保业务连续性。本文将介绍使用 mysqldump 命令备份 MySQL 数据库的...

    mysql数据备份脚本

    2. **编写备份命令**:使用 `mysqldump` 命令可以导出数据库为 SQL 文件。基本格式如下: ``` mysqldump -u [username] -p[password] [database_name] &gt; [backup_file.sql] ``` 这里,`[username]` 是 MySQL ...

    mysql备份脚本.rar

    本文将详细解析“mysql备份脚本.rar”压缩包中的内容,包括在Windows和Linux操作系统中如何利用脚本来进行MySQL数据库的备份。 1. **MySQL备份的重要性** 数据库备份是为了防止意外数据丢失,如硬件故障、软件错误...

    mysql数据库备份和恢复工具

    一、MySQL备份的重要性 数据库备份是防止数据丢失的关键步骤。无论是系统故障、硬件损坏、恶意攻击还是人为错误,都有可能导致数据丢失。定期备份可以确保在灾难发生时,能够快速恢复到正常状态,降低业务中断的影响...

Global site tag (gtag.js) - Google Analytics