Pcn6 как перенести базу на другой компьютер

Обновлено: 05.07.2024

Недавно возникла необходимость переноса всех БД (>50 на одном экземпляре SQL Server) из dev-окружения на другой экземпляр SQL Server, который располагался на другом железе. Хотелось минимизировать ручной труд и сделать всё как можно быстрее.

Disclaimer

Скрипты написаны для одной конкретной ситуации: это dev-окружение, все базы в простой модели восстановления, файлы данных и журналы транзакций лежат в одной куче.

Всё, что написано дальше относится только к этой ситуации, но вы можете без особых усилий допилить их под себя (свои условия).

В скриптах не используются новомодные STRING_AGG и прочие приятные штуки, поэтому работать всё должно начиная с SQL Server 2008 (или 2008 R2, не помню где появилось сжатие бэкапов). Для более старых версий нужно убрать WITH COMPRESSION из команды бэкапа, но тогда разницы по времени с копированием файлов может уже и не быть.

Это не инструкция — «как надо» делать такой перенос. Это демонстрация того, как можно использовать метаданные в dynamic SQL.

Конечно, самым быстрым способом было бы просто переподключить полку с дисками к новому серверу, но это был не наш вариант. Detach — копирование — Attach рассматривался, но не подошёл, поскольку канал был довольно узким и перенос БД в несжатом виде занял бы довольно большой промежуток времени.

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

Так был написан «генератор скриптов»:


На выходе получаем готовые команды для создания бэкапов в нужное место, перевода БД в offline, чтобы их пользователи не могли с ними работать на старом сервере и скрипты для восстановления полученных бэкапов на новом сервере (с автоматическим перемещением всех файлов данных и журналов транзакций в указанное место).

Проблема с этим такая — либо кто-то должен сидеть и по очереди выполнять все скрипты (бэкап-офлайн-восстановление), либо кто-то должен сначала запустить все бэкапы, потом отключить все базы, потом всё восстановить — действий меньше, но нужно сидеть и отслеживать.

Хотелось автоматизировать все эти операции. С одной стороны, всё просто — уже есть готовые команды, заворачивай в курсор и выполняй. И, в принципе, я так и сделал, добавил новый сервер как linked server на старом и запустил. На локальном сервере команда выполнялась через EXECUTE (@sql_text);, на linked server — EXECUTE (@sql_text) AT [linkedServerName].

Таким образом, последовательно выполнялись операции — бэкап локально, перевод локальной БД в офлайн, восстановление на Linked server. Всё завелось, ура, но мне показалось, что можно немного ускорить процесс, если бэкапы и восстановления выполнять независимо друг от друга.
Тогда придуманный курсор был разделён на две части — на старом сервере в курсоре каждая база бэкапится и переводится в офлайн, после чего второй сервер-таки должен понять, что появилось новое задание и выполнить восстановление БД. Для реализации этого механизма я использовал запись в таблицу на linked server и бесконечный цикл (мне было лень придумывать критерий остановки), который смотрит не появилось ли новых записей и пытается восстановить что-нибудь, если появились.

Решение


Отлично, там собираются все команды для бэкапа/восстановления всех нужных БД.

На новом сервере была создана БД Maintenance и в ней таблица CommandList, которая будет содержать в себе информацию о восстановлении баз:


На старом сервере был настроен linked server, смотрящий на новый экземпляр SQL Server. Скрипты, которые приведены в этом посте, я писал дома и не заморачивался с новым экземпляром, использовал один и его же подключил как linked server сам к себе. Поэтому тут у меня и пути одинаковые и unc-path локальный.

Теперь можно объявлять курсор, в котором бэкапить базы, отключать их и писать на linked server команду для восстановления:


Каждое действие «логируется» на вкладке Messages в SSMS — там можно наблюдать за текущим действием. Если использовать WITH LOG в RAISERROR, в принципе, можно засунуть это всё в какой-нибудь job и потом смотреть логи.

