
****EMC Pivotal***
文章平均质量分 67
gtlions
FuZhou
展开
-
GP BUG APPEND TABLE ADD COLUMN
tail -f gpdb-2013-10-16_000000.csv |grep tb_csv_gn_pdp_session2013-10-16 09:03:56.081282 CST,"user","db",p90979,th1834501888,"172.28.8.250","58013",2013-10-16 09:03:55 CST,3153486,con468840,cmd494,s原创 2013-10-22 16:22:06 · 1483 阅读 · 0 评论 -
大版本升级额外步骤
这里的大版本是指版本号的第2位数字,比如4.2.7.3升级到4.3.3.1,从4.2升级到4.3,会出现无法启动问题,提示catalog版本不兼容。而如果只是在第2位数字之内的相同版本的升级没有此类问题;最前面的那个版本数字号由于目前还没有出现对应版本,所以没有相关问题。[gpadmin@gtlions60 ~]$ gpstart -a20141019:12:40:51:004622原创 2014-10-19 12:55:08 · 2622 阅读 · 0 评论 -
Mac OSX下编译安装PostgreSQL
原先使用的是官方提供的安装包,但是安装包会创建postgre这个用户,在登陆界面看的有点不爽,搜索了半天竟然没有找到如何在osx下编译安装的教程,而且如果是按照官方文档的编译安装办法一定会让你崩溃,本着源码安装都类似的想法,根据以往在Linux下的经验竟然一把通过了,注意要安装COMMANDER LINE DEVELOPERS就是了。./configuremakesudo mk原创 2014-11-03 09:11:27 · 3175 阅读 · 0 评论 -
about gpdb password md5
about gpdb password md5gtlions=# alter user gtlions password 'gtlions';ALTER ROLEgtlions=# select * from pg_shadow; usename | usesysid | usecreatedb | usesuper | usecatupd | userepl |原创 2014-11-26 10:39:31 · 1240 阅读 · 0 评论 -
Upgrade Ver 4.3.x from 4.2.x
级到遇到个小问题,解决细节记录如下。[gpadmin@wx60 ~]$ gpmigrator /usr/local/greenplum-db-4.2.7.2 /usr/local/greenplum-db-4.3.3.120141020:10:29:05:005944 gpmigrator:wx60:gpadmin-[INFO]:-Beginning upgrade20141020:10:原创 2014-10-20 11:24:27 · 1363 阅读 · 0 评论 -
Can rename table but can not truncate table
一个表无法truncate但是可以rename,这个乍听起来觉得好奇怪,下面模拟该过程。3个session:session1执行truncate和rename操作;session2执行lock表操作;session3进行监控。 session1:[gpadmin@wx60 contrib]$ psql gtlionspsql (8.2.15)Type "help"原创 2014-10-21 14:45:42 · 1240 阅读 · 0 评论 -
利用管道迁移数据
磁盘空间不足的情况下,利用命名或者匿名管道迁移和导入数据;需要注意命名管道的权限问题。0. Name PIP 0[pg@h1 ~]$ psql gtlions -ac "select 't3' tab,count(*) from t3 union all select 't4',count(*) from t4;"select 't3' tab,count(*) from t3 uni原创 2014-11-06 09:25:37 · 1049 阅读 · 0 评论 -
gp_gather_object_size script
由于数据库对象(table)太多太大,而且业务比较繁忙,在收集统计对象大小信息的过程中经常会增删改对象,导致数据库报对象不存在的错误,于是写了个脚本用于完成上述功能,并到处到csv文件便于分发相关维护、开发人员。gp_gather_object_size script#!/usr/bin/env python# -*- coding: UTF-8 -*-## Copyright [G原创 2014-12-01 10:06:23 · 1055 阅读 · 0 评论 -
idle in transaction
检查库的时候发现有8个超过17个小时的会话,执行状态为 idle in transaction。从文档上可以看到解释:idle in transaction (waiting for client inside a BEGIN block)通知开发提交或者回滚,抑或杀之。-EOF-原创 2014-11-25 09:00:53 · 4383 阅读 · 2 评论 -
join update vs sub-selects update
开发说使用多表关联进行更新的时候发现没有正确的更新记录(事后发现是条件问题),之前一直没怎么使用关联更新,这次看了下,发现了个问题,当返回多行记录的时候并不会像传统的子查询更新那样报错,而是随机选择一个记录进行更新(_貌似最后一个?_) 因此,虽然关联更新会快很多,但是要考虑的这个不确定带来的隐患。```gtlions=# create table joinupdate1(id int,name原创 2014-12-01 16:39:57 · 1875 阅读 · 0 评论 -
Left Join
开发有个语句执行了超过2个小时没有结果,询问我到底为什么执行这么久。语句格式如下select * from tgt1 a left join tgt2 b on a.id=b.id and a.id>=6 order by a.id;这个是典型的理解错误,本意是要对a表进行过滤后进行[]left join]的,我们来看看到底什么是真正的[left join]。[gpadmin@mdw原创 2014-12-02 17:18:17 · 1294 阅读 · 0 评论 -
SQLSTATE58030
在优化一条SQL的时候遇到了执行错误gtlions=# select t1.telnumber,t2.ua,t2.url,t1.apply_name,t2.apply_name from tb1 t1gtlions-# left outer join tb2 t2 on t1.sid = t2.ipsid gtlions-# where t1.sum_date=20141128 a原创 2014-12-02 17:27:26 · 3445 阅读 · 0 评论 -
GPDB current transaction is aborted
在用Python操作GPDB的时候遇到报错如下gpmg.manager_tabl1eerror 'ERROR: relation "gpmg.manager_tabl1e" does not exist' in 'select pg_total_relation_size('gpmg.manager_tabl1e');'gpmg.manager_tableerror 'ERROR:原创 2014-12-18 16:56:17 · 1378 阅读 · 0 评论 -
GPDB 并行加载测试
测试文件信息10G Dec 12 14:10 A111G Dec 12 14:32 A210G Dec 12 14:10 B111G Dec 12 14:35 B2GPFDIST方案一 单台服务器drop table if exists host_1;drop EXTERNAL TABLE if exists ip_session_gpfs_ext_1_host;dro原创 2014-12-12 16:14:14 · 1931 阅读 · 0 评论 -
统计对象大小信息的函数和子查询的Bug
I hava below two statement sql:0. not in subqueryselect a.schemaname, pg_size_pretty(pg_total_relation_size(a.schemaname||'.'||a.tablename)) from pg_tables a where a.tablename not in (select b.tab原创 2014-10-15 14:36:32 · 1719 阅读 · 0 评论 -
Index statistics collected bug
SQL执行引擎会从pg_stats、pg_class等相关系统字典表、视图获取生成最佳执行计划的数据,如果相关字典视图的数据不准确就没有办法生成良好的执行计划。发现以下Bug一枚。0. 插入数据之后,新创建的索引不会自动更新收集索引的pg_class.relpages\pg_class.reltuples信息;1. 对一个表,当执行UPDATE\DELETE之后,对表执行VACUU原创 2014-10-20 11:15:57 · 1202 阅读 · 0 评论 -
greenplum_externaltable_error_http_code_404
开发反馈在使用外部表的时候遇到ERROR: http response code 404错误,经过测试和模拟得以解决。首先模拟下问题:[gpadmin@gtlions50 ~]$ psql gtlionspsql (8.2.15)Type "help" for help.gtlions=# drop external table ext_rt_recv_msg_gprs;原创 2014-04-01 19:44:48 · 5351 阅读 · 0 评论 -
gp借助类DBLINK访问oracle性能测试
0. Oracle测试数据准备:[oracle@db1 ~]$ sqlplus system/000000SQL*Plus: Release 11.2.0.3.0 Production on Tue Mar 25 10:26:06 2014Copyright (c) 1982, 2011, Oracle. All rights reserved.C原创 2014-03-26 19:47:27 · 1701 阅读 · 0 评论 -
测试多列DK的选择性问题
为了测试多个DK分布键情况下,多表关联是否可以镜像segment过滤,测试如下:[gpadmin@gtlions50 ~]$ psql gtlionspsql (8.2.15)Type "help" for help.gtlions=# create table gtt1(id int,name character varying(5)) distributed by (i原创 2014-03-26 19:45:18 · 1193 阅读 · 0 评论 -
Greenplum同步到Oracle
开发提出需要从Greenplum同步到Oracle的解决方案,写了个脚本用于定时调度处理。#!/bin/sh#copy_gp_2_ora.shif [ $# -ne 1 ]; then echo "Usage: sh $0 tablename" exit 1fiTABLENAME=$1 psql -h -U \timing off原创 2014-06-07 11:43:30 · 1984 阅读 · 0 评论 -
Greenplum query Oracle via DLINK
在系统日常生产过程中,如何从Oracle数据库同步一些配置表到GP库个问题。先来说说之前使用的方式:0. 使用第3方工具从Oracle导出纯文本格式,存放在本地;1. 使用GP外部表加载入库这种方式优点是对于需要同步大数据量的表的时候性能非常高;缺点是稍显麻烦,最主要的是非实时的,存在着任务调度周期和导出导入时间周期。对此我的解决办法是简化整个过程并实时查询:0.原创 2014-06-07 11:42:32 · 1430 阅读 · 0 评论 -
about greenplum collection tool
three collection tool for greenplum:pstack、strace、gcore. [gpadmin@gtlions5913 ~]$ ps -ef | grep postgres|grep data原创 2014-06-07 11:44:34 · 1010 阅读 · 0 评论 -
GreenPlum upgrade to 4.2.5.0
[gpadmin@o564gtser1 ~]$ gpstate 20131020:13:22:59:004254 gpstate:o564gtser1:gpadmin-[INFO]:-Starting gpstate with args:20131020:13:22:59:004254 gpstate:o564gtser1:gpadmin-[INFO]:-local Greenplum原创 2013-10-20 13:34:57 · 2336 阅读 · 0 评论 -
检查数据倾斜分布
从传统数据库迁移到GP中一个重要的且经常被开发人员忽略的概念是数据分布,没有良好的设计表的分布键会导致严重的性能问题,以下函数将给开发人员及DBA检测一个表的数据倾斜情况。-- Function: gpmg.data_skew(character varying) -- DROP FUNCTION gpmg.data_skew(character varying); CREATE OR原创 2014-10-14 09:56:19 · 2240 阅读 · 0 评论 -
非super user管理会话
在gp中取消或者中断某个用户的超长时间或者SQL存在问题的会话,如果无法拥有超级用户将无法执行该类操作。 首先我们创建两个用户t1、t2,并且使用t1登录到数据库。[gpadmin@wx60 ~]$ psql gtlionspsql (8.2.15)Type "help" for help. gtlions=# select version();原创 2014-10-11 10:02:19 · 2027 阅读 · 0 评论 -
How vacuum template0
[pg@h1 ~]$ vacuumdb --freeze template0vacuumdb: could not connect to database template0: FATAL: database "template0" is not currently accepting connections[pg@h1 ~]$ psql template0psql: FATAL: da原创 2014-11-18 16:05:41 · 1533 阅读 · 0 评论 -
TRUNCATE TABLE HANG
I hava a table gtlions.cannottruncatetable, ZERO rows in this table, i can DELETE from the table, but can not TRUNCATE, hang the statement sql.Detail info below:###################On the session原创 2014-10-16 13:50:49 · 1560 阅读 · 0 评论 -
About stats collected
pg_class.relpages pg_class.reltuples只是近似值,和实际数据会有点误差;新建空表,首次insert对自动收集和更新统计信息,影响的表pg_class\pg_stats;对于insert操作:analyze会更新表pg_class\pg_stats,而vacuum或者acuum full只会更新pg_class,并不会更新任何统计信息pg_stats;原创 2014-10-17 17:16:28 · 1201 阅读 · 0 评论 -
统计对象大小函数性能比较
gtgpdb=# select * from gp_toolkit.gp_size_of_table_disk t where sotdtablename like 'rt_ok%'; sotdoid | sotdsize | sotdtoastsize | sotdadditionalsize | sotdschemaname | sotdtablename原创 2015-01-05 13:14:59 · 1298 阅读 · 0 评论