數據庫遷移需要在數據傳輸時做MD5驗證,下面記錄了提前進行測試的過程。
一、首先查看AIX的版本,為5.3:
# oslevel 5.3.0.0
該台AIX為已不再使用的機器,沒找到合適的測試文件,需要dd命令生成一個test.dmp文件用來測試:
# df -m Filesystem MB blocks Free %Used Iused %Iused Mounted on /dev/hd4 10240.00 3942.29 62% 8927 1% / /dev/hd2 2304.00 562.10 76% 36037 22% /usr /dev/hd9var 64.00 52.94 18% 392 3% /var /dev/hd3 512.00 510.85 1% 116 1% /tmp /dev/hd1 64.00 24.67 62% 25 1% /home /proc - - - - - /proc /dev/hd10opt 12800.00 5188.66 60% 38948 4% /opt /dev/ftp_lv 3200.00 590.58 82% 4662 4% /ftproot # pwd / # dd if=/dev/hd2 of=/test.dmp ibs=1M count=3000 2304+0 records in. 4718592+0 records out. # ls -l |grep test -rw-r--r-- 1 root system 2415919104 Apr 15 21:18 test.dmp #
生成的文件大小為2415919104/1024/1024 = 2300MB。AIX自帶的命令csum可以計算MD5,但是無法處理大於2GB的文件,處理大文件時可以手動編輯一個perl腳本md5sum.pl。
1 #!/usr/bin/perl 2 3 use Digest::MD5; 4 use IO::File; 5 6 my $chk = Digest::MD5->new(); 7 foreach my $file (@ARGV) 8 { 9 $chk->addfile(IO::File->new($file)); 10 print "$file->",$chk->hexdigest,"\n"; 11 } 12 ~
下面測試此命令對於一個普通小文件的MD5計算,可以看到兩者結果時一樣的:
# csum -h MD5 smit.log 6177d1a15805d2ac45723ad7a490c898 smit.log # ./md5sum.pl smit.log smit.log->6177d1a15805d2ac45723ad7a490c898 #
再測試兩者對於剛生成的文件的MD5的計算:
# csum -h MD5 test.dmp csum: 1493-010 Unable to open test.dmp. csum: 1493-001 Unable to access one or more specified files. # ./md5sum.pl test.dmp test.dmp->e40fc9e573519f685f5939d297f5afdf #
經過自己計時,共花費了48s,平均速度為48MB/s。
二、查看Solaris版本,為Solaris 10:
$ uname -a SunOS t-ora 5.10 Generic_111111-11 sun4v sparc sun4v ---處理過了:)
經過查詢資料,在10中md5sum已經在光盤中了,但是本機沒有安裝,需要使用digest 命令,該機上有合適的文件用於測試就不需要進行創建了:
$ md5sum md5sum: not found $ ls -l |grep eis -rw-r--r-- 1 root root 6946582528 Dec 28 10:05 eis-dvd3.4.4-1.iso $ digest -a md5 -v eis-dvd3.4.4-1.iso md5 (eis-dvd3.4.4-1.iso) = 8ca90a7d389b69a41148fc2dcf5ec5b9
經過自己計時,共花費了138s,文件大小為 6946582528/1024/1024 =6624MB 平均速度為48MB/s。
