2009年8月13日星期四

The Solution: Zmanda Recovery Manager for Mysql 本地模式實驗

使用zmanda進行mysql的備份恢復管理
Zmanda Recovery Manager for mysql(ZRM for mysql) simplifies this essential part of database administration with an easy-to-use yet powerful framework for scheduling and monitoring backups and restores
要求:
Prerequisites:
. Mysql server installed and configured. Mysql server已經安裝和配置好了
. at least one running database. 至少一個可運行數據庫
. Mysql user with appropriate permissions(backup-user) Mysql用戶有恰當的權限
.. grant access to 'backup-user' in mysql with password 'pass123' 例如



cmd:
grant select, show view, create view, insert, update, create, drop, reload, shutdown, alter, super, lock tables, replication client on *.* to 'backup-user'@'localhost' identified by 'pass123';

--Mysql中創建該用戶
mysql> grant select, show view, create view, insert , update, create, drop, reload, shutdown, alter, super, lock tables, replication client on *.* to 'backup-user'@'localhost' identified by 'pass123';
Query OK, 0 rows affected (0.00 sec)
--檢查權限的設定
mysql> show grants for 'backup-user'
-> ;
ERROR 1141 (42000): There is no such grant defined for user 'backup-user' on host '%'
mysql> show grants for 'backup-user'@'localhost';
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Grants for backup-user@localhost |
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| GRANT SELECT, INSERT, UPDATE, CREATE, DROP, RELOAD, SHUTDOWN, ALTER, SUPER, LOCK TABLES, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW ON *.* TO 'backup-user'@'localhost' IDENTIFIED BY PASSWORD '*FB6E1F205D675BC29B052DB14CCEFE7759C5FF7E' |
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql>

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql>


ZRM 2.1 for mysql also requires perl-DBI as well as perl-XML-parser.
ZRM2.1要求Mysql的同時也要求perl-DBI 和 per-xml-parser

下載最新tar包
http://www.cpan.org/modules/by-module/DBD/
http://www.cpan.org/modules/by-module/DBD/DBI-1.609.tar.gz


[root@croracle03 software]# wget http://www.cpan.org/modules/by-module/DBD/DBI-1.609.tar.gz
--15:10:41-- http://www.cpan.org/modules/by-module/DBD/DBI-1.609.tar.gz
Resolving www.cpan.org... 66.39.76.93
Connecting to www.cpan.org|66.39.76.93|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 510309 (498K) [application/x-tar]
Saving to: `DBI-1.609.tar.gz'

100%[=======================================>] 510,309 163K/s in 3.1s

15:10:45 (163 KB/s) - `DBI-1.609.tar.gz' saved [510309/510309]


安裝perl-DBI

[root@croracle03 software]# cd DBI-1.609
[root@croracle03 DBI-1.609]# ls
Changes dbiproxy.PL dbixs_rev.pl MANIFEST TASKS.pod
dbd_xsh.h dbi_sql.h Driver.xst META.yml test.pl
dbilogstrip.PL dbivport.h Driver_xst.h Perl.xs TODO_2005.txt
DBI.pm DBI.xs ex README TODO_gofer.txt
dbipport.h DBIXS.h lib Roadmap.pod typemap
dbiprof.PL dbixs_rev.h Makefile.PL t
[root@croracle03 DBI-1.609]# perl Makefile.PL

*** Your LANG environment variable is set to 'en_US.UTF-8'
*** This may cause problems for some perl installations.
*** If you get test failures, please try again with LANG unset.
*** If that then works, please email dbi-dev@perl.org with details
*** including the output of 'perl -V'


*** You are using a perl configured with threading enabled.
*** You should be aware that using multiple threads is
*** not recommended for production environments.

Your perl was compiled with gcc (version 4.1.1 20070105 (Red Hat 4.1.1-52)), okay.
Creating test wrappers for DBI::PurePerl:
t/zvp_01basics.t
t/zvp_02dbidrv.t
t/zvp_03handle.t
t/zvp_04mods.t
t/zvp_05concathash.t
t/zvp_06attrs.t
t/zvp_07kids.t
t/zvp_08keeperr.t
t/zvp_09trace.t
t/zvp_10examp.t
t/zvp_11fetch.t
t/zvp_12quote.t
t/zvp_13taint.t
t/zvp_14utf8.t
t/zvp_15array.t
t/zvp_19fhtrace.t
t/zvp_20meta.t
t/zvp_30subclass.t
t/zvp_35thrclone.t (use threads)
t/zvp_40profile.t
t/zvp_41prof_dump.t
t/zvp_42prof_data.t
t/zvp_43prof_env.t
t/zvp_50dbm.t
t/zvp_60preparse.t
t/zvp_65transact.t
t/zvp_70callbacks.t
t/zvp_72childhandles.t
t/zvp_80proxy.t
t/zvp_85gofer.t
t/zvp_86gofer_fail.t
t/zvp_87gofer_cache.t
Creating test wrappers for DBD::Gofer:
t/zvg_01basics.t
t/zvg_02dbidrv.t
t/zvg_03handle.t
t/zvg_04mods.t
t/zvg_05concathash.t
t/zvg_06attrs.t
t/zvg_07kids.t
t/zvg_08keeperr.t
t/zvg_09trace.t
t/zvg_10examp.t
t/zvg_11fetch.t
t/zvg_12quote.t
t/zvg_13taint.t
t/zvg_14utf8.t
t/zvg_15array.t
t/zvg_19fhtrace.t
t/zvg_20meta.t
t/zvg_30subclass.t
t/zvg_35thrclone.t (use threads)
t/zvg_40profile.t
t/zvg_41prof_dump.t
t/zvg_42prof_data.t
t/zvg_43prof_env.t
t/zvg_50dbm.t
t/zvg_60preparse.t
t/zvg_65transact.t
t/zvg_70callbacks.t
t/zvg_72childhandles.t
t/zvg_80proxy.t
t/zvg_85gofer.t
t/zvg_86gofer_fail.t
t/zvg_87gofer_cache.t
Creating test wrappers for PurePerl & Gofer:
t/zvxgp_01basics.t
t/zvxgp_02dbidrv.t
t/zvxgp_03handle.t
t/zvxgp_04mods.t
t/zvxgp_05concathash.t
t/zvxgp_06attrs.t
t/zvxgp_07kids.t
t/zvxgp_08keeperr.t
t/zvxgp_09trace.t
t/zvxgp_10examp.t
t/zvxgp_11fetch.t
t/zvxgp_12quote.t
t/zvxgp_13taint.t
t/zvxgp_14utf8.t
t/zvxgp_15array.t
t/zvxgp_19fhtrace.t
t/zvxgp_20meta.t
t/zvxgp_30subclass.t
t/zvxgp_35thrclone.t (use threads)
t/zvxgp_40profile.t
t/zvxgp_41prof_dump.t
t/zvxgp_42prof_data.t
t/zvxgp_43prof_env.t
t/zvxgp_50dbm.t
t/zvxgp_60preparse.t
t/zvxgp_65transact.t
t/zvxgp_70callbacks.t
t/zvxgp_72childhandles.t
t/zvxgp_80proxy.t
t/zvxgp_85gofer.t
t/zvxgp_86gofer_fail.t
t/zvxgp_87gofer_cache.t
Checking if your kit is complete...
Looks good

