我设置了两台 Windows Server 2008 服务器,都运行 SQL Server 2008 R2。一个用作主数据库,另一个用作镜像故障转移(两个网站数据库 + 会话的 ASPState)。一切正常,直到其中一个数据库在其运行的服务器重新启动后成为主要数据库。我收到此错误:
Invalid object name 'tempdb.dbo.ASPStateTempSessions'.
我可以通过运行存储过程ASPState_Startup
(执行ASPState.dbo.CreateTempTables
)来解决这个问题,但前提是数据库是“主体”状态。当服务器重新启动时,它总是会以“镜像/正在恢复”状态恢复数据库,这意味着我无法在启动时运行该 SP。
关于如何解决此问题的任何建议?
尝试设置一个每分钟在每个实例上运行的 SQL 代理作业,并执行一个脚本来查找处于未恢复状态的数据库,检查表,如果不存在则执行该过程。我从您的问题中获取了对象名称,因此如果它们不在您的环境中,则可能需要更改。