重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 400|回复: 0
打印 上一主题 下一主题

使用PG _freespacemap模块的步骤

[复制链接]
跳转到指定楼层
楼主
发表于 2024-1-1 17:47:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 郑全 于 2024-1-1 17:48 编辑

默认情况下,pg_freespacemap是没有安装的,这个时候,直接去使用,会报错:
postgres@:5432/postgres-96307#=select * from pg_freespace('student');
ERROR:  function pg_freespace(unknown) does not exist
LINE 1: select * from pg_freespace('student');
                      ^
HINT:  No function matches the given name and argument types. You might need to add explicit type casts.



需要我们创建 EXTENSION pg_freespacemap

步骤如下:

1.切换到ROOT用户
   su - root

2.进入到源码的contrib/pg_freespacemap目录
   cd /postgresql/soft/postgresql-16.1/contrib/pg_freespacemap
[root@dbserver1 ~]# cd /postgresql/soft/postgresql-16.1/contrib/pg_freespacemap

3.编译安装
  gmake && gmake install

[root@dbserver1 pg_freespacemap]# gmake && gmake install

  gmake -C ../../src/backend generated-headers
gmake[1]: 进入目录“/postgresql/soft/postgresql-16.1/src/backend”
gmake -C catalog distprep generated-header-symlinks
gmake[2]: 进入目录“/postgresql/soft/postgresql-16.1/src/backend/catalog”
gmake[2]: 对“distprep”无需做任何事。
gmake[2]: 对“generated-header-symlinks”无需做任何事。
gmake[2]: 离开目录“/postgresql/soft/postgresql-16.1/src/backend/catalog”
gmake -C nodes distprep generated-header-symlinks
gmake[2]: 进入目录“/postgresql/soft/postgresql-16.1/src/backend/nodes”
gmake[2]: 对“distprep”无需做任何事。
gmake[2]: 对“generated-header-symlinks”无需做任何事。
gmake[2]: 离开目录“/postgresql/soft/postgresql-16.1/src/backend/nodes”
gmake -C utils distprep generated-header-symlinks
gmake[2]: 进入目录“/postgresql/soft/postgresql-16.1/src/backend/utils”
gmake[2]: 对“distprep”无需做任何事。
gmake[2]: 对“generated-header-symlinks”无需做任何事。
gmake[2]: 离开目录“/postgresql/soft/postgresql-16.1/src/backend/utils”
gmake[1]: 离开目录“/postgresql/soft/postgresql-16.1/src/backend”
gmake -C ../../src/backend generated-headers
gmake[1]: 进入目录“/postgresql/soft/postgresql-16.1/src/backend”
gmake -C catalog distprep generated-header-symlinks
gmake[2]: 进入目录“/postgresql/soft/postgresql-16.1/src/backend/catalog”
gmake[2]: 对“distprep”无需做任何事。
gmake[2]: 对“generated-header-symlinks”无需做任何事。
gmake[2]: 离开目录“/postgresql/soft/postgresql-16.1/src/backend/catalog”
gmake -C nodes distprep generated-header-symlinks
gmake[2]: 进入目录“/postgresql/soft/postgresql-16.1/src/backend/nodes”
gmake[2]: 对“distprep”无需做任何事。
gmake[2]: 对“generated-header-symlinks”无需做任何事。
gmake[2]: 离开目录“/postgresql/soft/postgresql-16.1/src/backend/nodes”
gmake -C utils distprep generated-header-symlinks
gmake[2]: 进入目录“/postgresql/soft/postgresql-16.1/src/backend/utils”
gmake[2]: 对“distprep”无需做任何事。
gmake[2]: 对“generated-header-symlinks”无需做任何事。
gmake[2]: 离开目录“/postgresql/soft/postgresql-16.1/src/backend/utils”
gmake[1]: 离开目录“/postgresql/soft/postgresql-16.1/src/backend”
/usr/bin/mkdir -p '/postgresql/pg16/lib'
/usr/bin/mkdir -p '/postgresql/pg16/share/extension'
/usr/bin/mkdir -p '/postgresql/pg16/share/extension'
/usr/bin/install -c -m 755  pg_freespacemap.so '/postgresql/pg16/lib/pg_freespacemap.so'
/usr/bin/install -c -m 644 ./pg_freespacemap.control '/postgresql/pg16/share/extension/'
/usr/bin/install -c -m 644 ./pg_freespacemap--1.1.sql ./pg_freespacemap--1.1--1.2.sql ./pg_freespacemap--1.0--1.1.sql  '/postgresql/pg16/share/extension/'

4.进入到POSTGRES用户并登录PG

[root@dbserver1 pg_freespacemap]# su - postgres

[postgres@dbserver1 ~]$ psql
psql (16.1)
Type "help" for help.


5.创建扩展
   postgres@:5432/postgres-96497#=create extension pg_freespacemap;
CREATE EXTENSION

6.列出所有的extension
  postgres@:5432/postgres-96497#=\dx
                                            List of installed extensions
        Name        | Version |   Schema   |                              Description                              
--------------------+---------+------------+------------------------------------------------------------------------
pg_buffercache     | 1.4     | public     | examine the shared buffer cache
pg_freespacemap    | 1.2     | public     | examine the free space map (FSM)
pg_stat_statements | 1.10    | public     | track planning and execution statistics of all SQL statements executed
pg_visibility      | 1.2     | public     | examine the visibility map (VM) and page-level visibility info
plpgsql            | 1.0     | pg_catalog | PL/pgSQL procedural language
(5 rows)

7.查看空闲空间

postgres@:5432/postgres-96497#=select * from pg_freespace('student');
blkno | avail
-------+-------
     0 |  8032
(1 row)





分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2024-4-30 13:17 , Processed in 0.074107 second(s), 19 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表