博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysqldump学习
阅读量:6115 次
发布时间:2019-06-21

本文共 2009 字,大约阅读时间需要 6 分钟。

  hot3.png

文本格式的备份+二进制备份

文本格式:mysqldump
二进制格式:mysqlhotcopy、cp、rsync     

    mysqldump程序把数据表的内容写到文本文件中,默认情况下mysqldump将输出写入一个文件中。mysqldump导出的文件只能用mysql命令来导入。如果使用了--tab选项,则会生成两个文件,创建语句被放置到一个文件,数据被放置到另一个文件,mysqldump有以下三种运行方式:

mysqldump [OPTIONS] database [tables]
  mysqldump将dump指定数据库的指定表,如果没有指定表,则dump所有的表
mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
  mysqldump将所有的参数都解释为数据库名,然后依次dump所有库里面的所有表
mysqldump [OPTIONS] --all-databases [OPTIONS]
  mysqldump将dump所有数据库里面的所有表
以下仅列出一些常用的mysqldump参数:
  -A, --all-databases   dump所有的数据库
  -Y, --all-tablespaces  dump所有的表空间
  -y, --no-tablespaces   不dump表空间
  --add-drop-database 在执行create databases语句前先执行DROP DATABASE语句
  --add-drop-table    在执行create table之前先执行DROP TABLE语句
  --character-sets-dir=name 
  --compatible=name   这个选项导致mysqldump对导出的结果进行必要的修改,以便于其他数据库类型进行兼容
  --compact     生成简洁的输出
  -C, --compress     Use compression in server/client protocol.
  -B, --databases   将所有参数都解释为数据库名 
  --default-character-set=name  设置默认字符集,是utf8                   
  -E, --events      把事件也dump到文件里
  -e, --extended-insert 在导出文件里同时插入多个数据行的insert语句,比使用只插入单个数据行的insert效率高                     
  -F, --flush-logs    在导出开始前先清空log日志。 
  -f, --force         即使在dump过程中出现错误也要dump
  -h, --host=name     远程dump时使用,设置远程数据库机器的名称
  --ignore-table=name 不对指定的表进行dump
  -l, --lock-tables   在dump前先锁表,对于myisam引擎有用
  -p, --password[=name] 指定连接数据库时的密码
  -P, --port=#        指定数据库的端口
  -q, --quick         不使用缓存,dump出来的数据直接写入文件中
  --single-transaction 在dump innodb库时采用该参数,会当作一个事务运行的
  -S, --socket=name   通过socket连接数据库

   一般都是一个库后面跟几个表来备份,如果要要备份多个库,则需要使用--databases参数,mysqldump会把你在命令行上的所有名字都解释为库名,如果要备份所有库,则使用--all-databases参数即可,后面不用跟库名。

   如果在备份innodb表时,加上--single-transaction参数,会把备份操作放在一个事物中进行。如果数据库包含存储历程、触发器、事件,可以使用--routines、--triggers、--events参数明确的把他们包括到备份输出里面,默认情况下只有触发器被包括在备份输出里面。

例如:

单表备份

   mysqldump -uroot -p dbname tab1 >  xxx.sql
多表备份
   mysqldump -u root -p daname tb1 tb2 > xxx.sql

在备份的同时进行压缩

   mysqldump -uroot -pxxx db table | gzip > xxx
可以在备份的时候直接转储到另一台mysql服务器

   mysqldump --databases xxx | mysql -hxxx -uroot --compress database_name

二进制备份
    mysqlhotcopy是一个制作数据库备份的perl脚本,他比mysqldump要快,他直接复制数据表文件,不过只能用来复制myisam。

转载于:https://my.oschina.net/guol/blog/145852

你可能感兴趣的文章
jQuery最佳实践
查看>>
centos64i386下apache 403没有权限访问。
查看>>
vb sendmessage 详解1
查看>>
jquery用法大全
查看>>
Groonga 3.0.8 发布,全文搜索引擎
查看>>
PC-BSD 9.2 发布,基于 FreeBSD 9.2
查看>>
网卡驱动程序之框架(一)
查看>>
css斜线
查看>>
Windows phone 8 学习笔记(3) 通信
查看>>
重新想象 Windows 8 Store Apps (18) - 绘图: Shape, Path, Stroke, Brush
查看>>
Revit API找到风管穿过的墙(当前文档和链接文档)
查看>>
Scroll Depth – 衡量页面滚动的 Google 分析插件
查看>>
Windows 8.1 应用再出发 - 视图状态的更新
查看>>
自己制作交叉编译工具链
查看>>
Qt Style Sheet实践(四):行文本编辑框QLineEdit及自动补全
查看>>
[物理学与PDEs]第3章习题1 只有一个非零分量的磁场
查看>>
深入浅出NodeJS——数据通信,NET模块运行机制
查看>>
onInterceptTouchEvent和onTouchEvent调用时序
查看>>
android防止内存溢出浅析
查看>>
4.3.3版本之引擎bug
查看>>