До сих пор я успешно выполнил репликацию Slony для Postrong на одном компьютере (и главный, и подчиненный находятся на одном компьютере, то есть на локальном хосте).
Я делал это в Ubuntu 12.04, Suse Enterprise server 11 и Windows. Я выполнил примерные шаги из этой ссылки. http://www.linuxjournal.com/article/7834?page=0,0 и "," b2yni25v4f2 "".
Я даже смог выполнить эти шаги между двумя разными главными IP-адресами компьютера с Windows: 192.168.0.3 Slave ip 192.168.0.8)
Но когда я попробовал репликацию Slony между Windows и Suse (Master: Windows (192.168.0.3) и Slave: Suse (192.168.0.9)) при запуске slonik C: \ Slony \ mtscript.txt, я получил эту ошибку
C: \ Slony \ mtscript.txt: 8: PGRES_FATAL_ERROR загрузить '$ libdir / slony1_funcs.2.2.0'; - ОШИБКА: не удалось получить доступ к файлу "$ libdir / slony1_funcs.2.2.0": такого файла или каталога нет.
C: \ Slony \ mtscript.txt: 8: Ошибка: расширение для функций Slony-I C не может быть загружено в базу данных 'dbname = repdb_slave host = 192.168.0.9 port = 5432 user = postgres password = root' < / сильный>
Когда я погуглил об этой ошибке, я не нашел много, я просто узнал, что, разрушив команду ./pg_config, я обнаружил, что,
(1) в Windows slony1_funcs.2.2.0.dll находится в LIBDIR = C: /PROGRA~2/POSTGR~1/9.3/lib (т.е. C: \ Program Файлы (x86) \ PostgreSQL \ 9.3 \ lib)
(2) а в Suse slony1_funcs.2.2.0.so находится в PKGLIBDIR = /opt/PostgreSQL/9.3/lib/postgresql
РЕДАКТИРОВАТЬ:
Мой файл сценария: mtscript.txt
cluster name = repdb_cluster_suse;
node 1 admin conninfo = 'dbname=repdb host=192.168.0.3 port=5432 user=postgres password=root';
node 2 admin conninfo = 'dbname=repdb_slave host=192.168.0.9 port=5432 user=postgres password=root';
init cluster (id = 1, comment = 'Node 1');
create set (id = 1, origin = 1,comment = 'contact table');
set add table (set id = 1, origin = 1, id = 1,full qualified name = 'public.contact',comment = 'Table contact');
set add sequence (set id = 1, origin = 1, id = 2,full qualified name = 'public.contact_seq',comment = 'Sequence contact_seq');
store node (id = 2, comment = 'Node 2',event node=1);
store path (server = 1, client = 2,conninfo = 'dbname=repdb host=192.168.0.3 port=5432 user=postgres password=root');
store path (server = 2, client = 1, conninfo = 'dbname=repdb_slave host=192.168.0.9 port=5432 user=postgres password=root');
store listen (origin = 1, provider = 1, receiver = 2);
store listen (origin = 2, provider = 2, receiver = 1);
Я установил ту же версию Postgres (версия 9.3.5.1) и slony (2.2.0-1) (обе загружены для from здесь 32-разрядная версия)
Каталог установки Windows Postgres: C: \ Program Files (x86) \ PostgreSQL \ 9.3
suse Каталог установки Postgres: /opt/PostgreSQL/9.3/bin
Итак, как решить эту ошибку? Как выполнить репликацию Slony между Windows и Linux (suse)?
любая помощь будет оценена по достоинству.
заранее спасибо