User Tools

Site Tools


exchange:reporting_project:database_queries

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';
exchange/reporting_project/database_queries.txt · Last modified: 2010/02/18 15:50 by ben