With SQL Database Mirroring setup in a Skype for Business Server infrastructure, the state of all databases should be uniform and not with “partial” cross over. That is to say, the status for both StateOnPrimary and StateOnMirror should either all be in the Principal or Mirror state when checked using Get-CsDatabaseMirrorState.
If that turns out otherwise, you can run Invoke-CsDatabaseFailover for the target Front-End pool to achieve this stable mirror state on both the primary and mirror SQL Database servers. Nevertheless, FailedWithError could happen where MirroringStatusOnPrimary and/or MirroringStatusOnMirror continue to show suspended and cannot reach a synchronized state.
Should a manual … Resume of the suspended state of affected databases or information obtained from the log file (from Invoke-CsDatabaseFailover) do not lead to a resolution, do not forget to check the ‘Lync Server’ log in EventViewer for vital hints, including free space availability on the drive hosting the SQL databases.
As we all know, a #skype4b Enterprise Front-End pool’s dependency on the backend SQL Database for core functionality has been reduced. The lack of sufficient free disk space is interesting because SQL may appear to hump along quite happily with no noticeable or major failure affecting large number of users in the #skype4b infrastructure. This, however, may be more difficult to troubleshoot since incidents (or problems) may exhibit intermittent behaviours. Hence an administrator should always keep a keen eye on this aspect in the environment (with System Center Operations Manager, SCOM or PowerShell).