mysqldump备份方法怎么使用

47次阅读
没有评论

共计 3564 个字符,预计需要花费 9 分钟才能阅读完成。

本篇内容介绍了“mysqldump 备份方法怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让丸趣 TV 小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

起步

物理备份

 备份数据文件,转储数据库物理文件到某一目录。物理备份恢复速度比较快,但占用空间比较大,MySQL 中可以用  xtrabackup  工具来进行物理备份。

逻辑备份

 对数据库对象利用工具进行导出工作,汇总入备份文件内。逻辑备份恢复速度慢,但占用空间小,更灵活。MySQL  中常用的逻辑备份工具为  mysqldump。逻辑备份就是备份 sql 语句,在恢复的时候执行备份的 sql 语句实现数据库数据的重现 

逻辑备份

备份 1 个数据库

mysqldump –u  用户名称  –h  主机名称  –p 密码   待备份的数据库名称 [tbname, [tbname...]]   备份文件名称.sql
mysqldump -uroot -p atguigudb1   /var/lib/mysql/atguigu.sql

备份全部数据库

mysqldump -uroot -pxxxxxx --all-databases   all_database.sql
mysqldump -uroot -pxxxxxx -A   all_database.sql

备份部分数据库

mysqldump –u user –h host –p --databases [数据库的名称 1  [ 数据库的名称 2...]]    备份文件名称.sql
mysqldump -uroot -p --databases atguigu atguigu12  two_database.sql
mysqldump -uroot -p -B atguigu atguigu12   two_database.sql

备份部分表

mysqldump –u user –h host –p  数据库的名称  [表名 1  [ 表名 2...]]    备份文件名称.sql
#  只备份 book 表
mysqldump -uroot -p atguigu book  book.sql
#  备份多张表
mysqldump -uroot -p atguigu book account   2_tables_bak.sql

备份单表的部分数据

#  备份 student 表中 id 小于 10 的数据
mysqldump -uroot -p atguigu student --where= id   10     student_part_id10_low_bak.sql

过滤某些表不做备份

mysqldump -uroot -p atguigu --ignore-table=atguigu.student   no_stu_bak.sql

只备份结构

#  只备份结构的话可以使用  --no-data  简写为  -d  选项
mysqldump -uroot -p atguigu --no-data   atguigu_no_data_bak.sql

只备份数据

#  只备份数据可以使用  --no-create-info  简写为  -t  选项
mysqldump -uroot -p atguigu --no-create-info   atguigu_no_create_info_bak.sql

备份中包含存储过程、函数、事件

# mysqldump 备份默认是不包含存储过程,自定义函数及事件的。可以使用  --routines  或  -R  选项来备份存储过程及函数,使用  --events  或  -E  参数来备份事件
mysqldump -uroot -p -R -E --databases atguigu   fun_atguigu_bak.sql

mysqldump 其他常用选项

--add-drop-database:在每个 CREATE DATABASE 语句前添加 DROP DATABASE 语句。--add-drop-tables:在每个 CREATE TABLE 语句前添加 DROP TABLE 语句。--add-locking:用 LOCK TABLES 和 UNLOCK TABLES 语句引用每个表转储。重载转储文件时插入得更快。--all-database, -A:转储所有数据库中的所有表。与使用 --database 选项相同,在命令行中命名所有数据库。--comment[=0|1]:如果设置为 0,禁止转储文件中的其他信息,例如程序版本、服务器版本和主机。--skipcomments 与 --comments= 0 的结果相同。默认值为 1,即包括额外信息。--compact:产生少量输出。该选项禁用注释并启用 --skip-add-drop-tables、--no-set-names、--skipdisable-keys 和 --skip-add-locking 选项。--compatible=name:产生与其他数据库系统或旧的 MySQL 服务器更兼容的输出,值可以为 ansi、MySQL323、MySQL40、postgresql、oracle、mssql、db2、maxdb、no_key_options、no_table_options 或者 no_field_options。--complete_insert, -c:使用包括列名的完整的 INSERT 语句。--debug[=debug_options], -#[debug_options]:写调试日志。--delete,-D:导入文本文件前清空表。--default-character-set=charset:使用 charsets 默认字符集。如果没有指定,就使用 utf8。--delete--master-logs:在主复制服务器上,完成转储操作后删除二进制日志。该选项自动启用 -masterdata。--extended-insert,-e:使用包括几个 VALUES 列表的多行 INSERT 语法。这样使得转储文件更小,重载文件时可以加速插入。--flush-logs,-F:开始转储前刷新 MySQL 服务器日志文件。该选项要求 RELOAD 权限。--force,-f:在表转储过程中,即使出现 SQL 错误也继续。--lock-all-tables,-x:对所有数据库中的所有表加锁。在整体转储过程中通过全局锁定来实现。该选项自动关闭 --single-transaction 和 --lock-tables。--lock-tables,-l:开始转储前锁定所有表。用 READ LOCAL 锁定表以允许并行插入 MyISAM 表。对于事务表(例如 InnoDB 和 BDB),--single-transaction 是一个更好的选项,因为它根本不需要锁定表。--no-create-db,-n:该选项禁用 CREATE DATABASE /*!32312 IF NOT EXIST*/db_name 语句,如果给出 --database 或 --all-database 选项,就包含到输出中。--no-create-info,-t:只导出数据,而不添加 CREATE TABLE 语句。--no-data,-d:不写表的任何行信息,只转储表的结构。--opt:该选项是速记,它可以快速进行转储操作并产生一个能很快装入 MySQL 服务器的转储文件。该选项默认开启,但可以用 --skip-opt 禁用。--password[=password],-p

  此处含有隐藏内容,需要正确输入密码后可见!

:当连接服务器时使用的密码。-port=port_num,-P port_num:用于连接的 TCP/IP 端口号。--protocol={TCP|SOCKET|PIPE|MEMORY}:使用的连接协议。--replace,-r –replace 和 --ignore:控制替换或复制唯一键值已有记录的输入记录的处理。如果指定 --replace,新行替换有相同的唯一键值的已有行;如果指定 --ignore,复制已有的唯一键值的输入行被跳过。如果不指定这两个选项,当发现一个复制键值时会出现一个错误,并且忽视文本文件的剩余部分。--silent,-s:沉默模式。只有出现错误时才输出。--socket=path,-S path:当连接 localhost 时使用的套接字文件(为默认主机)。--user=user_name,-u user_name:当连接服务器时 MySQL 使用的用户名。--verbose,-v:冗长模式,打印出程序操作的详细信息。--xml,-X:产生 XML 输出。

“mysqldump 备份方法怎么使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注丸趣 TV 网站,丸趣 TV 小编将为大家输出更多高质量的实用文章!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-13发表,共计3564字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)