下載對應數據庫采集程序,并在數據庫服務器上運行。
- Oracle
- PostgreSQL
- MySQL
無數據
BTRobot 版本:v2.3.0
大小:122.66KB
適應系統:All Platform
更新時間:2024-10-09
使用方法
直接在一個節點運行腳本。(Windows請查看下方對應的使用方法)
--下載并解壓采集程序
wget https://oss-emcsprod-public.modb.pro/tools/BTRobot-v2.3.0.zip
unzip BTRobot-v2.3.0.zip
cd BTRobot-v2.3.0
--檢查設置環境變量
echo $ORACLE_HOME
--export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
echo $ORACLE_SID
--export ORACLE_SID=BTDB
--開始采集(采集7天內的信息,且不采集DG數據)
perl runMe.pl -e 7 -L 7 -S -t 7 -T 7
--若提示未安裝perl,可以使用$ORACLE_HOME/perl/bin/perl
--獲取采集數據包
get data/BTDB_20180719094613.zipWindows
解壓后直接在CMD窗口運行。
--下載到D盤解壓打開CMD窗口
cmd
d:
cd BTRobot-v2.3.0
--設置環境變量
SET ORACLE_HOME=C:\oracle\product\10.2.0\db_1
SET ORACLE_SID=WINDB
SET PATH=%ORACLE_HOME%\bin;%ORACLE_HOME%\perl\5.8.3\bin\MSWin32-X64-multi-thread;%PATH%
--Tips:以下環境變量的值請依據實際情況替換,確保可以在 CMD 中使用 perl 并且可以正常登錄數據庫實例
--開始采集(采集7天內的信息,且不采集DG數據)
perl runMe.pl -e 7 -L 7 -S -t 7 -T 7
--若提示未安裝perl,可以使用$ORACLE_HOME/perl/bin/perl
--數據包位置
d:\BTRobot-v2.3.0\data\WINDB_20180719094613.zip幫助信息
可以執行如下命令查看幫助信息以及參數釋義
perl runMe.pl -h
cat ReadMe_EN.txtRAC無用戶等效
正常情況下,RAC 節點之間都會配置用戶等效,此時在一個節點運行采集工具即可采集所有節點的信息。但若采集的目標庫是 RAC 數據庫,且并未在集群節點間配置用戶等效,那么會有如下提示信息:
User equivalent is not configured
You can Choose :
P: [Password Mode] Use Password to Login Remote and Collect Data
L: [Listener Mode] You Must Run Command on Remote Manually (it's Default)
====> 采集工具提示用戶選擇遠程節點的采集方式,有密碼模式(P)和監聽模式(L)兩種:
其中:密碼模式適用于操作者知道遠程節點密碼的情況,且需要當前服務器有 setsid 命令;監聽模式適用于操作者不知道遠程節點密碼,但能通過其他方式連接遠程節點的情況。
若操作者選擇密碼模式,則根據提示信息,一步步輸入各個遠程節點(如果密碼相同,則根據提示只需要輸入一次)的密碼即可正常采集。
若操作者選擇監聽模式,則在采集節點操作系統信息的時候,會有如下提示信息:
15:25:22 COMPLETE: BXDB -> Collection Completed, Running is [XX]
15:26:24 cltNodRes:
15:26:24 cltNodRes: <=============================[ Attention ]=============================>
15:26:24 cltNodRes: Follow Command Must Manual Run on Remote Node
15:26:24 cltNodRes: Remote List: XX
15:26:24 cltNodRes: <=======================================================================>
# ------------------------[ Run on Remote by Oracle ]---------------------------
perl -e 'use IO::Socket;use IO::Select;
$OH=$ENV{ORACLE_HOME};my ($PN,$PP)=(" 123.123.123.123",12345); # Primary
my $SK=IO::Socket::INET->new(PeerAddr=>$PN,PeerPort=>$PP,Proto=>TCP,Timeout=>60)
or die "Connect [$!]";$SL=IO::Select->new($SK);$NH=($SL->handles)[0];my @FL;
print "Files :";$NH->send("GET_FILE|X\n");die "No Reply"
if(! $SL->can_read(60));while(1){my $ND;chomp($ND=$NH->getline);last if($ND eq
"COMPLETED");print $ND;push(@FL,$ND);open FH,">",$ND;while(1){chomp($ND=
$NH->getline);last if($ND eq "<-EOF->");print FH "$ND\n";}close FH;
print "[OK] ";}print "\n";$ENV{"LIBPATH"}="$OH/lib32:$OH/lib";
$ENV{"SHLIB_PATH"}=$ENV{"LD_LIBRARY_PATH"}=$ENV{"LIBPATH"};
system("$OH/perl/bin/perl NodeRobot.pl $PN $PP");foreach(\@FL){unlink}'
# ------------------------[ Run on Remote by Oracle ]--------------------------- 采集工具此時會掛起,等待用戶操作,需按照提示操作:拷貝提示信息中完整的 perl 命令,在遠程節點列表內的服務器中運行命令。
DG數據采集
默認-S不會采集DG信息,若需采集DG信息,請去掉-S參數,并在DG庫按照提示執行語句:
15:35:15 cltDGDat: +==================== [ DG Information ] ====================+
15:35:15 cltDGDat: | DG Name Remote Host Remote IP |
15:35:15 cltDGDat: | -------------------- -------------------- --------------- |
15:35:15 cltDGDat: | BXDG BXDG 10.51.94.237 |
15:35:15 cltDGDat: +============================================================+
15:35:15 cltDGDat: Notes: You can skip DG Collection by [CTRL + C]
# ------------------------[ Run on Remote by Oracle ]---------------------------
perl -e 'use IO::Socket;use IO::Select;
$OH=$ENV{ORACLE_HOME};my ($PN,$PP)=(" 123.123.123.123",12345); # Primary
my $SK=IO::Socket::INET->new(PeerAddr=>$PN,PeerPort=>$PP,Proto=>TCP,Timeout=>60)
or die "Connect [$!]";$SL=IO::Select->new($SK);$NH=($SL->handles)[0];my @FL;
print "Files :";$NH->send("GET_FILE|X\n");die "No Reply"
if(! $SL->can_read(60));while(1){my $ND;chomp($ND=$NH->getline);last if($ND eq
"COMPLETED");print $ND;push(@FL,$ND);open FH,">",$ND;while(1){chomp($ND=
$NH->getline);last if($ND eq "<-EOF->");print FH "$ND\n";}close FH;
print "[OK] ";}print "\n";$ENV{"LIBPATH"}="$OH/lib32:$OH/lib";
$ENV{"SHLIB_PATH"}=$ENV{"LD_LIBRARY_PATH"}=$ENV{"LIBPATH"};
system("$OH/perl/bin/perl DGRobot.pl $PN $PP");foreach(\@FL){unlink}'
# ------------------------[ Run on Remote by Oracle ]--------------------------- 采集工具此時會掛起,等待用戶操作,需按照提示操作:拷貝提示信息中完整的 perl 命令,在遠程節點列表內的服務器中運行命令。
將上一步采集的數據包上傳到平臺中。
--獲取采集數據包
get data/BTDB_20180719094613.zip
--WIN數據包位置
d:\BTRobot-v2.3.0\data\WINDB_20180719094613.zip 

