Имя: Пароль:
IT
 
Как отрезать или уменьшить лог файл скл 2016?
0 Обфускация
 
05.03.18
14:47
Как отрезать или уменьшить лог файл скл 2016?
1 Fragster
 
гуру
05.03.18
14:49
2 Badjo
 
05.03.18
17:43
1. Бэкап базы.
2.1. Убедится что бэкап создан.
2.2. Убедится что настроен ежедневный бэкап базы.
2.3. Посмотреть а создавались ли ежедневные бэкапы.
3. Переводишь базу в recovery model: simple
4. shrink log file
5. обратно в recovery model: full
3 Вафель
 
05.03.18
17:46
(2) не нужно в симпл переводить. можно бэкап лог файла сделать
4 ИТ директор
 
05.03.18
18:06
Бэкап лога не уменьшит его размер
5 Вафель
 
05.03.18
18:07
Это вместо п.3
6 Туц
 
13.03.18
09:44
Попробуй

DECLARE @SQLStr VARCHAR(8000) -- database name
DECLARE @name VARCHAR(50) -- database name
DECLARE @logname VARCHAR(50) -- database log name

DECLARE db_cursor CURSOR FOR
SELECT sysdb.name name,files.name logname
FROM master.dbo.sysdatabases sysdb (nolock)
--join sys.databases db (nolock) ON sysdb.name = db.name and db.recovery_model_desc = 'FULL'
join sys.databases db (nolock) ON sysdb.name = db.name
join master.sys.sysaltfiles files (nolock) ON files.dbid = sysdb.dbid and files.groupid = 0
WHERE db.name <> 'tempdb'

OPEN db_cursor  
FETCH NEXT FROM db_cursor INTO @name,@logname

WHILE @@FETCH_STATUS = 0  
BEGIN  


    Set @SQLStr = '
    USE ['+@name +']
    ALTER DATABASE ['+@name+'] SET RECOVERY SIMPLE
    DBCC SHRINKFILE ('''+@logname+''', 50);
    ALTER DATABASE ['+@name+'] SET RECOVERY FULL'
    EXECUTE(@SQLStr)
    --select @SQLStr
    FETCH NEXT FROM db_cursor INTO @name,@logname  
END  
CLOSE db_cursor  
DEALLOCATE db_cursor
7 bvb
 
13.03.18
10:53
Я шринкаю лог вот так :

USE [MY_BASE]
ALTER DATABASE [MY_BASE] SET RECOVERY SIMPLE
go
DBCC SHRINKFILE ([MY_BASE_log], 1);
ALTER DATABASE [MY_BASE] SET RECOVERY FULL
go
8 leonidkorolev
 
13.03.18
10:56
Вот тут всё описал
https://www.forum.mista.ru/topic.php?id=780099

Можно конечно в симпл переводить, но зачем тогда вообще в фулл переводить. Перевод в симпл похеривает всю модель бекапирования основанную на фулл.
9 Туц
 
13.03.18
14:02
(8)
Ну тогда добавить после BEGIN  
две строчки
SET @fileName = @path + 'FULL_'+  @name + '.BAK'
BACKUP DATABASE @name TO DISK = @fileName WITH INIT

потеряны могут ну не знаю сколько точно, ну пусть для 100 Гиговой базы и дисков на 200Мбайт/сек порядка 9 минут.
10 Мыш
 
13.03.18
14:45
(4) Не уменьшит, но позволит уменьшить.
Алгоритм: бэкап в нулл, шринк. Повторить два раза подряд.