Monday, July 16, 2012

Completely unsupported method of configuring CommVault clients

I came across an issue that required me to tweak a global policy in my CommVault environment. Basically I needed to turn off client-side compression for my Oracle servers, but I had a problem, how do I disable it on only the target systems when the policy is defined in my Global Dedupe Policy.
CommVault has a built in scripting environment (http://documentation.commvault.com/commvault/release_9_0_0/books_online_1/english_us/features/cli/xml_scripts.htm), but I couldn’t figure out how to report on this setting. And if I can’t validate the setting via script, I am a little wary of making changes via script.

A little bit of searching and I found some settings in the SQL backend. The particular setting “Software Compression” is stored in the table archPipeConfig. This first query shows me that compression setting for my clients.

Show the compression status from all ‘SQL Server’ agents
select ac.name 'Client'
      , ai.name 'Agent'
      , ain.name 'Instance'
      , ap.subclientName 'SubClient'
      , apc.compressWhere
      , case apc.compressWhere
            when 0 then 'Client'
            when 1 then 'Media Agent'
            when 2 then 'Use Storage Policy'
            when 4 then 'Off'
            else 'unknown' end as 'Compress'
from archPipeConfig apc
LEFT JOIN APP_Application ap on apc.appNumber=ap.id
LEFT JOIN APP_Client ac on ap.clientId=ac.id
LEFT JOIN APP_IDAType ai on ap.appTypeId=ai.type
LEFT JOIN APP_InstanceName ain on ap.instance=ain.id
where ai.name='SQL Server'
      --and compressWhere<>0
order by 1, 2, 3, 4


Now the fun part – I am sure this isn’t supported, and I don’t even know if it actually works. The below SQL command will update the compression value on clients based on agent type.
Update compression status on all ‘SQL Server’ agents, set it to ‘Client’
update archPipeConfig set compressWhere=0
where appNumber in (
select ID from APP_Application where appTypeId in
(select TYPE from app_IDaType where name='SQL Server')
)


** UPDATE **
After running through all that work and effort, I found a post to http://documentation.commvault.com/commvault/release_9_0_0/books_online_1/english_us/features/cli/qscripts/CommServ.QS_CompressionConfig.Readme.html that uses qoperation.exe to view and change the compression setting.
Using the examples on the page, I was able to quickly review and set the compression settings on the clients I needed

No comments: