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