自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 收藏
  • 关注

原创 linux系统安装python3和pip

操作完成后,使用pip3 安装的包全部安装到 /usr/local/python3.9/lib/python3.9/site-packages 该目录下。因为是通过yum安装的pip3,所以pip3的安装目录不在python的安装目录下,此情况会产生一个问题:通过pip3安装的包,在import时无法识别。此时进入python3的交互模式通过sys.path就能查看到 /usr/local/lib/python3.6 目录加入到了python的环境变量中。修复问题后,重新执行编译和安装命令。

2024-07-23 17:02:22 513

转载 pg_rman是PostgreSQL的在线备份和恢复工具。

pg_rman是PostgreSQL的在线备份和恢复工具。pg_rman项目的目标是提供一种像pg_dump一样简单的在线备份和PITR方法。它就是pgsql实现全量备份和增量备份的最简易的工具。

2024-07-08 12:02:58 23

原创 基于Patroni的Citus高可用环境部署

Citus是一个非常实用的能够使PostgreSQL具有进行水平扩展能力的插件,或者说是一款以PostgreSQL插件形式部署的基于PostgreSQL的分布式HTAP数据库。本文简单说明Citus的高可用技术方案,并实际演示基于Patroni搭建Citus HA环境的步骤。

2024-06-27 16:38:14 863

原创 PostgreSQL的表膨胀及对策

PostgreSQL的MVCC机制在数据更新时会产生dead元组,这些dead元组通过后台的autovacuum进程清理。一般情况下autovacuum可以工作的不错,但以下情况下,dead元组可能会不断堆积,形成表膨胀(包括索引膨胀)。

2024-06-27 16:32:04 328

原创 闲聊PostgreSQL的oid

PostgreSQL的系统表中大多包含一个叫做OID的隐藏字段,这个OID也是这些系统表的主键。

2024-06-27 16:16:37 824

原创 pg_rewind实现原理简单分析

pg_rewind的功能是在主备切换后回退旧主库上多余的事务变更,以便可以作为新主的备机和新主建立复制关系。通过pg_rewind可以在故障切换后快速恢复旧主,避免整库重建。对于大库,整库重建会很耗时间。

2024-06-27 16:12:56 927

原创 如何在PostgreSQL故障切换后找回丢失的数据

如何在PostgreSQL故障切换后找回丢失的数据

2024-06-27 16:07:41 806

原创 PostgresQL-丢失各种数据文件如何恢复

1.索引文件丢失或者损坏,可以靠重建索引恢复2.fsm以及mv文件的丢失,重启数据库会自动恢复3.单个表文件丢失,不会影响数据库启动,但是访问表的时候就会出现问题,这种物理删除文件是没法恢复的,不会记录日志,只能做好备份4.pg_wal和pg_xact日志丢失可以恢复,但是可能会丢失部分数据5.系统表pg_authid数据丢失后可以重新创建超级管理员,依靠备份恢复。

2024-04-29 11:06:15 617

转载 PostgreSQL最后的救命稻草 — pg_resetwal

事务ID epoch实际上并没有保存在数据库中的任何位置,除非存储在由pg_resetwal设置的字段中,因此就数据库本身而言,任何值都是有效的。请注意,文件名是十六进制的,因此最简单的方法是以十六进制指定选项值并附加五个零。xid2:相反,可以通过在同一目录中查找数值最大的文件名来确定可以检索提交时间的最新事务ID的安全值。目录中查找数值最大的文件名,+1,然后乘以52352(0xCC80)来确定。若找到最大值0000,+1,乘以 52352 (0xCC80),这个需要进行计算,没有简单的加0的方法。

2024-03-25 15:18:19 377

原创 关于postgres数据checkpoints are occurring too frequently解决思路

今天日常巡检发现postgres数据库的后台日志有出现checkpoints are occurring too frequently (11 seconds apart)",,"Consider increasing the configuration parameter ""max_wal_size"".",,,,,,,""的提示,根据提示说明:检查点发生频率过高(间隔11秒)”,,“请考虑增加配置参数”“max_wal_size”“。

2024-03-22 14:42:15 1282

原创 PostgresSQL中的死锁和锁等待

postgres 关于死锁、等待事件讲解,并对deadlock_timeout lock_timeout statement_timeout参数解释和详细说明

2024-03-21 11:41:50 1335

原创 PostgreSQL 锁机制

我会告诉你精通 Postgres 的锁机制需要知道的一切,要知道对锁了解的越多,解决与锁相关的问题就会越快。不同于标准的锁请求,会话层级的劝告锁请求并不遵守事务语义:事务被回滚后锁也会随着回滚保持着,同样地即使调用锁的事务之后失败了,解锁请求仍然是有效的。例如,如果事务 1 在表 A 上获得一个排他锁,同时试图获取一个在表 B 上的排他锁, 而事务 2 已经持有表 B 的排他锁,同时却正在请求表 A 上的一个排他锁,那么两个事务就都不能进行下去。因此,事务一被事务二阻塞,而事务二也被事务一阻塞:一个死锁。

