Восстановление базы sql с сетевого диска

Обновлено: 04.07.2024

Если кто-то не достаточно храбр, чтобы преобразовать его ereg() в preg_match() , он или она может использовать mb_ereg ( ) , который по-прежнему доступен в PHP 7.

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

Вы можете использовать SP xp_cmdshell для сопоставления сетевого диска для сервера sql, после чего он появится в окне просмотра файлов.

Работал для меня!

Убедитесь, что пользователь, запускающий ваш SQL services в "Services.msc" , является активным каталогом "Domain User" , это устранит проблему.

Вы не можете сделать это через GUI SSMS, но вы можете сделать это, используя скрипт. RESTORE DATABASE из DISK = '\ unc \ path \ filename' Если вам нужно автоматизировать этот процесс, лучше всего настроить SQL Server Job и запустить его как пользователя с доступом к файлу.

Это неправда. Вы можете восстановить его по сети, пока вы подключили сетевой диск до открытия «Восстановить базу данных . ». Диалог. – Jim Aho 15 March 2017 в 09:56 Это не относится к инструментам SQL 2005 или SQL 2008 – baldy 20 March 2017 в 09:22

Мне приходилось делать это несколько раз, и есть только два варианта, о которых я знаю. Скопируйте файл локально на SQL Server или на сервере SQL создайте сопоставленный сетевой диск для общего ресурса, который содержит файл резервной копии.

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

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

Кроме того, вам необходимо убедиться, что служба SQL Server работает как пользователь, имеющий сетевой доступ, и разрешения для общего ресурса, в котором находится файл резервной копии. «Локальная система» не будет иметь прав доступа к сети.

Создайте общий диск на компьютере с резервными копиями, скажем, server1 имеет резервные копии в папке «Резервные копии». Предоставьте полный контроль над учетной записью, на которой работает SQL Server. На сервере, который вы хотите восстановить для запуска SSMS, перейдите в базу данных восстановления и выберите «От устройства». В диалоговом окне «Locate Backup file-« Server »и удалите что-либо в поле« Выбранный путь », а в поле« Имя файла »укажите полный путь так:« \ server \ backups \ db.bak ». По крайней мере, это работало для меня при переходе с 05 на 08. Не предпочтительный метод, потому что любая икота сети может вызвать проблему с восстановлением.

У вас есть несколько вариантов использования сетевого файла в качестве источника резервного копирования

Восстановление в сети поддерживается только в выпуске SQL Server Enterprise. В настоящем выпуске восстановление файлов, страниц или поэтапное восстановление выполняется по умолчанию в режиме «в сети». Этот раздел относится только к базам данных, содержащим несколько файлов или файловых групп, а также (для простой модели восстановления) к файловым группам, доступным только для чтения.

Восстановление данных из копии, когда база данных находится в режиме «в сети», называется восстановлением в сети. Считается, что база данных находится в режиме «в сети», если первичная файловая группа находится в режиме «в сети», даже если одна или несколько вторичных файловых групп находится в режиме «вне сети». Если база данных находится в режиме «в сети», то файл можно восстановить при любой модели восстановления. Кроме того, при использовании модели полного восстановления можно восстанавливать страницы, когда база данных находится в режиме «в сети».

В выпуске SQL Server Enterprise восстановление в сети выполняется автоматически и не требует участия пользователя. Если восстановление в сети не требуется, то перед началом восстановления можно перевести базу данных в режим «вне сети». Дополнительные сведения см. в разделе Перевод базы данных или файла в режим «вне сети»ниже в этом разделе.

Во время восстановления в сети файлов все файлы и соответствующие файловые группы находятся в режиме «вне сети». Если какой-либо файл при запуске восстановления в сети находится в режиме «в сети», то первая инструкция восстановления переводит файловую группу этого файла в режим «вне сети». Во время восстановления страниц в сети, наоборот, в режиме «вне сети» находится только страница.

Любой сценарий восстановления в сети состоит из следующих основных шагов.

Восстановление журнала с параметром WITH RECOVERY для восстановления последнего журнала. Восстановленные данные переводятся в режим «в сети».

