forked from LosaDev/ls-2019-source
Add database setup (LosaGame, LosaGame_log, LosaLogData, Backup, backup/restore) and the tested one-PC server config
This commit is contained in:
1 parent
c198676e97
commit
17e8463b49
243 files changed
+1405092
No files matched your search
@@ -0,0 +1,30 @@
|
||||
-- LosaDev 2019: restores LosaGame, LosaGame_log, LosaLogData and Backup from backup.sql files.
|
||||
-- sqlcmd -S <server> -E -v BACKUP_DIR="D:\LosaBackup" STAMP="20261107_1400" -i restore.sql (or restore.bat)
|
||||
-- STAMP = the yyyyMMdd_HHmm part of the file names. STOP ALL GAME SERVERS FIRST: each database is
|
||||
-- set to single user and replaced. The files go back to the paths stored in the backup, so restore
|
||||
-- on the same server; on another server use RESTORE ... WITH MOVE by hand (see README.md).
|
||||
USE [master]
|
||||
GO
|
||||
SET NOCOUNT ON
|
||||
DECLARE @dir nvarchar(400) = N'$(BACKUP_DIR)', @stamp nvarchar(20) = N'$(STAMP)', @db sysname, @file nvarchar(600), @sql nvarchar(400)
|
||||
IF RIGHT(@dir, 1) = N'\' SET @dir = LEFT(@dir, LEN(@dir) - 1)
|
||||
DECLARE d CURSOR LOCAL FAST_FORWARD FOR SELECT v FROM (VALUES (N'LosaGame'), (N'LosaGame_log'), (N'LosaLogData'), (N'Backup')) t(v)
|
||||
OPEN d
|
||||
FETCH NEXT FROM d INTO @db
|
||||
WHILE @@FETCH_STATUS = 0
|
||||
BEGIN
|
||||
SET @file = @dir + N'\' + @db + N'_' + @stamp + N'.bak'
|
||||
IF DB_ID(@db) IS NOT NULL
|
||||
BEGIN
|
||||
SET @sql = N'ALTER DATABASE ' + QUOTENAME(@db) + N' SET SINGLE_USER WITH ROLLBACK IMMEDIATE'
|
||||
EXEC (@sql)
|
||||
END
|
||||
RESTORE DATABASE @db FROM DISK = @file WITH REPLACE, CHECKSUM
|
||||
SET @sql = N'ALTER DATABASE ' + QUOTENAME(@db) + N' SET MULTI_USER'
|
||||
EXEC (@sql)
|
||||
PRINT 'restored ' + @db + ' from ' + @file
|
||||
FETCH NEXT FROM d INTO @db
|
||||
END
|
||||
CLOSE d
|
||||
DEALLOCATE d
|
||||
GO
|
||||
Reference in new issue
Block a user