首页 > 其他分享 >MogDB 学习笔记之 -- truncate 属于dml语句

MogDB 学习笔记之 -- truncate 属于dml语句

时间:2024-02-19 19:47:25浏览次数:26  
标签:dn 语句 truncate 6001 -- 09 dml 2022 24

概念描述

验证create 语句、alter 语句、truncate语句、drop语句 是属于ddl 还是dml

测试验证

1、环境准备

修改log_statement 参数
miao=# show log_statement;
log_statement
---------------
none
(1 row)

miao=# ALTER DATABASE miao SET log_statement TO ddl;
ALTER DATABASE

miao=> show log_statement;
log_statement
---------------
ddl
(1 row)

2、测试 create 的语句

创建新表t_p_t
create table t_p_t as select * from t_o_t;

create 对应的日志

2022-10-24 09:34:13.659 635515e3.3858 [unknown] 140420986697472 dn_6001 0 dn_6001 00000 0 [DBL_WRT] LOG: [batch flush] DW truncate end: file_head[dwn 442, start 21798], total_pages 0
2022-10-24 09:34:13.659 635515e3.3858 [unknown] 140420986697472 dn_6001 0 dn_6001 00000 0 [DBL_WRT] LOG: [single flush] DW truncate end: file_head[dwn 97, start 0], total_pages 0
2022-10-24 09:34:13.659 635515e3.3858 [unknown] 140420986697472 dn_6001 0 dn_6001 00000 0 [UNDO] LOG: [CheckPointUndoSystemMeta:353]undo metadata checkPointRedo = 20564483160.
2022-10-24 09:34:13.663 635515e3.3858 [unknown] 140420986697472 dn_6001 0 dn_6001 01000 0 [BACKEND] WARNING: replicationSlotMinLSN is InvalidXLogRecPtr!!!
2022-10-24 09:34:13.663 635515e3.3858 [unknown] 140420986697472 dn_6001 0 dn_6001 01000 0 [BACKEND] WARNING: replicationSlotMaxLSN is InvalidXLogRecPtr!!!
2022-10-24 09:34:13.664 635515e3.3858 [unknown] 140420986697472 dn_6001 0 dn_6001 00000 0 [BACKEND] LOG: CreateCheckPoint PrintCkpXctlControlFile: [checkPoint] oldCkpLoc:4/C9BC9DE0, oldRedo:4/C9BC9D60, newCkpLoc:4/C9BD1CD8, newRedo:4/C9BD1C58, preCkpLoc:4/C9BC3E58
2022-10-24 09:34:13.664 635515e3.3858 [unknown] 140420986697472 dn_6001 0 dn_6001 00000 0 [BACKEND] LOG: will update control file (create checkpoint), shutdown:0
2022-10-24 09:34:13.672 635515e3.3858 [unknown] 140420986697472 dn_6001 0 dn_6001 00000 0 [BACKEND] LOG: attempting to remove WAL segments older than log file 0000000100000004000000B7
2022-10-24 09:34:23.635 6355eb9f.3060 postgres 140420592314112 Clean Statement thread 0 dn_6001 00000 0 [BACKEND] LOG: clean statement thread start

2022-10-24 09:34:35.848 6355eb43.3061 miao 140421053867776 gsql 0 dn_6001 00000 0 [BACKEND] LOG: statement: create table t_p_t as select * from t_o_t; <<<<<<<<<<<<



结论:经过以上实验验证,发现create 语句在日志里体现出来了,证明create语句属于ddl语句。

3、测试 alter table的语句

修改表t_p_t 字段大小
alter table t_p_t modify b character varying(200);


miao=> \d t_p_t
Table "dbmt.t_p_t"
Column | Type | Modifiers
--------+------------------------+-----------
a | integer |
b | character varying(255) |

miao=> alter table t_p_t modify b character varying(200);
ALTER TABLE
miao=> \d t_p_t
Table "dbmt.t_p_t"
Column | Type | Modifiers
--------+------------------------+-----------
a | integer |
b | character varying(200) |

