旧的数据库服务器已经过时了,我正在将其升级到新硬件。我需要将旧的约 100 个数据库的精确副本复制到新计算机上。
我读过一些关于复制和镜像的文章,但我不知道什么是“最佳”行动方案。我相信许多数据库管理员都熟悉这种情况,并且知道如何做,如何移动所有数据库、角色、模式、存储过程等,以及其他所需的一切。
我知道我可以对每个数据库进行备份,但我有数百个数据库需要复制。有没有更简单的方法?
提供一步一步的指南并简短说明如何操作就更好了。如果需要的话,还可以提供一些有关该主题的更详细信息的链接。
1: Start [SQL Server Management Studio][1]
2: Right-click Server Instance
3: .....
答案1
您有两个可行的选择:
- 备份还原。
- 复制所有文件并再次安装数据库。
请注意,这两项操作都可以轻松编写脚本,因此您可以从第一台服务器导出数据库列表,然后在第二台服务器中重新导入。但是,您必须重建一些元素才能使导入完美运行:几乎所有数据库登录都必须重建。
答案2
在开始移动任何内容之前,请启动并运行新服务器并配置所需的一切,例如电子邮件。想象一下,在有人搬进房子之前,您需要先接通水电。
使用现有备份并将其还原到新服务器。保留 msdb、model、tempdb 和 master。在新服务器上启动数据库时,转到旧服务器并将相应数据库设置为“OFFLINE”或将其分离。这可以防止大量“oops”问题。如果发生不可预见的灾难性事件(例如,新 SAN 发生故障),将旧数据库文件保持离线或分离状态,但仍保留在原处,可以为您提供可能的解决方法。
使用 SSMS 编写链接服务器、操作员、作业和任何其他类似的服务器级对象的脚本。请记住,SSMS 不会编写链接服务器 SQL 登录中的密码脚本,因此您需要知道密码是什么。如果可以,请使用受信任的安全登录。
不要忘记 DTS 和 SSIS 包。
如果您有很多事情要做,您可能需要编写一些脚本。如果您要从 SQL 2000 升级到 SQL 2005,那么在将所有内容转移到新服务器后,最好重新索引所有内容。
使用 sp_help_rev_login 帮助您在新服务器上重新创建登录名。描述 sp_help_rev_login 的知识库文章如果您不使用域安全性,这将保留 SQL Server 用户的密码和 SID。
不要忘记,您可能必须更新与数据库相关的任何应用程序中的连接字符串。如果您要“丢弃”旧服务器,或重新格式化并将其用于其他用途,请与网络人员联系,询问他是否可以将旧名称重新创建为“DNS C 名称”,并将其指向您的新服务器。当您有大量指向旧服务器的连接字符串(可能不受您的控制,例如公司某个偏远角落某人桌面上的旧 Access 数据库中)时,这可以节省时间。