Thursday, February 24, 2011

Distributed Shell for Oracle Storage

"dcli" script executes commands on multiple cells in parallel threads. The cells are referenced by their domain name or ip address. Local files can be copied to cells and executed on cells.
If we would like to know more about setting up "dcli". we can find out on My Oracle Support - Setting up DCLI Utility on Oracle DB host [ID 787205.1]

This is shell utility on Exadata servers, It seems to use "SSH login without password" idea (push ssh key to cell's authorized_keys file) on "root" user or ...
Example:
# cat all_group
exadb01
exadb02
exadb03
exadb04
exacel01
exacel02
exacel03
exacel04
exacel05
exacel06
exacel07

# dcli -g all_group -l root "hostname"
exadb01: exadb01.domain
exadb02: exadb02.domain
exadb03: exadb03.domain
exadb04: exadb04.domain
exacel01: exacel01.domain
exacel02: exacel02.domain
exacel03: exacel03.domain
exacel04: exacel04.domain
exacel05: exacel05.domain
exacel06: exacel06.domain
exacel07: exacel07.domain
# cat dbs_group
exadb01
exadb02
exadb03
exadb04

# dcli -g dbs_group -l root "vmstat 1 2| tail -1"
exadb01: 0 0 0 93954080 84384 3399876 0 0 0 0 1352 10532 0 0 100 0 0
exadb02: 0 0 0 93701856 98800 3552584 0 0 0 0 1282 10636 0 0 100 0 0
exadb03: 0 0 0 92977872 98836 4266000 0 0 0 0 1275 10504 0 0 100 0 0
exadb04: 0 0 0 93257040 85704 3739464 0 0 0 0 1258 10277 0 0 100 0 0
If want to use "vmstat" with "dcli", use option:
--vmstat=VMSTATOPS vmstat command options
Example:
# dcli -l root -g dbs_group --vmstat="-a 1 2"
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
00:54:49: r b swpd free inact active si so bi bo in cs us sy id wa st
exadb01: 0 0 0 73336200 20123384 4346176 0 0 0 8 3 4 0 0 100 0 0
exadb02: 0 0 0 92061888 2797188 3472388 0 0 0 17 4 2 0 0 100 0 0
exadb03: 0 0 0 91947248 2783296 3597512 0 0 0 16 4 6 0 0 100 0 0
exadb04: 1 0 0 91658088 2993800 3664716 0 0 0 4 3 2 0 0 100 0 0
Minimum: 0 0 0 73336200 2783296 3472388 0 0 0 4 3 2 0 0 100 0 0
Maximum: 1 0 0 92061888 20123384 4346176 0 0 0 17 4 6 0 0 100 0 0
Average: 0 0 0 87250856 7174417 3770198 0 0 0 11 3 3 0 0 100 0 0
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
00:54:50: r b swpd free inact active si so bi bo in cs us sy id wa st
exadb01: 0 0 0 73334824 20123416 4346228 0 0 0 0 1109 10562 1 0 99 0 0
exadb02: 1 0 0 92062160 2797184 3472456 0 0 0 8 1104 9977 0 0 100 0 0
exadb03: 0 0 0 91947776 2783292 3597516 0 0 0 4 1112 10077 0 0 100 0 0
exadb04: 0 0 0 91657872 2993804 3664720 0 0 0 16 1108 10109 0 0 100 0 0
Minimum: 0 0 0 73334824 2783292 3472456 0 0 0 0 1104 9977 0 0 99 0 0
Maximum: 1 0 0 92062160 20123416 4346228 0 0 0 16 1112 10562 1 0 100 0 0
Average: 0 0 0 87250658 7174424 3770230 0 0 0 7 1108 10181 0 0 99 0 0
This is easy to executes commands on multiple cells. But I'm afraid "SSH login without password" idea for "root" user or ... on all cells(servers). How do you think?

No comments: