postgresql数据迁移

postgresql从库故障准备新库

1,创建用户
[root@localhost home]# userdel postgres
[root@localhost home]# groupdel postgres

mkdir /home/mydb
chown -R postgres:postgres /home/mydb
2,解压安装包
[root@localhost home]## tar -xvf postgres/postgresql-8.1.4.tar

cd postgres/postgresql-8.1.4
编译安装: ./configure --prefix=/usr/local/pgsql -localstatedir=/home/mydb

$ ./configure --prefix=/usr/local/pgsql --with-pgconfigdir=/usr/local/pgsql/bin/ --with-pgbindir=/usr/local/pgsql/bin/ --with-pgincludedir=/usr/local/pgsql
/include/ --with-pgincludeserverdir=/usr/local/pgsql/include/server/ --with-pglibdir=/usr/local/pgsql/lib/ --with-pgpkglibdir=/usr/local/pgsql/lib/ --with-pgsharedir=/usr/local/pgsql/share/
make

All of PostgreSQL successfully made. Ready to install


su - postgres

vi .bash_profile

PATH=$PATH:$HOME/bin:/usr/local/pgsql/bin

 

/usr/local/pgsql/bin/initdb /home/mydb


/usr/local/pgsql/bin/pg_ctl -D /home/mydb star

 

3.slony安装

tar -xvf slony1-1.2.6.tar

su - root

./configure --with-pgsourcetree=/usr/local/pgsql/bin

$ ./configure --prefix=/usr/local/pgsql --with-pgconfigdir=/usr/local/pgsql/bin/ --with-pgbindir=/usr/local/pgsql/bin/ --with-pgincludedir=/usr/local/pgsql
/include/ --with-pgincludeserverdir=/usr/local/pgsql/include/server/ --with-pglibdir=/usr/local/pgsql/lib/ --with-pgpkglibdir=/usr/local/pgsql/lib/ --with-pgsharedir=/usr/local/pgsql/share/

 

3.主库数据备份

 /usr/local/pgsql/bin/pg_dumpall > /home/mydb/backup/`date '+%Y%m%d'`_dumpall.sql

4.新库恢复

psql -f /home/mydb/backup/`date '+%Y%m%d'`_dumpall.sql

 

发现报错:

psql:20150611_dumpall.sql:406: ERROR: could not access file "$libdir/dblink": No such file or directory
psql:20150611_dumpall.sql:409: ERROR: function public.dblink(text, text) does not exist
psql:20150611_dumpall.sql:417: ERROR: could not access file "$libdir/dblink": No such file or directory
psql:20150611_dumpall.sql:420: ERROR: function public.dblink(text, text, boolean) does not exist
psql:20150611_dumpall.sql:428: ERROR: could not access file "$libdir/dblink": No such file or directory
psql:20150611_dumpall.sql:431: ERROR: function public.dblink(text) does not exist
psql:20150611_dumpall.sql:439: ERROR: could not access file "$libdir/dblink": No such file or directory
psql:20150611_dumpall.sql:442: ERROR: function public.dblink(text, boolean) does not exist
psql:20150611_dumpall.sql:450: ERROR: could not access file "$libdir/dblink": No such file or directory
psql:20150611_dumpall.sql:453: ERROR: function public.dblink_build_sql_delete(text, int2vector, integer, text[]) does not exist
psql:20150611_dumpall.sql:461: ERROR: could not access file "$libdir/dblink": No such file or directory
psql:20150611_dumpall.sql:464: ERROR: function public.dblink_build_sql_insert(text, int2vector, integer, text[], text[]) does not exist
psql:20150611_dumpall.sql:472: ERROR: could not access file "$libdir/dblink": No such file or directory
psql:20150611_dumpall.sql:475: ERROR: function public.dblink_build_sql_update(text, int2vector, integer, text[], text[]) does not exist
psql:20150611_dumpall.sql:483: ERROR: could not access file "$libdir/dblink": No such file or directory
psql:20150611_dumpall.sql:486: ERROR: function public.dblink_close(text) does not exist

报错原因是数据库中用到存储过程,存储过程用到dblink

配置安装dblink(扩展)

cd /home/postgres/postgresql-8.1.4/contrib
make

make install

再恢复没问题了。

5.旧从库上的脚本以及slon脚本文件都移到新库上来,修改IP为从库IP

posted @ 2015-06-15 18:27  饿狼的传说  阅读(4106)  评论(0编辑  收藏  举报