前言在Greenplum中,每个用户都会对应到资源队列中,资源队列张很多场景有很好应用,例如,很多人共用数据库,需要对不同的人开发不通的队列,控制资源,默认不指定则对应到pg_default资源队列对添加进来的sql,并不是所有的都会被资源队列所限制,默认情况就:select、selectinto、createtablenameasselect、declarecursor会被限制在资源队列中,如果
前言FTS(FaultToleranceServe)是GreenPlum中的故障检测服务,是保证GP高可用的核心功能。GreenPlum的Segment的健康检测及HA是由GPMaster实现的,GPMaster上面有个专门的进程–FTS进程,它可以快速检测到Primary或者Mirror是否挂掉,并及时作出Primary/Mirror故障切换。一、FTS架构GreenPlum的Segment的健
前言GPDB数据迁移可以通过全量恢复的方式,如果原来有3个机器,每个机器上面有2个Primary,2个Mirror,那么可以通过扩展3部机器,变成每部机器上一个Primary,1个Mirror,在迁移的过程中,需要保证:原有的机器利用Primary+Mirror可以组成一个完成的原有集群DB,可以正常启动,这样才能全量恢复,将数据恢复到扩展的机器上。如下图,将原有机器的P1/P2/P3/M0/M2
一、备份原理:GPDB4.x中:是基于文件复制同步,如果个别segment宕机,整个数据库依然可以运行,当Mirror宕机时,Primary会记录在这个阶段文件变化的数据块,等到Mirror恢复了,再把数据块复制过去;当Primary宕机了,那么对于的Mirror节点就会替换Primary,记录文件变化的数据块,等到Primary恢复了,它就变成了Mirror,丢失的数据就会被复制过来,这里虽然可
一、Greenplum分区原理分区表意思是将一个大表在物理上分割成几块,GPDB中的分区表和PostgreSQL中实现原理一样,都是用过表继承、约束来实现。但是与PostgreSQL也有所不同,在PostgreSQL中,一个父表,多个子表来实现分区表,需要手动向子表插入数据,如果向父表插入数据,则直接会被插入到父表中,在GPDB中,可以直接想父表插入数据,便可以根据约束直接自动向对应的子表插入数据
一、PostgreSQL表存在的隐含字段oid:行的对象标识符(对象ID)。注意:这个字段只有在创建表的时候使用了WITHOIDS,或者是设置了配置参数default_with_oids时出现,这个字段的类型是oid(和字段同名)。OID是32位的量,是在同一个集群内通用的计数器上赋值的。对于一个大型或者长时间使用的数据库,这个计数器是有可能重叠的。因此,OID是唯一的是非常错误的想法.table
一、回收磁盘空间在PostgreSQL中,使用delete和update语句删除或更新的数据行并没有被实际删除,而只是在旧版本数据行的物理地址上将该行的状态置为已删除或已过期。因此当数据表中的数据变化极为频繁时,那么在一段时间之后该表所占用的空间将会变得很大,然而数据量却可能变化不大。要解决该问题,需要定期对数据变化频繁的数据表执行VACUUM操作。现在新版PostgreSQL是自动执行VACUU
一、PostgreSQL参数类型PostgreSQL系统所有的系统参数配置项对大小都不敏感,主要有Bool、Int、浮点数、字符串、枚举值参数的修改,有些需要重启数据库、有些普通用户直接修改、有些需要超级用户才能修改生效,分下面几类:1、internal:只读参数,已经写死了,不能在修改2、postmaster:需要重启数据库才能生效3、sighup:不需要重启数据库,给postmaster进程发
一、shared_buffers与shmmax,shmall,max_connections的关系1.1、shared_buffers与max_connections的关系shared_buffers是查询缓存,设置比较大可以提高PostgreSQL的效率,一般建议设置为系统内存的3/4,但是必须不少于128KB,并且不少于16KB乘以max_connections 1.2、shared
一、字符串与日期相互格式化函数函数返回类型描述例子to_char(timestamp,text)text把时间戳转换成字串to_char(current_timestamp,'HH12:MI:SS')to_char(interval,text)text把时间间隔转为字串to_char(interval'15h2m12s','HH24:MI:SS')t
一、数组类型创建表数组类型,要求数组内的元素属于同一种类型,当出现Nofunctionmatchesthegivennameandargumenttypes.Youmightneedtoaddexplicittypecasts.报错的时候,说明list的格式和插入数据或者修改数据的格式不同导致的,类型很重要,需要保证类型相同才可以操作 1.1、建表指定数组类型只需要在表字段类型后面加
一、PostgreSQL的自增idserial1.2、serial的本质我们在创建表时,经常需要使用到自增id,往往这么写,createtabletest(idserial,#使用serial来创建一个自增idnamevarchar(64)notnull)通过serial创建自增id,同时会创建属于这个表的自增序列,并将id字段设置为notnullserial和bigserial类型不是真正的类型
当发现linuxifconfig命令找不到对应的ip地址的时解决办法网卡配置文件保存在:/etc/sysconfig/network-scripts/目录下,将onboot修改为yes,然后重启网卡,才能启动,重启网卡命令:servicenetworkrestart找到对应的网卡配置文件设置为启动时激活设备重启网卡
一、原理在数据库PostgreSQL中,一个客户端到服务器连接实际上是一个tcpsocket连接,tcp连接是虚连接,一方非正常退出(如断电),另一方会继续维持这个连接。举个例子:一个客户端电脑正常连上服务器后,强行拔掉电源造成人为断电,重新启动电脑,再此连上服务器。用SQL语句select*frompg_stat_activily查看服务器的所有连接,会发现本客户端的连接除了本次外,断电前的连接
一、python正则表达式包含在‘re’模块中1、导入re模块:importre 2、re.match函数re.match从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。match=re.match('www','www.runoob.com')printmatch.group(0)#匹配结果printmatch.span()#匹配结果的起始和
进程通信方式一、共享内存(进程安全,效率高)共享变量:multiprocessing.Value共享数组:multiprocessing.Array 方式二、Manager对象:Mananger包括:list,dict,Namespace,Lock,RLock,Semaphore,BoundedSemaphore,Condition,Event,Queue,Value,ArrayMana
一、XSS攻击原理:XSS攻击是利用网站的漏洞,例如用户输入之类的post数据到服务器,服务器正常保存,输出到客户端,利用用户端和服务端代码漏洞,没有检测机制,输入恶意代码给服务器,服务器返回之后,客户端执行了这个恶意代码。简单的来说就是:想尽一切办法,让客户端执行我的js代码举例:<formaction=""method="get"><inputtype="text"name=
前言:先了解第一方和第三方cookie概念Cookie是一个域服务器存储在浏览器中的一小段数据块,只能被这个域访问,谁设置则谁访问。 第一方Cookie:比如,访问www.a.com这个网站,这个网站设置了一个Cookie,这个Cookie也只能被www.a.com这个域下的网页读取。 第三方Cookie:比如,访问www.a.com这个网站,网页里有用到www.b.com网站
select与poll工作原理:1、select主要是采用轮询的方式来实现对就绪的fd处理:2、poll和select基本相同,主要不同在于poll没有对fd数量限制 工作模型:工作流程:1、用户态创建了网络IO连接,假设一个socket连接就是一个fd文件描述符,那么将fd添加到fd_set集合中2、将fd_set集合从用户态copy到内核态3、遍历这个fd_set集合,找出所有已经就
epoll主要采用对已就绪的fd进行轮询操作一、epoll触发方式epoll支持ET和LT两种触发方式ET(边缘触发):Nginx就是采用ET触发方式,只支持no-block方式,当一个fd缓冲区就绪的时候,只会发送一次事件触发,而不会管缓冲区的数据是否已经被读取,都不会再发送第二次LT(边缘触发):支持no-block和block两种方式,当一个fd缓冲区就绪时,只要缓冲区有数据,就会不停的发送
一、正确的缓存设置顺序:1、读:先从DB读取之后,再写到cache中2、更新:先更新DB中的数据,再删除cache(必须是删除,而不是更新cache)错误操作1,更新DB,同时写入cacheeg:进程A写了cache,此时进程B打断了A,又写cache,并写了DB,再次轮到进程A继续写DB,此时会导致,cache中保存的是B写入的数据,而DB中保存了A写入的数据,最终数据不一致,而且这个cache
前言:redis持久化方式分为两种:RDB快照和AOF方式(默认为RDB模式),当Redis服务器重启的时候,会自动恢复数据,优先从AOF中恢复,其次才从RDB中恢复 一、RDB快照模式RDB方式原理:当redis需要做持久化时(执行SAVA或者BGSAVA命令,或者是达到配置条件时执行),redis会fork一个子进程,子进程将数据写到磁盘上一个临时RDB文件中,当子进程完成写临时文件
前言:和MySQL主从复制的原因一样,Redis虽然读取写入的速度都特别快,但是也会产生读压力特别大的情况。为了分担读压力,Redis支持主从复制,Redis的主从结构可以采用一主多从或者级联结构,Redis主从复制可以根据是否是全量分为全量同步和增量同步。下图为级联结构。 1全量同步Redis全量复制一般发生在Slave初始化阶段,这时Slave需要将Master上的所有数据都复制一份
前言:一般来说,出现中文乱码,都是客户端和服务端字符集不匹配导致的原因。(默认未指定字符集创建的数据库表,都是latinl字符集,强烈建议使用utf8字符集) 保证不出现乱码的思想:保证客户端、服务端、数据库、表字符集统一坑:有的时候,cmd或者linux系统字符集问题,其实数据库是正确的,只是我们执行命令在终端看到的是乱码而已,这时需要设置linux系统字符集1、查看liunx系统字符集:ca
索引优化原则1、最左前缀匹配原则,联合索引,mysql会从做向右匹配直到遇到范围查询(>、<、between、like)就停止匹配,比如a=1andb=2andc>3andd=4如果建立(a,b,c,d)顺序的索引,d是用不到索引的,如果建立(a,b,d,c)的索引则都可以用到,a,b,d的顺序可以任意调整。 2、=和in可以乱序,比如a=1andb=2andc=3建立
一、引擎简介 MyISAM是MySQL的默认数据库引擎(5.5版之前),由早期的ISAM(IndexedSequentialAccessMethod:有索引的顺序访问方法)所改良。虽然性能极佳,但却有一个缺点:不支持事务处理(transaction)。不过,在这几年的发展下,MySQL也导入了InnoDB
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号