postgresql数据迁移

it2025-03-25  18

postgresql从库故障准备新库

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

mkdir /home/mydbchown -R postgres:postgres /home/mydb2,解压安装包[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 directorypsql:20150611_dumpall.sql:409: ERROR: function public.dblink(text, text) does not existpsql:20150611_dumpall.sql:417: ERROR: could not access file "$libdir/dblink": No such file or directorypsql:20150611_dumpall.sql:420: ERROR: function public.dblink(text, text, boolean) does not existpsql:20150611_dumpall.sql:428: ERROR: could not access file "$libdir/dblink": No such file or directorypsql:20150611_dumpall.sql:431: ERROR: function public.dblink(text) does not existpsql:20150611_dumpall.sql:439: ERROR: could not access file "$libdir/dblink": No such file or directorypsql:20150611_dumpall.sql:442: ERROR: function public.dblink(text, boolean) does not existpsql:20150611_dumpall.sql:450: ERROR: could not access file "$libdir/dblink": No such file or directorypsql:20150611_dumpall.sql:453: ERROR: function public.dblink_build_sql_delete(text, int2vector, integer, text[]) does not existpsql:20150611_dumpall.sql:461: ERROR: could not access file "$libdir/dblink": No such file or directorypsql:20150611_dumpall.sql:464: ERROR: function public.dblink_build_sql_insert(text, int2vector, integer, text[], text[]) does not existpsql:20150611_dumpall.sql:472: ERROR: could not access file "$libdir/dblink": No such file or directorypsql:20150611_dumpall.sql:475: ERROR: function public.dblink_build_sql_update(text, int2vector, integer, text[], text[]) does not existpsql:20150611_dumpall.sql:483: ERROR: could not access file "$libdir/dblink": No such file or directorypsql:20150611_dumpall.sql:486: ERROR: function public.dblink_close(text) does not exist

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

配置安装dblink(扩展)

cd /home/postgres/postgresql-8.1.4/contribmake

make install

再恢复没问题了。

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

转载于:https://www.cnblogs.com/youhunyimeng/p/4578904.html

相关资源:PostgresChina2018_董红禹_SQL_Server迁移PG经验分享
最新回复(0)