Відновіть файл Bak у менші файли баз даних mdf та ldf


11

У мене є застаріла база даних, у яку кошмарний брак дизайну я сюди не потрапляю, але файли на сервері (відносно) величезні. Я маю:

MyDatabase.mdf: 24.8GB
MyDatabase.ldf: 114.6GB

Ця база даних резервується до .bak-файлу щовечора та надсилається на наш сервер звітів, де вона відновлена. Файл .bak набагато менший, лише 1,8 Гб.

Однак, коли я намагаюся відновити його на сервері звітності, він виходить з ладу через недостатнє місце. На сервері є близько 100 Гб безкоштовно, і він намагається з'їсти всі 139,4 ГБ, які споживають файли на оригінальному сервері. Якщо мої знання про стиснення не жахливо помиляються, я досить впевнений, що файл 1,8 Гб насправді не розширюється на 7400%.

Моє запитання: Чи є спосіб сказати SQL Server відновити цей файл резервної копії, не резервуючи це місце наперед? Мене не хвилює жоден із колод; Мені просто потрібні дані, щоб бути там. Я розумію бази даних з точки зору розробки та схеми, але я жодним чином не є DBA.

Це на SQL Server 2008 R2. Дякуємо за будь-яку допомогу чи пропозиції.

Відповіді:


11

Резервна копія містить два відомості:

  • макет файлів бази даних та метадані, тобто. RESTORE FILELISTONLY ...
  • фактичні дані

Фактичні дані в резервній копії - це 1,8 ГБ. Але метадані описують компонування файлів як на вихідному сервері виробництва. Хоча це виглядає як стиснення, це не фактичне стиснення. Це лише метадані та вміст. проблема полягає в тому, що під час RESTORE звітний апарат створює макет, як описано в метаданих, тому 114,6 ГБ + 24,8 ГБ. Тепер для справжнього питання: чи можете ви відновити його без відтворення оригінального макета файлу БД? Ні. Однак є ще одне рішення вашої проблеми: поверніть оригінальний БД у перевірку. Скорочення журналу транзакцій охоплює кроки, які вам потрібно зробити, оскільки журнал є вашим головним больовим моментом. Далі я б розгорнув доставку журналів замість резервного копіювання / відновлення.


Дякую; скорочення журналу транзакцій виконало трюк ідеально.
eouw0o83hf

1
Доставка журналів замість резервного копіювання журналу ??
Томас Стрінгер

4
@Shark: доставка журналів замість повних резервних копій, як засіб для доставки БД до звітної машини.
Рем Русану

Ну добре, я повністю пропустив цю частину питання. Дякую за роз’яснення !!
Томас Стрінгер

0

SQL Server 2012 дозволяє використовувати лише mdf-файл бази даних та приєднувати його до SQL Server: http://msdn.microsoft.com/en-us/library/ms174385.aspx . SQL Server створює абсолютно новий ldf-файл, де ви можете вказати розмір. Тоді:

  • використовуйте просту модель відновлення, щоб запобігти зростанню файлу журналу, або
  • використовувати повну модель відновлення та робити регулярні резервні копії журналу транзакцій. Це також запобіжить зростанню файлу журналу
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.