ืึทืึฒืืึนืช! ืึทืึฒืืึนืช! ื ืืื, ืื ืื ืขืื ืืืืจ ืขื ืกืืื ืืืืืืื ืฉื SQL Server. ืื ื ืืคืืื ืื ืืืืจ ืขื ืืืืืืื ืืื ืืืืืื ืืฉืืืืจ ืืืืฆื ืืืชืืืื ืขื ืืื ืขืฅ ืืืืื.
ืืืื (ืจืง ืืืื), ืืืืจ ืงืจืืืช ืืคืืกื ืืื, ืชืืื ืืืืื ืฉืืืืืื ืฉืืืกืจ ืืื ืืืืฆืขืื ืกืื ืืจืืืื ืืืกืจ ืืืจ ืืืืื, ืืืื, ืคื 1.5 ืืืจ ืืืชืจ. ืืจืง ืืฉื ืืขืืืื ืฉืืชื ืืฉืชืืฉ ืงืฆืช ืืืชืจ ืืคืจืืืจืื ืฉื BACKUP DATABASE.
ืื ืชืืื ืืคืืกื ืืื ืืจืืจ ืื, ืื ื ืืฆืืขืจ. ืงืจืืชื ืืช ืื ืื ืฉืืืื ืืืืข ืืืื ืขืืืจ ืืืืืื "ืืืืื ืฉืจืช sql habr", ืืืืฃ ืืืืจ ืืื ืื ืืฆืืชื ืืืืืจ ืืขืืืื ืฉืืคืฉืจ ืืืฉืคืืข ืืืืฉืื ืขื ืืื ืืืืืื ืืืืฆืขืืช ืคืจืืืจืื.
ืืื ืืคื ื ืืช ืชืฉืืืช ืืื ืืืขืจืชื ืฉื ืืืืกื ืืจ ืืืืฆ'ื ืงื (
ืืขืืื ืื ืชืฉื ื ืืช ืืคืจืืืจืื BUFFERCOUNT, BLOCKSIZE, MAXTRANSFERSIZE ืืืืื ืืืืฆืืจ. ืื ื ืืขืื ืจืง ืืืชืืืช ืืืืจืื ืืืื. ืืคืืขื ืชืืคืืจื ืืืขืืืช ืืืืจืื ืชืื ืืื ืงืฆืจ.
ืื ืืืื, ืืืืื, ืืื ืื ืืืืืช ืืืื ืืืืชืจ ืืืคืจืกื ืชืืื ืืืขืื, ืืื, ืืืจืื ืืฆืขืจ, ืื ืื ืืืงืจื. ืืฉ ืืืืจืื/ืคืืกืืื ืืฉืคื ืืื ืืืืช ืืื ืืจืืกืืช (ืื ื ืชืืื ืืืืืื ืืื ืืงืจืื ืืื ื ืืื) ืืืืงืืฉืื ืื ืืฉื ืืื. ืื ื ืืื ืืืื ืฉื ืชืงืืชื ืืื:
ืื, ืืืืชืืืื, ืืฆืจืฃ ืชืืืืจ BACKUP ืืขื ืืืคืฉื ืืื ื
BACKUP DATABASE { database_name | @database_name_var }
TO <backup_device> [ ,...n ]
<...>
[ WITH { <...>
| <general_WITH_options> [ ,...n ] } ]
[;]
<general_WITH_options> [ ,...n ]::=
<...>
--Media Set Options
<...>
| BLOCKSIZE = { blocksize | @blocksize_variable }
--Data Transfer Options
BUFFERCOUNT = { buffercount | @buffercount_variable }
| MAXTRANSFERSIZE = { maxtransfersize | @maxtransfersize_variable }
<...>
<โฆ> - ืื ืืืืจ ืฉืืื ืฉื ืืฉืื, ืืื ืืกืจืชื ืืืชื ืื ืขืืฉืื ืื ืื ืจืืืื ืื ืื ืืฉื.
ืืื ืืชื ืืืจื ืืื ืืืงื ืืืืื? ืืื ืื "ืืืืืื" ืืื ืืงืืช ืืืืืืื ืืืืืืืจืื ืืืืจืื? ืืืืคื ืืืื, ืื ืื ื ืฆืจืื ืืขืฉืืช ืืืืื ืื ืคืขืื ืฉื ืืกื ื ืชืื ืื ืื ืืืื ืืืืืื, ืื ื ืืืชืื ืืืืคื ืืืืืืื ืืฉืื ืืื:
BACKUP DATABASE smth
TO DISK = 'D:Backupsmth.bak'
WITH STATS = 10, CHECKSUM, COMPRESSION, COPY_ONLY;
--ะปะฐะดะฝะพ, CHECKSUM ั ะฝะฐะฟะธัะฐะป ัะพะปัะบะพ ััะพะฑั ะบะฐะทะฐัััั ัะผะฝะตะต
ืืืืืคื ืืืื, ืื ืจืื 75-90% ืืื ืืคืจืืืจืื ืืืืืืจืื ืืืจื ืืื ืืืืืจืื ืขื ืืืืืืื ืืคืืจืืื ืืื. ืืืื, ืืฉ ืื INIT, SKIP. ืืื ืืืงืจืช ื-MSDN? ืจืืืชื ืฉืืฉ ืืคืฉืจืืืืช ืืืกื ืืื ืืืฆื? ืจืืืชื ืื...
ืืื ืืืจ ืืื ืชื ืฉืืืืฉื ื ืืืจ ืขื ืฉืืืฉืช ืืคืจืืืจืื ืฉื ืฉืืจื ืืืืืง ืืงืื ืืจืืฉืื - BLOCKSIZE, BUFFERCOUNT ื-MAXTRANSFERSIZE. ืื ื ืืชืืืืจืื ืฉืืื ื-MSDN:
BLOCKSIZE = { ืืืื ืืกืืืืช | @ blocksize_variable } - ืืฆืืื ืืช ืืืื ืืืืืง ืืคืืื ืืืชืื. ืืืืืื ืื ืชืืืื ืื 512, 1024, 2048, 4096, 8192, 16, 384 ื-32 ืืชืื (768 KB). ืขืจื ืืจืืจืช ืืืืื ืืื 65 ืขืืืจ ืืชืงื ื ืืืืค ื-536 ืขืืืจ ืืืฉืืจืื ืืืจืื. ืืืจื ืืื ืคืจืืืจ ืื ืืื ื ื ืืืฅ ืืืืืื ืฉืืฆืืจืช BACKUP ืืืืจืช ืืืืืืืืช ืืช ืืืื ืืืืืง ืืืชืืื ืขืืืจ ืืืชืงื. ืืืืจืช ืืืื ืืืืืง ืขืืงืคืช ืืืืคื ืืคืืจืฉ ืืช ืืืืจืช ืืืื ืืืืืง ืืืืืืืืืช.
BUFFERCOUNT = { ืกืคืืจืช ืืืฅ | @ buffercount_variable } - ืืืืืจ ืืช ืืืกืคืจ ืืืืื ืฉื ืืืืจื ืงืื/ืคืื ืฉืืฉืืฉื ืขืืืจ ืคืขืืืช ืืืืืื. ืืชื ืืืื ืืฆืืื ืื ืขืจื ืฉืื ืืืืื, ืื ืืกืคืจ ืจื ืฉื ืืืืจืื ืขืืื ืืืจืื ืืฉืืืื ืืืืฅ ืืืืืจืื ืขืงื ืฉืื ืืชืืืืช ืืืจืืืืื ืืืืื ืืชืืืื Sqlservr.exe.
ืืืืช ืืืื ืืืืืืช ืืืฉืืฉืช ืืืืจืื ื ืงืืขืช ืขื ืืื ืื ืืกืื ืืืื:
BUFFERCOUNT * MAXTRANSFERSIZE
.
MAXTRANSFERSIZE = { maxtransfersize | @ maxtransfersize_variable } ืืฆืืื ืืช ืืืื ืื ืืช ืื ืชืื ืื ืืืืื ืืืืชืจ, ืืืชืื, ืืืืืคื ืืื SQL Server ืืืืื ืฉื ืขืจืืช ืืืืืื. ืชืืืืื ืืืคืืืืช ืฉื 65 ืืชืื (536 ืงืืื-ืืืื) ืขื 64 ืืชืื (4 ืืื-ืืืื).
ืื ื ื ืฉืืข - ืงืจืืชื ืืช ืื ืืขืืจ, ืืื ืื ืขืื ืืืขืชื ืืื ืืฉืคืขื ืืืืื ืืืืืช ืืื ืขื ืืคืจืืืืงืืืืืืช. ืืชืจื ืืื, ืื ืจืื, ืื ื ืฆืจืื ืืขืฉืืช ืกืื ืฉื "ืืฆืืื" ืืืืืืืช ืฉืื ืขืืฉืื ืื ื ืื ืืืืจื ืืืื ืื ืืืืืง ืื ืขืืฉืื. ืื ื ืื ืจืื ืฆืจืื ืืงืจืื ืขืื ืขื ืงืื/ืคืื ืืืืืกื ืืขืืืื ืขื ืืื ื ืงืฉืื. ืืชืืฉืื ืื ื ืืขืฉื ืืช ืื, ืืื ืืื ืชืืื ืื ื ืืืื ืคืฉืื ืืืชืื ืกืงืจืืคื ืฉืืืืืง ืืื ืืขืจืืื ืืืื ืืฉืคืืขืื ืขื ืืืืืจืืช ืฉืื ืืืืืื ืืชืืฆืข.
ืืื ืชื ืืกื ื ืชืื ืื ืงืื, ืืืืื ืฉื ื-10 ื'ืืื-ืืืื, ืฉืืชื ืืืชื ืขื ื-SSD, ืืฉืืชื ืืช ืืกืคืจืืื ืืืืืืืื ื-HDD.
ืื ื ืืืฆืจ ืืืื ืืื ืืช ืืืืกืื ืืชืืฆืืืช (ืืื ืื ืืืชื ืืื ืืช, ืื ืื ื ืืืื ืืืคืืจ ืืชืืฆืืืช ืืืชืจ ืคืืจืื, ืืื ืืชื ืืืืื ืืขืฆืื):
DROP TABLE IF EXISTS ##bt_results;
CREATE TABLE ##bt_results (
id int IDENTITY (1, 1) PRIMARY KEY,
start_date datetime NOT NULL,
finish_date datetime NOT NULL,
backup_size bigint NOT NULL,
compressed_size bigint,
block_size int,
buffer_count int,
transfer_size int
);
ืืขืืงืจืื ืฉื ืืกืงืจืืคื ืืื ืคืฉืื - ืืืืืืช ืืงืื ื ืืช, ืฉืื ืืืช ืืื ืืฉื ื ืืช ืืขืจื ืฉื ืคืจืืืจ ืืื, ืืื ืก ืืช ืืคืจืืืจืื ืืืื ืืคืงืืืช BACKUP, ืฉืืืจ ืืช ืืจืฉืืื ืืืืจืื ื ืขื ืืืกืืืจืื ื-msdb.dbo.backupset, ืืืืงืช ืงืืืฅ ืืืืืื ืืืืืืจืฆืื ืืืื . ืืืืืื ืฉื ืชืื ื ืืืฆืืข ืืืืืื ื ืืงืืื ืืขืจื ืืืืืื, ืืืืืง ืงืฆืช ืืืื (ืืื ืฉืืจืืจื ืฉื ืืืช), ืืื ืื ืื ื ื ืฉืจืื ืืช ืื.
ืจืืฉืืช ืขืืื ืืืคืขืื ืืช xp_cmdshell ืืื ืืืืืง ืืืืืืื (ืืื ืื ืชืฉืื ืืืฉืืืช ืืช ืื ืื ืืชื ืื ืฆืจืื ืืช ืื):
EXEC sp_configure 'show advanced options', 1;
EXEC sp_configure 'xp_cmdshell', 1;
RECONFIGURE;
EXEC sp_configure 'show advanced options', 0;
GO
ืืืื ืืืขืฉื:
DECLARE @tmplt AS nvarchar(max) = N'
BACKUP DATABASE [bt]
TO DISK = ''D:SQLServerbackupbt.bak''
WITH
COMPRESSION,
BLOCKSIZE = {bs},
BUFFERCOUNT = {bc},
MAXTRANSFERSIZE = {ts}';
DECLARE @sql AS nvarchar(max);
/* BLOCKSIZE values */
DECLARE @bs int = 4096,
@max_bs int = 65536;
/* BUFFERCOUNT values */
DECLARE @bc int = 7,
@min_bc int = 7,
@max_bc int = 800;
/* MAXTRANSFERSIZE values */
DECLARE @ts int = 524288, --512KB, default = 1024KB
@min_ts int = 524288,
@max_ts int = 4194304; --4MB
SELECT TOP 1
@bs = COALESCE (block_size, 4096),
@bc = COALESCE (buffer_count, 7),
@ts = COALESCE (transfer_size, 524288)
FROM ##bt_results
ORDER BY id DESC;
WHILE (@bs <= @max_bs)
BEGIN
WHILE (@bc <= @max_bc)
BEGIN
WHILE (@ts <= @max_ts)
BEGIN
SET @sql = REPLACE (REPLACE (REPLACE(@tmplt, N'{bs}', CAST(@bs AS nvarchar(50))), N'{bc}', CAST (@bc AS nvarchar(50))), N'{ts}', CAST (@ts AS nvarchar(50)));
EXEC (@sql);
INSERT INTO ##bt_results (start_date, finish_date, backup_size, compressed_size, block_size, buffer_count, transfer_size)
SELECT TOP 1 backup_start_date, backup_finish_date, backup_size, compressed_backup_size, @bs, @bc, @ts
FROM msdb.dbo.backupset
ORDER BY backup_set_id DESC;
EXEC xp_cmdshell 'del "D:SQLServerbackupbt.bak"', no_output;
SET @ts += @ts;
END
SET @bc += @bc;
SET @ts = @min_ts;
WAITFOR DELAY '00:00:05';
END
SET @bs += @bs;
SET @bc = @min_bc;
SET @ts = @min_ts;
END
ืื ืืชื ืคืชืืื ืฆืจืื ืืืืจื ืขื ืื ืฉืงืืจื ืืื, ืืชืื ืืชืืืืืช ืื ื-PM. ืืขืช ืขืชื, ืืกืคืจ ืืื ืจืง ืขื ืืคืจืืืจืื ืฉืฉืืชื ื-BACKUP DATABASE.
ืขืืืจ BLOCKSIZE ืืฉ ืื ื ืจืฉืืื "ืกืืืจื" ืฉื ืขืจืืื, ืืื ืืืฆืขืชื ืืืืื ืขื BLOCKSIZE < 4KB. MAXTRANSFERSIZE ืื ืืกืคืจ ืฉืืื ืืคืืื ืฉื 64KB - ื-64KB ื-4MB. ืืจืืจืช ืืืืื ืืืขืจืืช ืฉืื ืืื 1024KB, ืืงืืชื 512 - 1024 - 2048 - 4096.
ืื ืืื ืงืฉื ืืืชืจ ืขื BUFFERCOUNT - ืื ืืืื ืืืืืช ืื ืืกืคืจ ืืืืื, ืืื ืืงืืฉืืจ ืืืืจ
Msg 3013, Level 16, State 1, Line 7 BACKUP DATABASE ืืกืชืืื ืืืืคื ืืจืื.
Msg 701, Level 17, State 123, Line 7 ืืื ืืกืคืืง ืืืืจืื ืืขืจืืช ืืืืืจ ืืืฉืืืื 'ืืจืืจืช ืืืื' ืืื ืืืคืขืื ืฉืืืืชื ืื.
ืืฉื ืืฉืืืื, ืชืืืื ืืจืื ืืช ืืชืืฆืืืช ืฉื ืืคืขืืช ืืืืื ืืืื ืืฆืืื ืคืจืืืจืื ืืื:
BACKUP DATABASE [bt]
TO DISK = 'D:SQLServerbackupbt.bak'
WITH COMPRESSION;
ืืืื, ืืืืื ืืืืืื:
ืขืืืื 1070072 ืืคืื ืขืืืจ ืืกื ืื ืชืื ืื 'bt', ืงืืืฅ 'bt' ืืงืืืฅ 1.
ืขืืืื 2 ืืคืื ืขืืืจ ืืกื ืื ืชืื ืื 'bt', ืืงืืืฅ 'bt_log' ืืงืืืฅ 1.
BACKUP DATABASE ืขืืื ืืืฆืืื 1070074 ืขืืืืื ืชืื 53.171 ืฉื ืืืช (157.227 MB/sec).
ืืชืกืจืื ืขืฆืื, ืืืืงืช ืืคืจืืืจืื, ืขืื ืชืื ืืื ืฉืขืืช, ืื ืืืืืืืช ืืื ืืคื ืื
SELECT TOP 7 WITH TIES
compressed_size,
block_size,
buffer_count,
transfer_size,
DATEDIFF(SECOND, start_date, finish_date) AS backup_time_sec
FROM ##bt_results
ORDER BY backup_time_sec ASC;
ืฉืืื ืื, ืืขืจื ืืฉืืื ืืืื ืืืช
ืื ื ืืืืืื ืืืืจ ืืืืืืื ืฉืืงืฉืจ ืืื ืืคืจืืืจืื ืืืืืจืืช ืืืืืื ืืืืืื ืืขืจืืื ืืืื ืืื ืืงืจืื, ืืื ืืคืืก. ืืื ืืืชืจืืงืืช ืืืคืจืืืจืื ืืืืื ืื ืืืืื ืืฉืคืืขื ืืืืื ืขื ืืชืืฆืื
ืึธืึตื. ืจืง ืขื ืืื ื ืืืื ืืคืจืืืจืื ืืกืื ืืจืืืื ืฉื BACKUP ืืื ืจืืื ืคื 2 ืืืื ืืกืจืช ืืืืืื: 26 ืฉื ืืืช, ืืขืืืช 53 ืืืชืืื. ืื ืื ืจืข, ื ืืื? ืืื ืื ืื ื ืฆืจืืืื ืืจืืืช ืื ืงืืจื ืขื ืืฉืืงืื. ืื ืื ืขืืฉืื ืืืงื ืคื 4 ืืืชืจ ืืืชืืืฉืฉ?
ืจืืฉืืช, ืืืื ื ืืืื ืืื ืืื ืืืงื ืืฉืืืจ ืืืืื ืขื ืืืืจืืช ืืจืืจืช ืืืื:
RESTORE DATABASE [bt]
FROM DISK = 'D:SQLServerbackupbt.bak'
WITH REPLACE, RECOVERY;
ืืืื, ืืชื ืืขืฆืื ืืืืข ืฉืืืจืืื ืงืืืืืช, ืืืืคื ืืื ื ืืืืคื, ืืืืื ืืื ื ืืืืื. ืืื ื ืขืืฉื ืืช ืื ืืื:
ืขืืืื 1070072 ืืคืื ืขืืืจ ืืกื ืื ืชืื ืื 'bt', ืงืืืฅ 'bt' ืืงืืืฅ 1.
ืขืืืื 2 ืืคืื ืขืืืจ ืืกื ืื ืชืื ืื 'bt', ืืงืืืฅ 'bt_log' ืืงืืืฅ 1.
RESTORE DATABASE ืขืืื ืืืฆืืื 1070074 ืืคืื ืชืื 40.752 ืฉื ืืืช (205.141 MB/sec).
ืืขืช ืื ืกื ืืฉืืืจ ืืืืืืื ืฉืฆืืืื ืขื BLOCKSIZE, BUFFERCOUNT ื-MAXTRANSFERSIZE ืฉืืฉืชื ื.
BLOCKSIZE = 16384, BUFFERCOUNT = 224, MAXTRANSFERSIZE = 4194304
RESTORE DATABASE ืขืืื ืืืฆืืื 1070074 ืืคืื ืชืื 32.283 ืฉื ืืืช (258.958 MB/sec).
BLOCKSIZE = 4096, BUFFERCOUNT = 448, MAXTRANSFERSIZE = 4194304
RESTORE DATABASE ืขืืื ืืืฆืืื 1070074 ืืคืื ืชืื 32.682 ืฉื ืืืช (255.796 MB/sec).
BLOCKSIZE = 16384, BUFFERCOUNT = 448, MAXTRANSFERSIZE = 2097152
RESTORE DATABASE ืขืืื ืืืฆืืื 1070074 ืืคืื ืชืื 32.091 ืฉื ืืืช (260.507 MB/sec).
BLOCKSIZE = 4096, BUFFERCOUNT = 56, MAXTRANSFERSIZE = 4194304
RESTORE DATABASE ืขืืื ืืืฆืืื 1070074 ืืคืื ืชืื 32.401 ืฉื ืืืช (258.015 MB/sec).
ืืฆืืจืช RESTORE DATABASE ืืื ื ืืฉืชื ื ืืืืื ืืฉืืืืจ; ืคืจืืืจืื ืืื ืืื ื ืืฆืืื ืื ืื; SQL Server ืขืฆืื ืงืืืข ืืืชื ืืืืืืื. ืืืจืืจ ืฉืื ืขื ืืชืืืฉืฉืืช ืืืื ืืืืืช ืจืืื - ืืืขื 20% ืืืจ ืืืชืจ (ืืืขื ืืืืช, ืื ืืฉืงืขืชื ืืื ืจื ืืืชืืืฉืฉืืช, ืขืืจืชื ืืื ืืืืืืืืื ื"ืืืืจืื" ืืืืชืจ ืืืืืืชื ืฉืืื ืืืืจืืจืืช).
ืืืชืจ ืืืืื, ืืจืฉื ืื ืืืืืืจ ืฉืื ืืืืืจ ืืคืจืืืจืื ืืืคืืืืืืื ืขืืืจ ืืืื. ืืชื ืืืื ืืงืื ืืช ืืคืจืืืจืื ืืืืคืืืืืืื ืขืืืจ ืขืฆืื ืจืง ืขื ืืื ืืืืงื. ืงืืืืชื ืืช ืืชืืฆืืืช ืืืื, ืืชื ืชืงืื ืชืืฆืืืช ืฉืื ืืช. ืืื ืืชื ืจืืื ืฉืืชื ืืืื "ืืืืื" ืืช ืืืืืืืื ืฉืื ืืื ืืืืืื ืืืขืฉื ืืืืืืฆืจ ืืืคืจืืก ืืืจ ืืืชืจ.
ืื ื ืื ืืืืืฅ ืื ืืืื ืืงืจืื ืืช ืืชืืขืื ืืืืืื, ืื ืืืชืื ื ื ืืืื ืกืื ืกืคืฆืืคืืื ืืืขืจืืช ืฉืื.
ืืื ืฉืืชืืืชื ืืืชืื ืขื ืืืืืืื, ืื ื ืจืืฆื ืืื ืืืชืื ืขื ืขืื "ืืืคืืืืืืฆืื" ืืืช, ืฉืืื ืืืชืจ ื ืคืืฆื ืืคืจืืืจืื ืฉื "ืืืื ื" (ืืืืื ืืื ืชื, ืืื ืืฉืืฉืช ืืคืืืช ืืื ืืื ืืืืื, ืืืื ืืื ืขื ืืคืจืืืจืื ืฉืชืืืจ ืงืืื ืืื), ืืื ืื ืขืืืื ืื ืชืืืจ ืื ืขื Habrรฉ.
ืื ื ืกืชืื ืขื ืืฉืืจื ืืฉื ืืื ืืชืืขืื, ืืืฉ ืืชืืช ื-BACKUP DATABASE, ืฉื ื ืจืื:
TO <backup_device> [ ,...n ]
ืื ืืืขืชื ืืงืจื ืื ืชืฆืืื ืืกืคืจ ืืชืงื ื ืืืืื? ืืชืืืืจ ืืืคืฉืจ ืืืช. ืืืืจ ืืขื ืืื ืืืื ืืงืจื - ืืืืืื ืคืฉืื "ืืชืคืืจ" ืขื ืคื ื ืืกืคืจ ืืืฉืืจืื. ืึธืึตื. ืื "ืืืฉืืจ" ืื ืคืจื ืืืื ืืกืจ ืชืืขืืช, ืืืื ืืื, ืืืื ืืช ืื ืืืืืื. ืืื ืืื ืืจืืื ืืื ืชืฉืคืืข ืขื ืืืืจืืช ืืืืืื?
ืืืื ื ื ืกื ืืืฆืข ืืืืื ืืฉื ื "ืืืฉืืจืื" ืืืืืงืืื ืื ืืฆื ืื ืืืืชื ืชืืงืืื:
BACKUP DATABASE [bt]
TO
DISK = 'D:SQLServerbackupbt1.bak',
DISK = 'D:SQLServerbackupbt2.bak'
WITH COMPRESSION;
ืืืืช ืืขืืื, ืืื ืื ื ืขืฉื?
ืขืืืื 1070072 ืืคืื ืขืืืจ ืืกื ืื ืชืื ืื 'bt', ืงืืืฅ 'bt' ืืงืืืฅ 1.
ืขืืืื 2 ืขืืืืื ืขืืืจ ืืกื ืื ืชืื ืื 'bt', ืงืืืฅ 'bt'log' ืืงืืืฅ 1.
BACKUP DATABASE ืขืืื ืืืฆืืื 1070074 ืขืืืืื ืชืื 40.092 ืฉื ืืืช (208.519 MB/sec).
ืืื ืืืืืื ื ืขืฉื ืืืืจ ืืืชืจ ื-25% ืกืชื ืื? ืื ืื ื ืืกืืฃ ืขืื ืืื ืืืฉืืจืื?
BACKUP DATABASE [bt]
TO
DISK = 'D:SQLServerbackupbt1.bak',
DISK = 'D:SQLServerbackupbt2.bak',
DISK = 'D:SQLServerbackupbt3.bak',
DISK = 'D:SQLServerbackupbt4.bak'
WITH COMPRESSION;
BACKUP DATABASE ืขืืื ืืืฆืืื 1070074 ืขืืืืื ืชืื 34.234 ืฉื ืืืช (244.200 MB/sec).
ืืกื ืืื ืืจืืื ืืื ื-35% ืืืื ืืงืืืช ืืืืื ืจืง ืืฉื ืืขืืืื ืฉืืืืืื ื ืืชื ื-4 ืงืืฆืื ืืืืกืง ืืื ืื ืืื ืืช. ืืืงืชื ืืกืคืจ ืืืื ืืืชืจ - ืืื ืจืืื ืืืืฉื ืื ืืื ืฉืื, ืืืืคื ืืืคืืืืื - 4 ืืืฉืืจืื. ืืฉืืืื - ืื ื ืื ืืืืข, ืืชื ืฆืจืื ืืืืืง. ืืืื, ืืื, ืื ืืฉ ืื ืืช ืืืืฉืืจืื ืืืื - ืืื ืืืืช ืืืกืงืื ืฉืื ืื, ืื ืืืืื, ืืจืืื ืฆืจืื ืืืืืช ืืคืืื ืืืชืจ ืืฉืืขืืชื.
ืขืืฉืื ืืืื ื ืืืจ ืขื ืืื ืืืืืืจ ืืช ืืืืฉืจ ืืื. ืืื ืืขืฉืืช ืืืช, ืชืฆืืจื ืืฉื ืืช ืืช ืคืงืืืช ืืฉืืืืจ ืืืคืจื ืืช ืื ืืืืฉืืจืื:
RESTORE DATABASE [bt]
FROM
DISK = 'D:SQLServerbackupbt1.bak',
DISK = 'D:SQLServerbackupbt2.bak',
DISK = 'D:SQLServerbackupbt3.bak',
DISK = 'D:SQLServerbackupbt4.bak'
WITH REPLACE, RECOVERY;
RESTORE DATABASE ืขืืื ืืืฆืืื 1070074 ืืคืื ืชืื 38.027 ืฉื ืืืช (219.842 MB/sec).
ืงืฆืช ืืืชืจ ืืืจ, ืืื ืืืคืฉืื ืงืจืื, ืื ืืฉืืขืืชื. ืืืืคื ืืืื, ืืืืืื ืืืกืจ ืืืจ ืืืชืจ ืืืฉืืืืจ ืืืืชื ืืืคื - ืืฆืืื? ืืืืื ืชื, ืื ืื ืืฆืืื. ืึถื ืืื ืืฉืื, ืื ืื ื ืืืืจ - ืื ืืชื ืื ืืชื ืืืื ืืคืืืช ืืื ืืืงืืฆืื ืืืื, ืืชื ืืืื ืืช ืื ืืืืืื.
ืื ืชืกืชืื ืืืืื ืขื ืืืืข ืืืืืื ืืืืฆื ืืืืฆืขืืช Trace Flags 3213 ื-3605, ืชืืืื ืื ืืขืช ืืืืื ืืืกืคืจ ืืืฉืืจืื, ืืคืืืช ืืกืคืจ ื-BUFFERCOUNT ืขืืื. ืื ืจืื, ืืชื ืืืื ืื ืกืืช ืืืืืจ ืคืจืืืจืื ืืืคืืืืืืื ืืืชืจ ืขืืืจ BUFFERCOUNT, BLOCKSIZE, MAXTRANSFERSIZE, ืืื ืื ืืฆืืืชื ืืื, ืืืชืขืฆืืชื ืืืฆืข ืฉืื ืืืืงืืช ืืืื, ืืื ืืืกืคืจ ืฉืื ื ืฉื ืงืืฆืื. ืืืื ืขื ืืืืืืื. ืื ืืชื ืจืืฆื ืืืจืื ืืืืงืืช ืืืื ืืืืช, ืื ืื ืงืฉื ืืขืฉืืช ืืืืฉ ืืช ืืชืกืจืื.
ืืืกืืฃ, ืืืื ื ืืืจ ืขื ืืืืืจ. ืื ืืืืืื ืืืกืจ ืืืงืืื ืืขืืืืช ืืืฉืชืืฉืื, ืืชื ืฆืจืื ืื ืงืื ืืืืฉื ืืืจืืืช ืืืื ืืืืืงื, ืื ืื ืืืืืื ืืืกืจ ืืืจ ืืืชืจ, ืืืืกืงืื ืืชืืืฆืื ืืืชืจ, ืืขืืืก ืขื ืืืขืื ืืื (ืขืืืื ืฆืจืื ืืืืืก ืื ืชืื ืืื ืชื ืืขื), ืืืืชืื ืืื, ืืืืขื ืืช ืืืืืืช ืฉื ืืืขืจืืช ืคืืืชืช.
ืกืชื ืืฆืืืง, ืืื ืื ื ืืืื ืืืื ืฉืื ืืืืืชื ืฉืื ืืืืื. ืื ืฉืืชืื ืืืขืื ืืื ืคืฉืื ืืืืื ืฉื ืืื ืืชื ืืืื ืืืืืจ ืืช ืืคืจืืืจืื ืืืืคืืืืืืื ืืืงืืืช ืืืืืืื.
ืืืจื ืฉืื ืื ืฉืืชื ืขืืฉืื ื ืขืฉื ืขื ืืืจืืืชืื ืืขื ืืืจืืืชืื ืืืื. ืืืืง ืืช ืืืืืืืื ืฉืื ืืื ืชืฉืื ืืช DBCC CHECKDB.
ืืงืืจ: www.habr.com