Pergunta 1: Você está pensando demais nisso. As especificações de espelhamento de banco de dados do SQL 2005 são construídas na cadeia de conexão. Você especifica o servidor primário e o espelho na cadeia de conexão, e o driver tenta os servidores em ordem. Essa é uma das belezas do espelhamento de banco de dados - nenhuma alteração de aplicativo do cliente é necessária.
Mais informações aqui: link link
Pergunta 2: Você disse que está usando um servidor testemunha, então presumo que esteja usando o failover automático. O espelhamento de banco de dados do SQL 2005 faz isso automaticamente - mais informações aqui:
Se você não estiver usando o failover automático, ainda é muito fácil: basta clicar com o botão direito do mouse no banco de dados, entrar no Espelhamento de Banco de Dados e pode fazer o failback dos bancos de dados de primário para secundário e vice-versa. Eles voltam automaticamente em sincronia após interrupções como reinicializações.