alter table 对应的日志


2022-10-24 09:46:14.749 635515e3.3858 [unknown] 140420986697472 dn_6001 0 dn_6001 00000 0 [BACKEND] LOG: CreateCheckPoint PrintCkpXctlControlFile: [checkPoint] oldCkpLoc:4/C9C12A88, oldRedo:4/C9C12A08, newCkpLoc:4/C9C1E2B8, newRedo:4/C9C186B0, preCkpLoc:4/C9C0CDE0
2022-10-24 09:46:14.749 635515e3.3858 [unknown] 140420986697472 dn_6001 0 dn_6001 00000 0 [BACKEND] LOG: will update control file (create checkpoint), shutdown:0
2022-10-24 09:46:14.752 635515e3.3858 [unknown] 140420986697472 dn_6001 0 dn_6001 00000 0 [BACKEND] LOG: attempting to remove WAL segments older than log file 0000000100000004000000B7
2022-10-24 09:46:26.636 6355ee72.3060 postgres 140420185052928 Clean Statement thread 0 dn_6001 00000 0 [BACKEND] LOG: clean statement thread start


2022-10-24 09:47:07.321 6355eb43.3061 miao 140421053867776 gsql 0 dn_6001 00000 0 [BACKEND] LOG: statement: alter table t_p_t modify b character varying(200); <<<<<<<<<<<<



结论:经过以上实验验证,发现alter 语句在日志里体现出来了,证明alter 语句属于ddl语句。
4、测试 truncate 的语句


truncate table t_p_t;


truncate 没有在ddl状态下输出日志


5、测试 drop 的语句

drop table t_p_t;

drop 对应的日志

2022-10-24 09:52:28.317 6355efdc.3060 postgres 140420185052928 Clean Statement thread 0 dn_6001 00000 0 [BACKEND] LOG: clean statement thread start
2022-10-24 09:52:33.182 6355eb43.3061 miao 140421053867776 gsql 0 dn_6001 00000 0 [BACKEND] LOG: statement: drop table t_p_t; <<<<<<<<<

结论:经过以上实验验证,发现drop 语句在日志里体现出来了,证明drop 语句属于ddl语句。

6、修改log_statement 参数为mod 再次测试truncate语句

miao=> ALTER DATABASE miao SET log_statement TO mod;
ALTER DATABASE
miao=> \q
[omm@db1 gs_dump]$ gsql -d miao -p 26000 -U dbmt
Password for user dbmt:
gsql ((MogDB 2.1.1 build b5f25b20) compiled at 2022-03-21 14:42:30 commit 0 last mr )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.

miao=> show log_statement;
log_statement
---------------
mod
(1 row)

miao=> truncate table t_p_t;
TRUNCATE TABLE

truncate 对应的日志
2022-10-24 09:58:08.817 6355f0ee.3061 miao 140421053867776 gsql 0 dn_6001 00000 0 [BACKEND] LOG: statement: truncate table t_p_t; <<<<<<<<<<
2022-10-24 09:58:08.817 6355f0ee.3061 miao 140421053867776 gsql 1588850 dn_6001 00000 17732923532782651 [BACKEND] LOG: Relation t_p_t(165435) set newfilenode 165441 oldfilenode 165438 xid 1588850
2022-10-24 09:58:14.810 635515e3.3858 [unknown] 140420986697472 dn_6001 0 dn_6001 00000 0 [DBL_WRT] LOG: [batch flush] DW truncate end: file_head[dwn 442, start 26764], total_pages 0

结论:经过以上实验验证,发现truncate 语句在日志里体现出来了,证明truncate 语句属于dML语句。

知识总结

drop 语句、create 语句、drop 语句、alter 语句 都属于ddl
truncate 属于dml语句

标签:dn,语句,truncate,6001,--,09,dml,2022,24
From: https://www.cnblogs.com/xinxin1222/p/18021803

