MSSQL增量备份和备份日志的区别
发布网友
发布时间:2022-04-13 04:11
我来回答
共1个回答
热心网友
时间:2022-04-13 05:40
如何MSSQL进行增量备份?
建立增量备份的第一步是产生一个在过去一段时间里更改过的档案的列表,这通常由find命令实现.
例如产生过去24小时内更改过的档案的列表用:
find / -mtime -1 \! -type d -print>/tmp/filelist.daily
其中-mtime -1选…
建立增量备份的第一步是产生一个在过去一段时间里更改过的档案的列表,这通常由find命令实现.
例如产生过去24小时内更改过的档案的列表用:
find / -mtime -1 \! -type d -print>/tmp/filelist.daily
其中-mtime -1选项将使find找出过去24小时内更改过的档案; \! -type d 将使find从档案列表中
去掉目录名.类似找出过去一周内更改过的所有档案用:
find / -mtime -7 -print>/tmp/filelist.weekly
当产生了要备份的档案的列表,这个列表放在一个档案里,使用tar -T选项可以指定一个档案,它包含
要备份的档案的列表.例如将列在档案/tmp/filelist.daily中的所有档案备份到设备/dev/fd0上,用:
tar -cv -T /tmp/filelist.daily -f /dev/fd0
MSSQL存储过程备份SQL日志,sql,sql教程,SQL Server
SET NOCOUNT ON
DECLARE @LogicalFileName sysname,
@MaxMinutes INT,
@NewSize INT
USE "abc"-- 要操作的数据库名
SELECT @LogicalFileName = 'abc_log', -- 日志文件名
@MaxMinutes = 10, -- Limit on time allowed to wrap log.
@NewSize = 500 -- 你想设定的日志文件的大小(M)
-- Setup / initialize
DECLARE @OriginalSize int
SELECT @OriginalSize = size
FROM sysfiles
WHERE name = @LogicalFileName
SELECT 'Original Size of ' + db_name() + ' LOG is ' +
CONVERT(VARCHAR(30),@OriginalSize) + ' 8K pages or ' +
CONVERT(VARCHAR(30),(@OriginalSize*8/1024)) + 'MB'
FROM sysfiles
WHERE name = @LogicalFileName
CREATE TABLE DummyTrans
(DummyColumn char (8000) not null)
DECLARE @Counter INT,
@StartTime DATETIME,
@TruncLog VARCHAR(255)
SELECT @StartTime = GETDATE(),
@TruncLog = 'BACKUP LOG ' + db_name() + ' WITH TRUNCATE_ONLY'
DBCC SHRINKFILE (@LogicalFileName, @NewSize)
EXEC (@TruncLog)
-- Wrap the log if necessary.
WHILE @MaxMinutes > DATEDIFF (mi, @StartTime, GETDATE()) -- time has not expired
AND @OriginalSize = (SELECT size FROM sysfiles WHERE name = @LogicalFileName)
AND (@OriginalSize * 8 /1024) > @NewSize
BEGIN -- Outer loop.
SELECT @Counter = 0
WHILE ((@Counter < @OriginalSize / 16) AND (@Counter < 50000))
BEGIN -- update
INSERT DummyTrans valueS ('Fill Log')
DELETE DummyTrans
SELECT @Counter = @Counter + 1
END
EXEC (@TruncLog)
END
SELECT 'Final Size of ' + db_name() + ' LOG is ' +
CONVERT(VARCHAR(30),size) + ' 8K pages or ' +
CONVERT(VARCHAR(30),(size*8/1024)) + 'MB'
FROM sysfiles
WHERE name = @LogicalFileName
DROP TABLE DummyTrans
SET NOCOUNT OFF
从上面MSSQL增量备份和备份日志的定义,很明显可以看出两者是不同概念的,备份日志是全局的,增量备份只是个局部量