我有带有Always On的SQL Server 2014。我在同一台服务器上安装了SQL Server 2017,并且要将数据库从SQL Server 2014移到SQL Server 2017。
在每个副本中,我都有自己的文件(.mdf和.ldf)。 在SQL Server 2014中,在主数据库中,我从AG中删除了数据库,然后分离了数据库。 在SQL Server 2017中,我成功附加了它。 我在中学也做过。 当我尝试将数据库添加到SQL Server 2017副本时,我收到错误消息,指出辅助数据库未处于还原状态。 我尝试生成一个新的备份,并将其还原为辅助备份中的NoRecovery,但是当我再次尝试时,它表示存在不一致之处。
我在做什么错? 我正在尝试执行“仅加入”选项,因为数据库具有超过300 GB的空间,并且同步它将花费太多时间。
答案 0 :(得分:0)
检查以确保您没有正在运行的维护作业在尝试将数据库添加到AG之前,之中或期间进行了事务日志备份。这肯定会导致不一致错误。作为GUI(SSMS)的替代方法,将数据库附加到2017年实例后,可以使用脚本在主数据库上备份数据库和t-log,手动将2个备份复制到辅助数据库,然后还原( 2)没有恢复的文件,然后运行2命令将其添加回AG。这种方法可能对您找出为什么会出现不一致错误的方式更有用。代码示例在此处(请务必替换数据库名称和AG名称)-
`连接到主实例时-
步骤1)备份数据库[MyDatabase]到磁盘= N'\ PrimaryServerName \ C $ \ temp \ MyDatabase.bak',带有init,stats = 10
步骤2)备份日志[MyDatabase]到磁盘= N'\ PrimaryServerName \ C $ \ temp \ MyDatabase.trn',具有init,stats = 10
步骤3)RDP到主服务器-手动将备份文件(.bak和.trn)从主服务器上的C:\ temp复制到辅助服务器上的C:\ temp
第6步)更改可用性组[AGGroupName]添加数据库[MyDatabase]
连接到辅助实例时-
第4步)从磁盘= N'C:\ temp \ MyDatabase.bak'中恢复文件[MyDatabase],其中FILE = 1,NORECOVERY,NOUNLOAD,STATS = 5
第5步)从磁盘= N'C:\ temp \ MyDatabase.trn'恢复日志[MyDatabase]
第7步)更改数据库[MyDatabase]设置HADR可用性组= [AGGroupName]`