Irf*_*fan 6 sql-server backup sql-server-2008-r2 sql-server-2016
我有一个场景,我必须生成数据库的备份(SQL Server 2008)并恢复到新服务器(SQL Server 2016)。在采取备份数据时,无论如何都不应更改。所以我有两个选择来做到这一点,但我不确定它会如何工作。(一切都只使用 SQL 作业。)
设置只读数据库并恢复到新的数据库服务器。
? 是否可以在新服务器上恢复只读数据库?目标服务器已经有一个同名的读写(在线)数据库。
设置离线数据库并恢复到新的数据库服务器。
? 是否可以在新服务器中恢复离线数据库?目标服务器已经有一个同名的在线(读写)数据库。
Ran*_*gen 11
? 是否可以在新服务器中恢复只读数据库?
是的
一个例子:
CREATE DATABASE ReadOnlyDB;
GO
ALTER DATABASE ReadOnlyDB SET READ_ONLY;
BACKUP DATABASE ReadOnlyDB TO disk = '\\share\readonly.Bak';
Run Code Online (Sandbox Code Playgroud)
目标服务器已经有一个同名的读写(在线)数据库。
不完全确定您的意思,但是如果您愿意,可以使用不同的名称恢复数据库,请记住之后删除只读属性。
RESTORE DATABASE ReadOnlyDB2
FROM DISK = '\\share\readonly.Bak'
WITH MOVE 'ReadOnlyDB' to '\Datalocation\ReadOnlyDB2.mdf',
MOVE 'ReadOnlyDB_log' to '\Loglocation\ReadOnlyDB_log2.ldf',
STATS = 5;
GO
ALTER DATABASE ReadOnlyDB2 SET READ_WRITE;
Run Code Online (Sandbox Code Playgroud)
您还可以使用 REPLACE 关键字替换现有数据库。
? 是否可以在新服务器中恢复离线数据库?
不,这是不可能的,因为 sql server 从数据库文件中删除了所有句柄,并且在脱机时将无法访问它。
ALTER DATABASE ReadOnlyDB SET OFFLINE WITH ROLLBACK IMMEDIATE;
GO
BACKUP DATABASE ReadOnlyDB TO disk = 'C:\temp\readonlyOffline.Bak';
Run Code Online (Sandbox Code Playgroud)
消息 942,级别 14,状态 4,第 10 行数据库“ReadOnlyDB”无法打开,因为它处于脱机状态。消息 3013,级别 16,状态 1,第 10 行 BACKUP DATABASE 异常终止。
您可以查看分离/附加,但最好使用备份还原。
在您的情况下,Yoy 有几种选择:
ALTER DATABASE [<DBName>] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
BACKUP DATABASE [<DBName>] TO DISK = N'<locationAndFilename>'
然后恢复它并将应用程序重定向到新服务器
归档时间: |
|
查看次数: |
2107 次 |
最近记录: |