4

Перенос базы 1С на другой сервер

Posted by admin on 10.04.2013 in |

На самом деле речь о переносе именно сервера 1С, т.к. при переносе только базы данных, клиенты этого не заметят. Путь на клиентах указывается на сервер 1С, а где у него база, это его личное дело. Просто не хотелось каламбура в заголовке. Понадобилось перенести сервер 1С на другое железо. Сохранять имена серверов не хотелось по двум причинам:
— от этих длинных имен (чертов «СБСистем») уже давно хотелось избавиться;
— перенос планировался постепенный, несколько БД в разное время. Оба сервера (старый и новый) должны работать одновременно.

Версии платформы 1С при переносе не менялись и встала задача только подменить пути к БД у всех клиентов одновременно, быстро и, не подходя к каждому ПК в отдельности. Машин много, для разных БД от 4 до 150. Параметры подключения к базе хранятся в текстовых файлах в личных профилях пользователей, но проблема не в этом, ибо путь до профиля еще можно построить, но у каждого человека в общем случае свой собственный уникальный набор подключенных БД. Поэтому подменять файл со списком БД никак нельзя, а искать в нем нужные символы и заменять на новые — слишком сложно. Тут программировать нужно. Это долго и неоправданно. Решено было сделать по-простому: все работы по переносу выполнять без суеты и спешки, а наутро чтобы люди сразу могли работать в перенесенной базе.

Подготовка

создаем новую базу на новом сервере 1С (можно и со своей машины) Srvr=“b4:1541”;Ref=“Work”

в AD создаем универсальную группу безопасности “ShortCut-1C-UPP”

в групповых политиках домена в нужном контейнере создаем объект групповой политики “ShortCut” и открываем его на редактирование. В разделе “User Configuration — Preferences — Windows Settings — Shortcuts” создаем новый объект (правый клик — New — Shortcut). Действие (Action) = Update. В справке из этого же окна нормально описано, чем они различаются. Из поля Name будет браться подпись к значку, именно её будут видеть пользователи у себя на рабочем столе. Вводим строку запуска 1С в Target path (без кавычек, как на рис., иначе значок НЕ создастся). В аргументах указываем новый путь к БД после ключа /S. В поле Comment можно сделать подсказку, которая появляется при наведении курсора на значок, т.е. это hint. Значок лучше выбрать из штатных (например, из system32\shell32.dll), иначе еще придется файл со значком копировать клиентам. Если значок не указать, на экране будет обычный значок 1С из запускаемого файла, а это не очень хорошо, это плохо для нашей задачи.
Перенос сервера 1С на другой сервер

Теперь интересное. На вкладке Common ставим только нижнюю птицу и жмем кнопку Targeting. Нам нужно, чтобы новый значок для запуска определенной базы появился не у все пользователей (чтобы они потом не звонили и не спрашивали, чЁ за фигня), а только у тех, кто пользуется данной базой. В этом окне добавляем New Item для Security Group = ShortCut-1C-ZUP (переключатель в положении User in Group)

Важно. Если на ПК клиента значение поля “Target path” окажется некорректным, значок НЕ создастся, поэтому не лишним будет добавить еще фильтры. Дело в том, что на 64-разрядной системе путь к запускающему файлу будет отличаться от пути на 32-разрядной ОС. Поэтому для сети, в которой работают и 32 и 64 ОС делаем разные значки. Нужно учесть все операционки, с которыми приходится сталкиваться. Например, в сети могут быть Windows XP — 32-разрядные и Windows 7 — 64-разрядные. Тогда делаем 2 значка. У одного путь «C:\Program Files (x86)\1cv81\bin\1cv8.exe» и в фильтре ОС = Windows 7. А у другого путь «C:\Program Files\1cv81\bin\1cv8.exe» и в фильтре ОС = Windows XP. Если люди работают и в терминале на серверах, учесть и их. Если одна и та же ОС представлена и в 32, и в 64 разрядах, то можно дополнительно фильтровать по переменной среды окружения:

PROCESSOR_ARCHITECTURE=AMD64
PROCESSOR_ARCHITECTURE=x86

Так, комбинируя, можно учесть все варианты (или почти все).

создаем тестовую учетку, добавляем её в группу “ShortCut-1C-UPP” и тестируем на разный операционках

в AD создаем универсальную группу безопасности “1C-Users-UPP”

Заранее (не спеша и постепенно) добавить в AD все учетные записи пользователей данной базы данных 1С в группу “1C-Users-UPP”

создаем группу рассылки и связываем её с группой безопасности “1C-Users-UPP”. Именно поэтому группа и создавалась универсальной, т.к. только с универсальной группой безопасности можно связать группу рассылки.

Делаем почтовую рассылку по этой группе с объяснением, что с такого-то числа запускать базу 1С нужно именно этим новым значком, старый способ работать не будет. Изображение значка прилагается. (Прочитай сам и передай соседу, который не умеет читать свою почту)

Выполнение

в нерабочее время (например в ПТ вечером) выгнать всех из переносимой базы 1С и сделать выгрузку в *.DT

загрузить *.DT из предыдущего пункта в новую базу Srvr=“b4:1541”;Ref=“Work”;

пока происходит загрузка, отключить прежнюю базу 1С, чтобы никто не пытался работать в неактуальной системе. Для этого запустить в меню “Пуск-Все программы-1C Предприятие 8.2-Cерверы 1С Предприятия” консоль управления. Найти скопированную информационную базу и удалить её через контекстное меню. При удалении Информационной базы будет задан вопрос о том, что делать с Базой данных на SQL сервере. Можно пока “Оставить без изменений” на всякий случай (Третья кнопка)
Оставляем базу на сервере SQL

в AD добавить группу “1C-Users-UPP” в группу “ShortCut-1C-UPP”. Именно ради этого действия группа “ShortCut-1C-UPP” тоже должна быть универсальной. Т.к. универсальная группа не может быть членом глобальной.

Теперь после перезагрузки (перелогинивания) у пользователей, входящих в группу “1C-UPP-Users”, на рабочем столе должен быть значок “1С УПП”, который запускает УПП на новом сервере.

 

4 Comments

  • Alex:

    А 1С у Вас не на терминале?

    • admin:

      Нет, не на терминале. Отдельный железный (не виртуальный) сервер с 1С и отдельный с SQL. Клиенты запускают 1С каждый со своего ПК.

  • Дмитрий:

    На винде так можно, к счастью. Я между 2-мя postgres такую же фишку пытался провернуть — разбился об ошибку информационная база разрушена после смены адреса сервака БД в консоли администрирования сервера 1с.

  • Pavel:

    Я строю списки баз на основе описанного в http://habrahabr.ru/post/179405/
    способа.

    Вызов внешней конфиги в которой описаны конфиги для каждой базы.

    конфиги для каждой базы видны только тем пользователям у которых есть NTFS пермишнсы на эту конфигу.

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

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Copyright © 2011-2017 Сисадминские будни All rights reserved.
Любое воспроизведение материалов сайта возможно только с активной ссылкой на admsoft.ru.