PG主从数据库搭建 环境 操作系统1:Windows Server 2012(X64) 操作系统2:CentOS 7 数据库:PostgreSQL 10.9 CentOS 7 安装 Postgresql...2、安装客户端 yum install postgresql10 3、安装服务端 yum install postgresql10-server 4、初始化pg /usr/pgsql-10/bin/postgresql...1、使用postgres用户登录(PostgresSQL安装后会自动创建postgres用户,无密码) su - postgres 2、登录postgresql数据库 psql 3、创建用户和数据库并授权...image 2、修改/var/lib/pgsql/10/data/pg_hba.conf文件,增加下图红框部分内容 ?...2、修改pg_hba.conf 3、修改postgresql.conf 4、重启数据库 配置从库 1、拷贝数据 2、配置recovery.conf 3、配置postgresql.conf 4、配置完启动数据库
PG 数据库和 oracle 数据库的查看数据库版本的 sql 语句还不一样。 PG 数据库版本查看方法如下: select version() 演示效果图: ?
本文主要用来记述pg数据库的相关操作和异常排查指南,继上一篇博客之后,异常的频繁更新,导致死亡元组指数级增长之后,空间占用也成倍增长,逻辑问题导致了数据库问题,但细想之下也发现,当pg在面对海量数据的更新删除之后...并不会影响到连接数,如果数据库的数量超过了autovacuum_max_workers那么当一个数据库清理完成之后,会立马清理未清理的数据库,这有点像线程池哈哈。...如果某个表太大占用了太多时间,导致其他表无无法清理,当其他数据库的工作者清理完之后,会来清理这个数据库的其他未清理的表,工作者会避免做重复的工作,已经被清理的表不会再次经理,对一个数据库所拥有的最大工作者数量并没有限制...select proname, pronargs, prosrc from pg_proc where proname='count'; 如上参考的是pg的数据库count函数,意思类似,这查看函数的功能太友好了...总结 知道的越多不知道的越多,即使各种数据库直接都有相通的思想和不同的实现,关于pg数据库元祖分析和事务xid冻结,请持续关注我后续博客 引用 MySQL 中 count() 和 count(1) 有什么区别
Postgres数据库事务隔离级别介绍 ---- 0. What is Database Transaction?...数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。...事务是数据库运行中的一个逻辑工作单位,由DBMS中的事务管理子系统负责事务的处理。...I –Isolation 隔离性是当并发访问数据库时,数据库每一个事务,不能被其他事务的操作所干扰,多个并发事务之间要相互隔离。...做复杂查询和更新的应用可能需要比读已提交模式提供的更严格一致的数据库视图。
MIT 6.830数据库系统 -- lab four 项目拉取 原项目使用ant进行项目构建,我已经更改为Maven构建,大家直接拉取我改好后的项目即可: https://gitee.com/DaHuYuXiXi...各个lab的实现,会放在lab/分支下。...---- 事务 事务是一组以原子方式执行的数据库操作(例如插入、删除和读取),也就是说,要么所有的动作都完成了,要么一个动作都没有完成,而数据库的外部观察者并不清楚这些动作不是作为单个不可分割动作的一部分完成的...tid, boolean commit) { // some code goes here // not necessary for lab1|lab2...,也就是说,如果数据库系统崩溃(在transactionComplete以外的点),或者如果用户显式中止事务,则在系统重启(或事务中止)后,任何正在运行的事务的效果都将不可见,可通过运行一些事务并显式中止数据库服务器来验证这一点
各个lab的实现,会放在lab/分支下。...,Table 并不是数据库的操作单位。...数据库进行操作的操作单位是 Page. 每个 DBFile 会被划分为多个 Page. 数据库每次查询也是查询某个 DBFile 的某个 Page....---- 我们先来回顾一下数据库中相关基本概念: 关系是一张表,表中的每行(即数据库中的每条记录)就是一个元组,每列就是一个属性。 在二维表里,元组也称为记录。...---- Catalog: simpleDB只有一个全局单例的数据库,其中Catalog作为目录管理数据库下所有表 Catalog核心源码如下: /** * The Catalog keeps
MIT 6.830数据库系统 -- lab two 项目拉取 原项目使用ant进行项目构建,我已经更改为Maven构建,大家直接拉取我改好后的项目即可: https://gitee.com/DaHuYuXiXi...各个lab的实现,会放在lab/分支下。 Lab Two lab2必须在lab1提交的代码基础上进行开发,否则无法完成相应的练习。此外,实验还提供了源码中不存在的额外测试文件。...---- 练习三 – HeapFile Mutability 本节我们将实现修改数据库表文件的方法,我们从单独的页面和文件开始,主要实现两种操作:增加元组和移除元组 移除元组:为了移除一个元组,我们需要实现...e.printStackTrace(); } } } ---- 练习七 - 查询解析 本节我们将会使用SimpleDB中已经编写好的SQL解析器来实现基于SQL语句的查询 首先我们需要创建数据库表和数据库目录...data.txt 2 "int,int" 接下来创建数据库目录文件catalog.txt: data (f1 int, f2 int) 该文件会告诉SimpleDB数据库中包含一个表:data,其结构为两个
MIT 6.830数据库系统 -- lab six 项目拉取 原项目使用ant进行项目构建,我已经更改为Maven构建,大家直接拉取我改好后的项目即可: https://gitee.com/DaHuYuXiXi...各个lab的实现,会放在lab/分支下。 ---- 引言 在本实验中,我们将要实现基于日志的中止回滚和崩溃恢复。源码中提供了定义日志格式的代码,并在事务期间的适当时间将记录附加到日志文件中。...---- 开始 我们必须在lab5代码的基础上实现lab6,我们需要修改现存的部分代码并且添加一些新文件: 我们的代码需要做出如下改变: 1、向BufferPool.flushPage()方法中调用writePage...它的任务就是撤销事务对数据库可能的更改。 rollback()方法需要读取日志文件,查找所有的与中止事务有关的更新记录,从每条记录中提取前置镜像,并且将前置镜像写入表文件。...将raf的文件指针指向正确的偏移位置 raf.seek(raf.length()); } } } ---- 恢复 如果数据库崩溃并且重启
MIT 6.830数据库系统 -- lab 项目拉取 原项目使用ant进行项目构建,我已经更改为Maven构建,大家直接拉取我改好后的项目即可: https://gitee.com/DaHuYuXiXi...各个lab的实现,会放在lab/分支下。...本节理论基础可参考: CMU 15-445 – Query Optimization ---- 前言 我们应该在lab2的基础上进行开发,完成lab3的练习 下面是本实验的大纲: 实现TableStats...可以去lab2中查看它的使用方法 当Parser被调用时,它会计算所有表的统计信息(通过我们实现的统计方法)。...* * This class is not needed in implementing lab1 and lab2. */ public class TableStats {
into test(name,age) values("xxxname",23)""" test = mydb.cursor() test.execute(sql)#执行sql语句 二、pyMysql连接数据库
1 说明 2 备份数据 2.1 创建需要备份的数据库 2.2 执行备份数据库的命令 2.3 查看备份出来的数据格式 3 恢复备份数据 3.1 创建需要恢复的数据库 3.2...我们使用Greenplum自带的pg_dump命令实现逻辑备份功能,导出备份文件,再通过 psql 导入到Greenplum中,达到备份的效果。...2 备份数据 2.1 创建需要备份的数据库 创建dump1数据库,并在数据库中创建test1的schema,创建几张表并插入数据 2.2 执行备份数据库的命令 pg_dump -U username -...,可以使用 localhost port:本地数据库端口号 databasename:要备份的本地数据库名 filename:要生成的备份文件名称 实例: $ pg_dump -h 192.168.100.55...Owner: gpmon -- CREATE SCHEMA test1; ALTER SCHEMA test1 OWNER TO gpmon; SET search_path = public, pg_catalog
MIT 6.830数据库系统 -- lab five 项目拉取 原项目使用ant进行项目构建,我已经更改为Maven构建,大家直接拉取我改好后的项目即可: https://gitee.com/DaHuYuXiXi...各个lab的实现,会放在lab/分支下。 ---- 引言 在本实验中,我们将会实现B+树索引用于高效查询和范围扫描。...叶子节点可以包括数据记录或者指向其他数据库文件的指针。为了简单起见,我们实现的B+树的叶子节点只包括数据记录。...树相邻的叶子节点之间是通过链表指针连起来的 B+树中,内部节点与其父节点的key值不能重复,叶子节点与其父节点的key值可以重复 下面这幅图是SimpleDB B+ tree这部分整体架构组织图,大家在做下面lab...---- 小结 本节详细代码可以参考仓库lab five分支,相关类核心源码注释都已给出,大部分是笔者个人拙见,难免有错,希望大家带着辩证的视角去看待。
转载地址: https://blog.csdn.net/rocklee/article/details/51251174 统计各数据库占用磁盘大小: SELECT d.datname AS Name,... pg_catalog.pg_get_userbyid(d.datdba) AS Owner, CASE WHEN pg_catalog.has_database_privilege(d.datname..., 'CONNECT') THEN pg_catalog.pg_size_pretty(pg_catalog.pg_database_size(d.datname)) ELSE...DESC -- nulls first LIMIT 20 ; 统计数据库中各表占用磁盘大小: SELECT table_schema || '.' || table_name AS table_full_name... pg_relation_size(relid)) from pg_stat_user_indexes order by pg_relation_size(relid) desc limit 10 ;
简介 在PG中访问PG可以通过dblink,在PG中访问Oracle可以通过oracle_fdw,访问MySQL可以通过mysql_fdw,具体过程可以参考:https://www.xmmup.com/...主机,已安装PG 13数据库 docker rm -f lhrpg13 docker run --name lhrpg13 -h lhrpg13 -d -p 54326:5432 -e POSTGRES_PASSWORD...pg的odbc驱动放在lib下。...,远程访问的数据库名 Database = lhrdb #数据库所在的主机名或IP Servername = 172.17.0.3 #数据库用户名(可不填,在代码中指定即可...) UserName = postgres #数据库用户密码(可不填,在代码中指定即可) Password = lhr #数据库端口 Port
postgresql://postgres:lhr@192.168.66.35:54327/postgres 其中-h参数指定服务器地址,默认为127.0.0.1,默认不指定即可,-d指定连接之后选中的数据库...pg96 pg10 pg11 pg12 pg13 pg14 pg15 systemctl status postgresql-13.service [root@lhrpgall /]# ps -...00:00:00 /pg15/pg15/bin/postgres -D /pg15/pgdata -p 5440 pg10 231 1 0 12:11 ?...00:00:00 /pg10/pg10/bin/postgres -D /pg10/pgdata -p 5436 pg13 232 1 0 12:11 ?...00:00:00 /pg12/pg12/bin/postgres -D /pg12/pgdata -p 5434
为了解决这些问题,ceph引入了归置组的概念,即PG。 # PG概念 PG是一个逻辑概念,linux系统中可以直接看到对象,但是无法直接看到PG。...它在数据寻址时类似于数据库的索引:每个对象都会固定映射进一个PG中,所以当我们要寻找一个对象时,只需要先找到对象所属的PG,然后遍历这个PG就可以了,无需遍历所有对象。...PG是一种间址,PG的数量有限,记录PG跟OSD间的映射关系可行,而记录object到OSD之间的映射因为数量巨大而实际不可行或效率太低。...因为对象数无法事先知道,但是有了pg,先把对象映射到pg,然后只需计算pg到osd的映射就可以了,pg数是一定的,这样算法设计可能会简单一点。 # 原理 对象时如何映射进PG的?...Backfilling 当一个新的OSD加入到集群后,CRUSH会重新规划PG将其他OSD上的部分PG迁移到这个新增的PG上。
更新下本实验室的两款开源工具箱的进展: 1 - AR lab 效果演示 ? 我一直有关注AR领域的创新,尤其是多屏联动、实时互动、图像分割算法等技术。
我们使用Greenplum自带的pg_dump命令实现逻辑备份功能,导出备份文件,再通过 psql 导入到Greenplum中,达到备份的效果。...2 备份数据 2.1 创建需要备份的数据库 创建dump1数据库,并在数据库中创建test1的schema,创建几张表并插入数据 2.2 执行备份数据库的命令 pg_dump -U username -...h hostname -p port databasename -f filename 参数说明如下: username:本地数据库用户名 hostname:本地数据库主机名,如果是在本地数据库主机登录...,可以使用 localhost port:本地数据库端口号 databasename:要备份的本地数据库名 filename:要生成的备份文件名称 实例: $ pg_dump -h 192.168.100.55...Owner: gpmon -- CREATE SCHEMA test1; ALTER SCHEMA test1 OWNER TO gpmon; SET search_path = public, pg_catalog
-R postgres:postgres /usr/local/pg/pgsqldata #5.切换到postgres用户 su postgres #初始化数据库 /usr/local/pg/bin/...test #创建测试库 /usr/local/pg/bin/psql test #进入数据库 #6.修改管理员密码 ALTER USER postgres WITH PASSWORD '060708.../bin/psql -h 127.0.0.1 -d test -U postgres -p 5432 关闭数据库 su postgres /usr/local/pg/bin/pg_ctl -D.../p/11432054.html 创建数据库的用户,并且赋予密码 CREATE USER admin WITH PASSWORD '060708'; #6.修改管理员密码 ALTER USER postgres...WITH PASSWORD '060708'; 展示当前数据库的用户名密码 SELECT usename, passwd FROM pg_shadow; 创建server [Unit] Description
架构 环境准备 -- 创建专用网络 docker network create --subnet=172.72.6.0/24 pg-network -- PG A docker rm -f lhrpga...=lhr \ -e TZ=Asia/Shanghai \ postgres:13.4 -- PG B docker rm -f lhrpgb docker run -d --name lhrpgb...-h lhrpgb \ -p 64321:5432 --net=pg-network --ip 172.72.6.21 \ -e POSTGRES_PASSWORD=lhr \ -e...可以远程捕获和投递 2、OGG FOR PG可以用于云RDS for PG之间的同步。...3、需要配置的参数: wal_level='logical' max_replication_slots=10 4、PG数据库需要通过ODBC连接 参考 使用OGG微服务快速双向同步RDS数据库:https
领取专属 10元无门槛券
手把手带您无忧上云