Иногда невозможно выполнить откат незафиксированной транзакции, поскольку данные, требующие отката, во время запуска восстановления в сети находятся в режиме «вне сети». В этом случае транзакция откладывается. Дополнительные сведения см. в разделе Отложенные транзакции (SQL Server).

Если в базе данных используется модель восстановления с неполным протоколированием, то перед запуском восстановления в сети рекомендуется переключиться на модель полного восстановления. Дополнительные сведения см. в разделе Просмотр или изменение модели восстановления базы данных (SQL Server).

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

При использовании резервных копий моментальных снимков нельзя выполнять Online Restore. Дополнительные сведения о резервном копировании путем создания моментального снимка см. в статье Резервные копии моментальных снимков файлов для файлов базы данных в Azure.

Создание резервных копий журналов для восстановления в сети

При восстановлении в сети точкой восстановления служит точка, в которой восстанавливаемые данные в последний раз переводились в режим «вне сети» или режим «только для чтения». Должны быть доступны все резервные копии журналов транзакций до этой точки восстановления включительно. Как правило, чтобы захватить точку восстановления, необходимо использовать для восстановления резервную копию журналов после этой точки. Единственным исключением является восстановление данных в сети, предназначенных только для чтения, из резервной копии данных, которая сделана после перевода данных в режим «только для чтения». В этом случае резервная копия журналов не требуется.

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

Для файла в сети, предназначенного только для чтения, можно использовать необходимую для восстановления последнюю резервную копию журналов, которая требуется до первой последовательности восстановления или во время нее. Для файловой группы только для чтения резервные копии журналов могут и не требоваться, если после переключения этой группы в режим «только для чтения» была создана резервная копия данных или разностная резервная копия.

Приведенные выше сведения также относятся ко всем файлам вне сети.

Особым случаем является файл, доступный для чтения и записи, который находился в режиме «в сети» при получении первой инструкции восстановления и который автоматически был переведен этой инструкцией в режим «вне сети». В этом случае следует создать резервные копии журналов во время первой последовательности восстановления (последовательности из одной и нескольких инструкций RESTORE, которые восстанавливают данные, выполняют накат и восстанавливают данные по журналу). Обычно такое резервное копирование журналов должно выполняться после восстановления всех полных резервных копий и до восстановления данных. Но если для определенной файловой группы существует несколько резервных копий файлов, то ближайшей точкой восстановления журналов будет время, когда файловая группа была переведена в режим «вне сети». Такое резервное копирование журналов после восстановления захватывает точку, в которой файл был переведен в режим «вне сети». Резервное копирование после восстановления данных является необходимым, поскольку Компонент SQL Server Database Engine не может использовать журнал «в сети» для восстановления «в сети».

Кроме того, можно вручную перевести файл в режим «вне сети» до последовательности восстановления. Дополнительные сведения см. в разделе «Перевод базы данных или файла в режим «вне сети» ниже в этом разделе.

Перевод базы данных или файла в режим «вне сети»

Если восстановление в сети не требуется, то перед началом последовательности восстановления базу данных можно перевести в режим «вне сети» следующими способами.

При любой модели восстановления базу данных можно перевести в режим «вне сети» с помощью следующей инструкции ALTER DATABASE :

ALTER DATABASE имя_базы_данных SET OFFLINE

Кроме того, при модели полного восстановления можно принудительно перевести восстановление файла или страницы в режим «вне сети» с помощью следующей инструкции BACKUP LOG , переводящей базу данных в состояние восстановления:

BACKUP LOG имя_базы_данных WITH NORECOVERY.

Пока база данных остается в режиме «вне сети», все операции автономного восстановления.

Примеры

Синтаксис последовательности восстановления в сети тот же самый, что и в случае последовательности восстановления вне сети.

Многим новичкам поначалу может казаться, что выполнить бэкап в MS SQL сразу, куда-нибудь на сетевой диск, NAS или «расшаренную» папку в локальной сети нельзя, так как нет возможности по умолчанию в Management Studio выбрать «сетевую папку» или любое другое устройство в нашей локальной сети. (Кстати видео уроки по этой теме и не только есть во всех подробностях на курсе: Администратор 1С, если статьи будет мало!)

Ustroistvo_rezervnogo_kopirovaniya_v_ms_sql_1

Но конечно это не так, и все решается довольно просто.

Готово!

Теперь можно прямо, используя Management Studio, указать через двойной слеш IP адрес (или хост имя сервера), затем имя общего сетевого ресурса, и указав имя файла, можно сделать бэкап или восстановление базы (Как на рисунке ниже).

Ustroistvo_rezervnogo_kopirovaniya_v_ms_sql_2

Аналогично можно выполнить как бэкап так и восстановление при помощи Transact-SQL.

Ustroistvo_rezervnogo_kopirovaniya_v_ms_sql_3

Но в MS SQL можно упростить эту задачу, подключив удаленное устройство, грубо говоря, как «сетевой диск», и уже в следующий раз, когда потребуется выполнить бэкап, просто выбрать его, что собственно упростит и ускорит задачу по резервному копированию и восстановлению баз данных.

Теперь нам не придется снова и снова указывать полный путь к «расшаренной папке» достаточно будет лишь выбрать устройство, за которым «шара» уже будет закреплена.

Существует два простых способа, чтоб это сделать.

Второй, используя Transact-SQL.

И так способ первый:

Если Вы хотите больше узнать о технической стороне 1С, тогда регистрируйтесь на первый бесплатный модуль курса: Администратор 1С >>>

image


В этой статье я хотел бы рассказать о том, как с помощью утилиты Quick Maintenance & Backup for MS SQL настроить автоматическое восстановление баз данных из бэкапов на тестовом экземпляре SQL Server в сети. При этом создавать бэкапы будет штатный План обслуживания. Потребность в автоматизированном восстановлении может возникнуть в следующих случаях:

  1. Если требуется регулярно актуализировать базы данных на тестовых серверах.
  2. Если требуется периодически проверять через восстановление созданные бэкапы: полный, разностный и журналы транзакций.

Задача

Итак, допустим имеется рабочий SQL Server (Srv01) на котором развернуты несколько баз данных с Полной моделью восстановления. На сервере создан План обслуживания с произвольной стратегией резервного копирования. В моем случае это:

Полный бэкап – каждую неделю 24.00 в воскресенье
Разностный бэкап – каждую ночь в 24.00 кроме воскресенья
Бэкап лога – каждый день с 9.00 до 23.59 через каждые 1 час

Бэкапы создаются в папке F:\MS SQL\Backup. При этом для каждой базы агент SQL Server создает отдельные подпапки.

Задача: каждый день в 23:00 на резервном SQL Server (London) выполнять восстановление баз данных на последнее возможное состояние из бэкапов созданных на Srv01. Оба сервера находятся в единой локальной сети. После восстановления каждой базы данных необходимо проверить её целостность (DBCC CHECKDB). Таким образом, каждый вечер кроме воскресенья, будет выполняться восстановление из Полного бэкапа, разностного и журналов транзакций, созданных в течении дня. В понедельник восстановление будет проводится из Полного бэкапа и журналов транзакций, созданных в течении понедельника. Если по каким-то причинам восстановление не выполнится администратору должно прийти email-уведомление.

Понятно, что для того чтобы тестовый SQL Server (London) смог выполнить восстановление он должен иметь доступ к файлам бэкапов. Тут возможны два варианта:

  1. Расшарить папку F:\MS SQL\Backup на Srv01 так чтобы она была доступна на London.
  2. С помощью QMB копировать бэкапы в общую сетевую папку, которая доступна на London.

Общий порядок действий

Итак, нам потребуется проделать следующие шаги:

  1. Настроить общую сетевую папку
  2. Установить утилиту QMB
  3. Настроить уведомления и зарегистрировать в программе два SQL Server: Srv01 и London.
  4. Создать в программе две новых задачи:

  • Создание XML плана восстановления на сетевом диске
  • Восстановление по XML плану с сетевого диска

  • Сценарий, на рабочем сервере Srv01, выполняющий создание XML плана восстановления в общей папке с копированием в неё файлов бэкапов. Старт каждый 1 час.
  • Сценарий, на тестовом сервере London, выполняющий восстановление по XML плану из бэкапов, размещенных в общей папке. Старт каждый день в 23.00.

Утилиту можно скачать тут. Пробный период — 30 дней.

Я поставил утилиту на тестовом сервере London. В общем случае программу можно установить на любом компьютере, работающем круглосуточно т.е. установка именно на SQL Server не обязательна. При установке программы оставляем все параметры по умолчанию. Инсталлятор установит службу QmbService и клиента.

При первом старте программы откроется мастер. Перейдем на следующий шаг и установим галку «Включить email-оповещения» и введем адрес электронной почты для получения уведомлений.


Для отправки уведомлений рекомендуется настраивать собственную учетную запись SMTP, но для простоты мы будем использовать встроенную. Далее введем имя SQL Server и учетную запись для подключения к SQL Server. Необходимо указать учетную запись имеющую привилегии sysadmin (по умолчанию sa).

В следующем окне можно настроить слежение за свободным местом на дисках. Если в этом нет необходимости, то снимите все чекбоксы с дисков.


Нам не требуется обслуживать базы данных поэтому на последней странице мы выберем «Создать пустой автономный сценарий». Затем снимем галку «Создать автономный сценарий для обслуживания системных баз данных» и нажмем кнопку «Завершить».


Программа зарегистрирует SQL Server и откроет форму нового пустого сценария.

Создание XML-плана восстановления

Любые задачи в программе исполняются в рамках сценариев. В окне нового автономного сценария ведем его имя Создание XML плана восстановления.



Добавим в сценарий задачу, которая будет создавать XML файл плана восстановления. Нажмем кнопку «Добавить». Откроется форма выбора задачи. Кликнем кнопку «Добавить новую задачу». Откроется форма новой задачи.


  1. Изменить тип задачи на «Создание XML плана восстановления»
  2. Создать новое подключение к общей папке. В моем случае это папка \\Server\Backup на файловом сервере.


Примечание: Для сети без домена имя пользователя необходимо указывать в формате: Компьютер\Пользователь


Обратите внимание на признак «Копировать недостающие файлы архивных копий в общую папку». Благодаря этой опции программа автоматически скопирует недостающие файлы бэкапов с локального диска SQL Server в сетевую папку. При этом, путь к файлу источнику программа определит самостоятельно по информации о созданных резервных копиях, которую SQL Server хранит в системной базе msdb.

Нажмем кнопку Принять и выберем созданную задачу в сценарий. На форме сценария установим флаг «Запуск сценария по расписанию» и укажем расписание: Каждый день, через 1 час начиная с 9:30 до 22:30. Напомню, что План обслуживания создает бэкап лога каждый час с 9:00 до 23:59. Таким образом QMB будет обновлять XML план восстановления со сдвигом в 30 минут (9:30, 10:30, 11:30 и т.д). Нужно отметить, что если бы бэкапы создавались Политикой обслуживания QMB, то XML файл плана восстановления обновлялся бы автоматически.

Сценарий должен выглядеть как на рисунке ниже.


Теперь проверим сценарий. Для этого нажмем кнопку «Выполнить». Если все настроено верно, то в сетевую папку будут скопированы файлы резервных копий и создан файл RestorationPlan.xml. Если в ходе работы программа не найдет нужных файлов резервных копий, то задача завершится ошибкой. Таким образом мы заранее узнаем о потенциальных проблемах. Например, довольно часто, администраторы для передачи базы данных создают её полный бэкап (без параметра COPY_ONLY), а после передачи сразу удаляют его чтобы он не занимал место. Однако при этом рвется цепочка резервных копий и восстановление на актуальный момент времени становится невозможно. Программа выявит эту проблему ещё на этапе создания XML плана восстановления.


Сохраним сценарий. Теперь QMB через каждый час будет пересоздавать XML файл плана восстановления и копировать новые файлы бэкапов, которые создает штатный агент SQL Server.
Нужно отметить, что задача по созданию XML плана копирует файлы, необходимые только для восстановления на последний возможный момент времени. При этом файлы копируются без папок т.е. все файлы будут размещены в указанной сетевой папке. В программе существует возможность настроить копирование подпапок, а даже удаление устаревших файлов в сетевой папке. Это можно сделать через пользовательскую задачу, содержащую CMD скрипт или используя Политику обслуживания QMB.

Восстановление на тестовом сервере


