postgresql数据迁移

postgresql从库故障准备新库

1,创建用户
[[email protected] home]# userdel postgres
[[email protected] home]# groupdel postgres

mkdir /home/mydb
chown -R postgres:postgres /home/mydb
2,解压安装包
[[email protected] 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

时间: 2024-10-03 21:53:35

postgresql数据迁移的相关文章

轻松上云系列之一:本地数据迁移上云

背景信息在云计算服务高速发展的今天,如何方便快捷地将已有的服务器系统迁移上云,有着非常重要的意义.阿里云服务器迁移服务方案,即迁移服务,正是在这个需求背景下应运而生.它极大地简化了服务器系统迁移工具的使用条件.降低了使用成本,使用户的系统一键迁移到阿里云成为可能. 使用迁移服务来进行系统迁移比较便捷,您可以先参考迁云工具帮助文档了解使用条件及基本操作. 迁移流程1.熟悉迁移工具使用方法,提前做好测试演练. 2.评估迁移时间/成本,制定迁移计划. 3.正式迁移,可咨询阿里云团队支持. 数据传输服务

由数据迁移至MongoDB导致的数据不一致问题及解决方案

本文是"我和MongoDB的故事"MongoDB征文比赛的二等奖得主杨庆麟的文章.下面我们一起来欣赏下. 故事背景 企业现状 2019年年初,我接到了一个神秘电话,电话那头竟然准确的说出了我的昵称:上海小胖. 我想这事情不简单,就回了句:您好,我是小胖,请问您是? "我就是刚刚加了你微信的 xxx 啊" 哦--他只是把我的微信昵称报出来了-- 随着深入沟通,了解到对方是某央企保密单位的大数据部门技术负责人,因为目前整个集团在进行数字化转型.在决策过程中,遇到了几个阻

Code First Migrations更新数据库结构(数据迁移) 【转】

背景 code first起初当修改model后,要持久化至数据库中时,总要把原数据库给删除掉再创建(DropCreateDatabaseIfModelChanges),此时就会产生一个问题,当我们的旧数据库中包含一些测试数据时,当持久化更新后,原数据将全部丢失,故我们可以引入EF的数据迁移功能来完成. 要求 已安装NuGet 过程示例 [csharp] view plaincopyprint? //原model //原model [csharp] view plaincopyprint? us

数据迁移,iis的各种坑

最近在搞iis发布  本来在家里实验过很多次 都是可以的 觉得很容易!但是到客户现场去试的时候发现各种坑 在这里给大家说说  望大家注意点哈! 首先:数据迁移先是备份数据库,然后再还原  这个地方一定要注意数据库版本问题,比如你如果在sqlserver2012上备份的,到sqlserver2008版本上还原就不行,因为这是高版本还原到低版本了 就不兼容,但是低版本还原到高版本就可以! 第二步:还原好了数据库,vs代码要配置服务器了,也要注意个问题:因为vs配置的是sqlserver的sql认证账

EF数据迁移,未将对象引用设置到对象实例

现象: 执行Enable-Migrations -force时就报"未将对象引用设置到对象实例"的异常: DbProviderServicesExtensions.GetProviderManifestTokenChecked 原因: 1.项目启动项的App.config或web.config里面没有配置 entityFramework节点或connectionStrings节点,EF在数据迁移时找不到数据库连接串信息 2.项目启动项配置错误,应该选择有entityFramework节

SQL SERVER几种数据迁移/导出导入的实践

SQLServer提供了多种数据导出导入的工具和方法,在此,分享我实践的经验(只涉及数据库与Excel.数据库与文本文件.数据库与数据库之间的导出导入). (一)数据库与Excel 方法1: 使用数据库客户端(SSMS)的界面工具.右键选择要导出数据的数据库,选择“任务”——“导出数据”,下图1,按照向导一步一步操作即可.而导入则相反,导入时,SQLServer会默认创建一张新表,字段名也默认跟导入的Excel标题一样,并且会默认字段数据类型等.当然在可以在向导进行修改.需要注意的是如果标题不是

mysql5.1.33到mysql5.5.33数据迁移的过程中要注意的问题

背景:公司要把测试库mysql5.1.33上面的数据迁移到mysql5.5.33上面,5.1上面的表大都是myisam表,为了尽量让数据一致,用了--lock-all-table选项 注意事项: 1,可以先导权限表,这样就可以把业务迁移到已经导成功的那一部份库上面 2,导之前要先把binlog禁掉,这样导入的速度会快一些,set global sql_log_bin=OFF,没有禁用binlog的情况下每小时大约只能导1G多的数据.禁用binlog后每个小时大概可以导入20G的数据 3,选择in

Django模型修改及数据迁移

Migrations Django中对Model进行修改是件麻烦的事情,syncdb命令仅仅创建数据库里还没有的表,它并不对已存在的数据表进行同步修改,也不处理数据模型的删除. 如果你新增或修改数据模型里的字段,或是删除了一个数据模型,你需要手动在数据库里进行相应的修改或者使用South.Django 1.7中已经集成了South的代码,提供了3个新命令: migrate: 用于执行迁移动作,具有syncdb的功能 makemigrations: 基于当前的model创建新的迁移策略文件 sql

mysql数据迁移

一. 数据迁移简介所谓的数据迁移,就是指将原有的数据库系统迁移到另外一个业务系统上数据迁移的原因是多种多样的,有可能是业务变更.硬件升级.平台切换或升级mysql数据库 迁移的注意事项:(1).相同版本可以迁移(2).注意版本可以使用的引擎(3).低版本可以向高版本进行数据迁移,高版本一般兼容低版本的特性(4).高版本的数据不能向低版本进行数据迁移,会出现数据不兼容的情况(5).迁移是请注意导出数据和备份数据,出现迁移失败时,立即启动备份方案,保证公司业务的正常运行(6).在数据迁移时,要选择用