2024-03-18 18:10:28 1158

原创 使用 pg_profile 在 Postgres 中生成性能分析报告

postgres数据库中拥有大量的辅助插件用于帮助DBA更好的分析数据库性能或整个集群,包括索引、I/O、CPU和内存等,pg_profile是基于PostgreSQL标准统计信息视图的诊断工具,它类似于Oracle AWR架构,和Oracle一样,它在指定时间生成快照,并且提供html格式来解释快照之间的统计数据;今天我们就来聊聊pg_profile这款性能分析工具有哪些功能和优点。

2024-03-13 17:25:26 624

原创 关于postgres安装pg_cron 定时任务插件

pg_cron它作为扩展运行在数据库内部。它使用与常规cron相同的语法,但是它允许你直接从数据库调度PostgreSQL命令。pg_cron可以并行运行多个作业,但是一次最多只能运行一个作业实例。如果第二轮运行在第一轮运行完成之前开始,则第二轮运行将排队,并在第一轮运行完成后立即开始。这里有一个需要特别注意的点,pg_cron始终使用GMT时区!!如果你的数据库使用的是CST时区,定时任务的时间需要减去8小时。

2024-03-11 11:54:44 659

原创 浅谈postgresql数据库索引

索引的使用是为了提升对表的读能力,而不是写操作;如果不合理构建索引或是表中建立大量索引效果适得其反,表的读和写性能都会出现很大程度的下降,从而影响数据库业务。索引的设计需要去平衡业务规则和评估表,如果对一个经常写入的大表,但是读取又相对较少,我们完全可以通过分区表+主键 (主键也是一种特殊的索引)完成;如果没有主键,我们根据分区键值来创建索引来实现高效的读。总而言之,索引设计需要考虑整体业务场景和对表的实际操作,还需要考虑索引的个数和索引的效率,索引不是越多越好,也不是字段越多越好。

2024-02-22 15:51:45 835 1

原创 关于postgresql数据库单独设置某个用户日志级别(日志审计)

关于postgresql数据库单独设置某个用户日志级别

2024-02-21 18:00:40 714

原创 聊聊关于Postgresql数据库日志参数配置

如果log_duration为on并且log_min_duration_statement为正值,所有持续时间都将被记录,但是只有超过阈值的语句才会被记录查询文本。log_line_prefix:设置日志输出格式(能够记录时间,用户名称,数据库名称,客户端IP和端口,方便定位问题)默认值是’%m [%p] ',它记录时间戳和进程ID。log_min_duration_statement:相当于mysql的long_query_time,记录慢SQL,超过这个时间的SQL将会被记录到日志里。

2024-02-21 11:44:45 1383

原创 浅谈关于postgres数据库一些常用的内置元命令

随着国内一些相关政策的推行,国产数据库和开源数据库正以新的身份进军各个领域,我们今天探讨主要是postgres数据库相关的一些内置命令,在postgres数据库中称为“元命令”;接下来就为大家讲讲关于元命令的使用。

2024-02-04 18:13:23 379 1

原创 关于postgres数据库计算某个时间点到某个时间点的时长或时间段的问题

1.在postgres数据库存在pg_postmaster_start_time函数来获取数据库启动时间。11.获取每个季度的最后一天的晚上的11点(从下个季度开始算起)9.获取本季度的第15天,15小时 15分 30秒。10.获取每个季度最后一天的晚上11点。1.对结果取整数使用floor函数。2.对结果取部分小数使用round。2.计算数据库运行多长时间。5.获取每周的周二第一分钟。1.获取每月1号 12点。2.获取每月15号9点半。

2024-02-01 16:29:08 658 1

原创 postgres数据库字符集讲解

在一个UTF-8字符集的postgres数据库中一个汉字占用1个字符.

2024-01-26 11:58:48 1302 1

原创 关于postgres数据库用户修改其他用户表结构权限问题,报ERROR: must be owner of table tablename错误?

上图标记部分,讲到关于对象权限问题,大概意识为创建对象时,会为其指定一个所有者。所有者通常是执行创建语句的角色。对于大多数类型的对象,初始状态是只有所有者(或超级用户)可以对对象执行任何操作。若要允许其他角色使用它,必须授予特权。关于这里的特权没有给出更为详细说明,我从国外帖子上找到一部分相关这的解释为superuser权限。

2024-01-18 16:53:24 2049 1

原创 关于postgres数据库流复制原理详细解说

1.流复制三节点架构能保证数据库高可用,保证数据库备节点异常,不影响主库持续对外提供服务。再配合高可用中间件使用,完全能保证数据库对外提供服务。例如patroni+etcd架构、pgpool+wacthdog架构等2.如果流复制应用参数设置为remote_apply,可以保证主备数据具有强一致特征,主备数据实时保持一致状态;但带来的危害就是主库事务提交时间变的更长,导致前端业务等待时间比较长。3.一般数据库流复制应用参数默认为on级别,不能完全保证主备数据具有强一致特征,主备数据可能会有不一致情况;