相关文章

  • 安装MogHA
    一、关于MogHAMogHA是云和恩墨基于MogDB同步异步流复制技术自研的一款保障数据库主备集群高可用的企业级软件系统(适用于MogDB和openGauss数据库)MogHA能够自主探测故障实现故障转移,虚拟IP自动漂移等特性,使得数据库的故障持续时间从分钟级降到秒级(RPO=0,RTO<30s),确保数据......
  • MogDB 学习笔记之 -- PITR恢复
    概念描述背景信息当数据库崩溃或希望回退到数据库之前的某一状态时,MogDB的即时恢复功能(Point-In-TimeRecovery,简称PITR)可以支持恢复到备份归档数据之后的任意时间点。说明:PITR仅支持恢复到物理备份数据之后的某一时间点。仅主节点可以进行PITR恢复,备机需要进行全量build达......
  • password_encryption_type 和 pg_hba.conf 不匹配导致用户连不上
    问题概述xxx客户新上一套opengauss数据库,在测试中用户输入正确的密码,提示用户密码错误,导致用户被锁问题原因password_encryption_type和pg_hba.conf不匹配导致用户连不上模拟问题因没有opengauss的环境,测试环境选择Mogdb1、准备测试环境,修改password_encryption_type。......
  • java的getResource方法 总结一下 在Java中获取资源的时候,经常用到getResource和getRes
    java的getResource方法总结一下在Java中获取资源的时候,经常用到getResource和getResourceAsStream,本文总结一下这两种获取资源文件的路径差异1.前言在Java中获取资源的时候,经常用到getResource和getResourceAsStream,本文总结一下这两种获取资源文件的路径差异。2.Class.get......
  • 系统科学方法概论第三章读后感
    信息方法是一种研究方法,它运用信息的概念,将系统的运动过程看作是信息的传递和转换过程。这种方法完全撇开系统的具体运动形式,而是关注系统如何通过获取、传递、运用和存储信息来实现其目的。信息方法的特点是以信息为基础,从信息的整个流程进行综合考察,以获得对系统的整体性认识。......
  • oceanbase 社区版安装
    一、环境准备节点类别主机名IPOBSERVERobserver1192.168.3.41OBSERVERobserver2192.168.3.42OBSERVERobserver3192.168.3.43ocpocpserver192.168.3.47中控机obcontrol192.168.3.48二、名词解析中控机:存储Oceanbase数据库安装包和集群配置信......
  • mogdb的一主两备
    一、环境准备节点类别主机名IP主节点mogdb1192.168.3.68备节点1mogdb2192.168.3.69备节点2mogdb3192.168.3.70二、关闭防火墙和透明大页1、修改操作系统配置1)关闭SELINUX修改/etc/selinux/config文件中的“SELINUX”值为“disabled”2)关闭......
  • Codeforces Round 927 (Div. 3)
    CodeforcesRound927(Div.3)A-ThornsandCoins解题思路:出现连续两个障碍之前,所有金币都能拿到。代码:#include<bits/stdc++.h>usingnamespacestd;usingll=longlong;usingpii=pair<ll,ll>;#definefifirst#definesesecondusingi128=__int128_t;......
  • Oracle 低版本客户端连接19C报错ORA-28040
    适用范围12.2+问题概述客户使用Oracle11.2客户端连接Oracle19c的时候,报错:ORA-28040:NomatchingauthenticationprotocolORA-28040:没有匹配的验证协议问题原因原因客户端与服务器的没有匹配的认证协议解决方案1、在数据库服务器上的$ORACLE_HOME/network/admin/sql......
  • 系统科学方法概论第四章读后感
    在我接触并深入研究计算机控制方法后,我对其在现代社会中的重要性有了更深的认识。当我阅读关于计算机控制方法的书籍时,我被其精妙而复杂的设计所吸引,这不仅是一门科学,更是一门艺术。对于我来说,计算机控制方法不仅是工程领域的专业知识,更是一种解决现实问题的有效工具。通过学习和......