Для восстановления БД из ранее созданной копии БД необходимо:
- Создать командный файл «db_restore.bat», скопировать в него нижеприведенный текст скрипта;
- В тексте скрипта изменить параметры CONF_DIR и CONF_DUMP_FILE_NAME (указать путь к файлу с копией БД и имя этого файла);
- Выполнить скрипт «db_restore.bat» на сервере BioSmart.
Перед выполнением скрипта восстановления БД закройте все программы, которые имеют подключение к текущей БД, например, pgAdmin.
Текст скрипта:
@echo This batch file
::ip сервера БД
SET CONF_DUMP_HOST_IP=127.0.0.1
::имя БД на сервере в которую восстанавливать БД, при отсутствии БД с таким именем она создастся
SET CONF_DUMP_DB_NAME=biosmart_maindb
::Папка где находится файл с дампом БД
SET CONF_DIR=c:\tmp\backup\
::имя файл с дампом БД
SET CONF_DUMP_FILE_NAME=127.0.0.1_biosmart_maindb_06292015.backup
::Дата для переименования БД
SET CONF_DATE=%date:~-10,2%%date:~-7,2%%date:~-4,4%%time:~-11,2%%time:~-8,2%%time:~-5,2%
::остановим сервер Biosmart
net stop "Biosmart Server"
::переименуем БД
"C:\Program Files\Biosmart Studio 5\db\bin\psql" --host %CONF_DUMP_HOST_IP% --port 5432 --username "postgres" --no-password -c "ALTER DATABASE %CONF_DUMP_DB_NAME% RENAME TO ""%CONF_DUMP_DB_NAME%_%CONF_DATE%"";"
::создадим БД на сервере
"C:\Program Files\Biosmart Studio 5\db\bin\createdb" -U "postgres" %CONF_DUMP_DB_NAME%
::восстановим из дампа БД
"C:\Program Files\Biosmart Studio 5\db\bin\pg_restore" --host %CONF_DUMP_HOST_IP% --port 5432 --username "postgres" --role "postgres" --dbname %CONF_DUMP_DB_NAME% --no-password --verbose %CONF_DIR%%CONF_DUMP_FILE_NAME%
::запустим сервер Biosmart
net start "Biosmart Server"