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

Необходимо перенести файл журнала на другой диск. Режим базы Full. Периодически происходит бэкап журнала.

Выполнил следующее:

создал второй журнал командой

alter database DB
add log file
(name = DB_Log2,
filename = 'E:\DB2.ldf',
size = 1000MB,
filegrowth = 10MB)

Дождался выполнения бэкапа журнала. Теперь необходимо удалить первый файл, но с этим возникли трудности. На сколько я понимаю его надо ужать до 0, но этого сделать не получается. Команда
dbcc shrinkfile (DB_Log, 0)
выдает

dbId FileId CurrentSize MinimumSize UsedPages EstimatedPages
10 2 63 63 56 56

и файл стал занимать 500 мегабайт, тоесть удалить я его не могу.
Может я в чем-то ошибаюсь, подскажите какие еще действия необходимо произвести.
11 фев 09, 13:10    [6805923]     Ответить | Цитировать Сообщить модератору
 Re: Перенос файла журнала на другой диск  [new]
vakum
Member

Откуда: Минск
Сообщений: 150
Надо не сжать, а очистить(мигрировать в другие файлы той же файловой группы (естественно они должны быть созданы заранее)). Для этих целей есть спец. аргумент EMPTYFILE

DBCC SHRINKFILE (DB_Log2, EMPTYFILE);
GO
-- Remove the data file from the database.
ALTER DATABASE DB REMOVE FILE DB_Log2;
11 фев 09, 13:21    [6806018]     Ответить | Цитировать Сообщить модератору
 Re: Перенос файла журнала на другой диск  [new]
guest_192732!
Guest
команда

DBCC SHRINKFILE (DB_Log, EMPTYFILE);
GO

выдала то же самое

dbId FileId CurrentSize MinimumSize UsedPages EstimatedPages
10 2 63 63 56 56

Может там активные транзакции остались?

Я опасаюсь потерять транзакции, так как бэкапы лога передаются на другой сервер.
11 фев 09, 13:34    [6806118]     Ответить | Цитировать Сообщить модератору
 Re: Перенос файла журнала на другой диск  [new]
Glory
Member

Откуда:
Сообщений: 104751
guest_192732!


Я опасаюсь потерять транзакции, так как бэкапы лога передаются на другой сервер.

Не волнуйтесь, если файл содержит данные, которые нужные серверу, то вы этот файл из базы не удалите
11 фев 09, 13:42    [6806174]     Ответить | Цитировать Сообщить модератору
 Re: Перенос файла журнала на другой диск  [new]
flexgen
Member

Откуда: Город на песке
Сообщений: 852
guest_192732!,
Возможно имеет смысл инициировать checkpoint, потом сохранять лог файл, потом shrink, потом удалить ненужный файл.
11 фев 09, 13:44    [6806185]     Ответить | Цитировать Сообщить модератору
 Re: Перенос файла журнала на другой диск  [new]
guest_192732!
Guest
Glory, действитель этот файл ему еще зачем-то нужен. :)

забекапил лог, сделал checkpoint, shrink и на

alter database DB
remove file DB_Log

получил

The primary data or log file cannot be removed from a database

Поискав по форуму нашел уж совсем некрасивое решение оставить файл и запретить ему увеличиваться. Может есть другие варианты?
11 фев 09, 14:04    [6806356]     Ответить | Цитировать Сообщить модератору
 Re: Перенос файла журнала на другой диск  [new]
zondik
Member

Откуда: Москва
Сообщений: 84
А если попробовать стандартную процедуру переноса файлов?
Ну, там - alter database XXX modify file (name=YYY, filename="КУДА надо перенести")
А потом базу в офлайн, переносим файл туда, куда указали и и базу обратно в онлайн.
11 фев 09, 14:23    [6806486]     Ответить | Цитировать Сообщить модератору
 Re: Перенос файла журнала на другой диск  [new]
guest_192732!
Guest
вот это:
"А потом базу в офлайн, переносим файл туда, куда указали и и базу обратно в онлайн"
не устраивает. :(
11 фев 09, 14:31    [6806551]     Ответить | Цитировать Сообщить модератору
 Re: Перенос файла журнала на другой диск  [new]
vakum
Member

Откуда: Минск
Сообщений: 150
1. точно создан второй лог файл ?

use DB
select count(*) FROM sys.master_files where database_id = db_id()
and type = 1


2. узнать причину задержки усечения журнала

select log_reuse_wait_desc from sys.databases
where name = 'DB'
11 фев 09, 15:28    [6807066]     Ответить | Цитировать Сообщить модератору
 Re: Перенос файла журнала на другой диск  [new]
guest_192732!
Guest
Извиняюсь что раньше не написал:
Microsoft SQL Server 2000 - 8.00.2050 (Intel X86) Mar 7 2008 21:29:56 Copyright (c) 1988-2003 Microsoft Corporation Enterprise Edition on Windows NT 5.2 (Build 3790: Service Pack 1)

Как это будет для него?
11 фев 09, 15:41    [6807203]     Ответить | Цитировать Сообщить модератору
 Re: Перенос файла журнала на другой диск  [new]
vakum
Member

Откуда: Минск
Сообщений: 150
гы.

у меня таже хня
при создании второго лог файла он мигрирует и удаляется на ура.

как я понял дело в следущем:
"The primary data or log file cannot be removed from a database"

первый , он же primary log file удалить нельзя :-)

