Тарифы Услуги Сим-карты

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

При использовании ПК Интеллект в системах с распределенной архитектурой необходимо синхронизировать базы данных Серверов и УРМА. Синхронизация баз данных позволяет хранить данные как централизованно (на одном Сервере или УРМА), так и распределенно (репликация данных из баз различных Серверов и УРМА системы видеонаблюдения). Синхронизация баз данных обеспечивает параллельную работу с базами данных Серверов и УРМА и автоматическое обновление при их изменении.

По умолчанию базы данных ПК Интеллект на Серверах и УРМА не синхронизированы между собой. Как правило, ПК Интеллект настраивается таким образом, что синхронизация всех баз данных осуществляется только с одной централизованной базой данных, размещенной на Сервере администрирования.

Примечание.

В том случае, если одна или несколько баз данных хранятся в формате MS Access, необходимо перед настройкой синхронизации конвертировать базы в формат MS SQL server.

Для настройки синхронизации базы данных Конфигурация программного комплекса Интеллект с базой данных сервера администрирования (или другой базой данных), необходимо выполнить следующие действия:

  1. Проверить, работает ли ПО MS SQL Server.
  2. Запустить утилиту idb.exe, расположенную в корне директории установки ПК Интеллект (например, C:\Program Files (х86) \Интеллект). На экран будет выведено диалоговое окно утилиты idb.exe.
  3. Из списка Выберите источник данных: выбрать пункт Synchro source .
  4. Установить флажок Использовать.
  5. Нажать кнопку Настроить.
  6. На экран будет выведено диалоговое окно Свойства связи с данными . В окне Свойства связи с данными необходимо перейти на вкладку Поставщик данных .
  7. Из списка Поставщики OLE DB необходимо выбрать пункт Microsoft OLE DB Provider for SQL Server .
  8. Нажать кнопку Далее.
  9. После нажатия кнопки Далее будет выполнен автоматически переход на вкладку Подключение .
  10. В строке 1. Выберите или введите имя сервера: данного окна необходимо выбрать из списка или ввести вручную наименование MS SQL сервера, на котором хранится база данных, с которой требуется синхронизировать текущую.
  11. В группе 2. Для входа в сервер использовать: необходимо указать тип и указать параметры аутентификации для подключения к MS SQL серверу. Аутентификация на MS SQL сервере осуществляется по учетной записи пользователя, авторизированного в ОС Windows, или по имени пользователя (логину) и паролю, которыми защищено подключение к MS SQL серверу.
    Метод и параметры, используемые для аутентификации на MS SQL сервере, задаются при установке MS SQL сервера.
    В зависимости от метода аутентификации, который требуется использовать для подключения к MS SQL серверу, необходимо указать следующие параметры:
    1. В том случае, если аутентификация на MS SQL сервере осуществляется по учетной записи пользователя в ОС Windows, необходимо установить переключатель в положение учетные сведения Windows NT . При этом необходимо, чтобы в ОС Windows на компьютере, на котором установлен MS SQL сервер и хранится база данных, с которой требуется настроить синхронизацию, была зарегистрирована учетная запись, под которой в текущий момент авторизирован пользователь в ОС Windows на компьютере, с которого выполняется настройка синхронизации.
    2. В том случае, если аутентификация на MS SQL сервере осуществляется по имени пользователя (логину) и паролю необходимо выполнить следующие действия:
      1. Установить переключатель в положение следующие имя и пароль пользователя: .
      2. В поле Пользователь: ввести имя пользователя (логин) для подключения к MS SQL серверу.
      3. В том случае, если доступ к MS SQL серверу защищен паролем, необходимо снять флажок Пустой пароль и в поле Пароль ввести пароль для доступа к базе данных.
  12. Нажать кнопку Проверить подключение .
  13. При успешном подключении к MS SQL серверу на экран будет выведено окно с сообщением Проверка подключения выполнена .

    Необходимо нажать кнопку ОК в окне сообщения, в результате чего окно автоматически будет закрыто.
  14. В том случае, если наименование MS SQL сервера и/или параметры аутентификации, используемые для подключения к MS SQL серверу, были указаны неправильно, на экран будет выведено соответствующее сообщение.

    Для закрытия окна с сообщением необходимо нажать кнопку ОК . Далее требуется изменить введенные данные и повторно проверить подключение к MS SQL серверу.
  15. Из списка Выберите базу данных на сервере выбрать название базы данных, с которой требуется синхронизировать текущую.
  16. Нажать кнопку ОК в диалоговом окне Свойства связи с данными. В результате выполнения данного действия окно будет закрыто.
  17. Нажать кнопку ОК , расположенную в нижнем правом углу окна утилиты idb.exe.

На этом настройка синхронизации баз данных завершена.

Примерно два года назад я родил проект- небольшая программа клиент, которая ставится на любой девайс и просто синхронизирует файлы.
Например можно было задать, что документы будут синхронизироватся между домашним и рабочим компьютером. Музыку и книги между домашним компом и телефоном. Резервное копирование между домашним компом, рабочим компом и сервером. Также эта программа могла контролировать последующее распространение любого файла в системе. Т.е вы как владелец, могли всегда узнать историю файла: копирование на флешку, на другой компьютер, по «электропочте» и т.д.

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

PS
Спасибо Мурину Саше за наводку)

Чтение каталога осуществляется по команде get-childitem. Чтобы учитывались вложенные папки, к ней добавляется опция -recurse, а чтобы отличать файлы от папок, используется функция PSIsContainer (). Если она возвращает значение True, то элемент - папка, в ином случае - обычный файл:

$source = ¨c:files¨

$srcfolder = get-childitem $source -recurse | where-object {$_.psiscontainer}

$srcfiles = get-childitem $source -recurse | where-object {!$_.pciscontainer}

Для решения нашей несложной задачи потребуются четыре списка: первые два содержат исходные файлы и папки, а два оставшихся - итоговые файлы и папки. Процесс синхронизации сводится к перебору этих списков и копированию файлов из одной папки в другую.

В первом цикле проверяется, существуют ли в папке для резервного хранения исходные каталоги, и если их еще нет, то они создаются посредством команды new-item.

foreach ($folder in $srcfolders)

$srcpath = $source -replace ¨\¨,¨\¨ -replace ¨:¨,¨:¨

$dstpath = $folder.fullname -replace $srcpath,$destination

