我们有两个由AAG连接的生产服务器,对于特定的数据库,Service是启用的(Options -> Service -> Broker已启用: true )。我们用这个来做SignalR。
但是,每次在测试环境中执行备份并恢复数据库时,我都必须再次手动启用代理(ALTER DATABASE DatabaseName SET ENABLE_BROKER WITH ROLLBACK IMMEDIATE),因为在测试服务器上恢复数据库时,它是禁用的。
在执行保留此数据库选项的备份或还原命令时,可以设置任何选项吗?我使用脚本来生成BACKUP/RESTORE语句,但我不明白为什么一个特定的数据库选项通过执行备份/还原就从true变为false。下面是我生成的备份和还原命令的示例:
BACKUP DATABASE [DatabaseName] TO DISK = 'B:\backups\full_DatabaseName_20200902_1.bak', DISK = 'B:\backups\full_DatabaseName_20200902_2.bak', DISK = 'B:\backups\full_DatabaseName_20200902_3.bak', DISK = 'B:\backups\full_DatabaseName_20200902_4.bak' WITH COPY_ONLY, NOFORMAT, CHECKSUM, INIT, SKIP, NOREWIND, NOUNLOAD, COMPRESSION, STATS = 10, BLOCKSIZE=65536
RESTORE DATABASE [DatabaseName] FROM DISK = 'B:\backups\full_DatabaseName_20200902_1.bak', DISK = 'B:\backups\full_DatabaseName_20200902_2.bak', DISK = 'B:\backups\full_DatabaseName_20200902_3.bak', DISK = 'B:\backups\full_DatabaseName_20200902_4.bak' WITH FILE=1,MOVE N'DatabaseName_data' TO N'E:\Data\DatabaseName.mdf',MOVE N'DatabaseName_log' TO N'F:\Logs\DatabaseName.ldf',MOVE N'DatabaseName_index' TO N'E:\Data\DatabaseName.ndf',MOVE N'DatabaseName_data_io' TO N'f:\Data\DatabaseName_io.ndf', NOUNLOAD, STATS = 10, RECOVERY, REPLACE发布于 2020-09-02 09:04:09
在执行保留此数据库选项的备份或还原命令时,可以设置任何选项吗?
编辑:您可以使用恢复数据库与ENABLE_BROKER。检查下面的示例:
RESTORE DATABASE [WideWorldImportersA] 
FROM  DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Backup\WideWorldImporters-Full.bak'
WITH  FILE = 1,  
MOVE N'WWI_Primary' TO N'C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\SB\WideWorldImporters.mdf'
,  MOVE N'WWI_UserData' TO N'C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\SB\WideWorldImporters_UserData.ndf'
,  MOVE N'WWI_InMemory_Data_1' TO N'C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\SB\WideWorldImporters_InMemory_Data_1'
,  MOVE N'WWI_Log' TO N'C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\SB\WideWorldImporters.ldf'
,  STATS = 5, ENABLE_BROKER
GO发布于 2020-09-02 09:00:53
我找到了以下文章,其中描述了如何在启用service的情况下还原数据库:-还原-服务代理选项
https://mattsql.wordpress.com/2012/06/07/service-broker-what-does-a-dba-need-to-know/
https://dba.stackexchange.com/questions/274815
复制相似问题