I see you're using perl 5.008008 on x86_64-linux-thread-multi, okay.
Remember to actually *read* the README file!
Use 'make' to build the software (dmake or nmake on Windows).
Then 'make test' to execute self tests.
Then 'make install' to install the DBI and then delete this working
directory before unpacking and building any DBD::* drivers.

Writing Makefile for DBI
[root@croracle03 DBI-1.609]#



[root@croracle03 DBI-1.609]# perldoc DBI
x86_64-linux-thread-muUser:Contributed Perl Dx86m64-linux-thread-multi::DBI(3)

NAME
DBI - Database independent interface for Perl

SYNOPSIS
use DBI;

@driver_names = DBI->available_drivers;
%drivers = DBI->installed_drivers;
@data_sources = DBI->data_sources($driver_name, \%attr);

$dbh = DBI->connect($data_source, $username, $auth, \%attr);

$rv = $dbh->do($statement);
$rv = $dbh->do($statement, \%attr);
$rv = $dbh->do($statement, \%attr, @bind_values);

$ary_ref = $dbh->selectall_arrayref($statement);
$hash_ref = $dbh->selectall_hashref($statement, $key_field);

$ary_ref = $dbh->selectcol_arrayref($statement);
$ary_ref = $dbh->selectcol_arrayref($statement, \%attr);

測試使用的腳本:
[root@croracle03 DBI-1.609]# cat perl-module2.pl
#!/usr/bin/perl
use ExtUtils::Installed;

my $inst = ExtUtils::Installed->new();
print join "\n",$inst->modules();
[root@croracle03 DBI-1.609]#



下載并安裝 Perl DBD-mysql tar包
Perl DBD-mysql
http://www.cpan.org/modules/by-module/DBD/DBD-mysql-4.012.tar.gz
[root@croracle03 software]# wget http://www.cpan.org/modules/by-module/DBD/DBD-mysql-4.012.tar.gz
--15:22:18-- http://www.cpan.org/modules/by-module/DBD/DBD-mysql-4.012.tar.gz
Resolving www.cpan.org... 66.39.76.93
Connecting to www.cpan.org|66.39.76.93|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 129160 (126K) [application/x-tar]
Saving to: `DBD-mysql-4.012.tar.gz'

100%[=======================================>] 129,160 60.3K/s in 2.1s

15:22:21 (60.3 KB/s) - `DBD-mysql-4.012.tar.gz' saved [129160/129160]
安裝
[root@croracle03 software]# tar xvfz DBD-mysql-4.012.tar.gz
DBD-mysql-4.012/
DBD-mysql-4.012/ChangeLog
DBD-mysql-4.012/constants.h
DBD-mysql-4.012/dbdimp.c
DBD-mysql-4.012/dbdimp.h
DBD-mysql-4.012/eg/
DBD-mysql-4.012/eg/._bug14979.pl
DBD-mysql-4.012/eg/bug14979.pl
DBD-mysql-4.012/eg/._bug21028.pl
DBD-mysql-4.012/eg/bug21028.pl
DBD-mysql-4.012/eg/bug30033.pl
DBD-mysql-4.012/eg/bug30033pg.pl
DBD-mysql-4.012/eg/decimal_test.pl
DBD-mysql-4.012/eg/issue21946.pl
DBD-mysql-4.012/eg/prepare_memory_usage.pl
DBD-mysql-4.012/eg/proc_example1.pl
DBD-mysql-4.012/eg/proc_example2.pl
DBD-mysql-4.012/eg/proc_example2a.pl
DBD-mysql-4.012/eg/proc_example2b.pl
DBD-mysql-4.012/eg/proc_example3.pl
DBD-mysql-4.012/eg/proc_example4.pl
DBD-mysql-4.012/INSTALL.html
DBD-mysql-4.012/lib/
DBD-mysql-4.012/lib/Bundle/
DBD-mysql-4.012/lib/Bundle/DBD/
DBD-mysql-4.012/lib/Bundle/DBD/mysql.pm
DBD-mysql-4.012/lib/DBD/
DBD-mysql-4.012/lib/DBD/mysql/
DBD-mysql-4.012/lib/DBD/mysql/GetInfo.pm
DBD-mysql-4.012/lib/DBD/mysql/INSTALL.pod
DBD-mysql-4.012/lib/DBD/mysql.pm
DBD-mysql-4.012/Makefile.PL
DBD-mysql-4.012/Makefile.PL.embedded
DBD-mysql-4.012/MANIFEST
DBD-mysql-4.012/MANIFEST.SKIP
DBD-mysql-4.012/META.yml
DBD-mysql-4.012/myld
DBD-mysql-4.012/mysql.xs
DBD-mysql-4.012/README
DBD-mysql-4.012/t/
DBD-mysql-4.012/t/00base.t
DBD-mysql-4.012/t/10connect.t
DBD-mysql-4.012/t/20createdrop.t
DBD-mysql-4.012/t/25lockunlock.t
DBD-mysql-4.012/t/29warnings.t
DBD-mysql-4.012/t/30insertfetch.t
DBD-mysql-4.012/t/31insertid.t
DBD-mysql-4.012/t/32insert_error.t
DBD-mysql-4.012/t/35limit.t
DBD-mysql-4.012/t/35prepare.t
DBD-mysql-4.012/t/40bindparam.t
DBD-mysql-4.012/t/40bindparam2.t
DBD-mysql-4.012/t/40blobs.t
DBD-mysql-4.012/t/40catalog.t
DBD-mysql-4.012/t/40keyinfo.t
DBD-mysql-4.012/t/40listfields.t
DBD-mysql-4.012/t/40nulls.t
DBD-mysql-4.012/t/40numrows.t
DBD-mysql-4.012/t/40server_prepare.t
DBD-mysql-4.012/t/40server_prepare_error.t
DBD-mysql-4.012/t/40types.t
DBD-mysql-4.012/t/41bindparam.t
DBD-mysql-4.012/t/41blobs_prepare.t
DBD-mysql-4.012/t/42bindparam.t
DBD-mysql-4.012/t/50chopblanks.t
DBD-mysql-4.012/t/50commit.t
DBD-mysql-4.012/t/51bind_type_guessing.t
DBD-mysql-4.012/t/55utf8.t
DBD-mysql-4.012/t/60leaks.t
DBD-mysql-4.012/t/65types.t
DBD-mysql-4.012/t/70takeimp.t
DBD-mysql-4.012/t/71impdata.t
DBD-mysql-4.012/t/75supported_sql.t
DBD-mysql-4.012/t/76multi_statement.t
DBD-mysql-4.012/t/80procs.t
DBD-mysql-4.012/t/lib.pl
DBD-mysql-4.012/t/mysql.dbtest
DBD-mysql-4.012/t/mysql.mtest
DBD-mysql-4.012/TODO
[root@croracle03 software]#

