Я хотел бы знать, какое из возможных решений является наилучшим для сокращения журнала транзакций SQL Server на действующем производственном сервере без простоев?
Полная резервная копия базы данных - что должно фиксировать журнал транзакций? (как в Exchange Server?)
выполнение следующего сценария T-SQL из SSMS вручную в рабочее время?
------------------------------------------------------------------------------ -- Otto R. Radke - http://ottoradke.com -- Info: T-SQL script to shrink a database's transaction log. Just set the -- database name below and run the script and it will shrink the -- transaction log. ------------------------------------------------------------------------------ ------------------------------------------------------------------------------ -- Update the line below with the name of the database who's transaction -- log you want to shrink. ------------------------------------------------------------------------------ USE ------------------------------------------------------------------------------ -- Don't change anything below this line. ------------------------------------------------------------------------------ GO -- Declare variables DECLARE @SqlStatement as nvarchar(max) DECLARE @LogFileLogicalName as sysname -- Alter the database to simple recovery SET @SqlStatement = 'ALTER DATABASE ' + DB_NAME() + ' SET RECOVERY SIMPLE' EXEC ( @SqlStatement ) -- Make sure it has been altered SELECT [name], [recovery_model_desc] FROM sys.databases WHERE [name] = DB_NAME() -- Set the log file name variable SELECT @LogFileLogicalName = [Name] FROM sys.database_files WHERE type = 1 -- Shrink the logfile DBCC Shrinkfile(@LogFileLogicalName, 1) -- Alter the database back to FULL SET @SqlStatement = 'ALTER DATABASE ' + DB_NAME() + ' SET RECOVERY FULL' EXEC ( @SqlStatement ) -- Make sure it has been changed back to full SET @SqlStatement = 'SELECT [name], [recovery_model_desc] FROM ' + DB_NAME() + '.sys.databases WHERE [name] = ''' + DB_NAME() + '''' EXEC ( @SqlStatement ) ------------------------------------------------------------------------------
так в чем разница и цель этих методов?
Любая помощь будет принята с благодарностью.
Спасибо.
Вы используете резервные копии журналов для восстановления на определенный момент времени? Если нет, то одним из способов управления файлом журнала было бы установить для модели восстановления значение «Простая» и вручную сжать базу данных из SSMS (щелкнуть правой кнопкой мыши по базе данных ... Задачи ... Сжать ... База данных). Это уменьшит файлы базы данных для вас. Модель Simple Recovery должна вести журнал в строке.