是否可以更改 MSSQL 中的 family_guid?

Hun*_*fin 5 sql-server t-sql

所以我在尝试迁移到亚马逊 RDS 时遇到了一些数据库问题

我们有大约 20 个数据库,它们都是其他数据库的衍生物,它们都共享相同的 family_guid,因为它们基于其他数据库的备份。问题是亚马逊不允许您恢复具有另一个相同 family_guid 的数据库,即使它们是两个单独的数据库。这就是我的问题所在,是否可以更改 guid 或者我不走运,需要对这些数据库进行一些导出/导入。

小智 7

我遇到了与您完全相同的情况 - 许多数据库都基于模板,并且都需要进入 RDS。

AFAIK 无法通过简单的命令更改基础 family_guid。但是,使用 .bacpac 导出/导入将为导入的数据库分配一个新的 family_guid。遗憾的是,您无法将 .bacpac 直接导入 RDS(导入失败,您无法删除数据库!)

因此,作为一种解决方法,我最终完成了以下过程:

  1. 创建原始数据库的 .bacpac(包含数据和架构)。
  2. 将该 .bacpac 导入临时数据库(可以是 LocalDB,或其他地方的另一个实例,甚至与原始数据库相同的实例)。
  3. 创建临时数据库的传统备份 (.bak)。
  4. 将备份上传到 S3。
  5. 对 S3 备份文件运行 msdb.dbo.rds_restore_database 命令。

相当简单的任务的过程!