5ar*_*arx 11 sql-server-2008 sql-server backup migration restore
我们刚刚有了一台新服务器,所以我需要从旧的 db 框中复制现有的 SQL Server 2008 实例。
我通常通过复制 .mdf 和日志文件并附加它们来做到这一点,但我无法将 dbs 离线,因为它们 24/7 使用,所以我备份了数据库并在新的数据库上恢复它们机器。但是,我最终遇到了一些问题,其中之一与孤儿用户有关。所以我正在寻找的是一个故障安全的过程,以最小的大惊小怪/麻烦/头痛来移动一切。我是一名 .Net 开发人员,拥有相当多的 SQL,但 SQL Server 的内部工作原理对我来说在很大程度上是个谜,我发现 MS 文档很难浏览。
请帮忙。
SQL*_*tar 10
如果您无法使数据库脱机,则需要进行备份/恢复。我建议如下:
如果您构建和配置新盒子,使其看起来与旧盒子完全相同,那么您将不会大惊小怪。
我不知道你的数据库有多大,所以这个方法可能需要很长时间。最简单的方法是关闭旧机器并复制 MDF 和 LDF 文件,然后(在恢复主文件后)您只需要重新启动 SQL 即可使您的数据库联机。但是您表示这不是一种选择,因为数据库不允许脱机。
您提到了 24/7 操作,所以最好的方法是在新系统上创建一个数据库镜像,然后您可以简单地切换最小 - 可能为零,具体取决于您的应用程序的结构 - 使用客户端的停机时间 -侧重定向。基本步骤是:
WITH NORECOVERY在两台服务器上创建“端点”,并确保连接(例如防火墙规则),正确设置端口和 IP 地址)例如:
CREATE ENDPOINT endpoint1
STATE=STARTED AS TCP(LISTENER_PORT = 5222, LISTENER_IP = 192.168.1.5)
FOR DATA_MIRRORING(ROLE = PARTNER, AUTHENTICATION = WINDOWS NEGOTIATE, ENCRYPTION = REQUIRED ALGORITHM RC4)
Run Code Online (Sandbox Code Playgroud)在镜像上设置镜像,指向主镜像:
ALTER DATABASE GaiusMirrorDB SET PARTNER = 'TCP://192.168.1.5:5222'
go
EXEC sys.sp_dbmmonitoraddmonitoring
go
Run Code Online (Sandbox Code Playgroud)在主节点上,指向镜像(只是不同的数据库名称和 IP 地址。
然后,当时机成熟时,只需将主切换到镜像:
ALTER DATABASE GaiusDB SET PARTNER FAILOVER
GO
Run Code Online (Sandbox Code Playgroud)注意:我假设这两个服务器在同一个网络上,所以在同步模式下运行就可以了。如果这是通过 WAN 链接,请使用异步模式。
| 归档时间: |
|
| 查看次数: |
1310 次 |
| 最近记录: |