Wir haben eine SQL Server 2014-Datenbank (Build 12.0.24457.0) mit zwei Tabellen, beide sind FileStream-Tabellen, die größte hat 2979466 Zeilen SUM(cached_file_size)= 40564905472
.
Wir haben versucht, diese Datenbank auf unserem Testserver wiederherzustellen, aber es dauert ziemlich lange. Unser DBA gab nach 14 Tagen auf.
Hat jemand anderes versucht, eine Datenbank mit FileStream-Tabellen wiederherzustellen, mit mehr als ein paar Dateien?
Ich führe dieses Skript aus, um den Fortschritt zu überwachen:
BEGIN TRY
DROP TABLE #h
END TRY
BEGIN CATCH
END CATCH
DECLARE @r INT=1, @percent_complete NUMERIC(9,2), @Extimated_Completion_Datetime DATETIME2(0)
CREATE TABLE #h ( start_time DATETIME2(0), percent_complete NUMERIC(9,2), Estimated_completion_time NUMERIC(9,2), HoursSinceStart NUMERIC(9,2), Extimated_Completion_Datetime DATETIME2(0), session_id INT, created_date datetime2(0))
DECLARE @d VARCHAR(19) , @e VARCHAR(max)
WHILE @r > 0 BEGIN
INSERT INTO #h
SELECT start_time, percent_complete, CAST(ROUND(estimated_completion_time/3600000.0,1) AS DECIMAL(9,1)) AS Estimated_completion_time
, CAST(ROUND(total_elapsed_time/3600000.0,1) AS DECIMAL(9,1)) AS HoursSinceStart
, DATEADD(HOUR, CAST(ROUND(estimated_completion_time/3600000.0,1) AS DECIMAL(9,1)), GETDATE()) AS Extimated_Completion_Datetime
, session_id
, GETDATE()
FROM
sys.dm_exec_requests AS r
WHERE
r.session_id <> @@SPID
AND r.session_id > 50
AND command LIKE 'restore database'
SELECT @r = @@ROWCOUNT
select top 1 @percent_complete=percent_complete, @Extimated_Completion_Datetime=Extimated_Completion_Datetime from #h ORDER BY created_date DESC
SET @d = CONVERT(VARCHAR(19), @Extimated_Completion_Datetime, 121)
SET @e = CONVERT(VARCHAR(19), GETDATE(), 121) + ' we are ' + LTRIM(@percent_complete) + '% complete. We estimate to finish at: ' + @d
RAISERROR('At %s ', 10, 1, @e) WITH NOWAIT
--WAITFOR DELAY '00:00:10'
WAITFOR DELAY '00:01:00'
END
Bisher habe ich dieses Ergebnis:
Am 08.06.2016 um 10:35:46 Uhr sind wir zu 00,01% fertig. Am 08.06.2016 14:22:46 sind wir zu 39,26% fertig. Wir schätzen, um zu beenden: 2016-06-08 18:22:47 Am 08.06.2016 14:23:46 sind wir zu 39,27% fertig. Wir schätzen, um zu beenden: 2016-06-08 18:23:47 Am 2016-06-08 14:24:46 sind wir zu 39,28% fertig. Wir schätzen, um zu beenden: 2016-06-08 18:24:47 ... Am 09.06.2016 08:33:07 sind wir zu 44,80% fertig. Wir werden voraussichtlich am: 2016-06-10 09:33:08 fertig sein Am 2016-06-09 08:34:07 sind wir zu 44,80% fertig. Wir schätzen, um zu beenden: 2016-06-10 09:34:08 Am 09.06.2016 08:35:07 sind wir zu 44,80% fertig. Wir werden voraussichtlich am: 2016-06-10 09:35:08 fertig sein Am 2016-06-09 08:36:07 sind wir zu 44,81% fertig. Wir werden voraussichtlich am: 2016-06-10 09:36:08 fertig sein Am 09.06.2016 08:37:07 sind wir zu 44,81% fertig. Wir werden voraussichtlich am: 2016-06-10 09:37:08 fertig sein Am 09.06.2016 08:38:07 sind wir zu 44,81% fertig. Wir gehen davon aus, dass wir am: 2016-06-10 09:38:08 fertig sind Am 09.06.2016 08:39:07 sind wir zu 44,82% fertig. Wir gehen davon aus, dass wir am: 2016-06-10 09:39:08 fertig sind ... Am 10.06.2016 08:12:01 sind wir zu 47,86% fertig. Wir gehen davon aus, dass wir am: 2016-06-12 08:12:02 fertig sind Am 10.06.2016 08:13:01 sind wir zu 47,86% fertig. Wir schätzen, um zu beenden: 2016-06-12 08:13:02
Nicht gerade schnell. Es ist gelungen, in 13:45 von 42% auf 45% zu steigen. Mit der aktuellen Geschwindigkeit scheint es also am 27.06.2016 um 13:45 oder in 18 Tagen zu enden. Für 44 GB!
SELECT top 10000 resource_description AS resource_description, *
FROM sys.dm_os_waiting_tasks
WHERE session_id=64
sagt:
wait_type =
BACKUPTHREAD
... manchmal BACKUPIO
auch
Also habe ich eine weitere Wiederherstellung eingerichtet, um Wiederherstellungsnachrichten abzurufen:
DBCC TRACEON(3604, 3605, 3014);
RESTORE DATABASE [VDCFileStreamhespotest] FROM DISK = N'\\dkrdsvdcp19\MSSQL_Backup\Full\Misc\VDCFileStream_backup_2016_06_07_180004_7123139.bak' WITH FILE = 1,
NOUNLOAD, REPLACE, STATS = 1
, move 'VDCFileStream' to 'P:\MSSQL\DPA\System\MSSQL10_50.DPA\MSSQL\DATA\UserDBs\VDCFileStream\VDCFileStreamDBhespo.mdf'
, MOVE 'VDCFileStream_log' to 'P:\MSSQL\DPA\Log\Log02\VDCFileStream\VDCFileStreamDBhespo_log.ldf'
, MOVE 'VDCFileStreamF1' to 'G:\VDCFileStream\FileStreamDatahespo'
Wiederherstellen (VDCFileStreamhespotest): RESTORE DATABASE wurde gestartet Wiederherstellen (VDCFileStreamhespotest): Öffnen des Sicherungssatzes Wiederherstellen (VDCFileStreamhespotest): Verarbeitung der führenden Metadaten Wiederherstellen (VDCFileStreamhespotest): Die Planung beginnt Konfigurationsparameter für Puffer sichern / wiederherstellen Speicherlimit: 32767 MB BufferCount: 6 Puffersätze: 2 MaxTransferSize: 1024 KB Min MaxTransferSize: 1024 KB Gesamtpufferplatz: 12 MB Anzahl der tabellarischen Datengeräte: 1 Anzahl der Volltextdatengeräte: 0 Anzahl der Filestream-Geräte: 1 Anzahl der TXF-Geräte: 0 E / A-Ausrichtung des Dateisystems: 512 Anzahl der Medienpuffer: 6 Medienpuffergröße: 1024 KB Pufferanzahl codieren: 6 Wiederherstellen (VDCFileStreamhespotest): Effektive Optionen: Prüfsumme = 1, Komprimierung = 1, Verschlüsselung = 0, Pufferanzahl = 6, MaxTransferSize = 1024 KB Wiederherstellen (VDCFileStreamhespotest): Die Planung ist abgeschlossen Wiederherstellung (VDCFileStreamhespotest): Beginn der OFFLINE-Wiederherstellung Wiederherstellen (VDCFileStreamhespotest): Angehängte Datenbank als DB_ID = 48 Wiederherstellen (VDCFileStreamhespotest): Vorbereiten von Containern Wiederherstellen (VDCFileStreamhespotest): Container sind bereit Wiederherstellen (VDCFileStreamhespotest): Wiederherstellen des Sicherungssatzes Wiederherstellen (VDCFileStreamhespotest): Geschätzte Gesamtgröße für die Übertragung = 45540792320 Byte Wiederherstellen (VDCFileStreamhespotest): Daten übertragen 1 Prozent verarbeitet.
quelle
Antworten:
Sie versuchen, eine 45-GB-Datenbank mit 32 GB Speicher auf dem Server wiederherzustellen.
Was Sie tun können, ist den Speicher (RAM) auf dem Server zu erhöhen und damit zu spielen
BUFFERCOUNT
,BLOCKSIZE
,MAXTRANSFERSIZE
Backup - Parameter zusammen mitINIT
&COMPRESSION
(Sie es verwenden , wie ich von Ihrer Ausgabe sehen) abzustimmen Ihre Sicherung.Ab sofort erhalten Sie nur 6 MB, was ziemlich niedrig ist.
quelle
EDIT:
Ich habe es endlich geschafft, die Datenbank wiederherzustellen.
Es dauerte nur 124 Minuten, als wir einige Einstellungen auf dem Server änderten.
Ich habe die Einstellungen hier gefunden: https://support.microsoft.com/da-dk/kb/2160002
und hier https://technet.microsoft.com/en-us/library/cc778996.aspx
Falls die Links nicht mehr funktionieren: In HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ FileSystem sollten NtfsDisableLastAccessUpdate und NtfsDisable8dot3NameCreation auf 1 gesetzt werden
quelle