Размер файла базы данных MS SQL
Подскажите пожалуйсто в такой ситуации: есть база данных MS SQL удалил (дроп) здаровенную таблицу, делаю бекап базы - бэкап маленького размера. А сама база так и осталась немеренная... Что сделать, как уменьшить физический размер базы?
|
В Enterprise Manager База Данных\Все задачи\Shrink Database, или в QA:
Код:
DBCC SHRINKDATABASE (DataBase) |
Большое спасибо! Получилось! База с 4 гигов стала 200 метров. Ещё бы узнать как базу лога почистить
|
Odessit
Цитата:
В EM: База данных\свойства\Options - сменить Model с "Full" на "Simple" |
amel27 А за что "отвечает" накопительный лог? если его отключить, то какую инфу потеряешь? (в смысле не сможешь посмотреть)...
|
XaHAleX
В режиме Full содержит инфу о всех изменениях в БД, поэтому есть возможность откатить (назад) состояние базы на любое заданное время... или в случае утери файла БД восстановить любое состояние из копии и от нее раскрутить (вперед) до последней завершенной транзакции, т.е. восстановить актуальное состояние БД. В режиме Simple хранит данные только незавершенных транзакций, которые удаляются по их завершении и сохранении в файле БД. |
Я прописав в Jobs такое, сдесь и обрезание (SHRINKDATABASE) и архивация базы. Ето делаеться у меня каждую ночь.
BACKUP DATABASE [NewPlan] TO DISK = N'f:\backupSQL\NewPlan' WITH INIT , NOUNLOAD , NAME = N'NewPlan backup', NOSKIP , STATS = 10, NOFORMAT BACKUP LOG [NewPlan] TO DISK = N'f:\backupSQL\NewPTr' WITH INIT , NOUNLOAD , NAME = N'NewPlan backup trans', NOSKIP , STATS = 10, NOFORMAT BACKUP LOG [NewPlan] WITH TRUNCATE_ONLY DBCC SHRINKDATABASE ('NewPlan') BACKUP DATABASE [Master] TO DISK = N'f:\backupSQL\master' WITH INIT , NOUNLOAD , NAME = N'Master backup', NOSKIP , STATS = 10, NOFORMAT BACKUP DATABASE [Model] TO DISK = N'f:\backupSQL\Model' WITH INIT , NOUNLOAD , NAME = N'Model backup', NOSKIP , STATS = 10, NOFORMAT BACKUP DATABASE [Msdb] TO DISK = N'f:\backupSQL\Msdb' WITH INIT , NOUNLOAD , NAME = N'Msdb backup', NOSKIP , STATS = 10, NOFORMAT а ето переиндексация базы DECLARE @RC int EXEC @RC = [NewPlan].[dbo].[_1sp_DBReindex] DECLARE @PrnLine nvarchar(4000) PRINT 'Stored Procedure: NewPlan.dbo._1sp_DBReindex' SELECT @PrnLine = ' Return Code = ' + CONVERT(nvarchar, @RC) PRINT @PrnLine База у меня 9 Гб. а в офисе 25Гб. Все работает отлично. А Файл трансакций как заметилamel27 уменьшаеться при бекапе базы или ее обрезании(шринк). |
Anatoliy2004
- файл транзакций (LOG) не уменьшается при шринке, только при его бэкапе... можно и без создания копии (TRUNCATE_ONLY), соответственно, строчка "BACKUP LOG [NewPlan] WITH TRUNCATE_ONLY" в скрипте после бэкапа лишняя; - нужно предупреждать, что хранимка "_1sp_DBReindex" не является штатной для SQL; - скрипты нужно обязательно брать в теги кода. З.Ы.у меня база 60Гб и вполне хватает штатного "Maintance Plan" без всяких скриптов с откатом в неделю. |
Время: 16:28. |
Время: 16:28.
© OSzone.net 2001-