2024-01-17 10:07:51 1377

原创 浅谈postgres数据库删除用户报ERROR: role “username“ cannot be dropped because some objects depend on it错误

这种命令格式,不同于mysql和oracle数据库来说,只要你确认并核实用户对象删除正确,就可以使用使用drop user username cascade直接删除。//这里的username指的是你要删除的用户名,other_name指数据库其他用户;2)在postgres数据库中,我们建议使用角色授权用户的方式来给用户授权,这种授权方式能有效解决方法二带来的这种困扰;缺点:不能很好了解哪些对象被删除,哪些对象被赋权给other_name,到时候使用还得重新排查梳理。注意:我们看到对应对象。

2024-01-16 16:56:59 1716 1

原创 浅谈postgres数据库-explain执行计划

浅谈postgres数据库-explain执行计划详细解读

2024-01-11 17:56:37 530 1

原创 GBase8c列存表压缩等级为下列哪种

GBase8c列存表压缩等级为下列哪种?

2024-01-08 17:55:28 375

原创 GBase 8c检测到全局死锁时,将自动解除

解释:gbase 8c 是基于postgres开源数据库做为底层进行开发,并融合了oracle数据库功能。引入oracle功能去解决原生postgres数据库无法支持的部分功能,例如:用户密码过期不提醒,用户密码被锁不自动解锁等等功能。

2024-01-04 10:24:03 396 1

原创 plan hint 支持哪几种join方式

plan hint 支持哪几种join方式。

2024-01-04 10:13:26 371 1

原创 关于 Stream 执行计划,描述错误的是

关于 Stream 执行计划,描述错误的是

2023-12-29 16:32:28 409 1

原创 12、[] 以下那个类型是SMALLINT 类型的别名

以下那个类型是SMALLINT 类型的别名。

2023-12-29 16:28:41 373 1

原创 GBase 8c Gist(Generalized Search Tree)索引 即通用搜索树,可处理地理数据、图像,空间,树形图等场景?

47、[] GBase 8c Gist(Generalized Search Tree)索引 即通用搜索树,可处理地理数据、图像,空间,树形图等场景?4、空间类型(PostGIS),支持位置搜索(包含、相交、在上下左右等),按距离排序。1、几何类型,支持位置搜索(包含、相交、在上下左右等),按距离排序。2、范围类型,支持位置搜索(包含、相交、在左右等)。3、IP类型,支持位置搜索(包含、相交、在左右等)。5、标量类型,支持按距离排序。(判断题,1.5分)

2023-12-28 11:56:13 546 1

原创 27、[·] GBase 8c中三权分立的数据库角色有哪些

解释:GBase 8c把数据库的用户由原来单一的超级数据库管理员变成三类角色:安全管理员、审计管理员、数据管理员。它们分别承担着不同的职责,三者之一不涉及其它两者的权力范围,从而实现整个数据库系统的分权管理,即三权分立原则。27、[·] GBase 8c中三权分立的数据库角色有哪些。

2023-12-28 11:51:20 428 1

原创 25、[] plan hint 可以通过哪些方式,干预执行计划

Plan Hint 为用户提供了直接影响执行计划的手段,用户可以通过指定 join 顺序,join、scan 方法,指定行数等手段来进行执行计划调优,以提升查询性能;指定形式:/*+ <plan hint>*/支持范围:指定 join 方式;指定 join 顺序;指定行数;指定 scan 方式;指定链接块名;custom plan 和 generic plan 选择的 hint;指定子查询不扩展;

2023-12-27 16:55:23 425 1

原创 19、[s] 当update 语句带有 returning 子句并存在两表连接时,将使用哪种分布式执行计划(单选题,2分)

producer:新启动streamworker线程作为producer,将扫描到的所有数据,广播到所有consumer(本dn和其他dn))例:update 带有 returning 语句,并存在两表连接,不支持stream 计划,CN通过remote query 从DN获取两表数据,在CN完成连接操作,根据连接结果构造最终update语句,通过remote query下发DN。由cn生成执行计划,将执行计划发送到dn,dn按照接收到的计划执行相应的算子,cn收集dn的执行结果,进行处理后做出最后输出;

2023-12-27 16:51:57 367 1

原创 18、[.] GBase 8c分区表支持几级分区,几种分区组

例如可以采用日期划分范围,将销售数据按照月份进行分区。范围分区表:指定一个或多个列划分为多个范围,每个范围创建一个分区,用。列表分区表:直接按照一个列上的值来划分出分区。例如可以采用销售门店划。哈希分区表:根据表的一列,为每个分区指定模数和余数,将要插入表的记录。A.一级分区,3种组合。C.二级分区,3种组合。D.二级分区,9种组合。B.级分区,6种组合。划分到对应的分区中。

2023-12-27 16:44:31 583 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除