Sql-Server-2016

當我們將備份拆分為多個文件時,文件數是否有限制?

  • December 16, 2021

我正在嘗試將備份文件拆分為多個文件,以將它們從一個 DC 複製到另一個。找不到有關最大文件數的任何資訊。在嘗試將備份文件拆分為多個文件時,我可以創建多少個文件?

我現在找到的唯一資訊是 Ola 的備份腳本,他在其中提到了大約 64 個文件: https ://ola.hallengren.com/sql-server-backup.html 在此處輸入圖像描述

允許的最大備份條帶數為 64。

我找不到SQL Server 文件中記錄的位置,但可以sys.messages通過查看錯誤消息 3205 找到答案。

SELECT *
FROM sys.messages m
WHERE m.message_id = 3205
AND m.language_id = 1033; --Or your favorite language

為備份或恢復指定的備份設備過多;只允許 %d。

等等,不!這根本沒有幫助!%d是一個替換字元串,它沒有給我答案。

讓我們暴力破解。

由於您指出 Ola 的程式碼引用 64 太多,我們可以嘗試備份多達 65 個備份設備並看看會發生什麼。

BACKUP DATABASE msdb
TO  
   DISK = 'NUL',    DISK = 'NUL',    DISK = 'NUL',    DISK = 'NUL',
   DISK = 'NUL',    DISK = 'NUL',    DISK = 'NUL',    DISK = 'NUL',
   DISK = 'NUL',    DISK = 'NUL',    DISK = 'NUL',    DISK = 'NUL',
   DISK = 'NUL',    DISK = 'NUL',    DISK = 'NUL',    DISK = 'NUL',
   DISK = 'NUL',    DISK = 'NUL',    DISK = 'NUL',    DISK = 'NUL',
   DISK = 'NUL',    DISK = 'NUL',    DISK = 'NUL',    DISK = 'NUL',
   DISK = 'NUL',    DISK = 'NUL',    DISK = 'NUL',    DISK = 'NUL',
   DISK = 'NUL',    DISK = 'NUL',    DISK = 'NUL',    DISK = 'NUL',
   DISK = 'NUL',    DISK = 'NUL',    DISK = 'NUL',    DISK = 'NUL',
   DISK = 'NUL',    DISK = 'NUL',    DISK = 'NUL',    DISK = 'NUL',
   DISK = 'NUL',    DISK = 'NUL',    DISK = 'NUL',    DISK = 'NUL',
   DISK = 'NUL',    DISK = 'NUL',    DISK = 'NUL',    DISK = 'NUL',
   DISK = 'NUL',    DISK = 'NUL',    DISK = 'NUL',    DISK = 'NUL',
   DISK = 'NUL',    DISK = 'NUL',    DISK = 'NUL',    DISK = 'NUL',
   DISK = 'NUL',    DISK = 'NUL',    DISK = 'NUL',    DISK = 'NUL',
   DISK = 'NUL',    DISK = 'NUL',    DISK = 'NUL',    DISK = 'NUL',
   DISK = 'NUL' --65!

💥💥💥

Msg 3205, Level 16, State 1, Line 1
Too many backup devices specified for backup or restore; only 64 are allowed.

我在 Express Edition 和 Enterprise Edition 上都檢查過——兩者都給出了相同的答案:64。

錯誤消息的建構方式似乎可以在不更改 中的錯誤消息的情況下更改此數字sys.messages,但該數字似乎不會根據版本而變化——至少對於“盒子”產品而言不是。也許是雲版本或未來版本,這可能會改變。

引用自:https://dba.stackexchange.com/questions/305022