運行命令,報錯
[root@croracle03 DBD-mysql-4.012]# perl Makefile.PL
Can't exec "mysql_config": No such file or directory at Makefile.PL line 82.

Cannot find the file 'mysql_config'! Your execution PATH doesn't seem
not contain the path to mysql_config. Resorting to guessed values!
Can't exec "mysql_config": No such file or directory at Makefile.PL line 464.
Can't find mysql_config. Use --mysql_config option to specify where mysql_config is located
Can't exec "mysql_config": No such file or directory at Makefile.PL line 464.
Can't find mysql_config. Use --mysql_config option to specify where mysql_config is located
Can't exec "mysql_config": No such file or directory at Makefile.PL line 464.
Can't find mysql_config. Use --mysql_config option to specify where mysql_config is located


PLEASE NOTE:

For 'make test' to run properly, you must ensure that the
database user 'root' can connect to your MySQL server
and has the proper privileges that these tests require such
as 'drop table', 'create table', 'drop procedure', 'create procedure'
as well as others.

mysql> grant all privileges on test.* to 'root'@'localhost' identified by 's3kr1t';

You can also optionally set the user to run 'make test' with:

perl Makefile.pl --testuser=username

Can't exec "mysql_config": No such file or directory at Makefile.PL line 464.
Can't find mysql_config. Use --mysql_config option to specify where mysql_config is located
Can't exec "mysql_config": No such file or directory at Makefile.PL line 464.
Can't find mysql_config. Use --mysql_config option to specify where mysql_config is located
Can't exec "mysql_config": No such file or directory at Makefile.PL line 464.
Can't find mysql_config. Use --mysql_config option to specify where mysql_config is located
Failed to determine directory of mysql.h. Use

perl Makefile.PL --cflags=-I

to set this directory. For details see the INSTALL.html file,
section "C Compiler flags" or type

perl Makefile.PL --help
[root@croracle03 DBD-mysql-4.012]#

問題原因是沒有找到mysql的開發包,下載之

[root@croracle03 software]# rpm -ivh MySQL-devel-community-5.1.36-0.rhel5.x86_64.rpm
Preparing... ########################################### [100%]
1:MySQL-devel-community ########################################### [100%]
[root@croracle03 software]#


再次安裝 DBD-mysql包
[root@croracle03 software]# cd DBD-mysql-4.012
[root@croracle03 DBD-mysql-4.012]# perl Makefile.PL


PLEASE NOTE:

For 'make test' to run properly, you must ensure that the
database user 'root' can connect to your MySQL server
and has the proper privileges that these tests require such
as 'drop table', 'create table', 'drop procedure', 'create procedure'
as well as others.

mysql> grant all privileges on test.* to 'root'@'localhost' identified by 's3kr1t';

You can also optionally set the user to run 'make test' with:

perl Makefile.pl --testuser=username

I will use the following settings for compiling and testing:

cflags (mysql_config) = -I/usr/include/mysql -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -DUNIV_LINUX
embedded (mysql_config) =
libs (mysql_config) = -rdynamic -L/usr/lib64/mysql -lmysqlclient -lz -lcrypt -lnsl -lm -lmygcc
mysql_config (guessed ) = mysql_config
nocatchstderr (default ) = 0
nofoundrows (default ) = 0
ssl (guessed ) = 0
testdb (default ) = test
testhost (default ) =
testpassword (default ) =
testsocket (default ) =
testuser (guessed ) = root

To change these settings, see 'perl Makefile.PL --help' and
'perldoc INSTALL'.

Checking if your kit is complete...
Looks good
Unrecognized argument in LIBS ignored: '-rdynamic'
Using DBI 1.609 (for perl 5.008008 on x86_64-linux-thread-multi) installed in /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBI/
Writing Makefile for DBD::mysql
[root@croracle03 DBD-mysql-4.012]#


[root@croracle03 DBD-mysql-4.012]# make test
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/00base....................ok
t/10connect.................ok
t/20createdrop..............ok
t/25lockunlock..............ok
t/29warnings................ok
t/30insertfetch.............ok
t/31insertid................ok
t/32insert_error............ok
t/35limit...................ok
t/35prepare.................ok
t/40bindparam...............ok
t/40bindparam2..............ok
t/40blobs...................ok
t/40catalog.................ok
t/40keyinfo.................ok
t/40listfields..............ok
t/40nulls...................ok
t/40numrows.................ok
t/40server_prepare..........ok
t/40server_prepare_error....ok
t/40types...................ok
t/41bindparam...............ok
t/41blobs_prepare...........ok
t/42bindparam...............ok
t/50chopblanks..............ok
t/50commit..................ok
t/51bind_type_guessing......ok
t/55utf8....................ok
t/60leaks...................skipped
all skipped: Skip $ENV{SLOW_TESTS} is not set
t/65types...................ok
t/70takeimp.................ok
t/71impdata.................ok
t/75supported_sql...........ok
t/76multi_statement.........ok
t/80procs...................ok
All tests successful, 1 test skipped.
Files=35, Tests=740, 5 wallclock secs ( 2.74 cusr + 1.04 csys = 3.78 CPU)
[root@croracle03 DBD-mysql-4.012]#

[root@croracle03 DBD-mysql-4.012]# make install
Installing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBD/mysql/mysql.so
Installing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBD/mysql/mysql.bs
Files found in blib/arch: installing files in blib/lib into architecture dependent library tree
Installing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/Bundle/DBD/mysql.pm
Installing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/DBD/mysql.pm
Installing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/DBD/mysql/INSTALL.pod
Installing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/DBD/mysql/GetInfo.pm
Installing /usr/share/man/man3/DBD::mysql::INSTALL.3pm
Installing /usr/share/man/man3/DBD::mysql.3pm
Installing /usr/share/man/man3/Bundle::DBD::mysql.3pm
Writing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBD/mysql/.packlist
Appending installation info to /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/perllocal.pod
[root@croracle03 DBD-mysql-4.012]#


檢查包是否安裝成功:

[root@croracle03 DBI-1.609]# ./perl-module.pl
DBD::mysql
DBI
Perl[root@croracle03 DBI-1.609]#



下載安裝 XML-Parser-2.36 包

[root@croracle03 software]# wget -c http://search.cpan.org/CPAN/authors/id/M/MS/MSERGEANT/XML-Parser-2.36.tar.gz
--15:43:22-- http://search.cpan.org/CPAN/authors/id/M/MS/MSERGEANT/XML-Parser-2.36.tar.gz
Resolving search.cpan.org... 207.115.101.144, 64.235.248.44
Connecting to search.cpan.org|207.115.101.144|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://ftp.cuhk.edu.hk/pub/packages/perl/CPAN/authors/id/M/MS/MSERGEANT/XML-Parser-2.36.tar.gz [following]
--15:43:23-- http://ftp.cuhk.edu.hk/pub/packages/perl/CPAN/authors/id/M/MS/MSERGEANT/XML-Parser-2.36.tar.gz
Resolving ftp.cuhk.edu.hk... 137.189.4.14
Connecting to ftp.cuhk.edu.hk|137.189.4.14|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 230002 (225K) [application/x-gzip]
--15:43:25-- (try: 2) http://ftp.cuhk.edu.hk/pub/packages/perl/CPAN/authors/id/M/MS/MSERGEANT/XML-Parser-2.36.tar.gz
Reusing existing connection to ftp.cuhk.edu.hk:80.
HTTP request sent, awaiting response... 200 OK
Length: 230002 (225K) [application/x-gzip]
Saving to: `XML-Parser-2.36.tar.gz'

100%[=======================================>] 230,002 266K/s in 0.8s

15:43:26 (266 KB/s) - `XML-Parser-2.36.tar.gz' saved [230002/230002]

