База данных копии с SQL-сервером 2005

Новая забавная неудача была коллегой, устанавливающим новый Солярис 10 зон. В первый раз он случайным образом выбрал устройство свопинга, и зона установила и работала вполне счастливо. Во второй раз он выбрал устройство, которое, оказалось, было корневым диском...

Поле не подходило снова. О, и это была производственная система.

1
задан 24 August 2009 в 14:04
6 ответов

Почему Вы хотите избежать резервного копирования/восстановления?

Вы могли написать сценарий резервного копирования и восстановить команды и создать их как задание SQL, так, чтобы оно работало автоматически. Что-нибудь будет соединяться с базой данных копии во время нормального функционирования? (потому что это может вызвать проблемы с восстановлением),

2
ответ дан 3 December 2019 в 19:59
  • 1
    Я хочу избежать резервного копирования/восстановления по той же причине это, когда я хочу скопировать файл одно место в другого я don' t хотят иметь дело с " in-between" расположение файла... это походит на ненужную работу! Другая связанная причина состоит в том, что выполнение резервного копирования/восстановления требует полномочий на диске, которые идут вне отдельных полномочий базы данных включенных баз данных. Я don' t хотят удостоверения пользователя, выполняющие это действие, читавшее и полномочия записи в диск, если это является ненужным. –   20 August 2009 в 01:50
  • 2
    Для ответа на второй вопрос не будет ничего подключенного к базам данных, когда эта копия будет выполнена. –   20 August 2009 в 01:51
  • 3
    Пользователи don' t должны иметь полномочия на диске для резервного копирования/восстановления - только механизму базы данных нужны такие полномочия - можно предоставить пользовательский доступ, чтобы выполнить резервные копирования, или еще лучше, запланировать все это в Агенте, как codeulike предполагает –  Mike DeFehr 20 August 2009 в 01:57
  • 4
    Хм... Я didn' t знают это. Я только знал, что, чтобы сделать резервное копирование/восстановление было недостаточно быть DbOwner на обеих базах данных. –   20 August 2009 в 02:17
  • 5
    Резервное копирование является Вашим другом, не бойтесь его! Может казаться ненужным включить дополнительный файл резервной копии, но механизм SQL делает много умного материала во время резервного копирования, чтобы удостовериться, что резервное копирование последовательно. Следовательно обновления могут продолжить делаться к базе данных, в то время как она сохраняется. Простая файловая система скопировать/вставить (если бы такая функция существовала для живых sql баз данных) не предложила бы такую защиту. Отсоединение, копия, повторное прикрепление устранило бы файл резервной копии из уравнения, но исходная база данных неприменима, в то время как отсоединено. –  codeulike 20 August 2009 в 02:34

Существует два способа скопировать оптовую торговлю базой данных: резервное копирование/восстановление и отсоединение/присоединение - ни один из которых не является процессом с одним шагом и резервным копированием/восстановлением, были бы определенно предпочтены, учитывая сценарий, который Вы описываете.

Если база данных "обработки отказа" должна быть сохранена онлайн, в то время как она обновляется, Вы в значительной степени застреваете с репликацией. Однако, так как базы данных находятся на том же экземпляре, можно просто использовать запросы перекрестной базы данных для перемещения данных.

Я очень не хочу выйти за пределы границ вопроса, но база данных "обработки отказа" по тому же экземпляру как производство не обеспечивает очень в способе отказоустойчивости. От каких отказов Вы надеетесь защитить?

Править: То, что Вы могли бы искать, затем (если Вы находитесь на версии для предприятий 2005 +), является снимками базы данных, как JMusgrove предполагает. Можно взять снимок в любом моменте времени, затем вернуться база данных к тому снимку, если это становится необходимым. Снимок только только для чтения до и если Вы не возвращаетесь к нему. См. эту статью MSDN о Возвращении к Снимку Базы данных. Я предположил бы, что это между снимками и резервным копированием/восстановлением.

1
ответ дан 3 December 2019 в 19:59
  • 1
    Его довольно сложный :) Приложение с помощью базы данных также использует устройство хранения данных файловой системы, которое должно синхронизироваться с состоянием базы данных. Если файловая система повреждается, база данных бесполезна. В этом случае я должен откатывать к состоянию базы данных/файловой системы, которое допустимо. Отказоустойчивость самого экземпляра сервера базы данных обрабатывается отдельно. –   20 August 2009 в 02:14

Существует ли потребность в результирующей копии, которая будет изменена всегда, или копия только для чтения будет достаточна? Если последний, можно использовать снимок базы данных для генерации "копии" базы данных - и это в значительной степени - один процесс шага, как обрисовано в общих чертах в этой статье Technet

Пример:

CREATE DATABASE myCopy ON (
    NAME = originalLogicalName,
    FILENAME = 'path\to\new\snapshotfile'
) AS SNAPSHOT OF myOriginal

Если первый, то один подход шага немного более хитер. Для простых баз данных без хранимых процедур, сложных отношений, и т.д., Вы могли создать пакет SSIS (задание DTS) для копирования данных от одной базы данных до другого - но это может стать ужасно грязным довольно быстро.

0
ответ дан 3 December 2019 в 19:59
  • 1
    Новая база данных не может быть только для чтения. Это должно функционировать таким же образом как исходную базу данных. –   20 August 2009 в 02:15

Как codeulike предлагает, что случилось с резервным копированием и восстановлением. Это походит на самое близкое семантическое пригодное для того, что Вы пытаетесь сделать.

В значительной степени любое действие, которое можно сделать в Studio управления SQL Server, имеет опцию генерировать сценарий для выполнения действия, вместо того, чтобы на самом деле выполнить действие тут же.

Ищите кнопку Script наверху каждого всплывающего окна. Остальное легко - просто создают сценарий с помощью стандартных блоков, сгенерированных для Вас SSMS, и создают задание SQL Server для автоматизации.

0
ответ дан 3 December 2019 в 19:59
  • 1
    Я знаю, что могу сделать это. Я просто хотел простой " БАЗА ДАННЫХ КОПИИ DB_A, DB_B" команда, которую я мог использовать, не имея необходимость волноваться обо всех опциях, которые идут с резервным копированием/восстановлением. –   20 August 2009 в 02:18

Одним путем Репликация моментальных снимков может быть установкой. Это пошло бы от источника до места назначения, однажды как день, когда Вы планируете его, После того как это находится на целевом сервере, место назначения будет функциональный точно как источник. Однако любые изменения, которые Вы вносите в место назначения, будут потеряны, когда следующая репликация произойдет, с тех пор в следующий запланированный раз источник перезапишет место назначения.

Таким образом, если Ваше место назначения является копией источника так, чтобы Ваши разработчики могли взломать далеко в базе данных с реальными данными в нем, и не имеет значения, если он перезаписывается, когда следующая копия происходит, затем это работало бы на Вас.

0
ответ дан 3 December 2019 в 19:59

Почему бы не устанавливать репликацию моментальных снимков? Сделайте производство DB публикация и резервное копирование подписка? Установите репликацию для появления каждых 24 часов, и Вы установлены.

Это копировало DB, будет также иметь все свойства и полномочия напоминания DB, таким образом, это могло быть присоединено как напоминание без проблемы.

0
ответ дан 3 December 2019 в 19:59

Теги

Похожие вопросы