Розповім як я реалізував щоденний бекап бази 1C 7.7 SQL 2005, так само у мене робиться бекап файлів 1С. З 1C я почав працювати зовсім недавно, не буду в цій статті розповідати яке УГ цей ваш 1С, мені не доводилося вибирати. Після успішного підняття сервера SQL 2005 і встановлення 1С, все працювало як треба, але провідний програміст мало не щодня нагадував про необхідність постійного створення резервних копій. Страшно уявити що було б, якщо б не було бекапів.Але мене всякого роду біди обходять стороною, бэкапами я ще жодного разу не скористався, думаю і не доведеться ними користуватися. І так почнемо, завдання: "Кожен день зберігати базу даних 1С і файли з папки самої програми (конфігурація, папки користувачів, друковані форми і т. д. і т. п.)".
Для початку покажу як я все це робив вручну.
Для вивантаження файлу бази даних, я підключаюся RDP до свого сервера, відкриваю Microsoft SQL Server Management Studio, вводжу дані для підключення до сервера, тисну "Connect"Відкриваю гілку "Databases" правою кнопкою по своїй базі - "Tasks" - "Backup"У вікні вам потрібно вказати шлях куди зберегти бекап і тип бекапаУ вкладці "Optionsвстановіть галочку "Verify backup when finished"Ось і все, тиснемо "ОК" і чекаємо поки з'явитися повідомлення про успішне завершення бекапаДалі я переходжу в папку з даними 1С і повністю її архивируюПісля чого, архів і базу даних я переношу на інший сервер, де зберігаю 30 останніх копій (можна звичайно і менше зберігати, але розмір файлового сервера дозволяє).
Все б добре, але дану процедуру потрібно робити кожен день. Витрачатися на все про все близько 5-7 хвилин часу, начебто і не багато, але буває забуваю, а буває і зовсім не зроблю за якийсь день (занадто зайнятий поточними завданнями). Коротше все це справа потрібно терміново автоматизувати.
Як то я починав гуглитьна тему автоматизації резервних копій бази даних 1С, але нічого толком не знайшов, а буквально на днях знову задався цим питанням, і зібрав по крупицях ось такий варіант.
Для написання скрипта відкриваємо блокнот і вносимо туди наступну інформацію
1 2 3 4 5 6 7 8 9 10 11 12 13 | set DIR_BACKUP=D:\backup\Backup_Analit_Ъte%\ set DIR_ARCHIVE=\\srv-fs\backup\Backup_Analit_Ъte%\ set DIR_FILES=D:\shares\KrjymSQL-TEST\ set NAME_PC=srv-sql md %DIR_BACKUP% md %DIR_ARCHIVE% osql-S %NAME_PC% -E-Q "BACKUP DATABASE krjymtest TO DISK = '%DIR_BACKUP%\krjymtest.bak' with init" "c:\Program Files\7-zip\7z.exe" a %DIR_BACKUP%\DB_krjymtest_Ъte%.zip %DIR_BACKUP%\krjymtest.bak "c:\Program Files\7-zip\7z.exe" a %DIR_BACKUP%\FILES_krjymtest_Ъte%.zip %DIR_FILES%\* copy %DIR_BACKUP%\DB_krjymtest_Ъte%.zip %DIR_ARCHIVE%\ copy %DIR_BACKUP%\FILES_krjymtest_Ъte%.zip %DIR_ARCHIVE%\ |
Тепер докладніше:
Ось в принципі і все! Зберігаємо файл під ім'ям, наприклад, Backup-1C.bat
Тепер потрібно запустити планувальник завдань на сервері, і додати в нього завдання на запуск бекапа. Як це зробити дивись нижче в скріншотах
Варто пам'ятати! Важливо не тільки вчасно робити бекапи бази даних і файлів програми, але і періодично перевіряти ці бекапи на працездатність. Я планую перевіряти їх раз на тиждень.