亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区
Chinaunix
標(biāo)題:
貢獻(xiàn)一個mysql replication出錯自動檢測的腳本
[打印本頁]
作者:
平凡的香草
時間:
2005-01-05 11:13
標(biāo)題:
貢獻(xiàn)一個mysql replication出錯自動檢測的腳本
需要DBIX及Mail等perl模塊
注意,雖然能夠自動修復(fù),但是可能造成slave的數(shù)據(jù)條目少于master的條目!使用的時候自己注意些好了
本腳本是修改版,原作者是Jeremy Zawodny
#!/usr/local/bin/perl -w
#
# fix mysql replication if it encounters a problem
# Useage:perl fix_repl.pl ip1 ip2 ip3
$|=1; # unbuffer stdout
use strict;
use DBIx::DWIW;
use Mail::Mailer;
my $ip;
foreach $ip (@ARGV) {
&fixdb($ip);
}
exit;
sub fixdb()
{
my $host = shift || 'localhost';
my $conn = DBIx::DWIW->;Connect(
DB =>; "test",
User =>; "sqlmon",
Pass =>; '!@#$%^&*()',
Host =>; $host,
Port =>; 3306) or die "Couldn't connect to database!";
print "checking $host ... \n";
my $info = $conn->;Hash("SHOW SLAVE STATUS") or die $@;
my @version = $conn->;Array("SHOW VARIABLES LIKE 'Version'");
my $fix_cmd;
my $start_cmd;
# slave not start
if ($info->;{Slave_IO_Running} eq 'No' and $info->;{Slave_SQL_Running} eq 'No')
{
$fix_cmd = "SET SQL_SLAVE_SKIP_COUNTER = 1";
$start_cmd = "SLAVE START";
}
# 4.0.0 - 4.0.2
elsif ($version[1] =~ /^4\.0\.[012]/ and $info->;{Slave_SQL_Running} eq 'No')
{
$fix_cmd = "SET SQL_SLAVE_SKIP_COUNTER = 1";
$start_cmd = "SLAVE START SQL_THREAD";
}
# 4.0.3 - 4.0.xx, 4.1.xx. Don't know what 5.0 will be like.
elsif ($version[1] =~ /^4\.[01]\./ and $info->;{Slave_SQL_Running} eq 'No')
{
$fix_cmd = "SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1";
$start_cmd = "SLAVE START SQL_THREAD";
}
# things are okay or unknown version?
else
{
print "GOOD\n";
}
if ($info->;{Slave_IO_Running} eq 'No' or $info->;{Slave_SQL_Running} eq 'No' ){
&mailtoadmin($info,$host);
print "FIXING ... ";
$conn->;Execute($fix_cmd);
$conn->;Execute($start_cmd);
print "DONE\n";
}
}
sub mailtoadmin(){
my $body=shift;
my $host = shift;
my @MailTo=("xxxx\@yyyy.com");
my $subject = "Mysql Self fix replication on $host ";
my $mailer = Mail::Mailer->;new() or die $@;
$mailer->;open({ From =>; $host,
To =>; \@MailTo,
Subject =>; $subject,
})or die "Can't open: $!\n";
# while ( my ($key, $value) = each(%$body) ) {
# print $mailer "$key =>; $value\n";
# }
print $mailer <<MAILCONTENT;
*************************** show slave status***************************
Master_Host =>; $body->;{'Master_Host'}
Master_User =>; $body->;{'Master_User'}
Master_Port =>; $body->;{'Master_Port'}
Connect_retry =>; $body->;{'Connect_retry'}
Master_Log_File =>; $body->;{'Master_Log_File'}
Read_Master_Log_Pos =>;$body->;{'Read_Master_Log_Pos'}
Relay_Log_File =>; $body->;{'Relay_Log_File'}
Relay_Log_Pos =>; $body->;{'Relay_Log_Pos'}
Relay_Master_Log_File =>;$body->;{'Relay_Master_Log_File'}
Slave_IO_Running =>;$body->;{'Slave_IO_Running'}
Slave_SQL_Running =>;$body->;{'Slave_SQL_Running'}
Replicate_do_db =>; $body->;{'Replicate_do_db'}
Replicate_ignore_db =>;$body->;{'Replicate_ignore_db'}
Last_errno =>; $body->;{'Last_errno'}
Last_error =>; $body->;{'Last_error'}
Skip_counter =>; $body->;{'Skip_counter'}
Exec_master_log_pos =>; $body->;{'Exec_master_log_pos'}
Relay_log_space =>; $body->;{'Relay_log_space'}
MAILCONTENT
$mailer->;close();
}
復(fù)制代碼
作者:
yejr
時間:
2005-01-05 17:14
標(biāo)題:
貢獻(xiàn)一個mysql replication出錯自動檢測的腳本
呵呵,謝謝樓主,其實如果用shell來做的話,是粉簡單的,而且以前也已經(jīng)有現(xiàn)成的了.
作者:
odin_free
時間:
2005-01-06 10:18
標(biāo)題:
貢獻(xiàn)一個mysql replication出錯自動檢測的腳本
不錯~~~保留
作者:
qinshiling
時間:
2005-03-29 17:11
標(biāo)題:
貢獻(xiàn)一個mysql replication出錯自動檢測的腳本
看你的腳本作用不錯,能高訴我怎么用嗎?
作者:
qinshiling
時間:
2005-03-29 17:14
標(biāo)題:
貢獻(xiàn)一個mysql replication出錯自動檢測的腳本
看你的腳本作用不錯,能高訴我怎么用嗎?
作者:
king1981
時間:
2006-10-28 18:50
yejr 你中文的MYSQL 手冊能打個包給我嗎?
先謝謝拉.
ba20000@163.com
作者:
qlks
時間:
2006-10-29 10:36
不錯
不過生產(chǎn)環(huán)境中還是shell腳本來的方便
作者:
grfjs
時間:
2007-01-09 16:54
原帖由
yejr
于 2005-1-5 17:14 發(fā)表
呵呵,謝謝樓主,其實如果用shell來做的話,是粉簡單的,而且以前也已經(jīng)有現(xiàn)成的了.
請版主幫幫忙,能提供shell腳本的連接嗎? 我翻了好久以前的帖子都沒翻到啊
作者:
yejr
時間:
2007-01-09 20:24
http://imysql.cn/?q=node/77
中的 mysql日常維護(hù) 里頭有類似的
作者:
yueliangdao0608
時間:
2007-01-10 09:04
你可以把perl的翻譯成shell
作者:
Jeff_z
時間:
2007-01-11 00:17
不錯,頂一下
作者:
cnhero
時間:
2009-07-28 21:23
謝謝啊
作者:
Coolriver
時間:
2009-07-29 14:16
不錯頂一下.
Perl和Shell比有一個好處,可以保證會話在同一個會話中.所以推薦用Perl吧.
作者:
freeterman
時間:
2011-11-29 17:36
mysql 如果有批處理可以這樣搞 有好了
歡迎光臨 Chinaunix (http://www.72891.cn/)
Powered by Discuz! X3.2