Резервное копирование (англ. backup copy) — процесс создания копии данных на носителе (жёстком диске, дискете и т. д.), предназначенном для восстановления данных в оригинальном или новом месте их расположения в случае их повреждения или разрушения.
Резервное копирование, бекап БД.
Для подготовки резервного копирования, необходимо подготовитт файл со скриптом к базе данных Microsoft SQL.
Назовем его, например: mssql-backup.sql.
И его содержимое:
DECLARE @DBName nvarchar(max), @BackupName nvarchar(max), @BackupFolder nvarchar(500); --Формирование даты для бэкапа DECLARE @BackupDate nvarchar(max) = CONVERT(varchar(10),GETDATE(),105); --Каталог для бэкапа DECLARE @BackupPath nvarchar(500) = 'C:\temp' </code> DECLARE @dbs TABLE(ID int IDENTITY NOT NULL, dbname sysname NOT NULL); INSERT INTO @dbs(dbname) SELECT name FROM sys.databases WHERE name NOT IN('master','msdb','model','tempdb') --Исключаем системные базы --и отключенные AND state <> 6 ORDER BY name DESC; DECLARE @dbcount int; SET @dbcount = @@ROWCOUNT; WHILE @dbcount > 0 BEGIN SELECT @DBName = dbname FROM @dbs WHERE ID = @dbcount; SET @BackupFolder = @BackupPath + '\' + @DBName; SET @BackupName = @BackupFolder + '\' + @DBName + @BackupDate + '.bak'; EXECUTE master.dbo.xp_create_subdir @BackupFolder; BACKUP DATABASE @DBName TO DISK = @BackupName WITH NOFORMAT , INIT , SKIP , NOREWIND , NOUNLOAD , COMPRESSION , STATS = 10 SET @dbcount = @dbcount - 1; END;
Далее, если у Вас MSSQL установлен на ОС Windows:
В виндовый планировщик закидываете команду
sqlcmd -s server_name\sqlexpress -i C:\mssql-backup.sql -o C:\Logs\output.txt
Или, если установлен на Linux:
вставляем в cron(планировщик)
/opt/mssql-tools/bin/sqlcmd -U sa -P -S localhost -i /opt/mssql-tools/mssql-backup.sql
Полезная строчка для дебианоподобныйх систем, при сбое gpg ключа