Удалить один файл журнала транзакций

vah
Дата: 12.02.2013 09:52:52
Сейчас у меня два журнала транзакций. Один из них надо удалить.

Как это можно сделать на работающей базе?

Заранее благодарен.
Ennor Tiegael
Дата: 12.02.2013 10:00:52
dbcc shrinkfile(..., EMPTYFILE);
go
alter database [...] REMOVE FILE ...;
Да, это можно сделать на ходу, насколько помню.
vah
Дата: 12.02.2013 10:06:18
Ennor Tiegael
dbcc shrinkfile(..., EMPTYFILE);
go
alter database [...] REMOVE FILE ...;






(строк обработано: 1)
Выполнение DBCC завершено. Если DBCC выдает сообщения об ошибках, обратитесь к системному администратору.
Сообщение 5020, уровень 16, состояние 1, строка 1
Невозможно удалить основные данные или файл журнала из базы данных.
Гость333
Дата: 12.02.2013 10:53:51
http://msdn.microsoft.com/en-us/library/ms191433(v=sql.105).aspx
You cannot move transaction log data from one log file to another to empty a transaction log file. To remove inactive transactions from a transaction log file, the transaction log must be truncated or backed up. When the transaction log file no longer contains any active or inactive transactions, the log file can be removed from the database.
invm
Дата: 12.02.2013 11:36:09
use [Моя БД];
go

declare @t table (FileId int, FileSize int, StartOffset int, FSeqNo int, Status int, Parity int, [CreateLSN] varchar(30));

insert into @t
 exec('dbcc loginfo;');

select
 mf.name
from
 @t t join
 sys.master_files mf on mf.database_id = db_id() and mf.file_id = t.FileId
group by
 mf.name
having
 sum(t.Status) = 0;
Покажет какие файлы журналов можно удалить.
SeventhSon
Дата: 05.11.2017 13:59:41
Создал второй файл templog базы tempdb на другом диске. Тот который на C:\... не удаляется с ошибкой 5020,
хотя вышеуказанный скрипт показывает что файл удалить можно.
Другие файлы, создаваемые на разных дисках, легко удаляются.
Такое ощущение что MS SQL считает этот первый файл, созданный при установке БД, самым важных и сразу при запуске что-то пишет туда, что и делает невозможным уего удаление.
Есть идеи как всё-таки это сделать?
aleks222
Дата: 05.11.2017 14:06:20
SeventhSon
Создал второй файл templog базы tempdb на другом диске. Тот который на C:\... не удаляется с ошибкой 5020,
хотя вышеуказанный скрипт показывает что файл удалить можно.
Другие файлы, создаваемые на разных дисках, легко удаляются.
Такое ощущение что MS SQL считает этот первый файл, созданный при установке БД, самым важных и сразу при запуске что-то пишет туда, что и делает невозможным уего удаление.
Есть идеи как всё-таки это сделать?

1. Удалить первый файл - низзя. Никак.
2. Переместить на другой диск - лехко.
SeventhSon
Дата: 05.11.2017 17:10:36
Действительно,
ALTER DATABASE tempdb MODIFY FILE (name = 'templog', filename = 'E:\templog.ldf')

помогло, спасибо.