- 博客(224)
- 资源 (2)
- 收藏
- 关注
原创 Linux OOM
OOM 是 Linux 内核在内存不足时采取的一种保护机制。当系统的物理内存和交换空间都被耗尽时,内核会触发 OOM(Out of Memory) Killer,选择一个或多个进程终止,以释放内存并防止系统崩溃。
2025-02-25 16:59:26
424
原创 Linux sar 命令
会自动收集相关指标日志,存储在 /var/log/sa/ 目录下,文件名格式为 saXX 和 sarXX,其中 XX 表示日期(例如 sa23 和 sar23 表示当月的 23 号数据),这两个文件的主要区别在于它们的格式和用途。sar 的日志保留时间默认为 28天,可通过修改 /etc/sysconfig/sysstat 文件中的 HISTORY 参数进行控制,修改后重启对应服务。都是 Linux 系统中常用的性能监控工具,但它们的设计目标和使用场景有所不同。
2025-02-24 14:06:45
666
原创 Linux 文件内容查看
表示持续侦测后面所接的档名,要等到按下[ctrl]-c才会结束tail的侦测。:相当于 -vET 的整合选项,可列出一些特殊字符而不是空白而已;:表示不论是否为空行,也同样列出行号(类似 cat -n);:列印出行号,连同空白行也会有行号,与 -b 的选项不同;:代表在这个显示的内容当中,向下搜寻『字串』这个关键字;:列出行号,仅针对非空白行做行号显示,空白行不标行号!:如果有空行,空的那一行不要列出行号(默认值);:行号在自己栏位的最右方显示,且不加 0;:行号在自己栏位的最右方显示,且加 0;
2025-02-17 16:22:16
417
原创 Linux top 命令
动态显示指定进程(PID 为 21750)的结果,每 3 秒刷新一次。是一个实时系统监控工具,用于查看系统的资源使用情况和进程状态。:动态显示指定用户(root)的结果,每 3 秒刷新一次。:动态显示结果,每 3 秒刷新一次,刷新 10 次后退出。命令返回的第四行和第五行为内存使用情况。:动态显示结果,每 3 秒刷新一次。命令返回的第一行内容一致,详情查看。:动态显示结果,每 2 秒刷新一次。命令返回的第一行内容与。
2025-02-17 15:53:59
1076
原创 PostgreSql 配置大页内存
Linux 中,只有内核可以直接访问物理内存,而进程需要通过映射的方式进行访问。如上图,系统物理内存默认被分为很多 4k 大小的内存空间,进程每访问一块空间(物理页),都需要在页表中记录一条对应的映射记录(页表项),假设 进程1 需要访问 2M 的物理内存,那么将需要在页表中记录 2*1024/4=512 条映射记录,而每条记录都会占用一定的内存空间,随着系统进程需要访问的物理内存增加,页表所占用的空间也会变得越来越大,且随着映射记录的增多,维护映射关系的成本也会越来越高,进而对系统的性能造成影响。
2025-01-07 15:16:22
677
原创 PostgreSql vacuum freeze
数据库使用 32 位事务号,最大容纳 42 亿左右的事务号,事务号是循环使用的。当前事务号过去的 21 亿事务属于过去的事务号,当前事务号往前的 21亿 属于未来的事务号,未来的事务号对当前事务是不可见的。当事务号处于未来事务时,就会导致该事务不可见(事务 ID 回卷),为了预防此类情况发生,数据库事务号在达到阈值时 autovacuum 会自动冻结(freeze)重置事务 ID 为 2(冻结的事务id,比任何普通的事务 ID 都旧),来防止事务 ID 回卷。
2024-08-20 14:30:10
815
原创 PostgreSql 并行
当服务器有多核 cpu 时,PostgreSQL 会根据默认配置,在合适的条件下自动进行并行操作,除非主动关闭了相关并行参数。
2023-12-26 14:19:16
879
原创 PostgreSql 设置自增字段
序列类型是 PostgreSQL 特有的创建一个自增列的方法。包含 smallserial、serial和 bigserial 类型,它们不是真正的类型,只是为了创建唯一标识符列而存在的方便符号。
2023-12-12 14:33:23
1075
原创 PostgreSql 报错ERROR: cannot cast type smallint to boolean
smallint 类型需先转为 int 类型,再转为布尔类型。
2023-12-07 16:24:39
1189
原创 PostgreSql 字符串匹配
PostgreSQL 提供了三种独立的实现模式匹配的方法:SQL LIKE 操作符、更近一些的 SIMILAR TO 操作符(SQL:1999 里添加进来的)和 POSIX 正则表达式。虽然大部分的正则表达式搜索都能被很快地执行,但是正则表达式仍可能被人为地设置成需要任意长的时间和任意量的内存进行处理,如果必须这样做,建议加上语句超时限制。使用 SIMILAR TO 模式的搜索具有同样的安全性危险,LIKE 搜索比其他两种选项简单得多,要更安全些。
2023-12-07 15:59:05
1251
原创 PostgreSql 规则
其它数据库系统定义活动的数据库规则,通常是存储过程和触发器。在 PostgreSQL 中,这些东西可以通过函数和触发器来实现。规则系统(更准确地说是查询重写规则系统)与存储过程和触发器完全不同。它把查询修改为需要考虑规则,并且然后把修改过的查询传递给查询规划器进行规划和执行。它非常强大,并且可以被用于许多东西如查询语言过程、视图和版本。PostgreSQL 规则系统允许我们定义针对数据库表中插入、更新或者删除动作上的替代动作。比如当在一个给定表上执行给定命令时,一条规则会导致执行额外的命令。
2023-12-05 17:41:20
637
1
原创 PostgreSql HOT 技术
因为多版本的原因,当 PostgreSQL 中更新一行时,实际上原数据行并不会被删除,只是插入了一个新行。如果表上有索引,而更新的字段不是索引的键值时,由于新行的物理位置发生了变化,仍然需要更新索引,这将导致性能下降,为了解决这一问题,PostgreSQL 自 8.3 版本之后引入了一个名为“Heap-Only Tuple”的新技术,简称 HOT。
2023-12-05 11:33:26
432
原创 PostgreSql 备份恢复
在 recovery_target、recovery_target_lsn、recovery_target_name、recovery_target_time 和recovery_target_xid 中, 最多只能使用一个。当指定时间点恢复时,启动数据库后默认为只读状态,此时可查询数据进行检查,若不是想要的数据,可继续往后推进(只能向上次恢复的时间点后推进,不能向之前倒推)允许其他并发备份运行,既包括那些使用同样的 API 开始的备份,也包括那些用 pg_basebackup 开始的备份。
2023-08-14 10:04:27
1936
原创 PostgreSql 参数配置
pfilespfileASCII文本文件ASCII文本文件ASCII文本文件二进制文件手动编辑手动编辑手动编辑、alter system 修改alter system 修改重启库或重载配置文件生效用 pfile 重启库生效重启库或重载配置文件生效立即生效或重启库生效示例如下。
2023-08-08 09:54:28
2884
原创 PostgreSql 日期时间输出风格及顺序
风格为 ISO 和 German 时,时间显示结果不受排序影响。风格为 SQL 和 POSTGRES 时,时间显示结果中的 月、日 受排序影响。
2023-08-08 09:53:23
1992
原创 PostgreSql 进程及内存结构
PostgreSQL 启动后会生成一块共享内存,共享内存主要用作数据块的缓冲区,以便提高读写性能。WAL 日志缓冲区 和 CLOG(CommitLog)缓冲区也存在于共享内存中。PostgreSQL 数据库运行时,使用如下命令可查询数据库进程,正对应上述结构图。
2023-07-31 17:22:27
1577
原创 PostgreSql 锁
在中提到,多个用户访问相同数据时可能出现脏读,不可重复度,幻读,更新丢失的问题,为解决这些问题,定义了不同的隔离级别,而隔离级别的具体实现,依靠的就是数据库锁冲突的机制,在数据库中,不同事务在同一时刻不能对同一对象持有相互冲突的锁,PostgreSQL 提供了多种锁模式用于控制对表中数据的并发访问,大多数情况下数据库会在事务运行的过程中自动的给相关对象加锁解锁,以保证事物的正常运行及数据的一致性。
2023-07-31 09:45:35
2318
原创 PostgreSql 事务
在日常操作中,对于一组相关操作,通常需要其全部成功或全部失败。在关系型数据库中,将这组相关操作称为事务。事务具有的四个特性简称为 ACID。
2023-07-26 15:48:34
1655
原创 PostgreSql 用户及权限管理
ALTER DEFAULT PRIVILEGES 允许设置将被应用于未来要创建的对象的特权(它不会影响分配给已经存在的对象的特权)。当前,只能修改用于模式、表(包括视图和外部表)、序列、函数和类型(包括域)的特权。其中,可设置权限的函数包括聚集函数和过程函数。当这个命令应用于函数时,单词 FUNCTIONS 和 ROUTINES 是等效的。(推荐使用 ROUTINES,因为它是用来囊括函数和过程的一个标准术语。在较早的 PostgreSQL 发行版中,只允许单词 FUNCTIONS。
2023-07-17 17:21:54
16595
原创 PostgreSql 表空间
PostgreSQL 中的表空间允许数据库管理员在文件系统中定义用来存放表示数据库对象的文件的位置。一旦被创建,表空间就可以在创建数据库对象时被引用,如创建数据库、表、索引和添加索引时指定表空间。管理员可以利用表空间控制 PostgreSQL 的磁盘布局,这么做至少有如下两个用处。
2023-07-12 17:59:26
2123
原创 PostgreSql 触发器
PostgreSQL从9.3 版开始支持一种称为"Event Trigger"的触发器,这种触发器主要用于弥补PostgreSQL 以前版本不支持 DDL 触发器的不足。由于事件触发器涉及的权限较大,比如能禁止 DDL 操作等,所以只有超级用户才能创建和修改事件触发器。目前,事件触发器支持以下 3 种 DDL 事件。:DDL开始执行前被触发。:一个DDL执行完成后被触发。sql_drop:删除数据库对象前被触发。
2023-07-11 13:54:37
7827
原创 PostgreSql 表
UNLOGGED表在使用上与普通表没有区别,仅仅在插入、删除、更新数据时不产生WAL日志,所以做这些DML操作的性能会更高。另外需要注意的是,数据库异常宕机时,UNLOGGED表的数据可能会丢失。
2023-07-07 11:33:07
1117
原创 PostgreSql 模式
模式(Schema)是数据库中的一个概念,可以将其理解为一个命名空间或目录,不同的模式下可以有相同名称的表、函数等对象而不会产生冲突。提出模式的概念是为了便于管理,只要有权限,各个模式的对象可以互相调用。在 PostgreSQL 中,一个数据库包含一个或多个模式,模式中又包含了表、函数以及操作符等数据库对象。
2023-07-06 09:32:55
2199
原创 PostgreSql 数据库操作
要创建一个数据库,你必须是一个超级用户或者具有特殊的 CREATEDB 特权。默认情况下,新数据库将以标准系统数据库 template1 为模板进行创建。可以通过写 TEMPLATE name 指定一个不同的模板。特别地,通过写 TEMPLATE template0 可以创建一个原始的数据库(其中没有用户定义的对象存在并且系统对象没有被更改),它将只包含你的 PostgreSQL 版本所预定义的标准对象。:要创建的数据库名。
2023-07-05 18:05:27
1602
原创 PostgreSql 数据类型
字符串函数及操作符:https://blog.youkuaiyun.com/songyundong1993/article/details/131416803?数学函数及操作符:https://xiaosonggong.blog.youkuaiyun.com/article/details/131416741。布尔类型操作符:https://xiaosonggong.blog.youkuaiyun.com/article/details/131416704。
2023-06-27 14:49:52
1751
原创 PostgreSql 字符串函数及操作符
一、标准SQL字符串函数和操作符函数返回类型描述示例结果string||stringtext字符串连接‘Post’||‘greSQL’PostgreSQLbit_length(string)int字符串中的二进制位数的个数bit_length(‘jose’)32char_length(string)int字符串中的字符个数char_length(‘数据库’)3convert(string using conversion_name)te
2023-06-27 14:41:09
1572
oracle数据库巡检脚本 dbcheck.sh
2020-09-08
Oracle 11g 部署rman定时备份文档(windows+linux).docx
2020-07-31
一键创建了很多个人社区怎样删除
2023-11-17
TA创建的收藏夹 TA关注的收藏夹
TA关注的人