将 SQL Server 数据库从我的笔记本电脑导出到 AWS RDS

Dan*_*Dan 6 sql-server export ssms sql-server-2014 amazon-rds

我正在按照AWS 的本教程将当前位于我的笔记本电脑上的 SQL Server 数据库导出到 Amazon Web Services RDS。特别是我正在尝试生成和发布脚本向导,然后是批量复制。

生成的脚本如下所示:

CREATE DATABASE [Test]
 CONTAINMENT = NONE
 ON  PRIMARY 
( NAME = N'Datapump_Test', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\Datapump_Test.mdf' , SIZE = 1127424KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
 LOG ON 
( NAME = N'Datapump_Test_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\Datapump_Test_log.ldf' , SIZE = 2160960KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)
GO
Run Code Online (Sandbox Code Playgroud)

所以我的问题是这些路径(即C:\.....行)是什么,它们是否指向我笔记本电脑上的文件?如果是这样,当我在 RDS 数据库上运行这个脚本时,我应该改变它们吗?我发现如果我将它们留在那里会出错,但是如果我在 SSMS 中手动创建数据库,然后注释掉这些行并运行脚本,我仍然会遇到很多错误,但它确实创建了所有表模式、用户和索引等等......所以这是正确的方法吗?如果是这样,我上面发布的链接没有提到这一点似乎很奇怪。这让我觉得我做错了什么。有没有人对此事有任何见解?

Tom*_*m V 3

生成的脚本中的路径是数据和日志文件应位于笔记本电脑上的位置。

如果您将脚本复制粘贴到亚马逊AWS,这将是您创建数据库时创建文件的位置。

如果 Amazon 实例上不存在该路径,您将收到错误消息。

您可以注释掉这些行,然后将在实例的默认位置创建文件,并使用默认大小和从数据库名称生成的文件名。

CREATE DATABASE [Test]
 CONTAINMENT = NONE
 /* ON  PRIMARY 
( NAME = N'Datapump_Test', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\Datapump_Test.mdf' , SIZE = 1127424KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
 LOG ON 
( NAME = N'Datapump_Test_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\Datapump_Test_log.ldf' , SIZE = 2160960KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)*/
GO
Run Code Online (Sandbox Code Playgroud)

正如您指出的一些其他错误与角色和权限等相关,有一个高级设置对话框,您可以在其中更改一些选项,还可以选择要编写脚本的对象(例如用户)

有关向导的概述,请参阅此链接如何:生成脚本 (SQL Server Management Studio) 。

例如,如果您在此页面中选择“选择特定选项”,则可以取消选择“用户”

在此输入图像描述

在下一页上,您可以单击高级按钮

在此输入图像描述

这将打开一个包含更多选项的对话框,允许编写权限和触发器等内容的脚本。

在此输入图像描述