Archive for April, 2010

SCOM 2007 R2 agents stop talking after their installation with SCOM Server

April 11, 2010
I have Scom 2007 R2 server installed in one domain enviroment and a couple agents on windows 2003 and windows server 2008 (not R2). The other scenario i have is that i deployed SCOM Gateway in the internet with the other non-trusted domain with certificate trusted communication. Everything worked fine until the moment i tried to install agents in the other domain with two way forest wide trust. The servers there were Windows Server 2008 R2. So the SCOM R2 server was in Domain A and domain A had two way forest trust with a domain B where agents should be. The only difference was that all servers in the domain B were Server 2008 R2. After discovery and agent installation all agents were in "Not Monitored" state.
 
The errors from event log of the monitored servers were:
 
Event ID:      20070
The OpsMgr Connector connected to "SCOM R2 FQDN" but the connection was closed immediately after authentication occurred.  The most likely cause of this error is that the agent is not authorized to communicate with the server, or the server has not received configuration.  Check the event log on the server for the presence of 20000 events, indicating that agents which are not approved are attempting to connect.
Event ID:      21016
OpsMgr was unable to set up a communications channel to "SCOM R2 FQDN" and there are no failover hosts.  Communication will resume when "SCOM R2 FQDN" is available and communication from this computer is allowed.
There are many posts concerning communications between SCOM R2 and gateway server and them cerificates but the solution in this situation is updating management packs.
 

1. Open the SCOM Console

2. Go to “Administration” section

3. Right click on “Management Packs” and select “Import Management Packs”

4. Click Add and select “Add from Catalog…”

5. In View: drop down menu select “Updates available for installed management packs” and click “Search” button
 
Then update management packs
 
After i update them i restart "System center management" service on the monitored machines and they start to communicate with SCOM 2007 R2 server.
Advertisements

Microsoft DPM Server does not remove old recovery points (after expiration of retention period)

April 11, 2010

 

 

I have been using DPM of about 6 months until now. The story is that i have of about 4 DPM 2007 production servers. I have various protection groups which protects databases,file system, system state e.t.c. 

After creation of that protection groups everything seemed fine. But after a month ago I kept running out of free space of recovery point volumes for every member of the particular protection group. What I’ve done is that I had some free space on my storage which is used by DPM and every time I increased free space of that particular member. For example I have protection group for database server SRV1 which includes three protected databases db1, db2, db3. I was keeping recovery points for 7 days. Finally I discovered that there are recovery points on Recovery tab of DPM for the whole month. It wasn’t keeping them only for 7 days. The solution I found is to delete the old recovery points manually through PowerShell.  Although there are many sources for that, here is my guide how to do delete them.

1.List of dpm protection groups
get-protectiongroup Srv1

2.Store the output in variable $pglist

$pglist=get-protectiongroup Srv1
output only to count 0,1,2,3,4…

Foreach($pg in $pgList){write-host($pg.FriendlyName)}  // this is only for to see display of members

so you should count members of the protection group always from 0 after that 1,2,3 e.t.c

Db1  -count 0

DB2 -count 1

DB3 -count 2

the statement above will print out the list of protection group in your DPM
server. the first protection group should be referred to $pglist[0], the second one
should be referred to as $pglist[1] and so on

3.Get the source of protected group

 
$dslist = get-datasource($pglist[X]) for example 6

check to see if you have more than one data source by issuing this command:
write-host $dslist.name if you are not getting any output this means that there are multiply data source. For example in DB1 i have multible data sources every 15 minutes because i’ve made synchronization with consistency check every 15 minutes. If this is the cause you need to select which one you are going to use.

foreach($ds in $dslist){write-host $ds.name}

master -1

model -2

DB1 -3

For Example i want to delete recovery points from DB1 which is count 3.

4. Get recoverypoints

get-recoverypoint $dslist[3]       //only to verify 

The output is something like:

DB1 12-1-2010 1:05:09   SRV1\DB1… Disk //count 0
DB1 13-1-2010 1:05:41   SRV1\DB1… Disk //count1
DB1 14-1-2010 1:05:48   SRV1\DB1… Disk
DB1 15-1-2010 11:55:40  SRV1\DB1… Disk
DB1 15-1-2010 11:59:42  SRV1\DB1… Disk
DB1 16-1-2010 1:06:43   SRV1\DB1… Disk
DB1 17-1-2010 1:05:28   SRV1\DB1… Disk
5. Optional step for review only

$rplist=get-recoverypoint $dslist[x] example 0
foreach($rp in $rplist){write-host $rp.representedpointintime}

12-1-2010 1:05:09 //count 0
13-1-2010 1:05:41 //count 1
14-1-2010 1:05:48 //count2
15-1-2010 11:55:40
15-1-2010 11:59:42

5.Remove recovery points
remove-recoverypoint -recoverypoint $rplist[x]  //0,1,2 and so on

Here is the whole simple script:

get-protectiongroup SRV1
$pglist=get-protectiongroup SRV1
Foreach($pg in $pgList){write-host($pg.FriendlyName)}
$dslist = get-datasource($pglist[1])
write-host $dslist.name
foreach($ds in $dslist){write-host $ds.name} //count which recovery point you should delete from 0,1,2
get-recoverypoint $dslist[4]
$rplist=get-recoverypoint $dslist[4]
foreach($rp in $rplist){write-host $rp.representedpointintime}
remove-recoverypoint -recoverypoint $rplist[0]

Here is the othe approach. If  write-host $dslist.name outputs some result here is the steps need to be taken.

write-host $dslist.name

systemstate – this is an example

$rplist=get-recoverypoint $dslist

foreach($rp in $rplist) {write-host $rp.representendpointintime}

remove-recoverypoint -recoverypoint $rplist[0]  //and $rplist[1],2 and so on

or if it refjuses to delete recovery points

remove-recoverypoint -recoverypoint $rplist[0] -ForceDeletion

test

April 11, 2010
test