[root@croracle03 software]# tar xvfz XML-Parser-2.36.tar.gz
XML-Parser-2.36/
XML-Parser-2.36/Changes
XML-Parser-2.36/Expat/
XML-Parser-2.36/Expat/encoding.h
XML-Parser-2.36/Expat/Expat.pm
XML-Parser-2.36/Expat/Expat.xs
XML-Parser-2.36/Expat/Makefile.PL
XML-Parser-2.36/Expat/typemap
XML-Parser-2.36/Makefile.PL
XML-Parser-2.36/MANIFEST
XML-Parser-2.36/META.yml
XML-Parser-2.36/Parser/
XML-Parser-2.36/Parser/Encodings/
XML-Parser-2.36/Parser/Encodings/big5.enc
XML-Parser-2.36/Parser/Encodings/euc-kr.enc
XML-Parser-2.36/Parser/Encodings/iso-8859-2.enc
XML-Parser-2.36/Parser/Encodings/iso-8859-3.enc
XML-Parser-2.36/Parser/Encodings/iso-8859-4.enc
XML-Parser-2.36/Parser/Encodings/iso-8859-5.enc
XML-Parser-2.36/Parser/Encodings/iso-8859-7.enc
XML-Parser-2.36/Parser/Encodings/iso-8859-8.enc
XML-Parser-2.36/Parser/Encodings/iso-8859-9.enc
XML-Parser-2.36/Parser/Encodings/Japanese_Encodings.msg
XML-Parser-2.36/Parser/Encodings/README
XML-Parser-2.36/Parser/Encodings/windows-1250.enc
XML-Parser-2.36/Parser/Encodings/windows-1252.enc
XML-Parser-2.36/Parser/Encodings/x-euc-jp-jisx0221.enc
XML-Parser-2.36/Parser/Encodings/x-euc-jp-unicode.enc
XML-Parser-2.36/Parser/Encodings/x-sjis-cp932.enc
XML-Parser-2.36/Parser/Encodings/x-sjis-jdk117.enc
XML-Parser-2.36/Parser/Encodings/x-sjis-jisx0221.enc
XML-Parser-2.36/Parser/Encodings/x-sjis-unicode.enc
XML-Parser-2.36/Parser/LWPExternEnt.pl
XML-Parser-2.36/Parser/Style/
XML-Parser-2.36/Parser/Style/Debug.pm
XML-Parser-2.36/Parser/Style/Objects.pm
XML-Parser-2.36/Parser/Style/Stream.pm
XML-Parser-2.36/Parser/Style/Subs.pm
XML-Parser-2.36/Parser/Style/Tree.pm
XML-Parser-2.36/Parser.pm
XML-Parser-2.36/README
XML-Parser-2.36/samples/
XML-Parser-2.36/samples/canonical
XML-Parser-2.36/samples/canontst.xml
XML-Parser-2.36/samples/ctest.dtd
XML-Parser-2.36/samples/REC-xml-19980210.xml
XML-Parser-2.36/samples/xmlcomments
XML-Parser-2.36/samples/xmlfilter
XML-Parser-2.36/samples/xmlstats
XML-Parser-2.36/t/
XML-Parser-2.36/t/astress.t
XML-Parser-2.36/t/cdata.t
XML-Parser-2.36/t/decl.t
XML-Parser-2.36/t/defaulted.t
XML-Parser-2.36/t/encoding.t
XML-Parser-2.36/t/ext.ent
XML-Parser-2.36/t/ext2.ent
XML-Parser-2.36/t/external_ent.t
XML-Parser-2.36/t/file.t
XML-Parser-2.36/t/finish.t
XML-Parser-2.36/t/foo.dtd
XML-Parser-2.36/t/namespaces.t
XML-Parser-2.36/t/parament.t
XML-Parser-2.36/t/partial.t
XML-Parser-2.36/t/skip.t
XML-Parser-2.36/t/stream.t
XML-Parser-2.36/t/styles.t
[root@croracle03 software]#

[root@croracle03 XML-Parser-2.36]# perl Makefile.PL
Checking if your kit is complete...
Looks good
Writing Makefile for XML::Parser::Expat
Writing Makefile for XML::Parser
[root@croracle03 XML-Parser-2.36]#



