- 博客(338)
- 资源 (3)
- 收藏
- 关注
原创 gcc4.9.2 for osx
安装GMPcd gmp*;mkdir build && cd build ../configure --prefix=/usr/local/gcc4.9.2 --enable-cxxmake;make install安装MPFRcd ../../mpfr*;mkdir build && cd build ../configure --prefix=/usr/local/gc
2015-01-27 16:16:15
1738
原创 文件信息收集工具
由于某些特殊的需求,需要查找主机上哪些文件占用了最大的空间,如果是普通的文件直接shell就搞定了,但是项目中这些文件生成的名称是有点特别,每个特定的事物只生成一个文件名,每个文件大小1GB,超过1GB之后,如果这个事务需要继续生成文件,将在文件名之后以数字后缀继续增长。所以自己做了个工具,可以收集、统计【TOP】等等,相对还是简单,但是足够好用了。ps:有个小bug不想去解决了,也不影响结果
2015-01-09 15:49:23
1306
原创 统计对象大小函数性能比较
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
原创 selinux导致故障一例
selinux导致故障一例这样的报错还是第一次遇到,排查过程没有头绪,一直纠结在child setpgid这个地方,还好在google过程中看到有人在设置selinux的时候的相关案例,于是想到从这方面入手。原因为selinux开启导致的,但是比较诡异的是从别的terminal ssh 跳转过去之后无法执行任何操作,包括配置selinux,后来还是从后台远程管理口登陆上去之后设置并重启,彻
2014-12-26 14:31:27
1946
原创 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
原创 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
原创 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
原创 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
原创 join update vs sub-selects update
开发说使用多表关联进行更新的时候发现没有正确的更新记录(事后发现是条件问题),之前一直没怎么使用关联更新,这次看了下,发现了个问题,当返回多行记录的时候并不会像传统的子查询更新那样报错,而是随机选择一个记录进行更新(_貌似最后一个?_) 因此,虽然关联更新会快很多,但是要考虑的这个不确定带来的隐患。```gtlions=# create table joinupdate1(id int,name
2014-12-01 16:39:57
1875
原创 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
原创 Firebird Database On MacOSX
Firebird Databasefirebird作为一款优秀的嵌入式(之一功能),用于桌面开发最合适不过了。之前也用过SQLITE做过一些小工具,但是在安全性方面表现不佳,而且不支持存储过程等特性,经过比较最终转向firebird,整理了下常用的命令语句和SQL。用户管理gsec -user sysdba -password masterkeymodify
2014-11-26 20:34:18
1397
原创 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
原创 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
原创 MacOSX 10.10 Pyqt4&Eric4
Step summary: 1. Install Qt42. Build and install sip3. Build and install QScintilla24. Build and install PyQt45. Build and install QScintilla2 Python bindings6. Install eric4 #option, i us
2014-11-22 14:48:26
2255
原创 Pycharm context menu disable RUN option
这个问题非常坑,正常来说一个文件右键出来的是 Run 选项, 但是最近几个文件都是 Unititest 的测试选项,每次要运行的时候都要手工去配置Run Option,在尝试了:0、 重置IDE配置1、 重装IDE2、 重建Project3、 将file放到Win下运行4、 就差重装系统了突然想到莫非是IDE太智能了,根据文件里面的内容自动的对点击右键菜单选项进行了调整,果
2014-11-21 09:05:14
2056
原创 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. 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
原创 Mac OSX下编译安装PostgreSQL
原先使用的是官方提供的安装包,但是安装包会创建postgre这个用户,在登陆界面看的有点不爽,搜索了半天竟然没有找到如何在osx下编译安装的教程,而且如果是按照官方文档的编译安装办法一定会让你崩溃,本着源码安装都类似的想法,根据以往在Linux下的经验竟然一把通过了,注意要安装COMMANDER LINE DEVELOPERS就是了。./configuremakesudo mk
2014-11-03 09:11:27
3175
原创 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
原创 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
原创 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
原创 大版本升级额外步骤
这里的大版本是指版本号的第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
2621
原创 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
原创 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
原创 统计对象大小信息的函数和子查询的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
原创 Linux发送监控指标到内部邮箱
数据库的健康监控是个非常重要的工作,重要的指标\KPI监控结果会有专门的采集、监控、告警系统来做相关事情。而一些不是非常重要的或者还在设计和调试阶段的相关指标,我只是想发送到我自己邮箱,本文就针对在服务器上配置邮件发送监控数据的过程说明。服务器版本为RHEL 6.2:[pg@gtlions ~]# cat /etc/issueRed Hat Enterprise Linux S
2014-10-15 14:17:49
2339
原创 检查数据倾斜分布
从传统数据库迁移到GP中一个重要的且经常被开发人员忽略的概念是数据分布,没有良好的设计表的分布键会导致严重的性能问题,以下函数将给开发人员及DBA检测一个表的数据倾斜情况。-- Function: gpmg.data_skew(character varying) -- DROP FUNCTION gpmg.data_skew(character varying); CREATE OR
2014-10-14 09:56:19
2240
原创 非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
2026
原创 判断正负数
#!/usr/bin/env python# -*- coding: UTF-8 -*-## Copyright [Gtlions Lai].# Create Date:# Update Date:__authors__ = '"Gtlions Lai" '"""判断正负数.主要功能描述. ClassFoo: 类概述. functionBar
2014-09-22 11:35:37
11819
原创 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
原创 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
原创 Greenplum query Oracle via DLINK
在系统日常生产过程中,如何从Oracle数据库同步一些配置表到GP库个问题。先来说说之前使用的方式:0. 使用第3方工具从Oracle导出纯文本格式,存放在本地;1. 使用GP外部表加载入库这种方式优点是对于需要同步大数据量的表的时候性能非常高;缺点是稍显麻烦,最主要的是非实时的,存在着任务调度周期和导出导入时间周期。对此我的解决办法是简化整个过程并实时查询:0.
2014-06-07 11:42:32
1430
原创 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
原创 LVM情况下如何确定磁盘映射关系
系统有如下磁盘空间信息,说明一个boot分区,一个lvm:[root@gtlions mapper]# df -h文件系统 容量 已用 可用 已用%% 挂载点/dev/mapper/vg_gtlions-lv_root 2.2T 19G 2.1T 1% /tmpfs
2014-03-28 22:33:20
9131
原创 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
原创 测试多列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
原创 ganglia的部分data_source无法打开
开发反馈集群的ganglia监控无法打开某项data_source的页面,处理过程如下:查看/var/log/messages:Jan 3 14:18:22 nn-h-server-02 /usr/local/ganglia-3.0.7/sbin/gmetad[23362]: server_thread() -1732651264 unable to write XML tree inf
2014-01-03 14:33:20
2275
原创 修改gp集群主机名称
在某些情况下,特别是在前期没规划好的情况下,后期运行过程中会遇到需要修改hostname&ip的情况,现状遇到的情况是需要调整hostname,对于某些已经投产或者的集群类的环境,修改这些信息尤为麻烦。大体步骤:0. 维护模式打开数据库,修改配置表 gp_segment_configuration 的hostname和address字段为新主机名称;1、停库,关闭维护模式;2、修改
2013-12-29 16:26:33
3500
原创 非oracle用户执行sqlplus
[oracle@ser02 ~]$ which sqlplus /u01/app/oracle/product/10.2.0/client_x64/bin/sqlplus[oracle@ser02 ~]$ ll /u01/app/oracle/product/10.2.0/client_x64/bin/sqlplus-rwxr-x--x 1 oracle oinstall 7137 O
2013-11-07 15:53:53
3721
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人