Быстрый перенос инфобаз между серверами 1С

Переезжаем на новый сервер и надо было перенести 23 базы. Создавать все руками через оснастку не хотелось — пришлось пошаманить с 1CV8Reg.lst. Все взлетело, но были нюансы.

Сервер 1С хранит сведения о списке баз в файле C:Program Files1cv8srvinfo
eg_15411CV8Reg.lst

Сведения о кластере хранятся в C:Program Files1cv8srvinfo1cv8wsrv.lst

В лоб переписать только 1CV8Reg.lst не вышло — там есть GUID локального кластера. Просто перенести оба файлы со старого сервера на новый тоже не вышло — сервер 1С стартовал, но подключиться к себе не давал. Помог следующий вариант: был взят 1CV8Reg.lst от нового сервера и в него добавлен блок с базами от старого сервера. Вставлять надо аккуратно, т.к. в случае любых ошибок баз вы не увидите. Кроме того необходимо указать количество подключенных баз, иначе сервер сделает вид, что баз нет.

Так же необходимо отредактировать поле с сервером  SQL (у меня это localhost, а чего там только за годы не повбивали) и Srvr= (тут должно быть имя сервера на котором располагается кластер). Лично я процессе еще по-новой исправил хэш пароля от SQL сервера по этому не уверен смог бы 1С подключиться к SQL с хэшом от старого сервера.

Получается что-то вроде:

{0,
{2f351e37-5033-4d04-a758-f8504b33cb4f,"Локальный кластер",1541,"SRV-1C-APP",0,0,0,0,0,0,0,
{1,
{"SRV-1C-APP",1541}
},0,0,0},
{2, //кол-во баз
{28535914-e79b-445a-9db8-c7de9328bdec,"ZUP_30_Client","","MSSQLServer","localhost","1c_ZUP_30_Client","sa","хэш","CrSQLDB=Y;DB=1c_ZUP_30_Client;DBMS=MSSQLServer;DBSrvr=localhost;DBUID=sa;Descr=;LicDstr=Y;Locale=ru_RU;Ref=ZUP_30_Client;SchJobDn=Y;SLev=0;SQLYOffs=2000;Srvr=SRV-1C-APP",0,
{0,00010101000000,00010101000000,"","",""},1,1,"",0,"","",30},
{d13bde1f-4862-43fd-a1ac-0a67b28ffbb4,"acc","","MSSQLServer","localhost","1c_acc","sa","хэш","DB=1c_acc;DBMS=MSSQLServer;DBSrvr=localhost;DBUID=sa;Descr=;LicDstr=Y;Locale=ru_RU;Ref=arval_acc;SLev=0;SQLYOffs=2000;Srvr=SRV-1C-APP",0,
{0,00010101000000,00010101000000,"","",""},1,1,"",0,"","",73398728}
},
{1,
{ef2dec18-989a-4086-8d48-8f0ae4868be8,"SRV-1C-APP",1,1,
{0,0,0,0,0,17869,0,0,297756,0,100,60,3857458847,1294483456,0},1000,df3ca5a9-5591-44cd-9a08-81b3f8bc4265}
},
{0},
{1,
{df3ca5a9-5591-44cd-9a08-81b3f8bc4265,"Центральный сервер",1540,"SRV-1C-APP",1,
{1,
{1560,1591}
},"","XH2M9WB6VmXKMyPlp9tRDQ==",0,0,8,128,1000,1,0,1,0,1,1541}
},
{1,
{3bd1db74-0ef6-46c5-a87a-9fd4b9d43e79,"Главный менеджер кластера","SRV-1C-APP",1,1,df3ca5a9-5591-44cd-9a08-81b3f8bc4265}
},
{0},
{0},
{0},
{0},
{0},
{0,0},0,
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},31}

В примере только 2 базы, в реале их 23.

В день переезда сервера базы SQL были подняты из ночного бэкапа… и все заработало. Ну почти :-), т.к. я прозевал что 2 базы были подключены не под sa, а под другими пользователями.

26 Comments

  1. lisiy12345

    1) Под sa то зачем сидите из 1с на сервере. Это печально.

    2) мне кажется что для переноса 23 баз вы бы одинаково времени потратили. Что ковырять файл. Что в ручную их добавить.

    Reply
  2. A_Max

    Лучше использовать документированные инструменты ras/rac

    Reply
  3. tvm

    (2) +1.

    ras/rac + powershell

    Reply
  4. DonAlPatino

    (1)

    1. Это вопрос к «программистам 1С», которые не желают хоть немного научиться админить SQL

    2. По времени точно нет. Тем более мне скоро еще один сервак на 30 баз переносить.

    Reply
  5. DonAlPatino

    (3) Ну ткните пальцем в инструкцию. Я простого способа экспортнуть-импортнуть список баз не нашел.

    Reply
  6. tvm

    https://infostart.ru/public/642380/

    пример работы с ras из powershell. на ИТС есть описание всех команд/параметров

    Reply
  7. DonAlPatino

    (6) Как экспортировать — импортировать список баз? Если я сделал неправильно, то научите как правильно.

    Reply
  8. tvm

    1- подключение к серверу-источнику

    2- перебор баз

    3- чтение и выгрузка параметров баз в файл

    4- подключение к серверу-приемнику

    5- чтение файла и создание баз на сервере приемнике.

    либо

    1- подключение к серверу-источнику

    2- подключение к серверу-приемнику

    3- перебор баз в источнике и создание в приемнике.

    я делал первым способом, т.к. одновременно оба сервера не могли быть доступны

    Reply
  9. DonAlPatino

    (8) тема моей статьи «Быстрый перенос инфобаз между серверами 1С»…

    Я конечно скрипт перегрузки на Powershell (хотя мне ближе Python) напишу. За пару недель… Но это уже точно не про «быстро».

    PS

    Я так понимаю готовый скрипт у вас вроде есть. Ну так опубликуйте его! Вы бы сэкономили кучу времени. И не только мне.

    Reply
  10. tormozit

    (8) Чтобы получить все параметры базы из кластера, нужно авторизоваться в ней. Если баз много, то это будет проблемой.

    Reply
  11. tvm

    (10)

    да, есть такая бяка. но мне повезло юзер был 1- все базы через РИБ обменивались

    Reply
  12. tvm

    (9) на создание любого инструмента уходит время )))

    а так- 1 раз сделать и отдать народу. Да не, не 2 недели. У меня 2-3 дня ушло, учитывая что я ни с power shell-ом ни с ras/rac не работал

    Reply
  13. DonAlPatino

    (12) Уже как-то не смешно. Опубликуйте.

    Reply
  14. tvm

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

    Reply
  15. insurgut

    (4) если программисты 1С будут ещё и админить, на кой толпа админов нужна? В потолок плевать? )))

    Reply
  16. DonAlPatino

    (15) Devops? Не слышали… Ну и завидую тем у кого толпа админов. У меня вот 2 (при чем ни разу не DBA) на 8 голов программистов и 300 юзеров.

    Reply
  17. DonAlPatino

    (17) Не нужно подменять понятия 🙂 набор методик DevOps это в первую очередь про стирание границ между админами и программистами и прекращение перекладывания друг на друга естественности. А вот все остальное, что потом это уже про автоматизацию.

    Reply
  18. GreenDragon

    (18) Знаете, есть анекдот на эту тему. Заранее прошу прощения, если он кому-то покажется оффтопиком. Итак:

    Забегает молодой парень в больницу:

    — Доктор, сделайте мне кастрацию, срочно!

    — ???

    — Срочно, доктор, некогда объяснять!

    Доктор делает кастрацию. Наутро парень

    приходит в себя от наркоза, его спрашивают,

    в чем дело, собственно?

    — Понимаете, я женился на еврейке, у них

    так принято по религии.

    — Так может быть Вам нужно было обрезание?

    — А я что сказал?!! 🙁
    Reply
  19. GreenDragon

    Пардоньте, не в ту ветку написал 🙂

    Reply
  20. GreenDragon

    (18) И да, мы таки говорим о «внедренцах», которые гораздо ближе к вашему пониманию DevOps, или именно о существах, именуемых «программист 1С», который от DevOps дальше, чем системный администратор от заправки картриджей. Или у вас системный администратор и чайники ремонтирует, и картриджи заправляет?

    Reply
  21. DonAlPatino

    (21) Я не очень понял о чем этот поток сознания. Уж извините. На этом разрешите откланится.

    Reply
  22. GreenDragon

    (22) Хорошо, не будем выбивать вас из вашей зоны комфорта. Судя по орфографии, это действительно сложно для вас.

    Reply
  23. GreenDragon

    (18) Какой же вы всё-таки ребёнок с «минусованием». #k8SjZc9Dxk_#k8SjZc9Dxk

    Добра вам и учебник русского языка в помощь.

    Reply
  24. DonAlPatino
  25. GreenDragon

    (25) Если посмотреть чуть выше, то это как раз вы свои сопли предложили пожевать в (4). У вас же программисты внезапно не хотят «учиться админить SQL» и чайники не ремонтируют.

    Reply
  26. RegrZ

    Если старый и новый сервер одной разрядности,

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

    Добавить экземпляр службы сервера можно при помощи утилиты по этой ссылке: https://cloud.mail.ru/public/4neK/vFueqfDsi

    Reply

Leave a Comment

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