Finally, MS has recognized the issue as a bug: http://support.microsoft.com/kb/2622823
Briefly: It is fixed in
- Sql Server 2008 SP3 CU4
- Sql Server 2008 R2 CU10
- Sql Server 2008 R2 SP1 CU4
In Sql Server 2012 SP1 I'm not experiencing the issue for more than year of runtime.
You're getting this while trying to backup any database?
msdb is used for a bunch of things and you'll want to make sure it's okay. But critically, it sounds like your corruption is in a table which is used for backups, and this is a good thing, because you don't necessarily need that data.
Start by scripting out all your SQL Agent jobs, exporting all your SSIS packages that you've put in msdb, and anything else you can think of that uses msdb.
Now do some investigation to find out what that corrupt page is used for....
...but ultimately, your best bet is likely to be to stop the instance for a moment, pull out the msdb MDF and LDF files (so you have copies), restore from a backup from a different database (and check again for corruption), and then redeploy all your maintenance jobs, agent jobs, SSIS packages, and anything else you can think of.
You might be able to swap your MDF and LDF files onto another machine and extract extra information that you may have missed, but this should at least get you going again.
Best Answer
I don't think its very much documented on Microsoft Site and other places. Possibly someone from Microsoft could shed some light on this, doing some checking on Paul Randal's site and other related information, most likely it is database id. You can read more details on this command at this page by him.
There are few more details at this site as below:
The BUFFER: section indicates the buffer page number (bpage) which represents exactly where in the buffer pool the page exists. Also included are:
As far Sybase ASE is concerned, I checked myself on multiple databases by running this command and could figure out that bdbid is dbid itself. Even if you pass a page number which is not present, it would still give you the same bdbid as that of dbid.
Below is the output from Sybase ASE when page is not present:
Below is scenario when page is present in the database: