mysqldump 备份常用选项以及备份脚本

1、备份命令:

# mysqldump -u‘root‘  -p‘12345‘ -h 127.0.0.1 \

-q --single-transaction -R -E \

--triggers --default-character-set=utf8 \

-B test | gzip > test.`date +%F_%T`.sql

2、备份脚本:

# cat /dbback.sh

#!/bin/bash

datetime=`date +%F_%T`

dbname=(mysql test )

echo $datetime  > /backdb.log

for db in ${dbname[*]}

do

echo "############################## db back $db  begin time is $(date +%F_%T) ##############################" >> /backdb.log

mysqldump -u‘root‘  -p‘12345‘ -h 127.0.0.1  -q --single-transaction -R -E --triggers --default-character-set=utf8 -B ${db} | gzip  > /${db}.$(date +%F_%T).sql.gz

echo "############################## db back $db  end time is   $(date +%F_%T) ##############################" >> /backdb.log

sleep 2;

echo "" >> /backdb.log

echo "" >> /backdb.log

done

sleep 5

find / -name "*.sql.gz" -type f -mtime +45  | xargs rm -rf

[[email protected] ~ ]#

3、命令说明:

-q, --quick   Don‘t buffer query, dump directly to stdout.不要缓存查询,直接转储到stdout。

--single-transaction

Creates a consistent snapshot by dumping all tables in a

single transaction. Works ONLY for tables stored in

storage engines which support multiversioning (currently

only InnoDB does); the dump is NOT guaranteed to be

consistent for other storage engines. While a

--single-transaction dump is in process, to ensure a

valid dump file (correct table contents and binary log

position), no other connection should use the following

statements: ALTER TABLE, DROP TABLE, RENAME TABLE,

TRUNCATE TABLE, as consistent snapshot is not isolated

from them. Option automatically turns off --lock-tables.

通过将所有表倾销到一个统一的快照中,创建一个一致的快照

单笔交易。只用于存储在

存储引擎支持多版本(目前

只有InnoDB也);垃圾不能保证

其他存储引擎的一致性。而

-单交易转储在过程中,以确保

有效的转储文件(正确的表内容和二进制日志

位置),没有其他连接应使用以下

语句:更改表、下拉表、重命名表,

TRUNCATETABLE,一致的快照不是孤立的

从他们。选项自动关闭-锁定表。

-R, --routines      Dump stored routines (functions and procedures).

转储存储的例程(功能和程序)。

-E, --events        Dump events. 倾倒事件。

--triggers          Dump triggers for each dumped table.转储表的转储触发器。

--default-character-set=name Set the default character set.设置默认字符集。

-B, --databases     Dump several databases. Note the difference in usage; in

this case no tables are given. All name arguments are

regarded as database names. ‘USE db_name;‘ will be

included in the output.

转储几个数据库。注意使用中的差异;在

这种情况下没有表。所有名称参数

视为数据库名称。”使用db_name;将

包括在输出

--master-data[=#]   This causes the binary log position and filename to be

appended to the output. If equal to 1, will print it as a

CHANGE MASTER command; if equal to 2, that command will

be prefixed with a comment symbol. This option will turn

--lock-all-tables on, unless --single-transaction is

specified too (in which case a global read lock is only

taken a short time at the beginning of the dump; don‘t

forget to read about --single-transaction below). In all

cases, any action on logs will happen at the exact moment

of the dump. Option automatically turns --lock-tables

off.

这将导致二进制日志位置和文件名

追加到输出。如果等于1,将打印它作为一个

更改主命令;如果等于2,该命令将

带有一个注释符号。此选项将打开

-锁定所有表,除非-单交易

指定的(在这种情况下,一个全局读锁是唯一的

在转储开始的时间很短;不要

忘记阅读-下面的单笔交易。总共

案件,任何对日志的行动将发生在精确的时刻

的转储。选项自动打开锁定表

关闭。

时间: 2024-10-12 21:15:55

mysqldump 备份常用选项以及备份脚本的相关文章

mysqldump工具的常用选项及锁表

最近在看mysql锁表的帮助文档时发现以前使用mysqldump备份时锁表有一点问题,以前在做备份写脚本时是这样锁表的mysql -A -Bse "flush tables with read lock;",后面看了官方文档知道其实这样是无效的,因为flush tables with read lock;语句在mysql的session退出后会隐式执行unlock tables,那么flush tables with read lock;只有在mysql的session不退出的情况下在

mysqldump命令之常用选项

===============================================mysqldump常用选项-h, --host=name:服务器IP-u, --user=name:登录名-p, --password[=name]:登录密码-A, --all-databases:导出所有数据库-B, --databases:导出指定的数据库,多个数据库名使用空格分割--tables:导出指定表-d, --no-data:仅导出表结构,不导出数据-t, --no-create-info

(4.12)mysql备份还原——mysql逻辑备份之mysqldump

关键词:mysql逻辑备份介绍,mysqldump 1.mysql逻辑备份介绍 [1.1]备份内容:数据库的结构定义语句+数据内容的插入语句,备份出来的文件可以编辑 [1.2]使用场景:数据量较少的库,比较适合100G数据量以内的 逻辑备份的特点 (1)sql语句组成的文件,可以编辑截取部分单独使用. (2)备份文件比物理文件小 (3)可以细化到表/表的内容 (4)速度慢 (5)可以跨平台恢复/迁移 2.逻辑备份工具 [1.1]mysqldump(单线程).mysqlpump(多线程,5.7以后

使用mysqldump进行全量+增量备份方案操作记录

在日常运维工作中,对mysql数据库的备份是万分重要的,以防在数据库表丢失或损坏情况出现,可以及时恢复数据. 线上数据库备份场景:每周日执行一次全量备份,然后每天下午1点执行MySQLdump增量备份. 下面对这种备份方案详细说明下:1.MySQLdump增量备份配置执行增量备份的前提条件是MySQL打开binlog日志功能,在my.cnf中加入log-bin=/opt/Data/MySQL-bin"log-bin="后的字符串为日志记载目录,一般建议放在不同于MySQL数据目录的磁盘

Linux下定时备份MySQL数据库的Shell脚本

Linux下定时备份MySQL数据库的Shell脚本 对任何一个已经上线的网站站点来说,数据备份都是必须的.无论版本更新还是服务器迁移,备份数据的重要性不言而喻.人工备份数据的方式不单耗费大量时间和精力,还灰常不专业的说.于是,有了下面这段脚本的出现.参考了网上的很多教程,外加自己的测试,以下脚本经测试可用.#!/bin/bash#Shell Command For Backup MySQL Database Everyday Automatically By Crontab#Author :

数据库备份checksum选项你会用么?

SQL SERVER有好多好多功能,选项也一大堆,很多功能选项并不常用.但是如果真有这种需求的时候又想不起来~ 本篇我们就来聊聊备份里的选项checksum,这是个啥玩意?听都没听过?来看下图: 就是这个选项!不知道各位看官是否知道是干什么的?怎么用? 我询问了几个群友都没用过,正好手头有环境,那么我就用例子给大家演示一下吧! --------------博客地址-------------------------------------------------------------------

基于mysqldump实现数据库的逻辑备份

 基于mysqldump实现数据库的逻辑备份 [备份类型] 根据备份时,数据库服务器是否在线: 冷备份:cold backup,服务器要离线,意味着我们的读写操作都不可以进行了,但是服务器离线比较困难. 温备份:warm backup,全局施加共享锁,只可读,不可写的备份叫温备份 热备份:hot backup,数据库不离线,读写操作都可以进行,通常是基于事务的存储引擎才能够完成的 根据备份时的数据集进行分类: 完全备份:full backup:指备份整个库,当下数据集的整个库的数据 部分备份:p

Linux FTP自动登陆下载备份,上传文件脚本

使用远程的服务器,对另外一台远程的服务器进行FTP操作,速度要比本地机器操作快很多. 之前写过一篇关于FTP如何手工的在Linux进行远程操作, 今天找到一个自动批量的脚本,感觉很好.满足了我的需要. 我的A网站在香港 我的B服务器Linux的在国内.这样就可以把A网站自动备份到B服务器了. 希望本篇博客能给需要的同学一些帮助. #####从ftp服务器上的/home/data 到 本地的/home/databackup#### #!/bin/bash ftp -n<<! open 192.1

完全备份数据和差异备份数据的shell脚本

#!/bin/bash  # # Description: 该脚本功能,以周为单位循环:周五实行完全备份,周六不备份,周日至周四实行差异备份: #              因工作需要,不实行压缩打包的方式,采用cp完全备份,rsync差异备份: #              若要使用该脚本,请直接修改下面的两个参数:BackupPath和DATAPath,其他地方请不要修改: #  DATE: 2017-04-24 22:43:00 # MODIFY DATE: 2017-04-28 10:0