Показать полную графическую версию : Размер файла базы данных MS SQL
Подскажите пожалуйсто в такой ситуации: есть база данных MS SQL удалил (дроп) здаровенную таблицу, делаю бекап базы - бэкап маленького размера. А сама база так и осталась немеренная... Что сделать, как уменьшить физический размер базы?
В Enterprise Manager База Данных\Все задачи\Shrink Database, или в QA:DBCC SHRINKDATABASE (DataBase)
GO
Большое спасибо! Получилось! База с 4 гигов стала 200 метров. Ещё бы узнать как базу лога почистить
Odessit
Ещё бы узнать как базу лога почистить
Лог чистится только при его бэкапе, если вам хватает бэкапов базы то лучше отключить накопительный лог:
В EM: База данных\свойства\Options - сменить Model с "Full" на "Simple"
amel27 А за что "отвечает" накопительный лог? если его отключить, то какую инфу потеряешь? (в смысле не сможешь посмотреть)...
XaHAleX
В режиме Full содержит инфу о всех изменениях в БД, поэтому есть возможность откатить (назад) состояние базы на любое заданное время... или в случае утери файла БД восстановить любое состояние из копии и от нее раскрутить (вперед) до последней завершенной транзакции, т.е. восстановить актуальное состояние БД. В режиме Simple хранит данные только незавершенных транзакций, которые удаляются по их завершении и сохранении в файле БД.
Anatoliy2004
28-04-2007, 13:34
Я прописав в 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" без всяких скриптов с откатом в неделю.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.