На новом сервере, параллельно, крутился бесконечный цикл:


Всё что он делает — смотрит в таблицу CommandList, если там есть хотя бы одна необработанная запись — берёт имя БД и команду для восстановления и пытается выполнить с помощью EXEC (@sql_text);. Если записей нет, ждёт 30 секунд и пробует снова.

Выводы

А нет никаких выводов. Подумал, что кому-то может быть полезно/интересно посмотреть как использовать метаданные для формирования и выполнения dynamic sql. Приведённые в посте скрипты в том виде, как есть, мало пригодны для использования на проде, однако, их можно немного допилить под себя и использовать, например, для массовой настройки log shipping / database mirroring / availability groups.

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

В посте не раскрыто создание Linked Server'a (мышкой в GUI интуитивно настраивается за пару минут) и перенос логинов на новый сервер. Те, кто сталкивался с переносом пользователей знают, что простое пересоздание sql-логинов не очень помогает, поскольку у них есть sid'ы, с которыми и связаны пользователи БД. Скрипты для генерации sql-логинов с текущими паролями и корректными sid'ами есть на msdn.

Школа хостинга Редактор: Марина Долгова 28619 5 мин Аудио

Какие способы бывают?

1 – при помощи интерфейса phpMyAdmin.

2 – при помощи панели управления хостинг-провайдера.

3 – при помощи сторонней программы.

Какой способ лучше?

Мы рекомендуем первый, т.к. его схема проста, и используется большинством вебмастеров. Третий способ мы не рекомендуем использовать! Никогда не доверяйте содержимое своего сайта сторонним программам, к тому же от непонятных разработчиков. Еще можно использовать второй способ, но его алгоритм очень разнится, и зависит от панели управления хостера. Поэтому, мы детально рассмотрим первый вариант, и расскажем как грамотно перенести базы данных MySQL, без потери и повреждения данных.

Создаем базу данных на новом хостинге

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

1 – Ищем раздел “MySQL”, “Базы данных” или что-то похожее.

2 – В нем нажимаем “Создать”.

3 – Вписываем название базы данных, прикрепляем к ней пользователя (обычно пользователь БД уже создан, если нет, то создайте его и установите самые большие права) и вводим пароль для БД.

4 – База данных создана, но она пока что пустая.

Экспортируем БД со старого хостинга

Сейчас мы воспользуемся тем, что называют дамп базы данных. Т.е. сохраним текущую БД с сервера, к себе на компьютер. Для этого нам понадобится интерфейс phpMyAdmin, который нужно отыскать в личном кабинете хостинг-провайдера, у которого находится Ваш текущий сайт. Опять же единого алгоритма нет, поэтому приводим общую схему:

1 – Найдите ссылку на phpMyAdmin в разделе “MySQL” или “Базы данных”.

2 – Слева в углу выберите свою базу данных (ту, которую вы собираетесь экспортировать на компьютер, чтобы потом перенести на другой хостинг).

Выбираем БД

Жмем вкладку “Экспорт”

Дальше все будет зависеть от версии phpMyAdmin, но в любом случае Вам нужно сделать следующее:

4 – Возможно Вас попросят выбрать способ экспорта “Обычный” (много настроек) или “Быстрый” (мало настроек). Не имеет значения какой выбирать, главное изменить только те настройки, которые мы описываем ниже.

5 – Нужно выбрать все таблицы, нажав на кнопку “Выделить все”.

Жмем

6 – Отметить галочкой “Сохранить как файл”, “Сохранить вывод в файл” или что-то подобное.

Выбираем как сохранить

7 – На всякий случай, запоминаем кодировку, но не трогаем ее.

8 – Жмем “Ок” и сохраняем файл с БД себе на компьютер. Обычно сохраняемый файл имеет расширение .sql.

Импорт БД на сервер нового хостера

1 – Таким же образом ищем phpMyAdmin на новом хостинге.

