[{"content":"步骤一：预备检查 确认分区、设备及其分区信息。\n硬盘的设备名称\n分区容量\n换算公式：容量=sectors * 512kb 因此，设备/dev/sdb容量 ≈ 419430400 * 0.5 ≈ 200 GB 分区 /dev/sdb1容量 ≈ 209713152 * 0.5 ≈ 100 GB\n硬盘的分区类型\nDisk label type值为dos表示MBR分区，值为gpt表示GPT分区。\n分区情况\n没有记录 =\u0026gt; 则是没有分区，可以直接进入 步骤三 有记录 =\u0026gt; 则是已经分区过，图中Device代表分区名称，1 是分区编号，请根据步骤二、步骤三按序操作 步骤二：扩容分区 GPT分区：\n1 2 3 4 5 sudo apt-get update type growpart || sudo apt-get install -y cloud-guest-utils type sgdisk || sudo apt-get install -y gdisk sudo LC_ALL=en_US.UTF-8 growpart /dev/vdb 1 MBR分区：\n1 2 3 sudo apt-get update type growpart || sudo apt-get install -y cloud-guest-utils sudo LC_ALL=en_US.UTF-8 growpart /dev/sdb 1 运行结果出现CHANGED则表示成功： 步骤三：扩容文件系统 获取需要扩容的目录和挂载情况 1 df -Th Type是文件系统类型，Mounted On是挂载目录，为了安全此处打码\n如果Filesystem值后没有数字后缀，则表示该设备未分区：/dev/sdb\n开始扩容 扩容分区/dev/sdb1: 1 sudo resize2fs /dev/sdb1 或，扩容未分区设备；\n1 sudo resize2fs /dev/sdb 检查分区结果 运行：\n1 df -Th 当Size一列结果符合预期时，扩容成功：\n说明 建议扩容前备份重要数据、建立快照 ","date":"2024-03-17T14:44:01+08:00","permalink":"http://localhost:1313/posts/expanding-disk-capacity-in-ubuntu/","title":"Ubuntu 硬盘（云盘）扩容流程"},{"content":"介绍 RUM扩展安装 第一步，从GitHub拉取代码 1 2 3 git clone https://github.com/postgrespro/rum # 如果“网速慢”，使用下面方式拉取 git clone https://mirror.ghproxy.com/https://github.com/postgrespro/rum 第二步，进入目录并make 1 2 3 4 5 cd rum make USE_PGXS=1 make USE_PGXS=1 install make USE_PGXS=1 installcheck psql DB -c \u0026#34;CREATE EXTENSION rum;\u0026#34; 可能遇到的问题：\nMakefile:40: /usr/lib/postgresql/*/pgxs.mk: No such file or directory 解决方式：添加pgsql的bin到PATH export PATH=\u0026quot;/usr/local/pgsql/bin/:$PATH\u0026quot; 修改了pgsql的默认端口，会在installcheck这一步出现以下错误： psql: error: connection to server on socket 处理方式： make USE_PGXS=1 installcheck =\u0026gt; make USE_PGXS=1 installcheck -p XXXX psql DB -c \u0026quot;CREATE EXTENSION rum;\u0026quot; 这一步，需要提前su - postgres psql DB -c \u0026quot;CREATE EXTENSION rum;\u0026quot;中DB请替换成你的实际数据库名称 psql DB -c \u0026quot;CREATE EXTENSION rum;\u0026quot;如果修改了端口，需要改成psql DB -c \u0026quot;CREATE EXTENSION rum;\u0026quot; -p xxxx 返回CREATE EXTENSION则扩展安装成功\nRUM索引的创建和使用 索引创建两种方式：\n创建一个tsvector类型的字段，通过zhparser分词插件和TRIGGER ，将需要全文索引的内容进行处理后存储到该字段。 这个方法无法使用一些RUM的其他特性，不推荐 创建索引的时候，使用to_tsvector来创建指定列的索 字段类型选择：tsvector 使用步骤 第一步 创建tsvector 类型的字段，这边字段名创建的为：idx\n第二步 1 CREATE TRIGGER tsvectorupdate BEFORE UPDATE OR INSERT ON table_name FOR EACH ROW EXECUTE PROCEDURE tsvector_update_trigger(\u0026#39;idx\u0026#39;, \u0026#39;public.zhcfg\u0026#39;, \u0026#39;column1\u0026#39;, \u0026#39;column2\u0026#39;); 使用上述SQL创建一个Trigger，用于自动生成idx列内容。\n第三步 给idx创建RUM索引\n1 CREATE INDEX tsts_idx ON tsts USING rum (t); 其他的索引用法，可以使用RUM的一些特性，创建多字段合并索引\n比如：rum_tsvector_addon_ops，该操作符用于tsvector类型的字段。\n1 2 CREATE INDEX tsts_idx ON tsts USING rum (idx rum_tsvector_addon_ops, published_time) WITH (attach = \u0026#39;published_time\u0026#39;, to = \u0026#39;idx\u0026#39;); 上述SQL的作用是创建一个名为tsts_idx的索引名称给tsts表，并且追加published_time到idx，形成一个多字段的索引。该特性优越于GIN的索引，能够有效解决全文索引+其他字段排序导致的查询慢的问题。 另外，还可以执行以下查询：\n1 SELECT id, published_time \u0026lt;=\u0026gt; \u0026#39;2023-05-16 14:21:25\u0026#39; FROM tsts WHERE idx @@ \u0026#39;开源 \u0026amp; 测试\u0026#39; ORDER BY published_time \u0026lt;=\u0026gt; \u0026#39;2023-05-16 14:21:25\u0026#39; LIMIT 5; 上述方式，可以查询特定时间相近的数据。\n备注 另外还有一些RUM的其他特性，可以参考官网：https://github.com/postgrespro/rum\n缺陷 RUM非官方内置扩展，并且会产生较大的日志、数据文件，占用更多的存储空间。\n","date":"2024-03-13T22:28:37+08:00","permalink":"http://localhost:1313/posts/postgresql-rum-index-fulltext-search-zhparser/","title":"PostgreSQL全文搜索，基于RUM索引和zhparser分词"},{"content":"Hello World ","date":"2024-02-20T15:43:47+08:00","permalink":"http://localhost:1313/posts/hello-world/","title":"Hello World"}]