if ($dstpath -ne ¨¨) {

if (! (test-path $dstpath))

¨Создание папки ‘$dstpath’.¨

new-item $dstpath -type directory | out-null

Очень похожий цикл выполняется и при сравнении результирующего и исходного списка папок, тем самым создается точная структура вложенных папок. Два других цикла обрабатывают файлы: первый копирует обновленные объекты из исходной в результирующую папку, второй - отсутствующие в исходном каталоге - из итогового. Узнать, обновился ли файл, можно по его хэш-коду. Заметим, что, поскольку файлы открываются в режиме «только чтение», они не блокируются от использования другими программами. Впрочем, по правилам хорошего тона файл по окончании вычисления хэш-кода необходимо закрывать функцией Close ():

$md5 = new-object system.security.cryptography.md5cryptoserviceprovider

$fs = new-object system.io.filestream ($file,$mode,$access)

$hash = $md5.computehash ($fs) # хэш-код файла

$fs.close ()

Рис. 1. Результат анализа отслеживаемых папок в GoodSync

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

Рис. 2. Настройка автоматической синхронизации в GoodSync

Стоит обратить внимание на один нюанс. При автоматической синхронизации файлов на портативный накопитель (например, флэшку) может возникнуть проблема распознавания диска. Удобнее, если запуск обработки файлов начинается автоматически при подключении уникального устройства, однако любой USB-диск при подключении будет фигурировать под одной и той же буквой, что в случае вставки другой флэшки приведет к ошибкам синхронизации. Для того чтобы программа могла правильно распознать нужный диск , требуется вручную изменить путь до устройства, заменив в нем букву диска на метку тома (=VolumeName:\folder1\folder2 - рис. 3). Соответствующую метку тома для конкретного диска несложно установить в свойствах, воспользовавшись проводником Windows . Применение указанных настроек гарантирует обнаружение нужного портативного накопителя независимо от присвоенной ему буквы диска.

Рис. 3. Замена буквы диска меткой тома
в GoodSync

ViceVersa

Разработчик: TGRMN Software

Размер дистрибутива: Pro - 3,4 Мбайт; Plus - 1,1 Мбайт; Free - 708 Кбайт

Работа под управлением: ViceVersa Pro 2.5 и ViceVersa Plus 2.4.2 - Windows (все версии); ViceVersa Free 1.0.5 - Windows XP/Vista/7

Цена: Pro - 59,95 долл.; Plus - 34,95 долл.; Free - бесплатно

ViceVersa Pro - известное решение для синхронизации, резервного копирования и репликации файлов и папок (рис. 4). С его помощью можно синхронизировать данные между стационарными компьютерами, ноутбуками, файловыми серверами, внешними носителями (жесткими дисками, USB-устройствами, ZIP-дисками и пр.), NAS и т.д. Реализуется это по локальной сети , через Интернет и с применением любых внешних накопителей .


При синхронизации анализируются такие параметры, как размер файла и дата/время создания файлов, контрольные суммы либо совокупность перечисленных параметров. Предусмотрена возможность включения/исключения при анализе подкаталогов, а также отдельных файлов с учетом их атрибутов (скрытые/системные/только для чтения) и маски. Допускается синхронизация и резервное копирование открытых и заблокированных приложениями файлов, включая почтовые базы Outlook и Outlook Express, документы Word и Excel и базы данных SQL. Синхронизация данных производится вручную по требованию или в автоматическом режиме - по расписанию (например, ежедневно в строго определенное время). В целях экономии дискового пространства и обеспечения безопасности данных на любом носителе в программе предусмотрен инструментарий для сжатия и шифрования файлов.

Утилита выпускается в трех редакциях: бесплатной Free (http://www.tgrmn.com/free/) и двух коммерческих - базовой Plus и расширенной Pro. Возможности бесплатной редакции ограничены сравнением и синхронизацией файлов в папках (включая подпапки) между накопителями на гибких дисках, жесткими и сетевыми дисками, а также ZIP- и компакт­дисками; синхронизация производится вручную. Редакция Plus позволяет работать с USB-накопителями, жесткими и сетевыми дисками, а также DVD/CD, обеспечивает возможность синхронизации/резервирования открытых/заблокированных файлов и может быть настроена на работу по расписанию. В редакции Pro поддерживается весь заявленный разработчиками функционал.

GoodSync 8.8.6

Разработчик: Siber Systems, Inc.

Размер дистрибутива: 7,15 Мбайт

Работа под управлением: Windows 2000/XP/Vista/7

Цена: 29,95 долл.

GoodSync - удобный и простой инструмент для синхронизации и резервного копирования файлов (рис. 5). Программа позволяет синхронизировать файлы между настольными и переносными компьютерами, съемными дисками и серверами, а также проводить резервное копирование важных данных на различные носители (включая FTP- и WebDAV-серверы). Кроме того, предусмотрена возможность синхронизации файлов между устройствами Windows Mobile Phone или Pocket PC (Windows CE) и настольным компьютером. Синхронизация может проводиться напрямую между компьютерами (в локальной сети или через Интернет с FTP-, WebDAV- и Secure FTP-серверов) либо с подключением любых внешних накопителей (USB-диска, внешнего HDD).


Анализ данных проводится с учетом даты/времени модификации файлов или их размера. В ходе анализа автоматически игнорируются скрытые и системные файлы , можно настроить включение/исключение файлов с именами, соответствующими определенной маске, а также файлов определенного размера или с определенным временем изменения. Возможна синхронизация заблокированных файлов с применением службы Volume Shadow Copy. Для автоматизации процесса синхронизации включен инструментарий для запуска синхронизации по расписанию, а также при наступлении определенных событий (например, при подключении компьютера к локальной сети, при подключении съемного диска к компьютеру или при запуске системы) допускается применение планировщика Windows. В целях повышения безопасности при удаленной синхронизации данных реализована передача файлов по шифрованному каналу (FTP через SSH и WebDAV через SSL), а при резервном копировании возможно использование шифрованной файловой системы EFS (Encrypting File System).

Программа имеет демо-версию, которая полностью функциональна в течение 30 дней. В дальнейшем она может применяться домашними пользователями и некоммерческими структурами совершенно бесплатно, но с ограничениями - разрешается создавать до трех заданий синхронизации, включающих не более ста файлов. Имеется специальная портативная редакция утилиты - она фигурирует под названием GoodSync2Go и предназначена для установки на USB-диски.

Allway Sync 11.6.1

Разработчик : Botkind, Inc.

Размер дистрибутива: 6,9 Мбайт

Работа под управлением: Windows 2000/XP/2003/Vista/2008/7

Цена: зависит от лицензии: Pro - 29,99 долл.; Free - бесплатно (только для некоммерческого использования)

Allway Sync - простая в применении утилита, предназначенная для синхронизации и резервирования файлов в папках (рис. 6). Программа обеспечивает синхронизацию данных между настольными ПК, ноутбуками, внешними жесткими дисками, USB-дисками, FTP/SFTP-серверами и различными онлайновыми хранилищами данных. Анализ информации и ее обновление производятся по локальной сети, через Интернет и посредством внешних накопителей (флэшек, внешних жестких дисков и т.д.).


Последние версии файлов выявляются на основе комбинации атрибутов файла, его размера и времени создания. В целях сужения перечня анализируемых файлов допускается включение/исключение объектов синхронизации с учетом места нахождения файла, имени и атрибутов (только включение/исключение скрытых/системных файлов). Синхронизация может проводиться по требованию и автоматически - через определенный промежуток времени, при подключении съемного устройства, при простое компьютера и др.; возможно использование планировщика задач Windows.

Программа предлагается в двух редакциях: бесплатной Free и коммерческой Pro. Бесплатная редакция позволяет синхронизировать не более 40 тыс. файлов в 30-дневный срок. Имеется специальная портативная редакция утилиты, предназначенная для установки на флэшку или внешний HDD.

FreeFileSync 4.2

Разработчик: ZenJu

Размер дистрибутива: 9,27 Мбайт

Работа под управлением: Windows 2000/XP/Vista/7

Цена: бесплатно

Не стоит забывать и про актуальность копий, для чего следует проводить периодическую синхронизацию. Можно, конечно, каждый раз копировать весь объем данных заново, но это подойдет только в случае, если таковых немного. Для больших объемов это приведет к лишнему износу жесткого диска и, в общем то, пустой трате времени. Синхронизация производится гораздо быстрее, чем полное копирование, но очень важно ее правильно настроить. Иначе можно потерять и копию, и оригинальные данные! Перед использованием синхронизации обязательно протестируйте её на ненужных файлах и папках!

Настройка синхронизации в FreeFileSync

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

Затем, заходим в настройки сравнения файлов и выбираем параметры. По умолчанию файлы сравниваются по дате и размеру. На вкладке «Фильтр» можно настроить папки и файлы, которые необходимо исключить из синхронизации.

На вкладке «Синхронизация» настраиваем режим синхронизации. Всего предусмотрено 4 режима:

  • В обе стороны - отслеживаются изменения с обоих сторон синхронизации.
  • Зеркало - учитываются только изменения с левой стороны, то есть файлы и папки, несуществующие слева, будут удалены при синхронизации.
  • Обновить - файлы копируются слева на право, при этом в случае, если справа встречаются новые файлы, требуется вмешательство пользователя.
  • Выборочно - можно настроить свои правила обработки файлов.

Настройка синхронизации по расписанию

FreeFileSync имеет полезную функцию - это сохранение параметров синхронизации в виде пакетного файла. Для создания этого файла нажимаем кнопку «сохранить как пакетное задание». Если необходимо, то можно включить запись логов синхронизации.

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

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

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

Наличие двух (а иногда и более) компьютеров в домашнем использовании уже давно перестало восприниматься как нечто из ряда вон выходящее. Сегодня в домашней локальной сети можно обнаружить до десятка различных устройств, как самих ПК, так и всевозможных сетевых накопителей, DVD и Blue-Ray-проигрывателей, телевизоров с доступом к сети и т.п. Даже, если у Вас нет всего вышеперечисленного, то все равно, наверняка Вы пользуетесь хотя бы одной флэшкой для переноса нужных данных. В любом случае возникают ситуации, когда нужный файл изменяется на локальном компьютере и приходится вручную переносить его на ту же флешку. А если таких файлов несколько, как не забыть вовремя «скинуть» актуальные копии? Для всего этого существуют специальные программы - синхронизаторы.

Хороший синхронизатор должен уметь работать одинаково как с локальными папками, так и со съемными и удаленными носителями информации, отслеживать изменившиеся файлы в указанной директории и вовремя обновлять их в конечной папке, работать по заданному расписанию в автоматическом и/или скрытом режиме… Всеми этими (и некоторыми другим) возможностями обладает очень небольшая утилитка DSynchronize . Несмотря на бесплатный статус и маленький размер она может смело потягаться на равных с коммерческими программами, например такими, как популярная за рубежом Synchromagic Pro .

Сравнение программы DSynchronize с платным аналогом Synchromagic Pro

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

К минусам программы (хотя кому как:)) можно отнести неспособность DSynchronize архивировать копируемые файлы для возможного их последующего восстановления. Функция бэкапа вроде бы присутствует в виде окошка «Резервная копия » , но на деле обнаружить какие-нибудь копии не удалось ни в папке с программой, ни в синхронизируемых директориях:(. Все же я не склонен относить сей недостаток к минусам, поскольку старыми версиями файлов мы вряд ли будем пользоваться, а если даже и пользуемся, то наверняка создаем копии сами.

Итак, теперь о работе с программой. DSynchronize не требует установки, однако для сохранения настроек следует все же разархивировать ее в любую папку на жестком диске. Все, можем приступать к работе.

Интерфейс DSynchronize

Изначально интерфейс программы английский, хотя и интуитивно понятен. На официальном сайте русская локализация отсутствует, однако мною была сделана попытка «одомашнить» DSynchronize .. Чтобы русифицировать программу достаточно в папку, в которую Вы ее распаковали, добавить файл DSynchronize.lng из скачанного архива (ах, да… разрешается любая модификация и оптимизация вышеупомянутого файла под свои нужды:))). Теперь запустим уже русский вариант DSynchronize .

