备份迁移 本节主要介绍备份迁移 备份迁移场景最后一个备份文件选择错误该如何处理 备份迁移过程中,根据选择“最后一个备份文件”来判断是否为最后一次备份,对于人工操作中不可控的误选择,有以下两种情况及处理方法: 选择“是”,但原本期望为否,即仍然希望继续做增量备份迁移。但由于SQL Server本身的设计,数据库一旦收到还原已完成的信号,便会做一系列的内部工作并把数据库置为可用,已无法继续增量备份迁移。此时,只能删除备份数据库重新进行全量+增量的备份还原。 选择“否”,但原本期望为是,即不希望继续恢复增量备份迁移。其实SQL Server没有严格意义上的的最后一个备份文件,此时可以再做一个增量备份(即使没有数据改变也可以备份),在该次增量备份时选择“是”即可完成迁移,相关数据库将会变为可用。 手动配置信息 操作场景 目前从本地或虚拟机通过DRS备份迁移功能直接迁移到本云RDS for SQL Server实例上,在迁移完成后还需要针对Login账号,DBLink,AgentJOB,关键配置进行识别,并手动完成相关同步工作。 Login账号 Login账号即SQL Server的实例级账号,主要用于用户管理用户服务器权限与数据库权限。一个用户通常会有多个该类型账号,用户迁移到RDS for SQL Server实例后,需要手动将自己本地的Login账号同步在实例上进行创建,以下方法将介绍如何在本云RDS for SQL Server实例上创建同名,同密码的Login账号,并进行授权操作。 步骤 1 通过以下脚本获取本地实例Login账号创建脚本,获取到的脚本可以直接在目标端上执行,以创建同名,同密码的Login账号。 SELECT 'IF (SUSERID('+QUOTENAME(SP.name,'''')+') IS NULL) BEGIN CREATE LOGIN ' +QUOTENAME(SP.name)+ CASE WHEN SP.typedesc 'SQLLOGIN' THEN ' WITH PASSWORD ' +CONVERT(NVARCHAR(MAX),SL.passwordhash,1)+ ' HASHED,SID' +CONVERT(NVARCHAR(MAX),SP.SID,1)+',CHECKEXPIRATION ' CASE WHEN SL.isexpirationchecked 1 THEN 'ON' ELSE 'OFF' END +', CHECKPOLICY ' +CASE WHEN SL.ispolicychecked 1 THEN 'ON,' ELSE 'OFF,' END ELSE ' FROM WINDOWS WITH' END ' DEFAULTDATABASE[' +SP.defaultdatabasename+ '], DEFAULTLANGUAGE[' +SP.defaultlanguagename+ '] END;' as CreateLogin FROM sys.serverprincipals AS SP LEFT JOIN sys.sqllogins AS SL ON SP.principalid SL.principalid WHERE SP.type 'S' AND SP.name NOT LIKE '