Archive for February, 2010

Some very useful sites about Debian Linux

February 25, 2010

http://www.debian.org – Official documentation.

http://www.aboutdebian.com/ – Very good site for the beginners. It is very good for starting point about various administrative tasks.

http://wiki.debian.org/ – Useful guides about administration and many others

http://forums.debian.net/ – forums

http://www.debian-administration.org/ – Very good information about maintaining and administering

http://www.debianadmin.com/ – Just another very good source about administration, howtos tips

http://wiki.debian.org/DebianLive/Howto/USB – If you need some USB bootable Debian system you may have to take a look at this site.

http://debianhelp.co.uk/ – Very good one

http://www.debianhelp.org/

Error synchronizing outlook with CRM 4.0

February 25, 2010

A SQL server error occurred. Try this action again. if the problem continues, check the microsoft dynamics CRM community for solution or contact your… This is an issue which is appearing by installation of Rollup 7 for CRM 4.0.

The story is that i ‘ve installed successfuly CRM 4.0 and after that installed Rollup 7,8 and 9. After some checks i realized that when i tried to synchronize CRM for outlook it gives me a SQL server error. The solution is really simple. In my cause i had up to the latest rollup 9 installed until this moment on my server. What ive’ done is uninstall all rolups one by one. First uninstalled Rollup 9 then restart the server. After that i’ve uninstalled rollup 8 and then restarted again the server. Finally i’ve uninstalled rollup 7. When i tested CRM for outlook it worked perfectly without any Rollups. Now i only installed Rollup 9 and tested. With rollup 9 without any previous rollups it works fine.

When you try to access the Server from localhost by it’s FQDN or CNAME repeatedly pops up for cridentials

February 24, 2010

This is about the folowing situation. I have one vitual PC for testing purposes. For example the machine is called Server01.domain.local. I have one local site hosted on it . A simple site writted on ASP.Net or Sharepoint site. It doesn’t matter. It has windows integrated authentication. I have a host header for example mysite.somedomain.com. It works perfectly from Internet. I have the host header name in local hosts file too. When i tried to browse that from local machine (mysite.somedomain.com) it pops up repeatedly for cridentials.

This happened with IIS 6.0 in windows server 2003 with sp1 or sp2. In windows server 2008 the behaviour is the same.

The solution is:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0

New multistring value called

BackConnectionHostNames

Right click modify and add host headers if there are more. In this cause i add

mysite.somedomain.com

 The full article http://support.microsoft.com/kb/926642

 

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

February 22, 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