Условно интерфейс окна DSynchronize можно разделить на три части. Вверху расположены списки пар директорий для синхронизации, ниже - панель настроек всех процессов, а еще ниже три окошка, которые отражают работу с файлами. В самом начале в списке заданий мы увидим два примера. Их следует удалить при помощи соответствующей команды в контекстном меню (правая кнопка мыши). Когда список стандартных задач будет очищен, добавим собственные. Снова вызываем контекстное меню и выбираем пункт «Добавить» . Появится пара пустых строк. В эти строки мы и впишем полные адреса папок, файлы в которых подлежат синхронизации.

Теперь есть несколько нюансов. Если Вы планируете синхронизировать две локальные папки , то достаточно будет дважды кликнуть на строке и, нажав кнопку «Обзор» , выбрать из вписка вначале исходную папку (из которой будут копироваться файлы), а затем конечную. То же самое следует сделать, если Вы хотите синхронизировать папку со съемным носителем информации (например, с флэшкой), предварительно подключив устройство к ПК.

Синхронизация по FTP

А вот чтобы подключиться к удаленному компьютеру по локальной сети или по FTP, придется вводить путь вручную . Чтобы получить доступ к папке на удаленном ПК по локальной сети потребуется ввести следующее: \\Имя компьютера (или его IP)\Имя папки (например, \\192.168.1.4\Общие Документы). Единственный нюанс, папка, к которой мы подключаемся должна быть открыта для общего доступа. Вызовите контекстное меню папки и выберите пункт «Свойства» . В открывшемся окошке перейдите на вкладку «Доступ» и отметьте галочкой пункт «Открыть общий доступ к этой папке» .

Чтобы воспользоваться возможностью синхронизации по FTP укажите полный адрес сервера (например, ftp://Адрес сервера/Имя папки). Если в ответ Вы получите окошко с сообщением об ошибке, значит, для доступа к серверу требуется указать данные для авторизации. Сделать это можно, дописав перед адресом сервера вначале логин, затем после двоеточия пароль, и только потом после значка «@» непосредственный адрес сервера (см. скриншот выше).

Когда синхронизируемая пара папок готова, можно настроить некоторые параметры обмена файлами. Для этого кликните на кнопку «Фильтр» рядом с адресом папки, либо вызовите соответствующую команду из контекстного меню.

Здесь мы можем задать копирование либо строго определенных файлов или их типов по маске, указав пункт «Включения фильтра» , либо указать, какие файлы (или типы файлов) не следует синхронизировать, выбрав пункт «Исключения из фильтра» . Маска задается стандартным образом: мы вводим часть имени файла, а все, что не нужно помечаем как «*» . Разделять маски можно обычной точкой с запятой. Далее есть пара опций, которые определяют параметры работы с подпапками, а еще ниже находится раздел «Расширенные фильтры» . Здесь можно исключить из копирования файлы, измененные в определенный день.

Настройки DSynchronize

Рассмотрим теперь панель опций , которая расположена под списком папок.

Все возможности разделены на четыре группы. Первая - «Главные опции» - включает в себя практически все необходимые настройки синхронизации. Стоит обратить внимание на первые две возможности. Пункт «Только новейшие» позволяет не переписывать все существующие файлы, а копировать только самые актуальные версии. Таким образом, значительно экономится время, затрачиваемое на синхронизацию. Другая возможность - «Двойная синхронизация» . Если она активирована, то на наличие новых версий файлов проверяются обе папки и в итоге в каждой из них остаются только самые актуальные копии.

Вторая группа настроек - «Специальные опции» . Здесь можно включить антифрагментацию добавленных файлов, пропуск ошибок, а также резервное копирование (которое на деле не работает:(). Из всех доступных здесь опций полезна по сути лишь «Антифрагментация» . Если она активирована, то при нахождении новой версии файла, старая удаляется, а новая версия добавляется, как новый файл. Это позволяет добиться меньшей фрагментации, чем, если бы старый файл просто заменялся новым.

Четвертая группа - «Команды» - содержит только кнопки управления процессом синхронизации, поэтому подробнее остановимся на третьей группе - «Планирование» . Это один из самых основных разделов, который отвечает за автоматизацию всех процессов в работе DSynchronize . Кликнув по первой же опции - «Таймер» , мы перейдем в окно настройки синхронизации по времени:

Здесь есть возможность задать синхронизацию через определенный промежуток времени или в конкретный момент (в час дня, например). Кроме того, мы можем настроить процесс сличения файлов не только каждый день, но и в строго определенные дни месяца или недели!

Есть возможность в DSynchronize задать постоянную синхронизацию в режиме реального времени при помощи пункта «Real-time» . Правда эта возможность пока экспериментальная, о чем нас и предупредят при попытке включения, поэтому перед ее активацией следует убедиться, что программа корректно работает с выбранными папками в обычном режиме.

Далее здесь следует два пункта, которые отвечают за автозапуск DSynchronize . Первый - «Автостарт» , позволяет загружать программу вместе с системой. В этом случае программу будет видно в трее, из которого ее всегда можно вызвать. Если же Вы уверены, что все настроили правильно и постоянный доступ к DSynchronize Вам не нужен, то Вы можете установить работу программы в режиме службы. Для этого отметим пункт «Запуск службы…» .

В открывшемся окне сначала потребуется нажать кнопку «Install Service» для установки новой службы, а затем запустить ее, после чего останется нажать только кнопку «Готово» .

Пример работы с программой

Теперь все действительно готово для того, чтобы начинать работу, поэтому жмем кнопку «Синхронизация» в разделе «Команды».

Сам процесс синхронизации происходит в два этапа, что можно видеть в статусной строке. Первый этап - сличение и формирование списка копируемых файлов, второй - непосредственное копирование. В трех окошках под основным меню мы можем видеть списки всех скопированных, удаленных или замененных файлов. Здесь же мы можем установить и определенные запреты или разрешения на соответствующие действия. Если Вы хотите держать под контролем весь процесс синхронизации, советую включить запрос перед любым действием DSynchronize (кроме, пожалуй, добавления файлов). Такие запросы выглядят следующим образом:

В данном случае перед нами окно подтверждения замены файлов (Confirm Add - подтверждение на добавление, Confirm Remove/Delete - удаление).

О завершении процесса синхронизации мы узнаем опять же из надписи в статусной строке:

Поздравляю Вас! Теперь Вы наконец-то можете забыть о ручном копировании нужных файлов, так как сможете переложить все заботы связанные с синхронизацией файлов на DSynchronize .

P.S. Данная статья предназначена для свободного распространения. Приветствуется её копирование с сохранением авторства Руслана Тертышного и всех P.S. и P.P.S.

P.P.S. Если Вы любите решения типа «все в одном», то советую присмотреться к следующему файловому менеджеру, который в числе прочих имеет возможность синхронизировать указанные каталоги.

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

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

Друзья, всем привет! Рад всех вас видеть у себя в гостях 😉 Сегодня я расскажу, как синхронизировать базы данных WordPress. А так же о том, какие таблицы в базе наиболее важные и как с ними работать.

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

Так вот, после доработки сайта, его нужно вернуть на хостинг. И с этим, вообще, нет никаких проблем. В том случае, если во время вашей работы на локальном сервере, сайт, расположенный, в интернете не обновлялся. Но такие случаи бывают крайне редко.

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

И вот тут-то и нужна синхронизация базы данных. Именно так можно объединить в базе данных и новый дизайн, и новые записи. А уже после, без проблем, перенести готовый сайт обратно на хостинг.

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

Структура базы данных WordPress

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

По большому счёту досконально разбираться во всех таблицах необязательно. Достаточно знать, в каких таблицах находится информация о статьях, комментариях и так далее. Именно эти таблицы имеют ключевое значение при синхронизации.

Итак, рассмотрим ключевые таблицы в базе данных WordPress.

wp_options – содержит все настройки сайта;

wp_posts – все статьи и записи на сайте;

wp_postmeta – вспомогательные данные о статьях и записях на сайте;

wp_comments – комментарии;

wp_commentmeta – вспомогательная информация о комментариях;

wp_term_relationships – связи статей и записей с категориями и тегами;

wp_terms – связи категорий (рубрик) со ссылками;

wp_term_taxonomy – связи категорий, тегов, ссылок;

wp_usermeta – информация обо всех зарегистрированных пользователях;

wp_users – информация об администраторе.

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

Вот теперь, когда общее представление о базе данных WordPress у вас сложилось, можно приступать к цели нашего урока – синхронизации баз данных.

Подготовка к процессу синхронизации

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

Так, вы и процесс поймёте, и сможете создать нужную базу данных на своём компьютере и перенести на хостинг уже готовую БД.

Самое главное не забудьте про резервную копию.

Сравнение баз данных в phpMyAdmin

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

Использовать для этого будем утилиту phpMyAdmin, которая доступна и на хостинге и на локальном сервере.

В качестве сравнения будем использовать базу данных на локальном сервере, которую я использовал в работе над . И базу данных, которая используется у меня на моём блоге.

Для сравнения возьмём одну цифру – количество статей. Так как для таких сайтов, как мой, – это самое ценное. Ну и комментарии, конечно. К тому же эти цифры всегда у вас на виду.

Анализируем тестовый сайт и базу данных:

Для начала посмотрим на количество статей. Сделать это можно в административной панели Вордпресс. Достаточно открыть консоль.

Как видно, на скриншоте, статей на тестовом сайте – 136.

После обновления темы оформления, я успел написать ещё пару статей. И сейчас их уже 138.

Количество статей должно соответствовать количеству записей в таблице wp_posts . Но, если открыть эту таблицу, то записей вы увидите гораздо больше.

Как видите на скриншоте – всего записей 2,245. И среди них и статьи и отдельные записи. А ещё это куча черновиков и прочих записей о картинках и так далее.

Поэтому сразу определить количество статей нереально. Для этого потребуется сделать небольшой запрос с параметрами сортировки.

Открываете базу данных – таблицу wp_posts – переходите на закладку SQL – вводите запрос:

SELECT * FROM `wp_posts` WHERE `post_status` = "publish" AND `post_type` = "post"

Этот запрос говорить о том, что в таблице wp_posts нужно выбрать все записи (* ), где статус – опубликовано (publish ) и это статья (post ).

В итоге получаем 136 записей. Вот теперь эта цифра соответствует количеству статей.

Точно так же сверяется и другая база данных. В моём случае – реальная база с моего блога.

Эти знания помогут вам не потерять ничего важного. И проверить после синхронизации, всё ли прошло успешно.

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

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

Синхронизация баз данных WordPress

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

Шаг 1. Создание двух пустых баз данных

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

Первым делом запускаете Денвер и в браузере набираете localhost/tools/ , а далее жмёте на ссылке phpmyadmin .

Шаг 2. Импортируем данные в базу

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

У вас должно быть тоже две базы, которые вы будете синхронизировать.

Теперь нужно импортировать данные из резервных копий в новые базы данных. Для этого выбираете новую базу – откройте закладку «Импорт» — выбираете «файл резервной копии» — нажимаете кнопку «Ок» .

Шаг 3. Синхронизация баз данных

Вообще, есть возможность просто копировать нужные таблицы из одной базы в другую. Но мы рассмотрим непосредственно процесс синхронизации. Как полной так и частичной (в виде отдельных таблиц).

Для этого нужно перейти на главную страницу phpMyAdmin и выбрать раздел «Синхронизировать» .

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

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

Если вы хотите синхронизировать отдельные таблицы, то необходимо нажать на буквы S или D . Эти буковки станут серыми, а в окошке ниже вы увидите добавленные таблицы на синхронизацию. После чего вы можете синхронизировать эти таблицы, нажав на кнопку «Применить выбранные изменения» .

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

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

Вот, и всё. На этом процесс синхронизации окончен. Можно проверять результат. Для наглядного примера, я сменил базу данных на локальном сайте. Если кто забыл, делается это в файле wp-config.php. И теперь можно сравнить количество статей, записей и комментариев. Правда, комментариев на блоге стало немного больше, пока я писал статью.

Статистика по тестовому блогу:

Статистика по рабочему блогу:

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

А теперь советую посмотреть видеоурок, в котором весь процесс синхронизации баз данных я показываю шаг за шагом.

Сегодня на этом всё. Всем желаю хорошего настроения. До встречи в новых материалах. И конечно же, жду ваших комментариев 😉 А полученные знания пригодятся вам при .

Подписывайтесь на новые статьи!

При разработке современных веб-приложений сложно недооценить пользу от использования систем контроля версий. Применительно к файлам разрабатываемого продукта, мы способны отследить любые этапы производства в любой момент, начиная с первой ревизии. Инструменты, помогающие нам в этом, на сегодняшний день популяризированы, считаются хорошим тоном при разработке, а во многих случаях успешное производство без их применения невозможно в принципе. А какие возможности мы имеем, когда возникает необходимость проследить изменения не в файлах, а в базах данных проекта? Под катом я поделюсь информацией о существующих средствах, с которыми мне пришлось ознакомиться.

1. PHP SQLDIFF, a.k.a. SQLDiff

PHP-скрипт, позволяющий увидеть полные различия (как в структуре, так и в данных) между любыми таблицами двух БД. В инструменте отсутствуют какие-либо средства по автоматической синхронизации структуры или данных – предоставляется лишь визуальная информация. Еще из существенных недостатков – возможность подключения только к БД, к которым возможен доступ напрямую (не через ssh-тоннель). Медленная скорость работы на больших объемах данных (работа через pear-модуль, который не блещет ни новизной, ни скоростью). Считаю данный скрипт весьма полезным для разработчика в случаях, когда необходимо понимание и визуальное представление различий между разными таблицами - имеет удобный интерфейс, быстрая настройка. Охарактеризую скорее как полезную карманную утилиту для быстрого получения понимания о рассинхронизации таблиц, которые в теории должны быть идентичны, нежели как серьезный инструмент, который можно применить для автоматизации процессов синхронизации.

2. LIQUIBASE

Удобный многофункциональный и простой в использовании мигратор структуры БД на java. Вижу для себя в этом плюс, если использовать в связке с Jenkins.
Пример (host1 - сервер, с которого необходимо копировать структуру БД; host2 - сервер, на который необходимо перенести структуру с host1):

Java -jar liquibase.jar --driver=com.mysql.jdbc.Driver --classpath=mysql-connector-java-5.1.xx-bin.jar --logFile=db.ExampleChangelog.xml --url="jdbc:mysql://host2" --defaultSchemaName=db_name --username=username --password="password" --referenceUrl=jdbc:mysql://host1 --referenceUsername=username --referencePassword="password" diffChangeLog > ChangeSet.xml

Формирует changeset в формате xml, дальнейшая миграция которого приводит структуру бд на host2 в состояние, идентичное host1.

Запуск миграции:

Java -jar liquibase.jar --driver=com.mysql.jdbc.Driver --classpath=/path/to/classes --changeLogFile=ChangeSet.xml --url="jdbc:mysql://host2" --username=user --password="password" migrate

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

Changeset также можно формировать и в других форматах - в sql, в json (не только в xml). Формирование changeset"а в sql будет полезным в тех случаях, когда для миграции используются средства другой утилиты.

3. schemasync

Инструмент для синхронизации структуры БД. Для работы необходим python и соответствующий интерфейс для mysql.
Из существенных различий с liquibase:
- schemasync создает не только ченжсет, но и файл, позволяющий откатить изменения (самое важное и самое ценное преимущество, хотя, на мой взгляд, не избавляет от необходимости делать backup перед синхронизацией)
- liquibase позволяет не только получить ченжсет, но и сразу же запустить миграцию средствами самой утилиты. Может быть, не киллер-фича, но все равно удобно и полезно

schemasync работает только с sql – никаких промежуточных xml и аналогов – вижу для себя в этом как преимущества, так и недостатки.
Очень лаконичный синтаксис, минимум настроек. Позволяет не синхронизировать комментарии и автоинкремент (настраивается) - безусловный плюс.

Пример использования:

Schemasync mysql://user:pass@dev-host:3306/dev_db mysql://user:pass@prod-host:3306/production_db