⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rep_backlog.pm

📁 mysql+ha. 实现高可用性 http://code.google.com/p/mysql-master-master/
💻 PM
字号:
use DBI;sub PerformCheck($$) {    my $timeout = shift;    my $host = shift;        # get connection info    my $peer = $config->{host}->{$host};    if (ref($peer) ne 'HASH') {        return "ERROR: Invalid host!";    }    my $host = $peer->{ip};    my $port = $peer->{port};    my $user = $peer->{user};    my $pass = $peer->{password};    my $res = eval {        local $SIG{ALRM} = sub { die "TIMEOUT"; };        alarm($timeout);                # connect to server        my $dsn = "DBI:mysql:host=$host;port=$port;mysql_connect_timeout=$timeout";        my $dbh = DBI->connect($dsn, $user, $pass, { PrintError => 0 });        return "UNKNOWN: Connect error (host = $host:$port, user = $user, pass = '$pass')! " . DBI::errstr unless ($dbh);            # Check server (replication backlog)        my $sth = $dbh->prepare("SHOW SLAVE STATUS");        my $res = $sth->execute;	if ($dbh->err) {	    my $ret = "UNKNOWN: Unknown state. Execute error: " . $dbh->errstr;	    $sth->finish;	    $dbh->disconnect();	    $dbh = undef;	    return $ret;	}        unless($res) {            $sth->finish;	    $dbh->disconnect();            $dbh = undef;	    return "ERROR: Replication is not running";        }            my $status = $sth->fetchrow_hashref;        $sth->finish;        $dbh->disconnect();        $dbh = undef;            # Check backlog size        my $backlog = $status->{Seconds_Behind_Master};        return "OK: Backlog is null" if ($backlog eq '');        return "ERROR: Backlog is too big" if ($backlog > $config->{check}->{rep_backlog}->{max_backlog});        return 0;    };    alarm(0);    return $res if ($res);    return 'ERROR: Timeout' if ($@ =~ /^TIMEOUT/);        return "UNKNOWN: Error occurred: $@" if $@;    return "OK";}1;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -