Khôi phục cơ sở dữ liệu với FileTable


7

Chúng tôi có cơ sở dữ liệu SQL Server 2014 (build 12.0.24457.0) với hai bảng, cả hai đều là bảng FileStream, lớn nhất có 2979466 hàng , SUM(cached_file_size)= 40564905472.

Chúng tôi đã cố gắng khôi phục cơ sở dữ liệu này trên máy chủ thử nghiệm của mình, nhưng mất khá nhiều thời gian. DBA của chúng tôi đã bỏ cuộc sau 14 ngày.

Có ai khác đã cố gắng khôi phục cơ sở dữ liệu với các bảng FileStream, với nhiều tệp trong đó không?

Tôi đang chạy tập lệnh này để theo dõi tiến trình:

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

Cho đến nay tôi đã có kết quả này:

Vào 2016-06-08 10:35:46 chúng tôi đã hoàn thành 00,01%.
Vào 2016-06-08 14:22:46 chúng tôi đã hoàn thành 39,26%. Chúng tôi ước tính sẽ hoàn thành vào: 2016-06-08 18:22:47
Vào 2016-06-08 14:23:46 chúng tôi đã hoàn thành 39,27%. Chúng tôi ước tính sẽ hoàn thành vào: 2016-06-08 18:23:47
Vào 2016-06-08 14:24:46 chúng tôi đã hoàn thành 39,28%. Chúng tôi ước tính sẽ hoàn thành vào: 2016-06-08 18:24:47
...
Vào 2016-06-09 08:33:07 chúng tôi đã hoàn thành 44,80%. Chúng tôi ước tính sẽ hoàn thành vào: 2016-06-10 09:33:08
Vào 2016-06-09 08:34:07 chúng tôi đã hoàn thành 44,80%. Chúng tôi ước tính sẽ hoàn thành vào: 2016-06-10 09:34:08
Vào 2016-06-09 08:35:07 chúng tôi đã hoàn thành 44,80%. Chúng tôi ước tính sẽ hoàn thành vào: 2016-06-10 09:35:08
Vào 2016-06-09 08:36:07 chúng tôi đã hoàn thành 44,81%. Chúng tôi ước tính sẽ hoàn thành vào: 2016-06-10 09:36:08
Vào 2016-06-09 08:37:07 chúng tôi đã hoàn thành 44,81%. Chúng tôi ước tính sẽ hoàn thành vào: 2016-06-10 09:37:08
Vào 2016-06-09 08:38:07, chúng tôi đã hoàn thành 44,81%. Chúng tôi ước tính sẽ hoàn thành vào: 2016-06-10 09:38:08
Vào 2016-06-09 08:39:07, chúng tôi đã hoàn thành 44,82%. Chúng tôi ước tính sẽ hoàn thành vào: 2016-06-10 09:39:08
...
Tại 2016-06-10 08:12:01 chúng tôi đã hoàn thành 47,86%. Chúng tôi ước tính sẽ hoàn thành vào: 2016-06-12 08:12:02
Tại 2016-06-10 08:13:01 chúng tôi đã hoàn thành 47,86%. Chúng tôi ước tính sẽ hoàn thành vào: 2016-06-12 08:13:02

Không chính xác nhanh. Nó đã xoay sở để tăng từ 42% lên 45% trong 13:45, vì vậy với tốc độ hiện tại, nó sẽ kết thúc vào 2016-06-27 13:45, hoặc trong 18 ngày. Dành cho 44 GB!

SELECT top 10000 resource_description AS resource_description, * 
FROM sys.dm_os_waiting_tasks
WHERE session_id=64

nói:

chờ đợiBACKUPTHREAD

... đôi khi BACKUPIOcũng vậy

Vì vậy, tôi đã thiết lập một khôi phục khác để nhận Tin nhắn khôi phục:

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'
Khôi phục (VDCFileStreamhespotest): Đã khởi động RESTORE DATABASE
Khôi phục (VDCFileStreamhespotest): Mở bộ sao lưu
Khôi phục (VDCFileStreamhespotest): Xử lý siêu dữ liệu hàng đầu
Khôi phục (VDCFileStreamhespotest): Kế hoạch bắt đầu
Thông số cấu hình bộ đệm sao lưu / khôi phục
Giới hạn bộ nhớ: 32767 MB
Bộ đệm: 6
Bộ đệm: 2
Kích thước tối đa: 1024 KB
Kích thước tối đa tối thiểu Kích thước: 1024 KB
Tổng dung lượng bộ đệm: 12 MB
Số lượng thiết bị dữ liệu dạng bảng: 1
Số lượng thiết bị dữ liệu Fulltext: 0
Số lượng thiết bị quay phim: 1
Số thiết bị TXF: 0
Liên kết hệ thống tập tin i / o: 512
Số lượng bộ đệm phương tiện: 6
Kích thước bộ đệm phương tiện: 1024 KB
Số lượng bộ đệm mã hóa: 6
Khôi phục (VDCFileStreamhespotest): Tùy chọn hiệu quả: Checksum = 1, Nén = 1, Mã hóa = 0, BufferCount = 6, MaxTransferSize = 1024 KB
Khôi phục (VDCFileStreamhespotest): Lập kế hoạch hoàn tất
Khôi phục (VDCFileStreamhespotest): Bắt đầu khôi phục OFFLINE
Khôi phục (VDCFileStreamhespotest): Cơ sở dữ liệu được đính kèm dưới dạng DB_ID = 48
Khôi phục (VDCFileStreamhespotest): Chuẩn bị các thùng chứa
Khôi phục (VDCFileStreamhespotest): Container đã sẵn sàng
Khôi phục (VDCFileStreamhespotest): Khôi phục bộ sao lưu
Khôi phục (VDCFileStreamhespotest): Tổng kích thước ước tính để chuyển = 45540792320 byte
Khôi phục (VDCFileStreamhespotest): Truyền dữ liệu
1 phần trăm được xử lý.

Ở đây 5 ngày sau chúng ta đã đi được hơn nửa chặng đường:nhưng phần còn lại của hành trình sẽ còn dài


@Kin; Khởi động tập tin tức thì. Kế hoạch năng lượng được thiết lập để hoàn thiện cao. Tôi vừa mới kiểm tra lại.
Henrik Staun Poulsen

Câu trả lời:


1

Bạn đang cố gắng khôi phục cơ sở dữ liệu 45 GB với bộ nhớ 32 GB trên máy chủ.

Những gì bạn có thể làm là tăng bộ nhớ (RAM) trên máy chủ và chơi với

  1. Sọc sao lưu của bạn vào nhiều LUN hoặc đĩa.
  2. Sử dụng BUFFERCOUNT, BLOCKSIZE,MAXTRANSFERSIZE thông số sao lưu cùng với INIT& COMPRESSION(bạn đang sử dụng nó như tôi nhìn thấy từ đầu ra của bạn) để điều chỉnh sao lưu của bạn.
  3. Không sử dụng CHECKSUM trong khi thực hiện sao lưu vì nó có thể góp phần kéo dài thời gian sao lưu. Thay vào đó, hãy thử khôi phục bản sao lưu vào một máy chủ khác để kiểm tra nó - điều này sẽ xác nhận rằng bạn có thể khôi phục nó và sau đó chạy CHECKDB để xác nhận không có tham nhũng.

Đến bây giờ, bạn chỉ nhận được 6 MB, mức này khá thấp.


2

EDIT:
Cuối cùng tôi đã quản lý để khôi phục cơ sở dữ liệu.
Chỉ mất 124 phút, khi chúng tôi thay đổi một số cài đặt trên máy chủ.

Tôi tìm thấy các cài đặt ở đây: https://support.microsoft.com/da-dk/kb/2160002

và tại đây https://technet.microsoft.com/en-us/l Library / cc778996.aspx

Trong trường hợp các liên kết ngừng hoạt động: trong HKEY_LOCAL_MACHINE \ HỆ THỐNG \ CurrentControlset \ Control \ FileSystem NtfsDisableLastAccessUpdate và NtfsDisable8dot3NameCreation nên được đặt thành 1

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.