[root@croracle03 XML-Parser-2.36]# make
cp Parser/Encodings/x-sjis-cp932.enc blib/lib/XML/Parser/Encodings/x-sjis-cp932.enc
cp Parser/Encodings/iso-8859-7.enc blib/lib/XML/Parser/Encodings/iso-8859-7.enc
cp Parser/Style/Tree.pm blib/lib/XML/Parser/Style/Tree.pm
cp Parser/Encodings/iso-8859-9.enc blib/lib/XML/Parser/Encodings/iso-8859-9.enc
cp Parser/Encodings/x-euc-jp-unicode.enc blib/lib/XML/Parser/Encodings/x-euc-jp-unicode.enc
cp Parser/Encodings/README blib/lib/XML/Parser/Encodings/README
cp Parser/Encodings/euc-kr.enc blib/lib/XML/Parser/Encodings/euc-kr.enc
cp Parser/Encodings/windows-1250.enc blib/lib/XML/Parser/Encodings/windows-1250.enc
cp Parser/Encodings/windows-1252.enc blib/lib/XML/Parser/Encodings/windows-1252.enc
cp Parser/Encodings/big5.enc blib/lib/XML/Parser/Encodings/big5.enc
cp Parser/Encodings/Japanese_Encodings.msg blib/lib/XML/Parser/Encodings/Japanese_Encodings.msg
cp Parser/Encodings/iso-8859-3.enc blib/lib/XML/Parser/Encodings/iso-8859-3.enc
cp Parser/Style/Subs.pm blib/lib/XML/Parser/Style/Subs.pm
cp Parser/Encodings/x-euc-jp-jisx0221.enc blib/lib/XML/Parser/Encodings/x-euc-jp-jisx0221.enc
cp Parser/Encodings/iso-8859-8.enc blib/lib/XML/Parser/Encodings/iso-8859-8.enc
cp Parser/Encodings/iso-8859-4.enc blib/lib/XML/Parser/Encodings/iso-8859-4.enc
cp Parser/Encodings/x-sjis-jdk117.enc blib/lib/XML/Parser/Encodings/x-sjis-jdk117.enc
cp Parser/Encodings/iso-8859-2.enc blib/lib/XML/Parser/Encodings/iso-8859-2.enc
cp Parser/Encodings/x-sjis-unicode.enc blib/lib/XML/Parser/Encodings/x-sjis-unicode.enc
cp Parser/LWPExternEnt.pl blib/lib/XML/Parser/LWPExternEnt.pl
cp Parser/Style/Objects.pm blib/lib/XML/Parser/Style/Objects.pm
cp Parser.pm blib/lib/XML/Parser.pm
cp Parser/Style/Debug.pm blib/lib/XML/Parser/Style/Debug.pm
cp Parser/Encodings/x-sjis-jisx0221.enc blib/lib/XML/Parser/Encodings/x-sjis-jisx0221.enc
cp Parser/Style/Stream.pm blib/lib/XML/Parser/Style/Stream.pm
cp Parser/Encodings/iso-8859-5.enc blib/lib/XML/Parser/Encodings/iso-8859-5.enc
make[1]: Entering directory `/root/software/XML-Parser-2.36/Expat'
cp Expat.pm ../blib/lib/XML/Parser/Expat.pm
/usr/bin/perl /usr/lib/perl5/5.8.8/ExtUtils/xsubpp -noprototypes -typemap /usr/lib/perl5/5.8.8/ExtUtils/typemap -typemap typemap Expat.xs > Expat.xsc && mv Expat.xsc Expat.c
gcc -c -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -DVERSION=\"2.36\" -DXS_VERSION=\"2.36\" -fPIC "-I/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE" Expat.c
Expat.xs: In function ‘generate_model’:
Expat.xs:260: warning: enumeration value ‘XML_CTYPE_EMPTY’ not handled in switch
Expat.xs:260: warning: enumeration value ‘XML_CTYPE_ANY’ not handled in switch
Expat.xs: In function ‘parse_stream’:
Expat.xs:299: warning: unused variable ‘buff’
Expat.xs: In function ‘startElement’:
Expat.xs:501: warning: comparison is always false due to limited range of data type
Expat.xs:485: warning: unused variable ‘pnslst’
Expat.xs:484: warning: unused variable ‘pnstab’
Expat.xs:481: warning: unused variable ‘pcontext’
Expat.xs: In function ‘externalEntityRef’:
Expat.xs:1028: warning: value computed is not used
Expat.xs: In function ‘unknownEncoding’:
Expat.xs:1146: warning: unused variable ‘count’
Expat.xs: In function ‘XS_XML__Parser__Expat_ParseStream’:
Expat.xs:1462: warning: unused variable ‘delimsv’
Expat.xs: In function ‘XS_XML__Parser__Expat_ParsePartial’:
Expat.xs:1488: warning: unused variable ‘cbv’
Expat.xs: In function ‘XS_XML__Parser__Expat_SetDoctypeHandler’:
Expat.xs:1740: warning: unused variable ‘set’
Expat.c: In function ‘XS_XML__Parser__Expat_GetBase’:
Expat.c:2080: warning: unused variable ‘RETVAL’
Expat.xs: In function ‘XS_XML__Parser__Expat_DefaultCurrent’:
Expat.xs:1920: warning: unused variable ‘cbv’
Expat.c: In function ‘XS_XML__Parser__Expat_ErrorString’:
Expat.c:2378: warning: unused variable ‘targ’
Expat.c:2377: warning: unused variable ‘RETVAL’
Expat.xs: In function ‘XS_XML__Parser__Expat_LoadEncoding’:
Expat.xs:2043: warning: comparison is always false due to limited range of data type
Expat.xs:2044: warning: comparison is always false due to limited range of data type
Expat.xs: In function ‘XS_XML__Parser__Expat_Do_External_Parse’:
Expat.xs:2205: warning: unused variable ‘pret’
Expat.xs:2194: warning: unused variable ‘cbv’
Expat.xs:2192: warning: unused variable ‘type’
Expat.c: At top level:
/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE/patchlevel.h:122: warning: ‘local_patches’ defined but not used
Expat.xs: In function ‘parse_stream’:
Expat.xs:291: warning: ‘linebuff’ may be used uninitialized in this function
Expat.xs:289: warning: ‘tbuff’ may be used uninitialized in this function
Expat.xs:290: warning: ‘tsiz’ may be used uninitialized in this function
Expat.c: In function ‘XS_XML__Parser__Expat_Do_External_Parse’:
Expat.c:2689: warning: ‘RETVAL’ may be used uninitialized in this function
Running Mkbootstrap for XML::Parser::Expat ()
chmod 644 Expat.bs
rm -f ../blib/arch/auto/XML/Parser/Expat/Expat.so
gcc -shared -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic Expat.o -o ../blib/arch/auto/XML/Parser/Expat/Expat.so \
-lexpat \

chmod 755 ../blib/arch/auto/XML/Parser/Expat/Expat.so
cp Expat.bs ../blib/arch/auto/XML/Parser/Expat/Expat.bs
chmod 644 ../blib/arch/auto/XML/Parser/Expat/Expat.bs
Manifying ../blib/man3/XML::Parser::Expat.3pm
make[1]: Leaving directory `/root/software/XML-Parser-2.36/Expat'
Manifying blib/man3/XML::Parser::Style::Objects.3pm
Manifying blib/man3/XML::Parser::Style::Debug.3pm
Manifying blib/man3/XML::Parser.3pm
Manifying blib/man3/XML::Parser::Style::Subs.3pm
Manifying blib/man3/XML::Parser::Style::Tree.3pm
Manifying blib/man3/XML::Parser::Style::Stream.3pm

[root@croracle03 XML-Parser-2.36]# make test
make[1]: Entering directory `/root/software/XML-Parser-2.36/Expat'
make[1]: Leaving directory `/root/software/XML-Parser-2.36/Expat'
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/astress.........ok
t/cdata...........ok
t/decl............ok
t/defaulted.......ok
t/encoding........ok
t/external_ent....ok
t/file............ok
t/finish..........ok
t/namespaces......ok
t/parament........ok
t/partial.........ok
t/skip............ok
t/stream..........ok
t/styles..........ok
All tests successful.
Files=14, Tests=130, 2 wallclock secs ( 0.78 cusr + 0.48 csys = 1.26 CPU)
[root@croracle03 XML-Parser-2.36]#


