欢迎访问宙启技术站
智能推送

mysql备份还原库命令有哪些

发布时间:2023-05-18 00:05:30

MySQL是一种流行的关系型数据库管理系统,它具有良好的可扩展性和稳定性,常用于网站、应用程序的后端开发。

数据备份和恢复是数据库管理的重要事项,当数据库遭受严重故障时,备份数据能够快速恢复数据,以便保证业务正常运行。

在MySQL中,备份和恢复数据的命令有多种,适用于不同类型的数据备份和恢复。以下是MySQL备份和恢复常用命令的详细介绍。

一、MySQL数据备份命令

1. mysqldump

mysqldump是MySQL备份工具中最经典和最常用的命令之一。mysqldump可以导出整个数据库、单个表或者仅导出某些数据,支持对备份数据的压缩或不压缩,生成.sql文件,便于快速恢复备份数据。

命令语法:

mysqldump [options] db_name [tbl_name …]

参数解释:

- [options]: 配置选项,如--host、--user等;

- db_name: 指定要备份的数据库名;

- [tbl_name…]: 指定要备份的表名,可以是多个表。

示例:

备份整个数据库:

mysqldump -u root -p --default-character-set=utf8 dbname > dbname.sql

备份单个表:

mysqldump -u root -p dbname table1 > table1.sql

备份多个表:

mysqldump -u root -p dbname table1 table2 table3 > tables.sql

2. mysqlhotcopy

mysqlhotcopy是MySQL备份工具中比较老的一种,主要用于备份MyISAM表,支持本地或远程备份,备份时,需要对表进行锁定,以确保备份数据的一致性。

命令语法:

mysqlhotcopy [options] database[/table …] /path/to/backupdir

参数解释:

- [options]: 配置选项,如--user、--password等;

- database[/table…]: 指定要备份的数据库和表,可以是多个表;

- /path/to/backupdir: 指定备份文件存放路径。

示例:

备份整个数据库:

mysqlhotcopy -u root -p dbname /backup/directory

备份单个表:

mysqlhotcopy -u root -p dbname table1 /backup/directory

3. LVM 快照备份

LVM是Linux上一个用于硬盘卷管理的工具,它可以创建逻辑分区,并允许在线重调整分区大小,甚至允许对当前系统的分区进行备份和恢复。因此,使用LVM快照技术进行备份,可以在不阻塞MySQL任何操作的情况下生成可靠的备份数据。

步骤:

1. 创建LVM快照:

lvcreate -L 10GB -s -n dbname-snap /dev/vg01/dbname

2. 挂载快照卷到一个目录中:

mkdir /mnt/dbname-snap
mount /dev/mapper/vg01-dbname--snap /mnt/dbname-snap

3. 备份目录:

tar czvf /backup/directory/dbname.tar.gz /mnt/dbname-snap

4. 卸载快照卷和删除快照:

umount /mnt/dbname-snap
lvremove /dev/vg01/dbname-snap

二、MySQL数据恢复命令

1. mysql命令

mysql命令可以在MySQL中执行用户指定的SQL语句,从而进行数据重建和恢复。通常,mysql命令会将用户提供的.sql文件导入到MySQL中。

命令语法:

mysql -h [hostname] -u[username] -p[password] [database_name] < backup-file.sql

参数解释:

- -h: 指定数据库所在的主机IP地址,如果在本地,则省略不写;

- -u: 指定访问数据库的用户名;

- -p: 指定访问数据库的用户密码;

- [database_name]: 指定要恢复的数据库名;

- < backup-file.sql: 指定备份文件路径和文件名。

示例:

mysql -uroot -p dbname < /backup/directory/dbname.sql

2. mysqlimport命令

mysqlimport命令是一个MySQL的工具,用于从外部文件加载一组CSV格式的数据文件到MySQL数据库表中。

命令语法:

mysqlimport [options] [tablename] file_name.txt

参数解释:

- [options]: 配置选项,如--user、--host等;

- [tablename]: 指定要恢复数据的表名;

- file_name.txt: 外部文件名。

示例:

mysqlimport -uroot -p --local dbname table1 /backup/directory/table1.txt

3. 直接复制数据库目录

直接复制数据库目录,也是一种恢复数据库的方法。这种方式通常用于将整个文件系统保存到另一台机器上,并将数据库复制到新机器上。

步骤:

1. 关闭MySQL服务:

service mysql stop

2. 把MySQL目录复制到新机器上:

scp -r /var/lib/mysql user@new-server:/var/lib/

3. 启动MySQL服务:

service mysql start

总结:

MySQL备份和恢复是管理MySQL数据库系统的重要任务,备份和恢复方法生产环境需要根据业务需求进行选择,在此我们介绍了mysqldump、mysqlhotcopy、LVM快照备份、mysql和mysqlimport等备份、恢复命令。

在备份数据库的过程中我们要注意备份周期的设置,充分利用MySQL的优点,如InnoDB提供免排他锁功能和二进制日志(ID)技术,让数据备份不影响业务的正常运营。