下载对应数据库采集程序,并在数据库服务器上运行。
- 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.zip
Windows
解压后直接在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.txt
RAC无用户等效
正常情况下,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