- 博客(83)
- 收藏
- 关注
原创 opengauss权限需求
需求是这样的,rts_all用户拥有rts_des,rts_ris,rts_rtp,rts_rms所有用户下rts_des,rts_ris,rts_rtp,rts_rms模式的create权限,整理需要注意的是,rts_des用户必须给schema rts_des 可读可写的权限,并且rts_all必须是超级用户,不然rts_all也无法拥有对schema rts_des的可读可写的权限。-- rts_des 只能访问 rts_ris、rts_rtp 和 rts_rms 模式的对象,并拥有只读权限。
2023-11-08 18:35:50
459
原创 opengauss 备份sql文件从schema恢复到不同的schema方法
打开备份文件 vi opengass_bacnup.sql。在目标源未创建schema的情况下,把以上三行改为以下三行。在目标源未创建schema的情况下,把以上三行改为以下三行。然后导入rts_ops模式中。之后执行以下linux命令。
2023-11-08 16:21:56
299
原创 安装DBD-Oracle报错处理
make: *** [Makefile:524:blib/arch/auto/DBD/Oracle/Oracle.so] 错误 1。find: ‘/proc/3594482’: 没有那个文件或目录。find: ‘/proc/3594495’: 没有那个文件或目录。find: ‘/proc/3594512’: 没有那个文件或目录。至此正常编译 make && make install。/bin/ld: 找不到 -lnsl。从其他机器找一个2.17版本安装上去。退出当前目录,恢复正常。
2023-10-26 21:58:40
837
原创 openGauss和oracle的上下翻命令和自动补全
sbin/ldconfig: /usr/local/lib64/libstdc++.so.6.0.26-gdb.pyc 不是 ELF 文件 - 起始处的魔数有误。/sbin/ldconfig: /usr/local/lib64/libstdc++.so.6.0.26-gdb.pyo 不是 ELF 文件 - 起始处的魔数有误。SQL*Plus: Release 19.0.0.0.0 - Production on 星期三 8月 23 18:53:27 2023。安装大小:426 k。
2023-08-23 19:01:35
918
原创 opengauss5.0:guc修改参数
ALTER SYSTEM SET命令用于设置POSTMASTER、SIGHUP、BACKEND级别的GUC参数。此命令会将参数写入配置文件,不同级别生效方式有所不同。could not send data to server: 断开的管道。此命令仅限初始用户和拥有sysadmin权限的用户才可使用。
2023-08-23 15:37:09
705
原创 repmgr出现双主的处理,对旧主重新加入集群
执行注册主节点,提示不能注销,下游还有节点?下游节点都已经成了主节点了,还不能自己识别?自动启动数据库,再次查看集群信息。那就执行重新加入集群操作。
2023-08-18 20:19:37
670
原创 could not send replication command “START_REPLICATION“: ERROR: replication slot does noes not exist
[postgres@db223 pg_wal]$ pg_receivewal -U postgres -D /home/postgres/pgarch/ -S test_slot -vpg_receivewal: starting log streaming at 11C/10000000 (timeline 8)pg_receivewal: error: could not send replication command "START_REPLICATION": ERROR: replicati
2023-08-18 16:50:36
527
原创 repmgr出现双主,并且时间线分叉,删除了最新的时间线节点
遇到的问题如下:cp: 无法获取'/home/postgres/pgarch/0000000A.history' 的文件状态(stat): 没有那个文件或目录cp: 无法获取'/home/postgres/pgarch/000000090000010200000066' 的文件状态(stat): 没有那个文件或目录出现上面的原因是repmgr出现了双主。
2023-08-17 21:36:38
503
原创 could not create shared memory segment: 设备上没有空间
could not create shared memory segment: 设备上没有空间2023-08-17 18:51:47.852 CST [1281811] DETAIL: Failed system call was shmget(key=1615941317, size=56, 03600).2023-08-17 18:51:47.852 CST。出现的原因可能是在同一机器上安装了多个不同端口的pg,导致shmmni太小。重新加载 sysctl 配置,使其生效。修改shmmni的大小,
2023-08-17 20:42:52
812
原创 postgresql跑benchmarksql报错:Term-00, Invalid number of terminals!y Usage: 25MB / 462MB
2、去修改/etc/security/limits.conf是不是用户的级别的资源限制,修改了之后还是报同样的错误。./runBenchmark.sh props.pg就报错,如下所示。修改 max_connections大小,发现连接数也没有问题。1、通过命令进入postgresql的配置的编辑页面。执行创建和删除都没有问题。但是执行性能测试就报错。
2023-07-24 18:54:38
1278
原创 etcd启动错误处理方法
7月 13 20:29:01 node3 systemd[1]: etcd.service: Failed with result 'exit-code'.7月 13 20:29:02 node3 systemd[1]: etcd.service: Failed with result 'exit-code'.7月 13 20:29:03 node3 systemd[1]: etcd.service: Failed with result 'exit-code'.发现错误依然存在,在其他节点上查看。
2023-07-13 20:41:58
4334
原创 当数据库中存在某个表的年龄大于vacuum_freeze_table_age,就会执行急切冻结过程
急切冻结的触发条件是pg_database.datfrozenxid
2023-04-06 17:18:01
775
原创 PostgreSQL 到底是基于规则优化(RBO)还是基于代价优化(CBO)的
PostgreSQL 是基于代价优化(Cost-Based Optimization,CBO)的方式进行查询优化的。查询优化器在进行查询优化时,会首先进行规则优化(Rule-Based Optimization,RBO),将查询语句进行语法转换和简化,然后再进行代价优化,生成多个可能的执行计划,并为每个执行计划计算代价,选择代价最小的执行计划作为最终的执行方案。此外,PostgreSQL 的查询优化器还采用了逻辑优化的方式,对查询语句进行逻辑结构的优化,以便更高效地执行查询。
2023-03-24 10:39:55
585
原创 could not open extension control file “/home/postgres/pg14/share/extension/oracle_fdw.control“
[root@pg14 oracle_fdw-ORACLE_FDW_2_5_0]# makegcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wformat-security -fno-strict-aliasing -fwrapv -fexces
2023-02-24 17:48:45
578
原创 role “ctsdb“ cannot be dropped because some objects depend on it,DETAIL: 1 object in database ctsdb
为什么这里不直接爆出来owner of function multinstance_init(),是否可以理解为登录的不是ctsdb数据库。删除schema xc_test,这里还好是 xc_test用户创建的,不然就删掉了 xc_test模式下所有的对象。查询search_path,发现依赖于 xc_test用户下的 模式xc_test,修改ctsdb用户的search_path。重新删除ctsdb,还是同样的报错。切换重新删除user ctsdb;这时候找到了所依赖的对象。这里找不到任何对象。
2023-02-20 11:35:31
734
原创 Generated columns cannot be used in COPY
DBD::Pg::db do failed: ERROR: column "transtype" is a generated columnsec., avg: 2520 recs/sec), REPORTSINTERMEDIATETABLE in progress.DETAIL: Generated columns cannot be used in COPY. at /usr/local/share/perl5/Ora2Pg.pm line 15125.FATAL: ERROR: column
2023-02-17 19:06:01
818
原创 pg_locks和pg_stat_activy确定阻塞语句
通过pg_blocking_pids(1155840)查询持有锁的进程。通过pg_stat_activity视图查看进程对应的语句。granted为f表示pid=1155840被阻塞。
2023-01-31 14:39:14
346
原创 schema权限控制
还允许用户在其他人的模式中创建对象。要允许这样做,需要授予模式上的CREATE特权。注意,默认情况下,每个人在公共模式上都有CREATE和USAGE特权。这允许所有能够连接到给定数据库的用户在其公共模式中创建对象。默认情况下,用户不能访问不属于他们的模式中的任何对象。要允许这样做,模式的所有者必须授予该模式的USAGE特权。为了允许用户使用模式中的对象,可能需要为对象授予额外的权限。
2023-01-11 19:50:17
605
原创 vacuum移除不必要的CLOG文件
在上面的条件中,pg_database.datfrozenxid 是系统视图pg_database 中的列,并保存着每个数据库中最老的已冻结的事务标识。如果 CLOG 文件0002中包含最小的 pg_database.datfrozenxid,则可以删除旧文件(0000和0001),因为存储在这些文件中的所有事务在整个数据库集簇中已经被视为冻结了。注意,相应的CLOG页面也会被删除。它会扫描所有页面,检查表中的所有元组,更新相关的系统视图,并在可能时删除不必要的CLOG文件与页面。
2023-01-10 20:48:29
501
原创 ora2pg参数fkey_deferrable引出创建索引NOT VALID方式
当前数据如下:client_id为8的数据client_salary列为null,但是插入再次创建not valid约束不会对之前的数据进行约束检查了。之后再插入数据,报错,提示client_salary列不能为null,也就是创建NOT VALID约束之后,对之后创建的不符合数据将报错。1、执行not valid非空约束后,之后插入的数据不能为空,执行验证之后,之后再insert数据就会检查非空约束。2、执行not valid非空约束后,如果之前存在违反约束的数据,不能验证约束,否则报错。
2022-12-27 19:36:35
715
原创 org.postgresql.util.PSQLException: ERROR: invalid byte sequence for encoding “UTF8“: 0x00
ascii为0插入到oracle中,并不是null,它占用一个字节,要查询出来只能用=chr(0)尽量别插入ascii为0的字符到数据库中,可以用插入空字符串或者null代替,否则检索起来不方便碰到实在是不知道这个字段到底存的是什么的时候,可以使用dump函数去查看它具体的ascii码。可以看到第4行的第2列跟第3行的第2列的空格一样,都是占了一个字节,而且他的ASCII码为0,那么我们可以通过下面的方式将第4行查出来。那么这个第4行第2列到底存的是什么呢,我们可以通过dump函数去查看。
2022-11-18 09:40:12
5714
6
原创 libstdc++.so.6: cannot open shared object file: No such file or directory
ImportError: libstdc++.so.6: cannot open shared object file: No such file or directoryDuring handling of the above exception, another exception occurred:Traceback (most recent call last): File "/usr/bin/yum", line 57, in from dnf.cli imp
2022-11-01 20:35:24
2104
原创 安装ora2pg中遇到的问题 /usr/bin/ld: 找不到 -lnsl,make: *** [Makefile:524:blib/arch/auto/DBD/Oracle/Oracle.so] 错
/usr/bin/ld: 找不到 -lnslcollect2: 错误:ld 返回 1make: *** [Makefile:524:blib/arch/auto/DBD/Oracle/Oracle.so] 错误 1[ make make install
2022-10-25 13:28:23
1374
原创 安装ora2pg中遇到的问题 ERROR OCIEnvNlsCreate
打开 ora2pg_zzy.conf配置文件看到也有一个ORACLE_HOME配置项,发现是这个配置错了,优先读取这个oracle home路径,环境变量配置了也不会读取。ORACLE_HOME /home/app/ #oracle client 安装地址。ORACLE_HOME后面不能更注释,不允许加任何不相关字符串。TYPE TABLE,SEQUENCE # 导出表和序列。看提示报错,以为一直是DBI安装有问题。
2022-10-25 13:03:48
870
原创 postgresql13可信扩展
PostgreSQL的扩展系统是其强大功能的关键组成部分,因为它允许开发人员扩展其功能。在以前的版本中,新的扩展只能由数据库超级用户安装。为了更轻松地利用PostgreSQL的可扩展性,PostgreSQL 13添加了"可信扩展"的概念,该概念允许数据库用户使用安装超级用户标记为"受信任"的扩展。普通用户user1创建不可信扩展file_fdw,提示必须是超级用户才能 创建成功。普通用户user1创建可信扩展pgcrypto,可创建成功。必须在当前数据库上有CREATE权限才能创建此扩展。
2022-09-23 19:27:31
1380
2
原创 PostgreSQL 长事务导致表膨胀的原因
不管我505之后提交了多少事务,但是backend_xmin所能见到的最大事务也还是505,如果505到510执行了大量的批量dml语句,无法对505到510之间的数据进行vacuum,这个时候就会导致表膨胀。当数据库中存在未结束的SQL语句或者未结束的持有事务ID的事务,在此事务过程中,或在此SQL执行时间范围内产生垃圾的话,这些垃圾无法回收,导致数据库膨胀。当我把505rollback之后,长事务才算结束,所以能看到的最大事务是510,即510之前的事务都可以做vacuum操作。...
2022-08-05 10:56:00
1396
原创 PostgreSQL ++patroni+etcd+haproxy+keepalived安装部署
依次启动node1、node2、node3节点的etcd。通过patroni来管理postgresql。通过VIP访问不同接口,实现读写分离和负载均衡。2、访问5001端口,连接读节点,实现负载均衡。三节点安装yuminstalletcd。node1节点VIP绑定eth0网卡设备。1、访问5000端口,连接读写主节点。查看patroni集群状态。postgresql主库状态。启动haproxy。启动keepalived。手动切换Leader。...
2022-07-19 10:44:02
5139
1
原创 Patroni + Etcd 方案优缺点
使用分布式key-value数据库作为数据存储,主节点故障时进行主节点重新选举,具有很强的健壮性。数据库信息记录到ETCD中,通过优化部署策略(多机房部署、增加实例数)可以避免脑裂。可以设置备库延迟主库WAL的字节数,当备库延迟大于指定值时不做故障切换。官方文档中解释不清晰,无搭建过程,对于新手来说没有第一把资料。支持switchover命令,能自动将老的主库进行角色转换。当主库实例关闭后,首先会尝试自动拉起;搭建繁琐,需要安装不同的组件,及配置项。当备库实例关闭后,支持自动拉起;......
2022-07-19 09:37:44
1335
原创 autovacuum调用analyze更新规划器统计信息
PostgreSQL查询计划器依靠有关表内容的统计信息来生成良好的查询计划。这些统计信息由ANALYZE命令收集,该命令可以自行调用,也可以作为. 拥有相当准确的统计数据很重要,否则计划选择不当可能会降低数据库性能。如果启用了 autovacuum 守护程序,它将在表的内容发生充分变化时自动发出命令。但是,管理员可能更喜欢依赖手动调度的操作,特别是如果已知表上的更新活动不会影响“有趣”列的统计信息时。守护进程严格根据插入或更新的行数进行调度;它不知道这是否会导致有意义的统计变化。分区中更改的元组和继承子项不
2022-07-06 17:51:43
370
原创 postgresql中建议使用TRUNCATE 代替DELETE
如果您有一个定期删除全部内容的表,请考虑使用TRUNCATE,而不是使用后跟. 立即删除表的全部内容,无需后续或回收现在未使用的磁盘空间。缺点是违反了严格的 MVCC 语义。当一个表由于大量的更新或删除活动而包含大量的死行版本时,VACUUM可能不会令人满意。如果您有这样一个表,并且需要回收它所占用的多余磁盘空间,那么您将需要使用VACUUM FULL,或者CLUSTER,或者ALTER table的一种表重写变体。这些命令重写表的整个新副本,并为其构建新的索引。所有这些选项都需要一个ACCESS EXCL
2022-07-01 17:37:58
1059
原创 postgresql函数变形
以下三个函数等价如果改成select,则报以下错误ERROR: query has no destination for result data HINT: If you want to discard the results of a SELECT, use PERFORM instead.
2022-06-30 14:04:40
2477
原创 postgresql模糊查询(like和~)引用变量
postgresql模糊查询(like和~)引用变量,正则表达式~和like的模糊查询,这两种方式语义是一样的。 Select 'select pg_terminate_backend('||pid||');'from pg_stat_activity where state in ('active') and query ~ '%:querystr%';
2022-06-29 17:21:46
7413
原创 sql优化实操
以下是同事人员发过来的sql,让我帮他优化一下,clickhouse的语句,需要替换成在自己的数据库上执行,dth_diagnosis_all 这个表的数据量90217505 ,千万级的数据量,说是内存不足,sql执行不了。两个子查询的数据量 以下为优化后的sql,看这个sql子查询t1和t3,其实是同一张表,然后对同一张表做连接查询,对t3表做了where条件过滤(这个不用改),之后连接查询之后又对t1表进行了where条件过滤,如下: t1.org_province = #{provi
2022-06-23 13:13:08
360
原创 linux系统中iptables、fireword、selinux、hosts.allow 、hosts.deny、ssh和sshd安全访问区别和联系
linux系统中iptables、fireword、selinux、hosts.allow 、hosts.deny、ssh和sshd安全访问区别和联系
2022-06-21 11:29:36
1566
原创 root用户安装postgresql和 postgres用户-bash问题
root用户安装postgresql和 postgres用户-bash问题,使用 root 进行源码编译安装,初始化数据库集簇 postgresql-setup initdb
2022-06-16 14:14:51
1693
原创 postgresql uuid的安装和使用
准备文件:链接:https://pan.baidu.com/s/1xmUCDSJ2TPT17FuzhdMfog提取码:y1qj1. 将 uuid-ossp.so 文件放在 /usr/pgsql-12/lib 目录下2. 将 其他文件放在 /usr/pgsql-12/share/extension 目录下3.重启 postgresql 服务4. 安装 uuid-oss 插件即可create extension IF NOT EXISTS "uuid-ossp"—————
2022-05-11 14:24:06
1730
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人