====== Reporting/Database Queries ====== For now this will only consist of useful queries. Maybe in the future I'll try to setup a reporting web page for the database. ==== All non-bes users in a store: ==== select displayName,bes,size from exchange_info where server='cuit-exchange1' AND mdb='Mailbox Store 10 (CUIT-EXCHANGE1)' AND bes IS NULL order by size; ==== Count of bes users in a store, and how much mail is in the store: ==== select count(bes) as "BES Users",server,sg,mdb,sum(size) as space, count(size) as mailboxes from exchange_info where server='cuit-exchange1' AND mdb='Mailbox Store 10 (CUIT-EXCHANGE1)'; mysql> select count(bes) as "BES Users",server,sg,mdb,sum(size) as space, count(size) as mailboxes from exchange_info where server='cuit-exchange1' AND mdb='Mailbox Store 10 (CUIT-EXCHANGE1)'; +-----------+----------------+---------------------+-----------------------------------+----------+-----------+ | BES Users | server | sg | mdb | space | mailboxes | +-----------+----------------+---------------------+-----------------------------------+----------+-----------+ | 18 | cuit-exchange1 | Third Storage Group | Mailbox Store 10 (CUIT-EXCHANGE1) | 47687618 | 79 | +-----------+----------------+---------------------+-----------------------------------+----------+-----------+ 1 row in set (0.03 sec) ==== Count of bes users in a store, and how much mail is in only their boxes: ==== select count(bes) as "BES Users",server,sg,mdb,sum(size) as space, count(size) as mailboxes from exchange_info where bes='1' AND server='cuit-exchange1' AND mdb='Mailbox Store 10 (CUIT-EXCHANGE1)'; mysql> select count(bes) as "BES Users",server,sg,mdb,sum(size) as space, count(size) as mailboxes from exchange_info where bes='1' AND server='cuit-exchange1' AND mdb='Mailbox Store 10 (CUIT-EXCHANGE1)'; +-----------+----------------+---------------------+-----------------------------------+----------+-----------+ | BES Users | server | sg | mdb | space | mailboxes | +-----------+----------------+---------------------+-----------------------------------+----------+-----------+ | 18 | cuit-exchange1 | Third Storage Group | Mailbox Store 10 (CUIT-EXCHANGE1) | 15374889 | 18 | +-----------+----------------+---------------------+-----------------------------------+----------+-----------+ 1 row in set (0.04 sec) mysql> select mdb as "MailStore",sum(size) as "Total Data (KB)",count(bes) as "BES Users",count(displayName) as Mailboxes from exchange_info where server='cuit-exchange1' AND mdb='Mailbox Store 10 (CUIT-EXCHANGE1)' order by displayName; +-----------------------------------+-----------------+-----------+-----------+ | MailStore | Total Data (KB) | BES Users | Mailboxes | +-----------------------------------+-----------------+-----------+-----------+ | Mailbox Store 10 (CUIT-EXCHANGE1) | 34096736 | 18 | 61 | +-----------------------------------+-----------------+-----------+-----------+ 1 row in set (0.04 sec) ==== Select from an OU, order by disabled, then by size ascending: ==== select displayName,disabled,alpha_id,size,ou,server,mdb from exchange_info where ou LIKE '%Columbia%ollege%' order by disabled,size ASC; ==== List sizes of all MDBs, sorted by size: ==== select sum(size) as "Size in bytes",mdb from exchange_info group by mdb order by sum(size); or select sum(size) as "Size in bytes",mdb from exchange_info group by mdb order by sum(size+0); ==== List of users in an MDB, omitting "System" mailboxes: ==== select displayName as Name,alpha_id as ID,size as "Mailbox Size in KB",bes as "BES User",disabled from exchange_info where mdb='Mailbox Store 10 (CUIT-EXCHANGE1)' AND displayName NOT LIKE '%System%'; ==== A decent OU search for distribution to a group: ==== select displayName as Name,alpha_samid as ID,size as "Mailbox Size in KB",server as Server,ou as OU,disabled as Disabled from exchange_info where ou LIKE '%Earth Institute' ORDER BY disabled,size; ==== After adding dates to the DB: ==== select displayName as Name,alpha_samid as ID,size as "Mailbox Size in KB",lastLogon as "Last AD Logon",lastExchangeLogon as "Last Mailbox Logon",ou as OU,disabled as Disabled from exchange_info where ou LIKE '%Earth Institute' ORDER BY disabled,lastExchangeLogon; ==== Some Quotas ==== select displayName as Name,alpha_samid as ID,size as "Mailbox Size (KB)",bes as "BES User",disabled as Disabled,lastExchangeLogon as "Last Mailbox logon",lastLogon as "Last AD Logon",mDBStorageQuota,mDBOverQuotaLimit from exchange_info where mDBStorageQuota > '0' AND displayName NOT LIKE '%System%' order by disabled,bes,OU,displayName; ==== Quotas set with no Prohibit Send ==== select displayName as Name,alpha_samid as ID,size as "Mailbox Size (KB)",bes as "BES User",disabled as Disabled,mDBStorageQuota,mDBOverQuotaLimit from exchange_info where mDBStorageQuota > '0' AND mDBOverQuotaLimit='0' AND displayName NOT LIKE '%System%' order by disabled,bes,OU,displayName; ==== All users from a store if not disabled, except also disabled if in a particular OU, and not bes users ==== select displayName,alpha_samid,size,disabled,bes,OU,server,mdb from exchange_info where (disabled='1' AND OU LIKE '%Medical Center%' AND mdb LIKE '%MS6%') OR displayName NOT LIKE '%System%' AND server LIKE '%exchange3%' AND mdb LIKE '%MS6%' and bes='0' AND disabled='0' ORDER BY disabled ASC,displayName; ==== Similar to above, but the alternate group, users in the mdb, not in that OU, but either disabled, or a bes user ==== select displayName,alpha_samid,size,disabled,bes,OU,mdb,lastExchangeLogon from exchange_info where NOT ((disabled='1' AND OU LIKE '%Medical Center%' AND mdb LIKE '%MS6%' AND bes='0') OR displayName NOT LIKE '%System%' AND server LIKE '%exchange3%' AND mdb LIKE '%MS6%' and bes='0' AND disabled='0') AND mdb LIKE '%MS6%' ORDER BY disabled,size; ==== Export to CSV file ==== select displayName,size,ou from exchange_info INTO OUTFILE '/Users/ben/tmp/test.txt' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' ; ==== Report for a particular OU into a CSV file ==== select displayName as "Mailbox Name",alpha_samid as "ID",disabled as Disabled,bes as "Blackberry User",size "Mailbox Size (KB)",lastLogon as "Last AD Logon", lastExchangeLogon as "Last Mailbox Logon",OU from exchange_info where OU LIKE '%Columbia%College%' AND displayName NOT LIKE '%System%' ORDER BY disabled DESC,size INTO OUTFILE '/Users/ben/tmp/test.txt' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';