[root@croracle03 XML-Parser-2.36]# make install
make[1]: Entering directory `/root/software/XML-Parser-2.36/Expat'
make[1]: Leaving directory `/root/software/XML-Parser-2.36/Expat'
Installing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/XML/Parser/Expat/Expat.bs
Installing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/XML/Parser/Expat/Expat.so
Files found in blib/arch: installing files in blib/lib into architecture dependent library tree
Installing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/XML/Parser.pm
Installing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/XML/Parser/Expat.pm
Installing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/XML/Parser/LWPExternEnt.pl
Installing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/XML/Parser/Encodings/x-sjis-jisx0221.enc
Installing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/XML/Parser/Encodings/x-euc-jp-jisx0221.enc
Installing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/XML/Parser/Encodings/x-sjis-cp932.enc
Installing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/XML/Parser/Encodings/x-euc-jp-unicode.enc
Installing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/XML/Parser/Encodings/iso-8859-8.enc
Installing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/XML/Parser/Encodings/Japanese_Encodings.msg
Installing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/XML/Parser/Encodings/iso-8859-2.enc
Installing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/XML/Parser/Encodings/big5.enc
Installing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/XML/Parser/Encodings/iso-8859-5.enc
Installing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/XML/Parser/Encodings/iso-8859-3.enc
Installing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/XML/Parser/Encodings/euc-kr.enc
Installing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/XML/Parser/Encodings/README
Installing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/XML/Parser/Encodings/iso-8859-4.enc
Installing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/XML/Parser/Encodings/x-sjis-unicode.enc
Installing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/XML/Parser/Encodings/x-sjis-jdk117.enc
Installing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/XML/Parser/Encodings/windows-1250.enc
Installing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/XML/Parser/Encodings/windows-1252.enc
Installing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/XML/Parser/Encodings/iso-8859-9.enc
Installing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/XML/Parser/Encodings/iso-8859-7.enc
Installing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/XML/Parser/Style/Objects.pm
Installing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/XML/Parser/Style/Stream.pm
Installing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/XML/Parser/Style/Tree.pm
Installing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/XML/Parser/Style/Subs.pm
Installing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/XML/Parser/Style/Debug.pm
Installing /usr/share/man/man3/XML::Parser::Style::Subs.3pm
Installing /usr/share/man/man3/XML::Parser::Style::Stream.3pm
Installing /usr/share/man/man3/XML::Parser::Style::Tree.3pm
Installing /usr/share/man/man3/XML::Parser.3pm
Installing /usr/share/man/man3/XML::Parser::Style::Objects.3pm
Installing /usr/share/man/man3/XML::Parser::Style::Debug.3pm
Installing /usr/share/man/man3/XML::Parser::Expat.3pm
Writing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/XML/Parser/.packlist
Appending installation info to /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/perllocal.pod
[root@croracle03 XML-Parser-2.36]#


檢查是否安裝成功:
[root@croracle03 DBI-1.609]# ./perl-module.pl
DBD::mysql
DBI
Perl
XML::Parser[root@croracle03 DBI-1.609]#


Install Zrm for Mysql
安裝Zrm

[root@croracle03 software]# rpm -ivh MySQL-zrm-2.1-1.noarch.rpm
warning: MySQL-zrm-2.1-1.noarch.rpm: Header V3 DSA signature: NOKEY, key ID 3c5d1c92
error: Failed dependencies:
perl(XML::Parser) is needed by MySQL-zrm-2.1-1.noarch
perl-DBI is needed by MySQL-zrm-2.1-1.noarch
[root@croracle03 software]#



[root@croracle03 software]# rpm -ivh MySQL-zrm-2.1-1.noarch.rpm --nodeps
warning: MySQL-zrm-2.1-1.noarch.rpm: Header V3 DSA signature: NOKEY, key ID 3c5d1c92
Preparing... ########################################### [100%]
1:MySQL-zrm ########################################### [100%]
Checking and Migrating old ZRM data
[root@croracle03 software]#



Verify Zrm for Mysql Installation
檢查包是否安裝成功
[root@croracle03 software]# ls -lh /usr/bin/mysql-zrm*
-rwxr-x--- 1 mysql mysql 3.1K Dec 5 2008 /usr/bin/mysql-zrm
-rwxr-x--- 1 mysql mysql 1.7K Dec 5 2008 /usr/bin/mysql-zrm-abort-backup
-rwxr-x--- 1 mysql mysql 57K Dec 5 2008 /usr/bin/mysql-zrm-backup
-rwxr-x--- 1 mysql mysql 1.6K Dec 5 2008 /usr/bin/mysql-zrm-check
-rwxr-x--- 1 mysql mysql 2.8K Dec 5 2008 /usr/bin/mysql-zrm-extract-backup
-rwxr-x--- 1 mysql mysql 1.8K Dec 5 2008 /usr/bin/mysql-zrm-getconf
-rwxr-x--- 1 mysql mysql 4.4K Dec 5 2008 /usr/bin/mysql-zrm-list
-rwxr-x--- 1 mysql mysql 11K Dec 5 2008 /usr/bin/mysql-zrm-manage-backup
-rwxr-x--- 1 mysql mysql 2.7K Dec 5 2008 /usr/bin/mysql-zrm-migrate-file-ownership
-rwxr-x--- 1 mysql mysql 7.1K Dec 5 2008 /usr/bin/mysql-zrm-parse-binlogs
-rwxr-x--- 1 mysql mysql 4.7K Dec 5 2008 /usr/bin/mysql-zrm-purge
-rwxr-x--- 1 mysql mysql 27K Dec 5 2008 /usr/bin/mysql-zrm-reporter
-rwxr-x--- 1 mysql mysql 20K Dec 5 2008 /usr/bin/mysql-zrm-restore
-rwxr-x--- 1 mysql mysql 13K Dec 5 2008 /usr/bin/mysql-zrm-scheduler
-rwxr-x--- 1 mysql mysql 8.0K Dec 5 2008 /usr/bin/mysql-zrm-verify-backup
[root@croracle03 software]#



檢查配置文件是否安裝成功
ZRM for Mysql configuration files are located in /etc/mysql-zrm:

[root@croracle03 software]# ls -lh /etc/mysql-zrm/
total 24K
-rwxrwx--- 1 mysql mysql 11K Dec 5 2008 mysql-zrm.conf
-rwxrwx--- 1 mysql mysql 46 Dec 5 2008 mysql-zrm-release
-rwxrwx--- 1 mysql mysql 3.1K Dec 5 2008 mysql-zrm-reporter.conf
-rw-rw---- 1 mysql mysql 596 Dec 5 2008 RSS.header
[root@croracle03 software]#



configure ZRM for Mysql to backup your database
配置ZRM

用之前建立的備份用戶登錄
[root@croracle03 software]# mysql -u backup-user -ppass123
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 67
Server version: 5.1.36-community-log MySQL Community Server (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

創建一個測試庫,并導入數據
mysql> create database zrmtest;
Query OK, 1 row affected (0.01 sec)

mysql>


mysql> use zrmtest;
Database changed
mysql> CREATE TABLE ORDERLINES
-> (
-> ORDERLINEID SMALLINT NOT NULL,
-> ORDERID INT NOT NULL,
-> PROD_ID INT NOT NULL,
-> QUANTITY SMALLINT NOT NULL,
-> ORDERDATE DATE NOT NULL
-> )
-> ;
Query OK, 0 rows affected (0.00 sec)

mysql>



1. log in as root on your linux server.
2. configure a daily full backup of the zrmtest database.
使用root權限用戶登錄
配置一個每天的全備份

[root@croracle03 software]# cd /etc/mysql-zrm/
[root@croracle03 mysql-zrm]# ls
mysql-zrm.conf mysql-zrm-release mysql-zrm-reporter.conf RSS.header
創建一個目錄存放每日全備份腳本
[root@croracle03 mysql-zrm]# mkdir dailyrun
[root@croracle03 mysql-zrm]# cp mysql-zrm.conf dailyrun/
[root@croracle03 mysql-zrm]# cd dailyrun/
[root@croracle03 dailyrun]# ls -lh
total 12K
-rwxr-x--- 1 root root 11K Aug 7 16:08 mysql-zrm.conf
[root@croracle03 dailyrun]#

編輯腳本:
Edit /etc/mysql-zrm/dailyrun/mysql-zrm.conf to change the parameters as
shown below.


# Backup level. It can be full or incremental
# Use 0 for full and 1 for incremental backups
# This parameter is optional and default value is full backup.
#
backup-level=0 #備份level設定為0


retention-policy=10D #保存期限為10day
backup-mode=logical # 備份模式為logical
databases="zrmtest" #要備份的庫名
compress=1 #壓縮級別
user="backup-user" # 備份用戶(Mysql)
verbose=1 #描述級別

mailto="aaa@bbb.ccc" #通知信箱設定


命令行設定:
[root@croracle03 dailyrun]# mysql-zrm-backup --backup-set dailyrun
backup:INFO: ZRM for MySQL Community Edition - version 2.1
dailyrun:backup:INFO: START OF BACKUP
dailyrun:backup:INFO: PHASE START: Initialization
dailyrun:backup:INFO: The quick backup-type is supported only for snapshot backups. Setting backup-type to 'regular'
dailyrun:backup:INFO: Mail address: ivanyao@cri.com.hk is ok
dailyrun:backup:INFO: ZRM Temporary configuration file = /etc/mysql-zrm/dailyrun/tmpKvU2v.conf
dailyrun:backup:INFO: {
dailyrun:backup:INFO: verbose=1
dailyrun:backup:INFO: retention-policy=10D
dailyrun:backup:INFO: backup-level=0
dailyrun:backup:INFO: mailto=ivanyao@cri.com.hk
dailyrun:backup:INFO: databases=zrmtest
dailyrun:backup:INFO: backup-mode=logical
dailyrun:backup:INFO: password=******
dailyrun:backup:INFO: backup-type=regular
dailyrun:backup:INFO: compress=
dailyrun:backup:INFO: user=backup-user
dailyrun:backup:INFO: }
dailyrun:backup:INFO: Getting mysql variables
dailyrun:backup:INFO: mysqladmin --user="backup-user" --password="*****" variables
dailyrun:backup:INFO: datadir is /var/lib/mysql/
dailyrun:backup:INFO: mysql_version is 5.1.36-community-log
dailyrun:backup:INFO: InnoDB data file are /var/lib/mysql/ibdata1
dailyrun:backup:INFO: InnoDB log dir is /var/lib/mysql/.
dailyrun:backup:INFO: backup set being used is dailyrun
dailyrun:backup:INFO: backup-set=dailyrun
dailyrun:backup:INFO: backup-date=20090807162212
dailyrun:backup:INFO: mysql-server-os=Linux/Unix
dailyrun:backup:INFO: backup-type=regular
dailyrun:backup:INFO: host=localhost
dailyrun:backup:INFO: backup-date-epoch=1249633332
dailyrun:backup:INFO: retention-policy=10D
dailyrun:backup:INFO: mysql-zrm-version=ZRM for MySQL Community Edition - version 2.1
dailyrun:backup:INFO: mysql-version=5.1.36-community-log
dailyrun:backup:INFO: backup-directory=/var/lib/mysql-zrm/dailyrun/20090807162212
dailyrun:backup:INFO: backup-level=0
dailyrun:backup:INFO: backup-mode=logical
dailyrun:backup:INFO: PHASE END: Initialization
dailyrun:backup:INFO: PHASE START: Running pre backup plugin
dailyrun:backup:INFO: Executing pre-backup-plugin
dailyrun:backup:INFO: PHASE END: Running pre backup plugin
dailyrun:backup:INFO: PHASE START: Flushing logs
dailyrun:backup:INFO: Flushing the logs
dailyrun:backup:INFO: mysqladmin --user="backup-user" --password="*****" flush-logs
dailyrun:backup:INFO: Getting master logname using command mysql --user="backup-user" --password="*****" -e "show master status"
dailyrun:backup:INFO: PHASE END: Flushing logs
dailyrun:backup:INFO: PHASE START: Creating logical backup
dailyrun:backup:INFO: Command used for logical backup is mysqldump --opt --extended-insert --create-options --default-character-set=utf8 --single-transaction --user="backup-user" --password="*****" --databases zrmtest > "/var/lib/mysql-zrm/dailyrun/20090807162212/backup.sql"
dailyrun:backup:INFO: Logical backup done for the following database(s)
zrmtest
dailyrun:backup:INFO: logical-databases=zrmtest
dailyrun:backup:INFO: PHASE END: Creating logical backup
dailyrun:backup:INFO: PHASE START: Calculating backup size & checksums
dailyrun:backup:INFO: next-binlog=mysql-bin.000008
dailyrun:backup:INFO: backup-size=1.67 MB
dailyrun:backup:INFO: PHASE END: Calculating backup size & checksums
dailyrun:backup:INFO: PHASE START: Compression/Encryption
dailyrun:backup:INFO: Compressing backup
dailyrun:backup:INFO: Command used is 'tar --same-owner -cpsC "/var/lib/mysql-zrm/dailyrun/20090807162212" --exclude=backup-data --exclude=index --exclude=zrm_checksum --exclude=backup-sql . 2>/tmp/sAqQmLDtKe | gzip 2>/tmp/54RCr7d03A > "/var/lib/mysql-zrm/dailyrun/20090807162212/backup-data" 2>/tmp/PnD4Np8EAU'
dailyrun:backup:INFO: compress=
dailyrun:backup:INFO: backup-size-compressed=0.39 MB
dailyrun:backup:INFO: Removing all of the uncompressed/unencrypted data
dailyrun:backup:INFO: PHASE END: Compression/Encryption
dailyrun:backup:INFO: read-locks-time=00:00:01
dailyrun:backup:INFO: flush-logs-time=00:00:00
dailyrun:backup:INFO: compress-encrypt-time=00:00:01
dailyrun:backup:INFO: backup-time=00:00:01
dailyrun:backup:INFO: backup-status=Backup succeeded
dailyrun:backup:INFO: Backup succeeded
dailyrun:backup:INFO: PHASE START: Running post backup plugin
dailyrun:backup:INFO: Executing post-backup-plugin
dailyrun:backup:INFO: PHASE END: Running post backup plugin
dailyrun:backup:INFO: PHASE START: Mailing backup report
dailyrun:backup:INFO: mailing file /tmp/HECjXsbWwG
dailyrun:backup:INFO: mail command is cat "/tmp/HECjXsbWwG"|mail -s "[ZRM for MySQL Report] backup-set dailyrun" ivanyao@cri.com.hk
dailyrun:backup:INFO: PHASE END: Mailing backup report
dailyrun:backup:INFO: PHASE START: Cleanup
dailyrun:backup:INFO: PHASE END: Cleanup
dailyrun:backup:INFO: END OF BACKUP
You have new mail in /var/spool/mail/root
[root@croracle03 dailyrun]#


備份計畫設定:
mysql-zrm-scheduler --add --interval daily --start 01:00 --backup-level 0 --backup-set dailyrun


[root@croracle03 dailyrun]# mysql-zrm-scheduler --add --interval daily --start 01:00 --backup-level 0 --backup-set dailyrun
schedule:INFO: ZRM for MySQL Community Edition - version 2.1
Logging to /var/log/mysql-zrm/mysql-zrm-scheduler.log
DONE
[root@croracle03 dailyrun]#


備份計畫查詢
[root@croracle03 dailyrun]# mysql-zrm-scheduler --query
schedule:INFO: ZRM for MySQL Community Edition - version 2.1
Logging to /var/log/mysql-zrm/mysql-zrm-scheduler.log
0 1 * * * /usr/bin/zrm-pre-scheduler --action backup --backup-set dailyrun --backup-level 0 --interval daily
[root@croracle03 dailyrun]#


備份集查詢:
[root@croracle03 dailyrun]# mysql-zrm-reporter --where backup-set=dailyrun --show backup-status-info
reporter:WARNING: Backup root directory not specified, Assigning default value as /var/lib/mysql-zrm

REPORT TYPE : backup-status-info

backup_set backup_date backup_level backup_status backup_type comment
-----------------------------------------------------------------------------------------------------------------------------
dailyrun Fri 07 Aug 2009 04:22:12 0 Backup succeeded regular ----
PM HKT
[root@croracle03 dailyrun]#


備份報告:
[root@croracle03 dailyrun]# mysql-zrm-reporter --where backup-set=dailyrun --show backup-performance-info
reporter:WARNING: Backup root directory not specified, Assigning default value as /var/lib/mysql-zrm

REPORT TYPE : backup-performance-info

backup_set backup_date backup_level backup_size backup_size_compressed backup_time backup_type compress_encrypt_time
----------------------------------------------------------------------------------------------------------------------------------------------------------------
dailyrun Fri 07 Aug 2009 04:22:12 0 1.67 MB 0.39 MB 00:00:01 regular 00:00:01
PM HKT
[root@croracle03 dailyrun]#



[root@croracle03 dailyrun]# mysql-zrm --action verify-backup --backup-set dailyrun
verify-backup:INFO: ZRM for MySQL Community Edition - version 2.1
dailyrun:verify-backup:INFO: Verification successful
[root@croracle03 dailyrun]#



Perform a full restoration


恢復實驗:

[root@croracle03 dailyrun]# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 83
Server version: 5.1.36-community-log MySQL Community Server (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases
-> ;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| replDB |
| test |
| zrmtest |
+--------------------+
5 rows in set (0.00 sec)

將測試庫刪除
mysql> drop database zrmtest;
Query OK, 1 row affected (0.01 sec)

mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| replDB |
| test |
+--------------------+
4 rows in set (0.00 sec)

mysql>



1Determine which backup to restore from.
查找備份集中可用的備份

[root@croracle03 dailyrun]# mysql-zrm-reporter --show restore-info --where backup-set=dailyrun
reporter:WARNING: Backup root directory not specified, Assigning default value as /var/lib/mysql-zrm

REPORT TYPE : restore-info

backup_set backup_date backup_level backup_directory backup_status comment
-----------------------------------------------------------------------------------------------------------------------------------------------------
dailyrun Fri 07 Aug 2009 04:22:12 0 /var/lib/mysql-zrm/dailyrun/20090807162212 Backup succeeded ----
PM HKT
[root@croracle03 dailyrun]#

mysql-zrm-restore --backup-set dailyrun --source-directory /var/lib/mysql-zrm/dailyrun/20090807162212

找到合適的備份集,恢復
[root@croracle03 dailyrun]# mysql-zrm-restore --backup-set dailyrun --source-directory /var/lib/mysql-zrm/dailyrun/20090807162212
restore:INFO: ZRM for MySQL Community Edition - version 2.1
dailyrun:restore:INFO: The quick backup-type is supported only for snapshot backups. Setting backup-type to 'regular'
dailyrun:restore:INFO: Mail address: ivanyao@cri.com.hk is ok
dailyrun:restore:INFO: ZRM Temporary configuration file = /etc/mysql-zrm/dailyrun/tmpOlsTl.conf
dailyrun:restore:INFO: {
dailyrun:restore:INFO: verbose=1
dailyrun:restore:INFO: retention-policy=10D
dailyrun:restore:INFO: backup-level=0
dailyrun:restore:INFO: mailto=ivanyao@cri.com.hk
dailyrun:restore:INFO: databases=zrmtest
dailyrun:restore:INFO: source-directory=/var/lib/mysql-zrm/dailyrun/20090807162212
dailyrun:restore:INFO: backup-mode=logical
dailyrun:restore:INFO: password=******
dailyrun:restore:INFO: backup-type=regular
dailyrun:restore:INFO: compress=
dailyrun:restore:INFO: user=backup-user
dailyrun:restore:INFO: }
dailyrun:restore:INFO: Getting mysql variables
dailyrun:restore:INFO: mysqladmin --user="backup-user" --password="*****" variables
dailyrun:restore:INFO: datadir is /var/lib/mysql/
dailyrun:restore:INFO: mysql_version is 5.1.36-community-log
dailyrun:restore:INFO: InnoDB data file are /var/lib/mysql/ibdata1
dailyrun:restore:INFO: InnoDB log dir is /var/lib/mysql/.
dailyrun:restore:INFO: Command used is 'cat "/var/lib/mysql-zrm/dailyrun/20090807162212/backup-data" | gzip -d | tar --same-owner -xpsC "/var/lib/mysql-zrm/dailyrun/20090807162212" 2>/tmp/t93A2oRNNR'
dailyrun:restore:INFO: restoring using command mysql --user="backup-user" --password="*****" -e "set character_set_client=utf8;set character_set_connection=utf8;set character_set_database=utf8;set character_set_results=utf8;set character_set_server=utf8;source /tmp/kWE08QcaGC;"
dailyrun:restore:INFO: Restored database(s) from logical backup: zrmtest
dailyrun:restore:INFO: Removing all of the uncompressed/unencrypted data
dailyrun:restore:INFO: Restore done in 1 seconds.
[root@croracle03 dailyrun]#


檢查數據庫恢復效果:
[root@croracle03 dailyrun]# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 88
Server version: 5.1.36-community-log MySQL Community Server (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| replDB |
| test |
| zrmtest |
+--------------------+
5 rows in set (0.00 sec)

mysql> use zrmtest
Database changed
mysql> show tables;
+-------------------+
| Tables_in_zrmtest |
+-------------------+
| ORDERLINES |
+-------------------+
1 row in set (0.00 sec)

mysql> select count(*) from ORDERLINES;
+----------+
| count(*) |
+----------+
| 60350 |
+----------+
1 row in set (0.00 sec)

mysql>

Good luck!


没有评论:

发表评论