2 – В нем выбираем нужную базу данных (мы ее создавали в начале статьи, и она осталась пустой).

3 – Жмем на вкладку “Импорт”.

4 – Нажимаем “Обзор” и выбираем сохраненную на компьютере базу данных.

выбираем сохраненную на компьютере базу данных

5 – Проверьте, чтобы кодировка совпадала с той, в которой Вы сохраняли БД.

6 – Больше ничего не меняете, жмете “Ок” и Ваша база данных импортируется на новый хостинг.

Какие бывают проблемы?

1 – При импорте БД в ней не должно быть запросов типа «CREATE DATABASE, /*!40101 SET @OLD». Чтобы проверить их наличие – откройте файл БД на своем компьютере любым текстовым редактором (лучше всего подходит Notepad++) и через Ctrl+А поищите эти запросы. Если найдете, то просто удалите их, и попробуйте снова импортировать БД.

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

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

Перенос базы состоит из этапов:

Сохранение копии базы

Копию базы можно сделать 2 способами:

Выгрузить в конфигураторе.

Скопировать папку с базой.

Для выгрузки базы в конфигураторе:

Откроем программу в режиме «Конфигуратор»:

Запуск конфигуратора

Заходим в меню « Администрирование – Выгрузить информационную базу »:

Выгрузка информационной базы

В открывшемся окне указываем каталог, в котором будет храниться копия базы, имя базы и нажимаем кнопку «Сохранить»:

Сохранение базы

Файл выгружается с расширением *.dt:

Расширение файла

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

Для копирования папки с базой:

Открываем 1С:Предприятие и смотрим, где установлена база:

Адрес установки

Переходим в папку и копируем её:

Копирование папки с базой

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

Установка платформы на новом компьютере

Для установки платформы на новом компьютере можно воспользоваться инструкцией.

Загрузка копии базы на новом компьютере

Запустим 1С:Предприятие и нажмем кнопку «Добавить»:

Добавление базы на новом ПК

Выбираем вариант «Создание новой информационной базы» и нажимаем «Далее»:

Создаем новую базу

Выбираем вариант «Создание информационной базы без конфигурации…» и нажимаем «Далее»:

Выбор пустой конфигурации

Указываем название базы и нажимаем «Далее»:

 Название

Указываем каталог и нажимаем «Далее»:

Место расположения конфигурации

Нажимаем готово

Запускаем созданную информационную базу в режиме «Конфигуратор».

Выбираем пункт меню « Администрирование – Загрузить информационную базу »:

Загрузка информационной базы

Далее выбираем для загрузки файл в формате *dt (его мы перенесли со старого компьютера):

Выбор файла с копией базы

Предупреждение о сохранении данных

Запустим 1С:Предприятие и нажмем кнопку «Добавить»:

Несохраненные данные могут быть потеряны

Выбираем пункт «Добавление в список существующей информационной базы» и нажимаем «Далее»:

Добавление существующей базы

Вводим название базы и указываем каталог. Для указания каталога нажимаем на значок «. »:

Название базы и каталог папок

Ищем каталог с базой и выбираем папку, которую ранее перенесли на компьютер:

Выбор каталога с базой

Файл с базой выбран

Информационная база готова к загрузке

База добавлена

Активация лицензии платформы

При запуске базы платформа 1С запросит лицензию.

Если используется аппаратная лицензия на платформу (ключ в виде флэшки), то её нужно перенести на новый компьютер.

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

Установка СЛК

Если используется программа, для которой требуется СЛК, нужно её установить.

Первоначально действия производятся на SQL-сервере C которого мы переносим данные.

На базе данных, которую необходимо перенести, нажмите правую кнопку маши и выберите пункт "Задачи" и в выпадающем пункте меню "Создать резервную копию. ":

Резервная копия SQL-базы 1С

Далее ничего сверхестественного - все оставляем по умолчанию примерно так:

Резервное копирование SQL-базы 1С

Можем заглянуть на вторую закладку/страницу диалогового окна:

Резервное копирование SQL-базы 1С

Нажимаем кнопку "ОК" и ждем.

Резервное копирование базы 1С

Резервная копия сделана:

Резервное копирование SQL-базы 1С

Любым удобным для нас способом переносим *.bak файл резервной копии нашей базы данных на другой SQL-сервер.

Дальнейшие действия производятся на SQL-сервере НА который мы переносим данные.

В среде MS SQL Server Management Studio нажимаем правую кнопку мыши на пункте "Базы данных" и далее выбираем мункт "Восстановить базу данных. ":

Восстановление SQL-базы 1С из резервной копии

Указываем из чего будем восстанавливать базу данных:

Восстановление SQL-базы 1С из резервной копии

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

Добавление устройства для восстановления из резервной копии

Указываем путь к *.bak-файлу резервной копии нашей базы данных.

Добавление устройства для восстановления из резервной копии

Здесь просто нажимаем кнопку "ОК":

Добавление устройства для восстановления из резервной копии

Поставьте галочку в поле "Восстановить".

Полное восстановление базы данных из резервной копии

Из выпадающего списка выберите базу данных в которую будет производиться восстановление данных из резервной *.bak-копии.

Полное восстановление базы данных из резервной копии

Все настройки сделаны - нажимаем "ОК":

Полное восстановление базы данных из резервной копии

Пойдет процесс восстановления данных в базу:

Процесс восстановления базы данных из резервной копии

Удачное восстановление выглядит так:

Удачное восстановление базы данных из резервной копии

Обязательно нужно проверить владельца базы данных после восстановления. (Нажмите правую кнопку мыши на имени базы и далее выберите пункт "Свойства"):

Свойства базы данных после восстановления SQL-базы 1С

Переходим на закладку/страницу "Файлы" и смотрим на поле "Владелец". Если оно пустое, то необходимо указать "Владельца" базы.

Восстановление SQL-базы 1С

В конце поля "Владелец" нажмите кнопку с тремя точками и, в появившемся окне нажмите кнопку "Обзор. ":

владелец SQL-базы 1С

В открывшемся окне установите "галочку" напротив нужного владельца базы и нажмите кнопку "OK":

владелец SQL-базы 1С

Здесь тоже просто нажимаем "OK":

владелец SQL-базы 1С

Указав "Владельца" базы нижимаем "OK" чтобы сохранить изменения. Перенос базы завершён!

Как перенести ПУ 6 на другой компьютер

15.03.2018 admin Comments 3 комментария

Добрый день дорогие друзья! Сегодня я хочу Вам рассказать, как перенести ПУ 6 на другой компьютер. Для чего это нужно? Бывают разные причины. Например, Вам нужно поработать дома, после работы или на выходных, а вносить все данные в программу, на новом компьютере, процедура сложная и длительная. Поэтому проще перенести всю программу или базу данных. А как это сделать, сегодня я Вам и расскажу. Приступим!

Как перенести ПУ 6 на другой компьютер. Быстрый способ

Если у Вас не получается самостоятельно решить данную проблему, то Вы можете перейти в раздел ПОМОЩЬ и Вам помогут наши специалисты.

Самый простой вариант, это скопировать папку с программой. Программа ПУ 6 требует установки на компьютер только один раз, дальше ее можно переносить на другие компьютеры, не устанавливая ее. Но этот способ исключительно временная мера. При попытке обновить программу документы ПУ 6, которая не была установлена на компьютер, а которую просто перенесли, могут возникнуть ошибки при обновлении. Согласитесь, ошибки при обновлении нам не нужны. Но все же данный способ рабочий и может быть использован.

Весь процесс заключается в обычном копировании папки с программой с одного компьютера на другой. Нам просто нужно узнать, куда установлена наша программа. Это делается очень просто. Находим ярлык программы документы ПУ 6 и нажимаем по ярлыку правой кнопкой мыши. Далее выбираем «Расположение файла».

Расположение файла ПУ 6

Откроется папка с программой.

Папка с программой ПУ 6

Смотрим путь. У меня этот путь C:\Program Files\Документы ПУ-6. У Вас может быть другой. Теперь нам нужно подняться на одну папку выше. То есть, перейти в папку C:\Program Files. И там увидим нужную нам папку с «Документы ПУ-6». Её и будем копировать на флешку.

Копируем папку с программой ПУ 6

Затем нам нужно будет папку с программой скопировать в любое место на новом компьютере. После этого можно начинать в ней работать.

На этом быстрый способ, как перенести ПУ 6 на другой компьютер завершен.

Как сделать резервную копию базы программы «Документы ПУ 6»

Теперь сделаем резервную копию базы программы «Документы ПУ 6». Эта копия нам пригодится немного позже. Но нам обязательно нужно научиться ее делать. Делайте резервные копии, как можно чаще. В случае, если у Вас ломается компьютер, или сломается сама программа, то Вы всегда сможете восстановить все свои данные из данной резервной копии. Чем чаще делается копия, тем больше данных Вы сможете восстановить.

Откроем программу и перейдем в меню « Сервис », затем нужно выбрать « Менеджер баз данных ».

Менеджер баз данных ПУ 6

Откроется окно « Менеджер баз данных ». Нажимаем «Архив».

Архив ПУ 6

Откроется окно «Резервное копирование и восстановление базы данных». В этом окне нам нужно нажать кнопку «Создать».

Создаем архив

После этого резервная копия нашей базы данных автоматически будет создана. И у Вас об этом должна появиться запись в окне «Резервное копирование и восстановление базы данных».

Создался бекап документы ПУ 6

Давайте прокрутим окно со списком резервных копий. Вы увидите колонку « Расположение ». Это путь к нашей резервной копии. Запомним этот путь!

Где хранится архивная копия базы документы ПУ 6

На этом создание резервной копии базы данных программы «Документы ПУ 6» завершено.

Перейдем к следующему пункту.

Как перенести ПУ 6 на другой компьютер. Восстанавливаем резервную копию

Перейдем к более длительному, но более правильному способу переноса ПУ 6 на другой компьютер.

Представим, что на втором компьютере нет программы «Документы ПУ 6».

Устанавливаем программу. Если вы не знаете, как установить «Документы ПУ 6», то прочитайте вот тут.

Установили? Отлично! Теперь нам нужно восстановить базу данных. Вот именно тут нам и потребуется наша архивная копия, которую мы только что создали!

Копируем нашу архивную копию на флешку. Путь к архивной копии мы можем посмотреть в предыдущем пункте. Помните, прокручивали окно на колонку « Расположение », вот там и лежит наша архивная копия. Копируем ее оттуда!

Теперь копируем нашу копию на новый компьютер, в любое место.

Переходим к программе. Снова открываем окно «Резервное копирование и восстановление базы данных». Нажимаем кнопку «Добавить».

Добавляем резервную копию ПУ 6

Откроется окно, в котором нам надо выбрать нашу резервную копию. Выбираем и нажимаем « Открыть ».

Выбираем нашу архивную копию

Архивная копия должна появится в списках. После ее добавления, нам остается только нажать кнопку «Восстановить».

Восстанавливаем архивную копию

Если все прошло удачно, то в правой части монитора, Вы увидите вот такое окно.

Восстановление из резервной копии прошло успешно

Если Вам нужна помощь профессионального системного администратора, для решения данного или какого-либо другого вопроса, перейдите в раздел ПОМОЩЬ, и Вам помогут наши сотрудники.

Все! На этом процесс восстановления базы данных в новую программу «Документы ПУ 6» завершен. Теперь Вы знаете, к ак перенести ПУ 6 на другой компьютер.

Если у Вас появятся вопросы задавайте их в комментариях! Всем удачи и добра!

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