在你的数据库设置界面,有一个 测试连接(Test connection)按钮可以检查: Confluence 可以连接你的数据库服务器 数据库字符集的编码是否设置正确 你的数据库用户是否有正确的权限可以访问和使用数据库 一旦上面的测试成功了,单击 下一步(Next )来继续进行 Confluence 的安装进程。 如果 Confluence 和 PostgreSQL 分别在不同的服务器上,请参考 PostgreSQL documentation on how to set up pg_hba.conf 中的内容来确定 Confluence 和 PostgreSQL 之间能正常通信。 https://www.cwiki.us/display/CONFLUENCEWIKI/Database+Setup+for+PostgreSQL
如果你的系统中还没有安装 PostgreSQL 数据库,你需要先下载后进行安装。 在安装 PostgreSQL 时候的一些小经验: 在安装的时候提供的 密码(password )是针对 'postgres' 账户的,这个账户是 root-level 级别的账户。 请记住这个账号的用户名和密码,在每次你登录 PostgreSQL 的时候,你都需要这个用户名和密码。 PostgreSQL 数据库服务器的 默认端口(default port )是 5432。 如果你希望修改 PostgreSQL 的默认端口,你需要确定你的新端口不会与系统中其他的服务使用的端口冲突。 选择与你地理位置相同的 locale 。 https://www.cwiki.us/display/CONFLUENCEWIKI/Database+Setup+for+PostgreSQL
(继续Postgresql技术内幕学习) 前面几节已经把XLOG所需的数据注册到内存中了,下面开始组装XLOG。
已经写到系列的6 ,实际上到目前为止我们才刚刚进入到patroni的实际操作,如同上面的话,我最大的坏习惯可能是有时会有拖延症,反过来我的好习惯是有始有终。 首先我们先启动已经安装好的patroni的系统三台机器 192.168.198.66 192.168.198.67 192.168.198.68 etcd 和 patroni 以及postgresql ,写一个简单的判断的展示的shell ,如果有关闭的和不正常的情况下,会有提示 1 当postgresql leader 主机的etcd DOWN掉会怎么样 1 patroni 会反应到当前的 所以人为的关闭主服务器数据库服务,是不会对集群产生巨大的影响的 6 关闭主数据库服务器 这次是整体关闭服务器的主机 在关闭主数据库服务器后, 其中一台从库被选举为主库,同时另一台服务器连接到这台主库。 整体来说,patroni 作为分布式协议方式的postgresql的高可用方式,的确是靠谱的。 当然这还远远没有结束,我们还需要对原理, 以及一些更深入的操作进行研究和理解
如果你不能从你从 Confluence 中连接到 PostgreSQL ,并且这 2 个服务器分别在不同的机器上,可能是因为你 2 台机器上的防火墙阻止了你的连接,或者 pg_hba.conf 文件没有被正确配置 下面的连接包含了一些你在使用 PostgreSQL 数据库连接的时候可能会遇到的常见问题,请参考: Known issues for PostgreSQL。 https://www.cwiki.us/display/CONFLUENCEWIKI/Database+Setup+for+PostgreSQL
在本文中,我将解释如何设置PostgreSQL进行测试并讨论一些需要避免的常见陷阱。隔离是首要目标在我们深入细节之前,让我们先定义我们的目标:隔离——我们希望确保每个测试都是隔离运行的。 至少,这意味着每个测试都应该有自己的数据库。这可确保测试不会相互干扰,并且您可以并行运行测试而不会出现任何问题。性能– 我们希望确保为测试设置 PostgreSQL 的速度很快。 然而,在处理使用 PostgreSQL 特定功能的代码路径时,它很快就会成为问题。 在我们的例子中,由于使用了各种 PostgreSQL 扩展、PL/pgSQL 函数和其他 PostgreSQL 特定的功能,我们无法使用 SQLite 进行测试。 使用pg_tmp我们尝试的另一种方法是使用pg_tmp.pg_tmp是一个为每个测试创建临时 PostgreSQL 实例的工具。理论上pg_tmp是一个很好的解决方案。它允许完全隔离测试。
本篇文字,是没有业务方面的测试对于POSTGRESQL 的压力测试,但作为一个正规的数据库部门,我们一定是有,不同硬件在同样配置下的POSTGRESQL 的跑分成绩的,并且还要有不同的 1 数据量 我们总结出如下的一些在POSTGRESQL 13上表现得性能状态。 1 CPU 的核心数的增加,对比内存的增加,在同种压力的情况下,CPU 添加后对系统的性能帮助大。 图3 图4 3 OLTP ,在OLTP 的操作中,CPU 多的情况下,访问线程多的情况下对于POSTGRESQL 的影响就有不同了,在表的行数多的情况下,部分测试结果中内存大的POSTGRESQL 图5 图6 4 在查询中还有两种查询的方式,如random 查询,也就是我们查询的数据在页面中可能是不关联的,另一种是 range查询,也就是我们搜寻的数据很可能在一个页面或连续的页面中。 5 那么我们是否就可以得出POSTGRESQL 在数据处理中对于数据的操作应该给更多的CPU 要有利于给更多的内存,----下面的结果就给出了明确的结果 不是 下面的测试中,主要对于数据的UPDATE
安装yum更新源 yum install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-redhat10 -10-1.noarch.rpm 安装PostgreSQL客户端和服务端 yum install postgresql10 -y yum install postgresql10-server 把Environment=PGDATA=/var/lib/pgsql/10/data/修改为Environment=PGDATA=/data/pg10data/ /usr/pgsql-10/bin/postgresql -10-setup initdb #初始化 systemctl enable postgresql-10 #设置开机启动 systemctl start postgresql -10 #启动postgresql服务 也可以使用postgreSQL自带的初始化命令initdb初始化数据库: su - postgres 初始化 /
PostgreSQL:effective_io_concurrency基准测试 引言 正如在一篇近期的帖子中所提到的,我会定期检查我心爱的数据库的所有设置,今天我想和大家聊聊一个名为"effective_io_concurrency 它的默认值为1,手册中是这样定义的: 设置 PostgreSQL 期望可以同时执行的并发磁盘 I/O 作的数量。提高此值将增加任何单个 PostgreSQL 会话尝试并行启动的 I/O 作的数量。 RAID 10的机器上运行,但我在仅装有一块固态硬盘的机器(6核虚拟机)上也获得了类似的结果。 测试 由于我们正在测试磁盘性能,我会先清理缓存,然后重启PostgreSQL,之后再运行查询。 以下是在对比测试运行中磁盘受到的影响: 前6个峰值: effective_io_concurrency = 1 最近4个峰值: effective_io_concurrency = 100 此外,IOPS
任何数据库都有压力测试的需求,每种数据库的压力测试都是要证明这个数据库本身在某种硬件的情况下,能达到的一种可以承受的工作上的压力。 那么有一个问题压力测试的数据准吗? 放到数据库也是一样,测试的标准都不唯一,怎么测试的,测试的数据,以及测试的复杂度都不一样,测试的结果能说明什么, 唯一能说明的就是如果结果太差,那这个数据库一定不行,但如果数据好看,也不能说这个数据库就一定好 言归正传,postgresql的压力测试有么有必要,当然有,但是我们的测试大部分就属于五星批发部, 那么今天五星批发部pgbench 就来测测我们的postgresql 这辆多功能“车”。 当然数据量也是很重要的,如果你需要测试更多的数据,也可以在初始化的时候通过 -s 来加大测试数据, 如果不给相关的测试数据默认是10万,-s 是测试的数据倍数。 另外一个事情是需要注意的是,你的 -c 参数是同时连接postgresql的客户端,注意你填写的客户端,这里不是要和你的最大连接数持平,而是你要和你在某一秒同时工作的连接进行对比,可能一个非常繁忙的系统
TPC-C是经典的衡量在线事务处理(OLTP)系统性能和可伸缩性的基准测试规范。 常见的开源数据库的基准测试工具有benchmarksql、 sysbench等,PostgreSQL自带运行基准测试的简单程序pgbench。 pgbench是一个类TPC-B 的基准测试工具,可以执行内置的测试脚本,也可以自定义脚本文件。 官方文档: PostgreSQL: Documentation: 15: pgbench https://www.postgresql.org/docs/15/pgbench.html 使用pgbench from tb1; id | ncode ----+-------- 1 | 247869 2 | 595899 3 | 285595 4 | 179089 5 | 408114 6
所以才有了这期,这期是要说说repmgr 的一些系统表,一些常见的被问及的问题,(一些深层的问题,还得继续研究) 截止到目前本文的时间点,repmgr 已经支持了postgresql 12, repmgr 目前repmgr 最高的版本已经不是 4.4 ,而是 5.0 ,5.0 的版本兼容所有目前正式版的postgresql ,同时一个集群中的各个节点的repmgr 的版本应该是一致的,不能存在不同版本的混用的做法 部分版本支持的postgresql 列表 3 repmgr 包可以不用二进制方式安装吗 可以,可以下载2象限的yum 源,可以直接 rpm 包安装,如果在yum 安装时出现问题,请检查下面的依赖包装没有装 max_replication_slots = 10 wal_level = 'hot_standby' hot_standby = on archive_mode = on archive_command = 6 其实postgresql 的高可用方法有很多,这六期仅仅是说了其中一种,高可用可以有很多的变化,即使是repmgr 也可以搭配其他的多种中间件来进行高可用的使用。 学无止境,适合就好。
1、拉取镜像 docker pull postgres:14.4 2、创建docker容器 docker run --name pg14 -h pg14 -d -p 54327:5432 -e POSTGRES_PASSWORD=xxx -e TZ=Asia/Shanghai postgres:14.4 3、登录 docker exec -it pg14 psql -U postgres -d postgres
checkpoint_sync_time checkpoint 点时文件被同步到磁盘的耗时 5 buffers_checkpoint 具体多少数据buffer通过checkpoint刷到文件 6 POSTGRESQL 系统有什么影响. 下面开始测试的环节,测试机是一台虚拟机 4 核心 16G 的CPU 系统没有进行复杂的优化,仅仅对 share buffer, workmem 进行了例行的调整 pgbench -i -s 1000 创建一个亿的数据 以下为基准测试测试后的数据 pgbench -M prepared -v -r -P 1 -f . ,而调整bgwriter 后对于测试的分数的增长并不明显.
PostgreSQL目前还不支持该语法,MogDB从版本已经支持。 注意: 1.从2.0.0版本开始,模板库默认字符集由SQL_ASCII改为了UTF8,同时数据库兼容性由Oracle改为PostgreSQL,对本测试的影响是date数据类型。 6.子分区 MogDB目前还不支持子分区,PostgreSQL声明式分区是支持的。 3.MogDB目前不支持子分区,PostgreSQL支持声明式子分区。 业务迁移及优化,Oracle到PostgreSQL的迁移升级,异构数据库整合;作为墨天轮PostgreSQL实践专栏作者,热衷于PostgreSQL实践技术分享,在自己的岗位积极推广PostgreSQL
PostgreSQL支持继承,版本10之前的分区表都是通过继承特性来实现,每个分区实际上都是一个独立的表。数据更新可通过触发器trigger或者规则rule来实现。 PostgreSQL目前还不支持该语法,openGauss从版本1.1.0开始支持。 openGauss间隔分区例子。 注意: 上面是在opengauss 1.1.0版本上测试的,从2.0.0版本开始,模板库默认字符集由SQL_ASCII改为了UTF8,同时数据库兼容性由ORACLE改为PG,对本测试的影响是date数据类型 关于作者 彭冲,云和恩墨PG技术顾问,网名“多米爸比”,PG社区认证专家,中国首期PostgreSQL ACE Partner,多年从事基于PostgreSQL数据库的软件研发,擅长于PL/PGSQL业务迁移及优化 ,Oracle到PostgreSQL的迁移升级,异构数据库整合;作为墨天轮PostgreSQL实践专栏作者,热衷于PostgreSQL实践技术分享,在自己的岗位积极推广PostgreSQL,致力为PG社区多做奉献
了解 PostgreSQL 的主要特性 ElasticSearch PostgreSQL 主要区别 Elasticsearch PostgreSQL 主要区别:数据库模型 Elasticsearch PostgreSQL 主要区别:事务支持 Elasticsearch PostgreSQL 主要区别:架构灵活性 Elasticsearch PostgreSQL 主要区别:CAP 定理实现 Elasticsearch PostgreSQL 了解 PostgreSQL 的主要特性 PostgreSQL 的主要特性如下: 数据完整性:PostgreSQL 通过让用户能够创建主键和外键、唯一和非空约束、显式和咨询锁、排除约束等来确保数据完整性 Elasticsearch PostgreSQL 主要区别:事务支持 Elasticsearch PostgreSQL 主要区别:架构灵活性 Elasticsearch PostgreSQL 主要区别 6) Elasticsearch PostgreSQL 主要区别:基于云的产品 Elasticsearch 为其用户提供了许多不同层次的基于云的官方产品。
实验代码: 链接:https://pan.baidu.com/s/14XsCng6laiSiT_anuwr5dw? 将DB下的4个csv文件导入sec数据库中 渗透测试操作系统虚拟机文件vmx文件 1)Windows 2000 Professional 链接:https://pan.baidu.com/s/13OSz pwd=zp3o 提取码:zp3o 4)Debian 6(Kali Linux) 链接:https://pan.baidu.com/s/1Uw6SXS8z_IxdkNpLr9y0zQ? pwd=s2i5 提取码:s2i5 开机密码:jerry/123456 安装了Apatche、Tomcat、MySQL、 vsftpd并且配套Web安全测试练习教案。 pwd=17g6 提取码:17g6 开机密码:见页面提示 解压后直接为vmx文件,直接可用
如果你在安装 PostgreSQL 的时候没有修改的话,默认端口是 5432. ,按照上面的例子,名称为 confluence 通过连接字符串(By connection string) 数据库 URL(Database URL) 数据库 URL 使用的下面的格式: jdbc:postgresql ://<server>:<port>/<database> 例如: jdbc:postgresql://localhost:5432/confluence 如果你需要使用 SSL 连接到数据库, ssl 例如: jdbc:postgresql://localhost:5432/confluence? https://www.cwiki.us/display/CONFLUENCEWIKI/Database+Setup+for+PostgreSQL
所以下面的文字,是针对上面粗体的扩展 举一个例子, 例如我们有100G的内存,我们到底能有多少的EFFECTIVE_CACHE_SIZE, 我们有2G 供给应用系统, 3GB 给postgresql来运行自己的 processes, 剩下的, 就是供给postgresql 的shared buffers 和FILESYSTEM CACHE ? 其实到这里有两点是模糊的, 1 连接到POSTGRESQL的SESSION 是否需要内存, 2 数据的排序和临时表等等的内存释放包含在 effective_cache_size 也就是ORACLE 中的 实际上Postgresql 的内存也和其他数据库分为两块, 这里PG 内存主要由 local memory area 和 shared buffer pool 组成, shared buffer 这里对于pg初始时有一个压测工具,便于对你当前的postgresql 的系统性能进行一个初步的理解.