единственный вариант:
1. создаешь второй logfile на нужном диске.
2. убираешь Autogrouth для primary logfile
3. живешь спокойно до след. профилактического окна, где стандартой процедурой переносишь primary log file (detach\attach базы or offline\online)
4. удаляешь второй logfile, методом описанным выше.
11 фев 09, 16:30    [6807622]     Ответить | Цитировать Сообщить модератору
 Re: Перенос файла журнала на другой диск  [new]
Ozerov
Member

Откуда: Москва
Сообщений: 3637
Я извиняюсь, может пропустил, но что мешало сделать деаттач, скопировать фай лога в нужное место и при аттаче поменять к нему путь ?
11 фев 09, 16:39    [6807695]     Ответить | Цитировать Сообщить модератору
 Re: Перенос файла журнала на другой диск  [new]
vakum
Member

Откуда: Минск
Сообщений: 150
нужно решение, которое позволило не оффлайнить базу (сервер)
11 фев 09, 16:50    [6807789]     Ответить | Цитировать Сообщить модератору
 Re: Перенос файла журнала на другой диск  [new]
guest_192732!
Guest
Ну ладно, нет так нет. Хотя это по моему мнению серьезная недоработка.
Будем пока так... Всем спасибо.

2Ozerov

guest_192732!
вот это:
"А потом базу в офлайн, переносим файл туда, куда указали и и базу обратно в онлайн"
не устраивает. :(
11 фев 09, 16:52    [6807804]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Перенос файла журнала на другой диск  [new]
Гулин Федор
Member

Откуда: МИНСК
Сообщений: 1317
добырй день всем
мне надо primary лог файл перенсит с d: на e:
деатач устраивает
но Не получается
EXEC master.dbo.sp_detach_db @dbname = N'DEV'


EXEC master.dbo.sp_attach_db @dbname = N'DEV'
, @filename1 = 'E:\Data1\DEV.mdf'

, @filename2 = 'E:\Log1\DEV_log.ldf'

без выделенной строчки - рабоатет и создает файл на d:\log1
я мувнул лог файл с d: на e:
вместе с выделенной строкой выдает

One or more files do not match the primary file of the database. If you are attempting to attach a database, retry the operation with the correct files. If this is an existing database, the file may be corrupted and should be restored from a backup.

бакап то я делал и дб и лога
BACKUP LOG dev TO DISK = 'E:\_backups\dev_log.bak' 
BACKUP DATABASE dev TO DISK = 'E:\_backups\dev.bak'  WITH INIT 


(восстановить я наверно могу но не хочу ) - хочу понять почему показывает данное сообщение
ибо лог то точно от этой БД - я его просто мувнул

вернул лог файл где он был на D: :
Log file 'D:\Log1\DEV_log.ldf' does not match the primary file.
It may be from a different database
or the log may have been rebuilt previously.


думаю что имеетс ввиду под rebuild здесь
моя задача просто перенсти лог на e: (у меня получается добавлять новые логи и удалять их но вот primary лог я не могу мувнуть на др. диск )
т.е это БД тестовая - а потом нужно будет тоже делать с реальной - там оч. большие логи
поэтому 2-й лог пеернсен на E: - но надо удалить 1-й
3 дек 14, 17:25    [16945061]     Ответить | Цитировать Сообщить модератору
 Re: Перенос файла журнала на другой диск  [new]
Гулин Федор
Member

Откуда: МИНСК
Сообщений: 1317
проделал 2 раз операцию с деатач
копированием лога на др. диск
аттач - прошло

зы возожмно файл лога был скопирован до бак-апа
3 дек 14, 17:30    [16945099]     Ответить | Цитировать Сообщить модератору
 Re: Перенос файла журнала на другой диск  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
В следующий раз прежде чем что-то делать, почитайте, как правильно это сделать: http://msdn.microsoft.com/en-us/library/ms345483.aspx
3 дек 14, 17:30    [16945104]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить