Greenplum数据库升级实务(上)

任何系统的升级都有个量变到质变的过渡:版本相差小的时候,通常很简单,版本相差大的时候,就是一场噩梦。不过版本相差小的时候,大伙儿往往安于现状。本文实际记录从GP4.2.7.2到4.3.5.0的升级过程,从版本号看相差不大,但是GP的版本命名中,第二位的变化就已经是大升级了。另需说明的是,本文升级的GP数据库规模不小,用户较多,管理混沌,在加上GP实在是有点儿脆弱(相比oracle等),所以遇到了较多元数据问题(请参加前4篇)。

起点

  • 数据库版本:Greenplum Database 4.2.7.2 build 1(PostgreSQL 8.2.15)
  • 自定义函数:$GPHOME/lib有使用uuid-1.6.2.tar.gz编译的oracle自定义函数
  • 没有append-only tables
  • ETL里有使用external tables
  • 没有使用extensions,但安装了pljava和plr,没有安装madlib
  • 图形管理界面版本:Greenplum Command Center 1.2.0.1 build 2
  • 有standby master,有mirror

目标

  • 数据库版本:Greenplum Database 4.3.5.0 build 1(PostgreSQL 8.2.15)
  • 图形管理界面版本:Greenplum Command Center 1.3.0.0 build 91

准备

介质

时间估计

登录master节点,上传并解压estimate_42_to_43_migrate_time.zip,得到estimate_42_to_43_migrate_time.sql,切换到gpadmin用户

$ psql -d databasename -f estimate_42_to_43_migrate_time.sql
$ psql -d databasename -c "select estimate_42_to_43_migrate_time();"
WARNING:  "work_mem": setting is deprecated, and may be removed in a future release.
                                                                   estimate_42_to_43_migrate_time                            

-----------------------------------------------------------------------------------------------------------------------------
---------------------------------------
 estimate_42_to_43_migrate_time() version: 0.3 run at 2015-05-07 13:52:48
 GPDB version: PostgreSQL 8.2.15 (Greenplum Database 4.2.7.2 build 1) on x86_64-unknown-linux-gnu, compiled by GCC gcc (GCC)
4.4.2 compiled on Feb 25 2014 18:05:04
 Database: databasename
 Number of primary segments: 88
 Num of AO objects: 0
 Num of heap objects: 102593
 Estimated migrate time: 01:07:14
(7 rows)

如果有多个数据库,需要针对每个数据运行上面的脚本,并加和时间。

文件备份

通知所有数据库用户备份自己copy到服务器上的文件

数据一致性检查

这一检查非常重要,虽然官方文档上写的是推荐,但是只要存在错误,基本上就不能升级了,必须想办法解决。官方文档上写的“a few weeks”之前执行这一操作的建议,非常必要,GP库到了一定量级,错误几乎是必然的,解决这些错误真的是要花费以星期计的时间。

  • 使用GP管理员用户登陆master
  • 重启数据到restricted mode
$ gpstop -M fast
$ gpstart -R
$ $GPHOME/bin/lib/gpcheckcat  -p 5432 databasename 
  • 使用GP管理员用户登陆master,执行gpstate检查seg node状态,如有failed seg,执行gprecoverseg和gprecoverseg -R修复
时间: 2024-10-03 09:35:48

Greenplum数据库升级实务(上)的相关文章

Greenplum数据库扩容实务(上)-准备工作

任何分布式系统都要面对的事儿就包括扩容,不然分布式系统存在的意义就大打折扣了,这篇就介绍一下对GP进行扩容的准备过程,事实上,扩容的实施是个非常简单的过程,主要要做的就是准备. 准备 创建主机信息文件 用GP管理员OS用户gpadmin创建6个主机信息文件: /home/gpadmin/20150523exp/currenthosts:当前已经存在的所有主机的主机名 /home/gpadmin/20150523exp/currentnodes:当前已经存在的所有主机的主机名,以及seg node

探索Oracle之数据库升级二 11.2.0.3升级到11.2.0.4完整步骤

探索Oracle之数据库升级二  11.2.0.3升级到11.2.0.4完整步骤 说明:         这篇文章主要是记录下单实例环境下Oracle 11.2.0.1升级到11.2.0.3的过程,当然RAC的升级是会有所不同.但是他们每个版本之间升级步骤都是差不多的,先升级Database Software,再升级Oracle Instance. Oracle 11.2.0.4的Patchset No:19852360下载需要有Oracle Support才可以.  Patchset包含有7个

iOS 数据库升级 如何进行操作?

在iOS开发中,经常会遇到数据库升级,修改删除表的某些字段,这就需要我们来进行处理了,下面分析两种数据库的升级处理问题! 1.比如:我们常使用fmdb或者其他方式创建sqlite数据库,但是由于版本迭代问题,常常有需求要更新数据库,比如加字段.删除.修改字段等等,怎么样才能升级数据库且保持原来存的数据有效呢,上代码: const static NSInteger FAMILY_LIST_DB_MANAGER_VER = 1; @implementation KSFamilyListDBManag

Python脚本访问Greenplum数据库安装指导

安装前准备 (1)操作系统(系统上面要安装一些必备的开发工具(比如gcc等)) linux-82:/home/PyODBC # cat/etc/SuSE-release SUSE Linux EnterpriseServer 11 (x86_64) VERSION = 11 PATCHLEVEL = 1 (2)安装所需的软件包 greenplum-connectivity-4.3.0.0-build-2-SuSE10-x86_64.zip --GP官网下载,GP的JDBC和ODBC驱动 pyod

Perl脚本访问Greenplum数据库安装指导

安装前准备 (1)操作系统(系统上面要安装一些必备的开发工具(比如gcc等)) linux-82:/home/PlODBC # cat/etc/SuSE-release SUSE Linux EnterpriseServer 11 (x86_64) VERSION = 11 PATCHLEVEL = 1 (2)安装所需的软件包 greenplum-connectivity-4.3.0.0-build-2-SuSE10-x86_64.zip --GP官网下载,GP的JDBC和ODBC驱动 DBI-

探索Oracle之数据库升级十 12c(12.1.0.2)CPU 19774304

探索Oracle之数据库升级十 12c(12.1.0.2)CPU 19774304 一.   补丁描述 参考metalink doc: (Doc ID 19774304.8) Bug19774304 - 12.1.0.2 Bundle Patch 2 for Engineered Systems and DB In-Memory (Nov2014) (Doc ID 19774304.8) 二.   补丁包含 19649591 DATABASE BUNDLE PATCH 12.1.0.2.2 (O

探索Oracle之数据库升级四 11.2.0.4.0 PSU 11.2.0.4.3

探索Oracle之数据库升级四 11.2.0.4.0 PSU 11.2.0.4.3   一.  检查当前数据库PSU号: [[email protected] ~]$ cd/DBSoft/Product/11.2.4/db_1/OPatch/ [[email protected] OPatch]$ ls crs docs emdpatch.pl jlib ocm opatch opatch.bat opatchdiag opatchdiag.bat opatch.ini opatch.pl op

自动化升级工具之客户端升级工具之数据库升级操作

目前客户端工具还是一个以Winform的窗口程序,文件结构如图: 图1 1.两个config的配置文件,分别一个是连接本地开发环境下在数据库,另外一个基本参数配置文件 A.DB.config为数据库连接内容如下: <DBConfig name="dbtestDBByMP" connectionString="server=(local);database=dbtest;uid=sa;pwd=123456;" providerName="System.

Winform 自定义程序安装向导(可用于数据库升级等)

在安装包,数据库升级过程中,大部分使用的是install shield.它的功能非常强大,不过就是太臃肿了. 我们可能希望能够自定义,更加灵活一下. 界面如: 这是来自于codeproject上的一个开源项目,大家可以到这里面来更深入的了解,使用. TSWizard