我们有一个简单的数据库实例,数据库中有足够的数据来保持它的有用性,我们可以将它用于演示目的,我想把它的一个副本放在我的笔记本电脑上,这样我就可以在开发工作时使用它我不在办公室。(常规的dev数据库实例大约150GB,这个实例是3GB)
在我的笔记本电脑上重新创建实例的最可重复/可编写脚本的方法是什么?我确定我将不得不再次运行 SqlServer2008 的安装程序,并设置一个实例,但在那之后......我想我希望能够每个月左右删除我的旧数据库并且将所有新内容复制到我的笔记本电脑上,因为我的实例在一个演示系统或笔记本电脑上都不会更改。但是数据库本身会更新,刷新 sproc 等等。
我已经考虑编写所有“删除数据库文件;添加数据库文件{路径}”并将它们保存在某种可运行的批处理文件中,然后我可以“删除、删除、复制、添加”但想知道是否有是比 xcopy 和批处理更好的方法吗?
我试图以便宜的价格做这件事(我们不是总是尝试以便宜的价格做事),所以我对 RedGate 产品或类似产品并不特别感兴趣。我想要一些我可以在文本编辑器中为自己轻松维护的东西。
我不得不将几个 SQL Server 2008 数据库移动到我们的新 db 服务器,所以我将它们全部备份(到 .bak 文件),将这些文件复制到新盒子并恢复它们(全部使用 SQL Management Studio 完成)。
一切顺利,但现在我发现我无法使用继续在旧 RDBMS 上工作的 SQL Server 帐户登录任何数据库。顺便说一句,我的 Windows 身份验证登录仍然可以正常工作。
我有这个想法,用户和权限都将无缝复制到新的数据库服务器上,但似乎某处出了问题。我将不胜感激评论/建议/提供帮助;-)
作为此处描述的过程的一部分,我正在按照此处的 MS 文档将登录名从 SQL Server 的一个实例迁移到另一个实例。这涉及将服务器置于单用户模式(我已经完成),然后运行脚本等。
但是,在单用户模式下(仅运行 SqlServer 服务)重新启动后,我无法使用我的 Windows 帐户或sa凭据登录。我收到错误:
Failed to connect to <servername>
Login failed for user 'sa'. Reason: Server is in single user mode.
Only one administrator can connect at this time. (Microsoft SSQL Server, Error: 18461)
Run Code Online (Sandbox Code Playgroud)
正常重启服务器(即多用户模式)后,所有登录工作正常。
谁能解释发生了什么和/或如何纠正这个问题?