I would recommend you read Replication and Database Mirroring:
Supported starting in SQL Server 2008 for transactional replication
with manual failover and configuration. The replication agents that
connect to the subscription database are not mirror-aware. If the
principal subscription database fails, failover to the secondary
database requires that you perform several manual steps to restore the
replication stream. For more information, see SQL Server Replication:
Providing High Availability Using Database Mirroring.
The linked document in turn states:
Prior to the release of SQL Server 2008, mirroring the subscriber was
not a practicable solution because the potential advantages of
database mirroring were mostly negated by the requirement to perform a
full initialization of the Subscriber after a failover. The subscriber
failover procedures described in this document take advantage of the
initialize from lsn option introduced in SQL Server 2008. Creating the
new subscription with initialize from lsn allows you to quickly
synchronize the new subscription database with the publication
database without resorting to initializing from a snapshot or backup,
and without taking the publication or distribution databases offline.
Note that all the benefits of initialize from lsn apply to transactional replication. This TechNet note describes how the manual failover should be done Replication Subscribers and AlwaysOn (the article is for AlwaysOn but the same applies to DBM). I reckon I never tried this, but if I read the document correctly it means that:
- you need to subscribe individually both the principal and the mirror, as separate subscriptions
- after a failover you need to manually initialize the new principal's subscription (avoiding an expensive full re-initialization is critical)
You'll basically have two distinct subscriptions and manually have to 'failover' to switch between the active subscription (the principal) and the passive one (the mirror). Of course, this is quite bad, somehow I which I'm wrong and someone knows a better way.
Perhaps you should consider Tx replictaion instead which at least has some support. for failover. Or replace it entirely with something more friendly toward mirrored topologies...
This started as a short response but turned out into an investigation of its own, forgive the lack of narrative...