Database mirroring is a wonderful concept and I have observed that there are some misunderstood concepts too within Mirroring.Below are couple of them :
Witness server – There is a misconception that witness server is responsible for a failover, however that is not correct. Witness server will help the principal server and mirrored server form what is called quorum and it agrees to Mirrored server to become Principal during an event of failure (One of the failure scenario’s)
High performance mode is available in all the version – This is available only in Enterprise version.
Setup 2005 version as principal – 2008 version as mirror is not possible – Yes, this setup is possible.
What should be the version of Witness server, do we need this to be the same version as rest 2 servers – Witness can be of any edition, including free Express edition.
Failure detection is spontaneous – This depends on how much transaction log on mirror is to be replayed.
We can create a snapshot in mirror server and can use it without any issues interms with license – When you create a snapshot for the mirror the license is no longer free.