使用mysqldump命令备份时候,--all-databases 可以备份所有的数据库。 使用ignore-table 还可以排除制定的表。但是,mysqldump没有参数可以排除数据库的。
要备份的数据库少的时候,可以通过mysqldump -uroot -p123456 --databases db1 db2 db3 > mysqldump.sql 这样来备份。
但是假如数据库有数十个的话,这样写起来很累人,也很low。解决办法还是有的,看下面:
【下面演示用的mysql用户名的root,密码123456】
mysql -uroot -p123456 -e 'show databases;'|grep -E -v "Database|information_schema|mysql|test" |xargs mysqldump -uroot -p123456 --databases > mysqldump1.sql
但是很不幸的是,在mysql5.5上执行备份时报错了。
查了下资料,发现是由于5.5以后,mysql的performance_schema库导致的。那我们备份时跳过该库即可,下面2种方法任选:
1、mysql -uroot -p123456 -e 'show databases;'|grep -E -v "Database|information_schema|mysql|test" |xargs mysqldump -uroot -p123456 --skip-lock-tables performance_schema --databases > 2.sql
2、mysql -uroot -p123456 -e 'show databases;'|grep -E -v "Database|information_schema|mysql|performance_schema" |xargs mysqldump -uroot -p123456 --databases > 3.sql
我更喜欢第二种的写法。
下面是我写的一个备份的mysql的脚本,每天夜里执行一次。写的简单些,语句也没有做优化。
#!/bin/bash # Description: backup mysql data # Author: lee FILE="mysql_`date +%F`" BACKDIR="/mysqlbackup" CONF_FILE="/etc/my.cnf" mysql -uroot -e 'show databases'|egrep -v "Database|information_schema|performance_schema" \ |xargs mysqldump -uroot --databases > $BACKDIR/$FILE.sql && cp $CONF_FILE $BACKDIR/$FILE.cnf \ && echo -e "Machine: Oracle\nIP: 172.16.10.12\nStatus: MySQL is backup complete" | \ mail -s "MySQL BackUP Complete" lee@126.com
下图的代码看的更清楚写。
下面给大家介绍下MySQL使用mysqldump备份数据库时排除指定表
#!/bin/sh for j in `mysql -uroot -e "USE spservice;SHOW TABLES" | grep -v Tables` do case $j in mo_log|mt_log|report_info) : ;; *) mysqldump -uroot --default-character-set=gbk --opt spservice $j >> $j.sql esac done >>表名不固定 #!/bin/sh for j in `mysql -uroot -e "USE spservice;SHOW TABLES" | grep -v Tables` do for i in "$@" do if [ $j != $i ];then mysqldump -uroot --default-character-set=gbk --opt spservice $j >> $j.sql fi done done >>更简洁的方法 #!/bin/sh for j in `mysql -uroot -e "USE spservice;SHOW TABLES" | grep -v Tables` do echo $@ | grep -wq "\<$j\>" if [ $? -ne 0 ];then mysqldump -uroot --default-character-set=gbk --opt spservice $j >> $j.sql fi done >>使用方法 sh exclude.sh mo_log mt_log report_log #定义一个shell数组 tables=(mo_log mt_log report_log) sh exclude.sh ${tables[@]}
本文向大家介绍MySQL数据库定时备份的实现方法,包括了MySQL数据库定时备份的实现方法的使用技巧和注意事项,需要的朋友参考一下 1. 创建shell脚本 2. 给shell脚本添加执行权限 3. 给脚本添加定时任务 crontab文件的说明: 用户创建的crontab文件中,每一行都代表一项定时任务,每行的每个字段代表一项设置,它的格式每行共分为六个字段,前五段是时间设定字段,第六段是要执行
本文向大家介绍shell脚本定时备份MySQL数据库数据并保留指定时间,包括了shell脚本定时备份MySQL数据库数据并保留指定时间的使用技巧和注意事项,需要的朋友参考一下 公司用到的MySQL数据库,经常有同事通过一顿骚操作把一些关键的配置数据误删,每次恢复都要花上不少时间,于是写了个shell脚本,结合corntab每天凌晨备份数据库,并保留7天。 同样的备份脚本也可用于生产环境MySQL数
本文向大家介绍linux实现定时备份mysql数据库的简单方法,包括了linux实现定时备份mysql数据库的简单方法的使用技巧和注意事项,需要的朋友参考一下 以下是详细步骤: 1、查看磁盘空间情况: 选择合适磁盘存放备份文件 2、创建备份目录: 3、创建备份Shell脚本: 在创建的目录下创建备份脚本(vi bkDatabaseName.sh) 注: bkDatabaseName.sh 替换成有
主要内容:备份一个数据库,备份多个数据库,备份所有数据库数据库的主要作用就是对数据进行保存和维护,所以备份数据是数据库管理中最常用的操作。为了防止数据库意外崩溃或硬件损伤而导致的数据丢失,数据库系统提供了备份和恢复策略。 保证数据安全的最重要的一个措施就是定期的对数据库进行备份。这样即使发生了意外,也会把损失降到最低。 数据库备份是指通过导出数据或者复制表文件的方式来制作数据库的副本。当数据库出现故障或遭到破坏时,将备份的数据库加载到系统,从而使数据库
本文向大家介绍Linux 上 定时备份postgresql 数据库的方法,包括了Linux 上 定时备份postgresql 数据库的方法的使用技巧和注意事项,需要的朋友参考一下 为了避免操作数据库的风险 因此计划每天对postgresql 数据库 进行定时备份 1.服务器地址: 备份服务器地址 10.10.10.101(虚构) postgresql 数据库所在的服务器地址 10.10.10.10
本文向大家介绍MySql数据库备份的几种方式,包括了MySql数据库备份的几种方式的使用技巧和注意事项,需要的朋友参考一下 mysqldump工具备份 备份整个数据库 备份数据库中的某个表 备份多个数据库 备份系统中所有数据库 直接复制整个数据库目录(对于InnoDB存储引擎不适用)备份 windowns: installpath/mysql/data linux: /var/lib/mysql