2014-10-15 6 views
5

У меня есть база данных с несколькими арендаторами, у каждого пользователя есть своя схема.Лучший способ резервного копирования определенной схемы?

Каков наилучший способ резервного копирования одного арендатора (схема таблицы)? Насколько я знаю, SQL Server не поддерживает резервное копирование одной схемы (только полная база данных).

Мне нужно сделать резервную копию структуры и данных. Кроме того, он должен быть автоматизирован (в идеале я должен иметь возможность вызвать его из SSMS).

Я думал, экспортируя ddl и данные в качестве SQL-операторов. Если есть способ вызвать мастер создания и публикации скриптов в качестве хранимого proc, я думаю, что это сработает?

Я в настоящее время на Sql Server 2008 R2, но может обновить.

+4

Вы можете поместить все таблицы из схемы в одну файловую группу и обратно? – DavidG

+0

+1 @DavidG ... сделайте это ответом ... кроме того, что вы прыгаете через кучу интенсивных обручей для скриптов, я думаю, что ваш комментарий близок к чистому решению, поскольку вы собираетесь найти резервные копии для конкретной схемы на SQL Сервер. – DCaugs

+0

@DCaugs Я немного изменил его и добавил еще одну идею. – DavidG

ответ

3

Пара идей.

Использование файла Группа

Поместите таблицы каждый жилец имеет в свою группу файлов. SQL Server имеет возможность backup and restore individual file groups. Вы также можете выполнять некоторые другие операции, например, при необходимости принимать автономных арендаторов в случае необходимости. Например:

CREATE TABLE tenant1.Table1 
(Column1 INT, Column2, INT) 
ON Tenant1FileGroup 

Просмотров & Отдельные Базы данных

Возможно не правильный путь, но он будет работать. Имейте таблицы для каждого арендатора в своей собственной базе данных и ссылайтесь на них из базы данных «master» с учетом схемы арендатора. Например:

Tenant1DB 
    dbo.Table1 
    dbo.Table2 

Tenant2DB 
    dbo.Table1 
    dbo.Table2 

MasterDB 
    tenant1.Table1 
    tenant1.Table2 
    tenant2.Table1 
    tenant2.Table2 

Где объекты, упомянутые выше, в базе данных MasterDB представлены виды, такие как:

CREATE VIEW tenant1.Table1 
AS 
SELECT * FROM Tenant1DB.dbo.Table1 

Таким образом, вы можете легко резервное копирование/восстановление отдельных баз данных арендатора. Некоторые другие преимущества этой стратегии:

  • Индивидуальные арендаторы могут быть восстановлены без перевода основной базы данных в однопользовательский режим.
  • Система будет масштабироваться, так как база данных арендаторов может быть перенесена на другие серверы.
+0

Спасибо. Я действительно считаю, что использование групп файлов должно быть лучшим способом. Вы знаете, есть ли способ восстановить группу файлов без эксклюзивного доступа к базе данных? –

+0

Я думаю, имеет смысл не иметь доступную базу данных при выполнении восстановления. Проблема, с которой я столкнулась сейчас, - восстановить файловую группу до предыдущего момента (игнорируя изменения журнала транзакций). –

+0

Возможно, я не уверен (прошло некоторое время с тех пор, как я был в липком конце администратора базы данных!) Но если вам нужна база данных, чтобы быть в сети, то второй вариант, безусловно, будет работать. Фактически это приносит некоторые интересные преимущества, такие как масштабирование (базы данных арендаторов могут быть перемещены на другие серверы) – DavidG

Смежные вопросы