GP standby切换成master
GP集群master服务器挂了,需要手动将standby切换成master,让集群继续对外提供服务1、执行gpactivatestandby激活standby[gpadmin@gp-segment5 ~]$ gpactivatestandby -d $MASTER_DATA_DIRECTORY-bash: gpactivatestandby: command not found找不到gpactivatestandby命令,猜测可能是环境变量的原...
mysql索引覆盖扫描优化
覆盖扫描即直接在索引中扫描出结果返回给客户端,不需要根据索引再去表上扫描结果,这种效率非常高。当extra列出现Using index时即为覆盖扫描现生产环境有个语句要优化,select create_day,remarks_format,count(*) from CDM.cdm_account_itemized GROUP BY create_day,remarks_format;执行需要20秒,看...
pg_stats没有表统计信息
数据库中表的统计信息保存在pg_statistic中,pg_stats是pg_statistic数据字典上的一个视图,可以方便我们看pg_statistic的内容。现要通过数据字段获取数据库中所有的表和对应的schema名字返回给服务端,这个时候pg_stats视图就派上用场了!但是遇到了一些表在pg_stats中没有信息,今天就一探究竟什么时候pg_stats...
Lock wait timeout exceeded; try restarting transaction
今天开发提交一个存储过程要发布到正式环境call report.proc_zerobuy(20161222,20161222,0);Lock wait timeout exceeded; try restarting transaction请求锁超时了再次执行这个存储过程,查看事务表:一共有两个事务在运行mysql> SELECT * FROM information_schema.INNODB_TRX\G;***********...
Failed to start Master instance in admin mode
GP无法启动,信息如下:[gpadmin@gp-master gpseg-1]$ gpstart20161223:09:32:09:002004 gpstart:gp-master:gpadmin-[INFO]:-Starting gpstart with args:20161223:09:32:09:002004 gpstart:gp-master:gpadmin-[INFO]:-Gathering information and validating the environment...20161223:09:32:09:002004...
mysql恢复drop表
drop误操作删除表后,恢复的大概流程是1、从备份中将表恢复到备份时间点2、找到drop操作点3、从binlog中找到备份点到drop点中间所有事件,并筛选出该表的事件4、执行找到该表的事件一、实验数据:mysql> select * from sale;+--------+---------+--------+| month | user_id | amount |+-------...
用python进行数据库数据迁移
现要将mysql数据库上每5秒查询一次结果并覆盖写入到postgresql中去,实现的方法有很多:一、用shell,将查询出来的数据放到中间文本,再load到pg中。这种方法数据要落地,而且这台服务器上必须要安装mysql和pg,才能远程连接。二、用kettle实现,在linux上使用较麻烦,杀鸡焉用牛刀。三、使用python,linux...
pt-table-checksum校验主从一致性,使用pt-table-sync修复数据不一致
pt-table-checksum和pt-table-sync是percona-toolkit(安装文档请见http://blog.itpub.net/29989552/viewspace-2020786/)工具中的功能,用来检测主从数据一致性和修复主从不一致。下面通过一组实验学习这两个功能的使用1、主库创建表并插入数据CREATE TABLE `NewTable` (`id` int(8) NULL ,...
python监控mysql主从脚本
闲来无事写了个python监控mysql主从的脚本,算是记录学习python阶段性的一个实战吧!#coding=utf-8import MySQLdbimport smtplibfrom email.mime.text import MIMEText#定义一个发邮件函数def mail(sub,content): mailto_list=["hz@ina.com"] ...
用python获取mysql中的表行数
import MySQLdb#打开数据库连接conn=MySQLdb.connect(host='172.30.249.57',port=3306,user='root',passwd='Welcome1>')#使用cursor()方法获取游标cursor1=conn.cursor(cursorclass=MySQLdb.cursors.DictCursor) cursor2=conn.cursor(cursorclass=MySQLdb.cursors.DictCursor) begin=True...
ImportError: No module named utils
[root@trcloud-gtt-dw python]cat email.pyimport smtplibprint 'aaa'[root@trcloud-gtt-dw python]# python email.pyaaaTraceback (most recent call last): File "email.py", line 3, in import smtplib File "/usr/lib64/python2.6/smtplib.py", line 46, in
mysql关联查询优化
mysql中任何关联查询都是nest loop(嵌套循环)操作,nest loop是在驱动表中取出一条数据,然后从被驱动表中逐行比较,把符合规则的放入结果集中,然后再取下一行,依次循环,驱动表每返回一行,被驱动表就要扫描一次。针对nest loop关联机制需要从下面几个方面着手优化:1、减少nest loop循环次数,使用小结果集做驱动表...
mysql安装依赖perl(Data::Dumper)
安装Percona mysql的时候出现依赖包错误[root@localhost upload]# rpm -ivh Percona-Server-server-56-5.6.27-rel76.0.el6.x86_64.rpm警告:Percona-Server-server-56-5.6.27-rel76.0.el6.x86_64.rpm: 头V4 DSA/SHA1 Signature, 密钥 ID cd2efd2a: NOKEY错误:依赖检测失败: ...
greenplum vacuum
greenplum中所有的delete并没有删除数据,而是将这数据标识为delete,而且update是delete加insert操作,随着业务的发展,表的大小就会越来越大。green提供的vacuum工具回收已经删除的数据。 简单的vacuum会回收空间并可再次利用,vacuum表时没有请求排它锁,其他操作仍可以对表进行读写。 vacuum full回收空间会跨...
一个服务器安装多个postgresql
下载postgresql94-libs-9.4.4-1PGDG.rhel6.x86_64.rpm postgresql94-9.4.4-1PGDG.rhel6.x86_64.rpm postgresql94-server-9.4.4-1PGDG.rhel6.x86_64.rpm postgresql94-contrib-9.4.4-1PGDG.rhel6.x86_64.rpm1、依次安装[root@localhost upload]# rpm -iv...
mysql checkpoint
checkpoint检查点主要是刷新脏页到磁盘上,使数据库达到数据状态一致性的工作。因为事务的提交只会刷新操作日志到磁盘,脏数据是异步刷新到磁盘,这个异步就是靠checkpoint。一、主要解决以下问题:1、恢复的时候减少前滚操作,减少恢复时间2、回收脏页,循环利用缓存池3、重做日志不可用,刷新脏页...
【MySQL】order by 原理以及优化
偏向于业务的(MySQL)DBA或者业务的开发者来说,order by 排序是一个常见的业务功能,将结果根据指定的字段排序,满足前端展示的需求。然而排序操作也是经常出现慢查询排行榜的座上宾。本文将从原理和实际案例优化,order by 使用限制等几个方面来逐步了解order by 排序。
greenplum 简单sql优化案例
数据仓库刚迁到GP上,发现下面sql语句运行起来并没有想象中的快,三个表总数据量150万,结果集70万条记录,却运行了7秒多,感觉有蹊跷。这里记录了整个优化过程。语句如下:selecta.pay_date,c.user_id,a.order_id,COALESCE(a.amount,0.00),d.product_type,d.base_rate,d.add_rate,...
relation with OID 637165 does not exist
执行存储报错对象表不存在,而且这个OID还会变,存储中有段如下代码,循环删除、删除并使用同一个临时表表名,猜测和临时表有关 。查找资料得知PostgreSQL版本<8.3(GP4.3.8是pg8.2引擎),如果一个PL / pgsql函数访问一个临时表,然后这个临时表删除并重新创建,并再次调用,该函数会失败,因为缓存的功能内容仍指向老 ...
gp_dump备份恢复greenplum
gp_dump是GP并行备份的备份工具,在运行gp_dump的时候master与所有的segment节点都开始备份,数据文件都是放在各种的节点服务器上,消耗的时间和数据量最大的、消耗时间最长的节点有关,这里就不全部介绍gp_dump所有的参数,可以自行gp_dump --help查看。下面只介绍下面实验用到的参数。...