Progress update 2
Not a particularly successful day unfortunately.
I installed all the prerequisites for BES 4.0 on the intermediate Windows 2000 Server BES, made a backup of the database and upgraded to BES 4.0. That worked well, upgrading the database and installing the software without any trouble. The full wireless sync on users devices ran automatically and completed (eventually) although it said it couldn't complete the PIM items that previously weren't synchronisable wirelessly (address book, tasks, memos). Tests afterwards however showed devices were synchronising all PIM changes wirelessly ok.
Then things started not going to plan. After I uninstalled Exchange Administrator 5.5, I couldn't get Exchanger Server 2003 System Manager to work on the intermediate Windows 2000 Server, it installed and took the upgrade to SP2 but wouldn't run, giving a Server not Operational error. (I'd had to install the Admin Pack for Windows 2000 Server as it was a prerequisite for System Manager, perhaps there is still something else missing from this server stopping it running?)
The original plan was to migrate the BESAdmin mailbox and then the users to Exchange 2003 once the System Manager was installed, then to cut-over to the Windows 2003 Server box, so I followed an amended plan:
1. I restored the intermediate BES 4.0 server from a disk image I took just before starting the upgrade to Exchange 2003 System Administrator (I'd stopped all the BES services before that and hadn't yet started them after so I shouldn't have lost data). The restore of the whole server appeared to work very well at first but I think something bad has happened to the database since, more on that later.
2. I brought the Windows 2003 Server up to the required prerequisites for BES 4.0 and prepared the AD/Exchange environment (including installing Exchange Server 2003 System Manager but without yet moving the BESAdmin mailbox from its current home on an Exchange 5.5 box as I wanted to make sure the next step worked first).
3. I Installed MSDE 2000A on the Windows 2000 Server box, create a new 4.0 database with CreateDB.exe BESMgmt.cfg, detached BESMgmt.mdf and BESMgmt.ldf and attempted to attach the current BESMgmt.mdf and BESMgmtlog.ldf, BUT they wouldn't attach. The OSQL transaction and error was as follows:
C:\Program Files\Microsoft SQL Server\80\Tools\Binn>OSQL -E
1> exec sp_detach_db @dbname = "BESMgmt"
2> go
1> exec sp_attach_db @dbname = "BESMgmt",
2> @filename1 = "C:\Program Files\Microsoft SQL Server\MSSQL\Data\BESMgmt.mdf",
3> @filename2 = "C:\Program Files\Microsoft SQL Server\MSSQL\Data\BESMgmtlog.ldf
"
4> go
Msg 3624, Level 20, State 1, Server CARLBES1, Line 1
Location: p:\sql\ntdbms\storeng\drs\include\record.inl:1447
Expression: m_SizeRec > 0 && m_SizeRec <= MAXDATAROW
SPID: 51
Process ID: 1256
HOWEVER, I have since been able to attach an earlier copy of the .mdf and .ldf set from before I attempted to install Exchange Server 2003 System Manager on the intermediate BES 4.0. It will be missing around an hour and a half of data transactions that took place after the intermediate BES 4.0 was restored to using Exchange 5.5 Administrator from a disk image, but I could live with that if it gets things running. Any dangers from using it? (It's a 4.0 database). The next step on this server would be to move BESAdmin to Exchange 2003 (and the users?) and install BES 4.0 but I'm holding off until tomorrow because.....
Just to make my night I discovered this evening that the SQL service on the intermediate BES 4.0 (which I left running while I fought with MSDE on the Windows 2003 Server box so the users had some uptime) keeps stopping unexpectedly. I've set it to always restart if it stops but I suspect from the Application logs on the server that it can't restart properly without a restart of the server. I managed to bounce the box remotely once, the SQL service started ok, but shortly after started all the BES services (which I've set to Manual to be on the safe side) it fell over again. I tried to stop all the BES services and bounce the box again but theres a hung task (probably a BES one) stopping it from shutting down and I can't reconnect so I'll have to go in and sort it tomorrow.
I've got a nasty feeling the database has become corrupt but I'm not sure how. Is restoring a BES server from a disk image "a bad idea" ?
Now I've got a database (not the current one, but close enough) to attach on the Windows 2003 Server I'm tempted to just shut the intermediate server down tomorrow and install BES 4.0. If it works this would all be worth it, if not I could be reconnecting users all next week!