mysql 表备份_实现mysql单表备份的脚本

作用:

备份DB中的数据到单表,以防止增加表后少备份了。

#!/usr/bin/perl

# mysql meg

# wubx

use strict;

use DBI;

my $host='172.16.100.1';

my $port='3306';

my $user='root;

my $passwd='';

my $dsn="dbi:mysql:hostname=$host:port=$port";

my $backup="/backup";

my $dbh= DBI->connect($dsn,$user,'');

unless ($dbh)

{

print "Connect error!\n";

}

my ($sec,$min,$hour,$mday,$mon,$year,$wday)=localtime(time);

$mon = $mon+1;

$year = $year+1900;

my $terday = sprintf("%04d-%02d-%02d",$year,$mon,$mday);

print "cd $backup\n";

my $sql="show databases";

my $sth= $dbh->prepare("$sql");

$sth->execute;

while (my @row=$sth->fetchrow_array())

{

print "mkdir $row[0]_$terday && cd $row[0]_$terday\n";

$dbh->do("use $row[0]");

my $show_table="show tables";

my $sth_table= $dbh->prepare("$show_table");

$sth_table->execute;

while ( my @rr = $sth_table->fetchrow_array())

{

print "mysqldump --opt $row[0] $rr[0]|gzip>$row[0]_$rr[0].sql.gz\n";

}

print "cd ..\n";

}

$dbh->disconnect();

调用方法用crontab 结果输出到一个文件,然后在在执行那个文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值