Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Удалить один файл журнала транзакций  [new]
vah
Member

Откуда:
Сообщений: 2650
Сейчас у меня два журнала транзакций. Один из них надо удалить.

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

Заранее благодарен.
12 фев 13, 09:52    [13912083]     Ответить | Цитировать Сообщить модератору
 Re: Удалить один файл журнала транзакций  [new]
Ennor Tiegael
Member

Откуда:
Сообщений: 3235
dbcc shrinkfile(..., EMPTYFILE);
go
alter database [...] REMOVE FILE ...;
Да, это можно сделать на ходу, насколько помню.
12 фев 13, 10:00    [13912123]     Ответить | Цитировать Сообщить модератору
 Re: Удалить один файл журнала транзакций  [new]
vah
Member

Откуда:
Сообщений: 2650
Ennor Tiegael
dbcc shrinkfile(..., EMPTYFILE);
go
alter database [...] REMOVE FILE ...;






(строк обработано: 1)
Выполнение DBCC завершено. Если DBCC выдает сообщения об ошибках, обратитесь к системному администратору.
Сообщение 5020, уровень 16, состояние 1, строка 1
Невозможно удалить основные данные или файл журнала из базы данных.
12 фев 13, 10:06    [13912160]     Ответить | Цитировать Сообщить модератору
 Re: Удалить один файл журнала транзакций  [new]
Гость333
Member

Откуда:
Сообщений: 3683
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.
12 фев 13, 10:53    [13912452]     Ответить | Цитировать Сообщить модератору
 Re: Удалить один файл журнала транзакций  [new]
invm
Member

Откуда: Москва
Сообщений: 9273
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;
Покажет какие файлы журналов можно удалить.
12 фев 13, 11:36    [13912721]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Удалить один файл журнала транзакций  [new]
SeventhSon
Member

Откуда:
Сообщений: 72
Создал второй файл templog базы tempdb на другом диске. Тот который на C:\... не удаляется с ошибкой 5020,
хотя вышеуказанный скрипт показывает что файл удалить можно.
Другие файлы, создаваемые на разных дисках, легко удаляются.
Такое ощущение что MS SQL считает этот первый файл, созданный при установке БД, самым важных и сразу при запуске что-то пишет туда, что и делает невозможным уего удаление.
Есть идеи как всё-таки это сделать?
5 ноя 17, 13:59    [20928437]     Ответить | Цитировать Сообщить модератору
 Re: Удалить один файл журнала транзакций  [new]
aleks222
Guest
SeventhSon
Создал второй файл templog базы tempdb на другом диске. Тот который на C:\... не удаляется с ошибкой 5020,
хотя вышеуказанный скрипт показывает что файл удалить можно.
Другие файлы, создаваемые на разных дисках, легко удаляются.
Такое ощущение что MS SQL считает этот первый файл, созданный при установке БД, самым важных и сразу при запуске что-то пишет туда, что и делает невозможным уего удаление.
Есть идеи как всё-таки это сделать?

1. Удалить первый файл - низзя. Никак.
2. Переместить на другой диск - лехко.
5 ноя 17, 14:06    [20928443]     Ответить | Цитировать Сообщить модератору
 Re: Удалить один файл журнала транзакций  [new]
SeventhSon
Member

Откуда:
Сообщений: 72
Действительно,
ALTER DATABASE tempdb MODIFY FILE (name = 'templog', filename = 'E:\templog.ldf')

помогло, спасибо.
5 ноя 17, 17:10    [20928667]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить