Чи можливо створити резервну копію та відновити частину бази даних на sql-сервері?


19

У нас є база даних sql-сервера 2005 року, яку ми регулярно передаємо з нашого клієнтського сайту на наш. Це займає тривалий час, оскільки у нас немає прямого зв’язку, і нам доведеться перенести файл через їх веб-додаток для передачі файлів. Зараз база даних становить близько 10 ГБ, однак нам не потрібні всі дані - більшість є в таблицях та таблицях аудиту, де містяться обчислені значення, які можна повторно генерувати.

Я розглянув створення групи файлів для зберігання таблиць аудиту і сподівався, що я можу просто створити резервну копію та відновити основну файлову групу. Я можу зробити резервну копію, але при відновленні я отримую помилку, кажучи, що я не відновлюю її до тієї ж бази даних. Чи можливо відновити частину бази даних на іншому сервері за допомогою файлових груп? Чи є кращий спосіб зробити це?


1
Ви можете отримати користь, прочитавши це запитання: Найменша резервна копія ... за допомогою SQL Server , і особливо відповідь Brent.
Маріан

Оскільки це не виглядає неможливо без особливих хакерів, я вважаю, що ми можемо переглядати переміщення всіх таблиць журналів аудиту до окремої бази даних
Адам Батлер

Це не вимагає зміни коду в додатку? Це трохи просити клієнта пройти.
Шон Мелтон

Відповіді:


15

Якщо чесно, це найпростіше:

  • резервне копіювання / відновлення копії на локальному рівні
  • видаліть із копії небажані дані (за допомогою DELETE або TRUNCATE TABLE, а не DROP ...)
  • відправте копію

Я б не переймався з файловими групами через додаткову складність, яку ви відзначили ...


1
Я пропоную змінити цю щойно відновлену базу даних на просту модель відновлення. msdn.microsoft.com/en-CA/library/ms189272.aspx
datagod

7

Те, як ви говорите лише про необхідність первинної групи файлів, мені здається, що ви хочете лише структури бази даних та дуже невеликого обсягу даних. Я б запропонував, якщо ви просто хочете оновити структуру бази даних (об'єкти, таблиці тощо), щоб просто скриптувати базу даних з усіма об'єктами. Це можна зробити швидко та легко за допомогою PowerShell.

Тоді потрібні вам дані, які неможливо відновити, просто експортуйте їх (сценарій PowerShell міг би це зробити і). Я впевнений, що експортний файл можна потім стиснути до невеликого розміру та передати через з'єднання з вашим сайтом.

Звичайно, як і ця, пропозиція @gbn може бути написана, тож вам вирішувати, який варіант потребує найменшої кількості часу.


2

Це можливо за допомогою відновлення по частинах . Об'єкти та групи файлів вихідної бази даних повинні бути організовані таким чином, що це підтримує. RESTORE вимагає додаткових ключових слів.

Незважаючи на те, що концепція може зайняти трохи звикання, кількість сценаріїв для реалізації не більше, ніж для інших запропонованих рішень.


-1

Клацніть правою кнопкою миші та генеруйте сценарії, а потім змініть ім’я бази даних на цільове (USE db).

Пояснили тут


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