Mysql备份II

Mysql备份II

V.II.I单台或共用机器,数据量和访问量小50G<

1 Mysqldump(全导出,导库,导表) 锁表 如果这时有些入会锁住或者超时

2 至少停止写入 防止innodb配置还没刷到磁盘里 先flash tables

/usr/local/mysql/bin/mysqladmin -S /tmp/mysql.sock -u root -p password shutdown
Service msqld stop && 清除binlog   resetmaster  tar or rsync && service mysqld start

for MyISAM

mysqldump --user=root –all-databases –flush-privileges –lock-all-tables
--master-data=1 –flush-log –trigger –routines –events –hex-blob
> $backup_dir/full_dump_$date.sql

for InnoDB

mysqldump –user=root –all-databases –flush-privileges  -- single-transaction
--master-data=1 --flush -logs  -–triggers – -routines  --events –hex-blob>
$backup_dir/$full_dump_$date.sql

--hex-blob
使用十六进制格式导出二进制字符串字段.有二进制类型数据就必须使用 .binary
.varybinary .blob

--single-transaction
先提交begin sql,能保证导出数据库的一致性状态 ,只适用于 InnoDB 和BDB
TABLES 会使任何挂起的失误隐含提交
导出 大表应结合使用—quick选项

Masterdata=1 mysqldump 会包括change master to file & position   

Masterdata=2  mysqldump 会包括change master to file & position  但是是被注释掉的

这个值主要用于主从复制时

Tar:

ScriptS:

#!/bin/bash
#bakup mysql dbTables; usefree; not responsible;
#
#author lethe  6/15/2016
#QQ:914576241
#www.lethe.com.cn
#
#echo -n "inputdbname:"
#read dbname
#echo "$dbname"
echo -n "inputdbuser:"
read user
echo “$user”
echo -n "inputpassword:"
read password
echo -n "inputportNO.:"
read port
echo “$port”
echo -n "inputdeldata:"
read passday
echo “$passday”
user=“$user”
password=“$password”
#dbname=“$dbname”
cm= “mysql -S /tmp/mysql.sock -u “$user” -p “$password””
dm=” /usr/local/mysql/bin/mysqldump -S /tpm/mysql.sock -u $user -p $password”
em=” /usr/local/mysql/bin/mysqladmin -S /tmp/mysql.sock -u $user -p $password shutdown”
date=`date +%Y_%m_%d`
before=` date +%Y-%m-%d 00:00:00 `
ddate=` date +"%Y_%m_%d" -d "-${passday} day" `
rm -rf *_$ddate*
if [ ! -d /mysql/backup ];then
mkdir -p /mysql/backup
fi
cd /mysql/backup
$cm -e “PUGE MASTER LOGS BEFORE ‘$before’”
#binlog too large
task=`ps waux | grep mysql | grep -v grep| awk’{print $2}’| wc -l`
if [ $task -gt 0 ];then
$em
Service mysqld stop
fi
#make sure mysql closed
$em
tar zcf /mysql/backup/mysql_$port_$date.tar.gz /var/lib/mysql/
/usr/local/mysql/bin/mysql_safe –defaults-file=/var/lib/mysql/my.cnf &
Service mysqld start  &>  /dev/null
#make sure mysql start

原创文章,作者:双庆 李,如若转载,请注明出处:http://www.178linux.com/18008

(0)
双庆 李双庆 李
上一篇 2016-06-09 22:14
下一篇 2016-06-09 22:14

相关推荐

  • 第一天

    今天讲了很多

    Linux干货 2018-03-26
  • Linux文件类型以及颜色标识

    1、Linux文件类型介绍   Linux系统不同于window系统,两者文件类型也有很大的差异。Linux文件类型和Linux文件的文件名所代表的意义是两个不同的概念。我们通过一般应用程序而创建的比如file.txt、file.tar.gz,这些文件虽然要用不同的程序来打开,但放在Linux文件类型中衡量的话,大多是常规文件(也被称为普…

    Linux干货 2016-10-17
  • 马哥教育21期网络班—第六周课程+练习—-成长进行时

    请详细总结vim编辑器的使用并完成以下练习题 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; [root@localhost ~]# cp /etc/rc.d/rc.sysinit /tmp/rc.sysinit&nbs…

    Linux干货 2016-08-03
  • shell的基本使用

    小知识: 在bash环境中变量有各自的范围,有些的变量无法超出自己本身的范围,也无法更改自己, 或提升自己的能力范围 用source命令执行脚本,会对里面的变量发生改变包括范围 例:命令行中写name=wang 脚本中写name=xdg  先命令行,再脚本,最后命令行的顺序依次执行 1.正常的执行脚本 ./file.sh  输出的结果: …

    Linux干货 2017-08-05
  • Linux boot分区意外格式化或清除之后…

    boot分区在没有备份的情况下意外被清空,包括启动引导信息也没了。这时若Linux还在运行,那你是幸运的, 修复的方法: 1. cat  /etc/*release      #赶快先确定当前系统的具体版本。有ISO镜像赶快挂载上来.   &nbsp…

    Linux干货 2016-03-22