Database backup and restore/ru

From Dragon Age Toolset Wiki
< Database backup and restore
Revision as of 12:44, 4 December 2011 by Kelamor (Talk | contribs) (Complete translate)

Jump to: navigation, search
Создание резервной копии базы данных и её восстановление
Начало / Русская DA Builder Wiki / Поделиться ВКонтакте

Нижеследующие советы помогут вам сделать резервную копию базы данных тулсета и восстановить её. По умолчанию в статье используется дефолтное название базы данных, а именно "bw_dragonage_content".

Восстановление базы данных с помощью "MyRestore.bat"

Данный способ можно использовать в случае, если вы после установки тулсета получили ошибку "Unable to connect to Database".

Имейте в виду, что данный способ приведёт к перезаписи старой базы данных, если она существовала.

Итак, что надо сделать:

1. Создайте файл с именем "MyRestore.bat" где-нибудь в вашей системе и откройте его с помощью какого-нибудь редактора, например обычным Блокнотом.

2. Скопируйте и вставьте в новый файл следующие строки:

SET SOURCE=C:\Program Files\Dragon Age\tools\dbbak
SET TARGET=C:\Program Files\Dragon Age\tools\toolssql\Data
 
@Echo off
if not exist "%SOURCE%\bw_dragonage_content.bak" goto Sourcemiss
if not exist "%TARGET%" goto Targetmiss
:returnme
if not exist "%PROGRAMFILES(X86)%\Microsoft SQL Server\90\Tools\Binn\" goto SQLmiss64
SET varprogs=%PROGRAMFILES(X86)%
goto apply
 
:SQLmiss64
if not exist "%ProgramFiles%\Microsoft SQL Server\90\Tools\Binn\" goto SQLmiss32
SET varprogs=%ProgramFiles%
goto apply
 
:apply
Echo Running SQLcmd...
"%varprogs%\Microsoft SQL Server\90\Tools\Binn\"sqlcmd -S .\BWDATOOLSET -E -Q "RESTORE DATABASE bw_dragonage_content FROM DISK = '%SOURCE%\bw_dragonage_content.bak' WITH MOVE 'bw_dragonage_content' TO '%TARGET%\bw_dragonage_content.mdf', MOVE 'bw_dragonage_content_log' TO '%TARGET%\bw_dragonage_content.ldf'"
goto End
 
:Sourcemiss
Echo SOURCE not found. (bw_dragonage_content.bak) Please check.
Echo Edit this File with Notepad and reapply correct location.
goto End
 
:Targetmiss
Echo TARGET directory does not exist and will be created: %Target%
PAUSE
mkdir "%TARGET%"
if not exist "%TARGET%" goto Stillmiss
goto returnme
 
:Stillmiss
Echo TARGET Directory creation failed. Please check.
goto End
 
:SQLmiss32
Echo SQL is missing. Please check location (Windows 32bit): %PROGRAMFILES%\Microsoft SQL Server\90\Tools\Binn\
Echo SQL is missing. Please check location (Windows 64bit): %PROGRAMFILES(X86)%\Microsoft SQL Server\90\Tools\Binn\
Echo Edit this file with Notepad and apply correct location.
goto end
 
:End
PAUSE

3. В случае необходимости измените путь установки игры Dragon Age ("C:\Program Files\Dragon Age") в первых двух строках скрипта ("SET SOURCE" и "SET TARGET"). В тексте нашего скрипта приведён дефолтный путь установки для английской Windows XP 32bit.

4. Сохраните и запустите ваш новый "MyRestore.bat". Проследите, что вы вошли в систему с правами администратора, также, если вы работаете в Windows 7, полагаю будет нелишним запустить файл от имени администратора.

5. После окончания работы bat-ника, о чём вас известит сообщение, вы можете запускать тулсет.

6. В случае, если во время работы bat-ника произшла ошибка, то ищите первую произошедшую при работе ошибку в нижеприведённом списке:

Возможные ошибки и их обработка

Примечание: Если вы работаете на Висте, 7-ке или даже 8-ке, то убедитесь, что вы запустили bat-ник от имени администратора!

1. "MSG 5133, Level 16, State1, Server ****\BWDATOOLSET, Line1" (Ошибка, система не может найти файл...):

Путь, заданый для переменной TARGET, является неверным и не может быть найден. SQL не может сам создавать директории, но наш bat-ник это сделает за него и сообщит вам об этом, так, на всякий случай.

2. "Msg 3634, Level 16, State 1..." (Операционная система вернула ошибку (Доступ запрещен) при попытке ..):

SQL требует полных прав для записи на диске. Обработка:

  • Измените вторую строку скрипта на "SET TARGET=C:\DB" и перезапустите его.
  • Поэспериментируйте с путями.

3. "Msg 262, Level 14, State 1, Server ****\BWDATOOLSET, Line 1"

Проблема Висты. Возможно это относится и к 7-ке, но на 2005 г. она ещё не была издана. Если да, то, пожалуйста, подтвердите. Обработка:

  • Войдите в систему как администратор.
  • Откройте SQL Server Surface Area Configuration Application ( Пуск --> Все программы --> Microsoft SQL Server 2005 --> Configuration Tools --> SQL Server Surface Area Configuration).
  • Нажмите "Add New Administrator".
  • Выберите пользователя BWDATOOLSET и нажмите кнопку "Add" для перемещения его. Затем нажмите "OK" и снова запустите bat-ник.
  • Источник способа обработки.

4. "HResult 0x2, Level16, State 1"

Named Pipes Provider: Не удалось подключиться к SQL серверу [2]. Обработка:

Если ничего не помогло:

  • Статья на Вики по обработке ошибки "Unable to connect to the database".
  • Введите название ошибки в любой поисковик и, так как ошибки достаточно распространены, вы найдёте их описание и способы решения.
  • Если вы устанавливали тулсет с изменением дефолтных настроек, то попробуйте переустановить его, ничего при установке не изменяя.

Использование bat-ников "Backup" и "Restore"

Примечание: Использование этих bat-ников подразумевает, что проблем с базой данных у вас нет. Эти файлы позволяют создавать резервные копии и восстанавливать базу данных только на рабочей системе.

Оба bat-ника включены Bioware'цами в установщик тулсета для обеспечения пользователей доступным и лёгким инструментом для создания резервных копий базы данных и её восстановления. Находятся они по следующему пути: "Папка установки Dragon Age\tools\DatabaseUtilities\Backup_Restore".

Оба bat-ника используют настройки, хранимые в файле "config.ini". Если вы используете дефолтное расположение базы данных, то всё, что вам необходимо отредактировать в ini-файле, это название файла, в который будет сохраняться, либо из которого будет восстаналиваться, резервная копия базы данных.

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

Также отметим, что SQL Server очень чувствителен к правам доступа и возможно не сможет работать с папками, которые вы выберете. После процедуры резервного копирования убедитесь в создании файла резервной копии. Часто для того, чтобы избежать возможных проблем с правами доступа, папку с резервными копиями создают непосредственно в корне диска, ну и, соответственно, если вы работаете в Висте, 7-ке или 8-ке, не забывайте запускать bat-ник с правами администратора.

Примерный размер создаваемого файла резервной копии базы данных будет порядка 783 mb.

Использование SQLCMD

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

Создание резервной копии

sqlcmd -S .\BWDATOOLSET -E -Q "BACKUP DATABASE <Database Name> TO DISK = '<Backup Directory><Backup Filename>'"

<Database Name> - Имя базы данных, обычно "bw_dragonage_content".

<Backup Directory> - Папка, в которую вы хотите сохранить файл резервной копии (папка должна существовать, так как в процессе исполнения она сама не создастся).

<Backup Filename> - Имя файла резервной копии.

Пример:

sqlcmd -S .\BWDATOOLSET -E -Q "BACKUP DATABASE bw_dragonage_content TO DISK = 'C:\Backup\bw_dragonage_content.bak'"

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

sqlcmd -S .\BWDATOOLSET -E -Q "RESTORE DATABASE <Database Name> FROM DISK = '<Backup Directory><Backup Filename>' WITH REPLACE"

<Database Name> - Имя базы данных, обычно "bw_dragonage_content". <Backup Directory> Папка, в которой находится файл резервной копии. <Backup Filename> - Имя файла резервной копии.

Пример:

sqlcmd -S .\BWDATOOLSET -E -Q "RESTORE DATABASE bw_dragonage_content FROM DISK = 'C:\Backup\bw_dragonage_content.bak' WITH REPLACE"

Если вы восстанавливаете базу данных на другом хранилище, отличном от того, на котором делали резервную копию (например, вы перенесли файл резервной копии с одного компьютера на другой, на котором тулсет установлен в отличном от вашего месте), вы можете добавить следующую команду. Если папки совпадают, то данную команду можно не указывать.

Пример:

WITH MOVE 'bw_da_content_euts_Data' TO 'C:\Program Files\Dragon Age\toolssql\Data\bw_dragonage_content.mdf', MOVE 'bw_da_content_euts_Log' TO 'C:\Program Files\Dragon Age\toolssql\Data\bw_dragonage_content.ldf'

Проблемы с SQLCMD

Возможно появление ошибки, при которой SQLCMD не признаётся в качестве команды DOS.

Скачайте и установите утилиту Microsoft SQL Server 2005 Command Line Query Utility (нужно будет немного прокрутить вниз).

Перезапустите компьютер и попробуйте снова, теперь всё должно работать нормально.


Язык: English  • русский