Можно сделать это без посреднического файла, а также сброса указателей репликации в процессе, таким образом, Вы не пропускаете обновлений (и имеете для пересинхронизации снова),
Остановите репликацию ведомое устройство
ведомое устройство> mysql 'ведомая остановка';
выведите ведущее устройство к ведомому устройству, с помощью --master-data=1
флаг
ведущее устройство> mysqldump-e - master-data=1 - $DATABASE единственной транзакции | ssh-C user@slave 'mysql $DATABASE'
запустите репликацию на ведомом устройстве
ведомое устройство> mysql 'ведомый запуск'
--master-data=1
причины mysqldump для испускания CHANGE MASTER TO ...
настройки наверху дампа, чтобы установить бинарный журнал репликации и сместить к точному месту в ведущем бинарном журнале в то время дамп были взяты
-e
использует расширенный выходной формат, в основном несколько наборов значения на оператор вставки, который является большим количеством efficent и на проводе, и будучи примененным к ведомому устройству.
--single-transation
говорит mysql открывать транзакцию по целому дампу, вместо использования LOCK TABLES
.
После большого количества головы, царапающей, я обнаружил, что проблема была то, вследствие того, что хост-система составляла 32 бита и целевая система 64 бита. Так как Postgresql кодирует каталоги данных по-другому для каждой версии, сервер на 64 бита не мог загрузить каталог данных на 32 бита.
Для разрешения этого, я просто создал отдельный экземпляр Ubuntu на 32 бита и скопировал каталог данных в него. После того как сервер был в порядке, я выполнил pg_dumpall для экспорта базы данных и возвратил вывод к целевой машине для загрузки.
Я предполагаю, что все файлы правильно принадлежат учетной записи суперпользователя базы данных, и полномочия корректны?
Что находится в Вашем файле PG_VERSION?
Возможно, ls-lR помог бы.