Восстановление по XML плану выполняется аналогично, с помощью специальной задачи, размещенной в сценарии. Однако восстановление должно выполняться на тестовом SQL Server (London), поэтому этот сервер тоже необходимо зарегистрировать в программе. Для этого в древовидном списке слева нажмем кнопку «Зарегистрировать сервер». Процедура регистрации сервера полностью аналогична описанной ранее.

После регистрации сервера откроется окно автономного сценария. Введем наименование Восстановление по XML плану с Srv01 и укажем его расписание: Каждый день в 23:00.


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


База данных в которую будет выполнено восстановление определяется одноименным переключателем. В нашем случае я буду восстанавливать в одноименные базы данных. Это значит, что на SQL Server будут созданы/перезаписаны базы данных имеющие аналогичные имена (в моем случае это три базы: Account2013, Account2014, Account2015). Таким образом эти базы будут актуализироваться до последнего состояния.

Режим Восстанавливать во временную базу данных следует выбирать, если восстановление выполняется с целью проверки файлов резервных копий и процедуры восстановления. В этом режиме QMB создаст временную базу с наименованием qmbTempRestoreDb[Случайный индекс], которая будет удалена после восстановления и проверки её целостности.

Сохраняем задачу и выбираем её в нашем сценарии.


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


Сохраним сценарий. Теперь каждый день в 23:00 программа будет автоматически восстанавливать базы данных и в случае сбоя отправлять уведомления на Email.


Кроме этого, используя XML файл плана восстановления, администратор с помощью программы может вручную, в несколько кликов, восстанавливать базы данных на других SQL Server.

Здравствуйте.
Создаю в агенте задачу:
1 Step
Type - cmdExec
Runas domain\user
net use x: \\192.168.0.15\backup
2 Step
Type - T-SQL
ALTER DATABASE DBName
SET SINGLE_USER WITH
ROLLBACK AFTER 60 --this will give your current connections 60 seconds to complete

--Do Actual Restore
RESTORE DATABASE DBName2
FROM DISK = 'x:\DB_backup_full'
WITH MOVE 'DBName' TO 'h:\mssql\DBName2.mdf',
MOVE 'DBName_log' TO 'h:\log\DBName2_log.ldf'
,REPLACE
/*If there is no error in statement before database will be in multiuser
mode. If error occurs please execute following command it will convert
database in multi user.*/
ALTER DATABASE DBName2 SET MULTI_USER;
ALTER DATABASE DBName2 SET RECOVERY SIMPLE;
GO

В логах - первый шаг выполняется, на втором - ошибка
Executed as user NT Service\SQLSERVERAGENT. Cannot open backup device 'x:\DB_backup_full'. Operating system error 3.


Пользователь, под которым монтируется диск - член домена, имеет все права на папку.
Что я делаю не так?

__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь

В чём разница между обычным подключением сетевого диска и подключением сетевого диска при помощи политик?
Вопрос начинающего. В чём разница между обычным подключением сетевого диска и подключением сетевого.

Восстановление бекапа Bacula
Ув. форумчане-линуксоиды, подскажите что делать: забекапил бакулой (версия 5.2.6, висит на восьмом.

восстановление сайта из бекапа, расположение данных
Все работы на локальном компьютере. Возникла необходимость восстановить сайт из бекапа, есть.

Восстановление набора документов из бекапа с файлами в DAOS
Коллеги, столкнулась с такой ситуацией - был удален документ в базе. Нужно восстановить. Подняли.

При ресторе, доступ к файлу резервной копии идет от имени учетной записи, под которой работает служба SQL Server.
Так что ваши манипуляции с net use не имеют смысла. А есть какие-то способы это обойти? Без копирования её локально?

Восстановление раздела жесткого диска - Потеря данных после разделение диска D с данными
Всем привет. Ситуация такая, устанавливал Windows 8 поверх 7-ки, загрузился через установочную.

Toshiba восстановление windows 7 с диска recovery (3 диска в комплекте)
Добрый день Всем! Прошу объяснить подробно, как правильно переустановить windows 7 (64bit). Дело в.


Подключение сетевого диска
Возможно ли подключить сетевой диск?. Знаю можно написать батник с net use, и прилепить его к.

Подключение сетевого диска
Доброго времени суток. Поставили задачу - Средствами Powershell подключить сетевые диски, при.

Читайте также: