ubuntu pgadmin如何管理表空间
导读:Ubuntu 下用 pgAdmin 管理 PostgreSQL 表空间 一 前置准备与路径规划 以操作系统用户 postgres 在 Ubuntu 上预先创建目标目录,并确保权限正确(示例:/data/ts_fast、/data/ts_s...
Ubuntu 下用 pgAdmin 管理 PostgreSQL 表空间
一 前置准备与路径规划
- 以操作系统用户 postgres 在 Ubuntu 上预先创建目标目录,并确保权限正确(示例:/data/ts_fast、/data/ts_slow):
- sudo mkdir -p /data/ts_fast /data/ts_slow
- sudo chown postgres:postgres /data/ts_fast /data/ts_slow
- 表空间本质是一个已存在且为空的目录,PostgreSQL 会在 $PGDATA/pg_tblspc 下为其创建符号链接;创建表空间通常需要 超级用户 权限。
- 常用系统表空间:pg_default(默认数据目录)、pg_global(共享系统目录)。
二 在 pgAdmin 中创建与授权
- 连接实例:左侧展开 Servers → PostgreSQL xx,确认能正常连上目标实例。
- 新建表空间:
- 在左侧展开实例节点,右键 Tablespaces → Create → Tablespace…;
- 填写 Name(如:ts_fast),在 Location 填入准备好的目录(如:/data/ts_fast),设置 Owner(可选);
- 保存后,pgAdmin 会在后台执行类似:CREATE TABLESPACE ts_fast LOCATION ‘/data/ts_fast’;
- 授权普通用户使用表空间(GUI 通常无直接“授权”按钮,建议在 Query Tool 执行 SQL):
- GRANT CREATE ON TABLESPACE ts_fast TO your_user;
- 如需设为某用户的默认表空间:ALTER USER your_user SET default_tablespace = ts_fast;
- 创建对象时指定表空间(示例 SQL,可在目标库的 Query Tool 执行):
- 建表:CREATE TABLE t(id serial) TABLESPACE ts_fast;
- 建索引:CREATE INDEX ON t(id) TABLESPACE ts_slow;
- 建库并指定默认表空间:CREATE DATABASE db1 TABLESPACE ts_fast;
- 说明:索引不会继承表的表空间,需要显式指定;临时对象受参数 temp_tablespaces 影响。
三 查看与日常运维
- 在 pgAdmin 左侧展开 Tablespaces 节点,可查看表空间列表、名称、所有者与位置;也可在目标库的 Query Tool 查询系统目录:
- 列出表空间:SELECT spcname, spcowner::regrole, spclocation FROM pg_tablespace ORDER BY spcname;
- 查看对象所在表空间:SELECT schemaname, tablename, tablespace FROM pg_tables WHERE schemaname=‘public’;
- 修改与清理:
- 重命名表空间:ALTER TABLESPACE old_name RENAME TO new_name;
- 调整拥有者:ALTER TABLESPACE ts_fast OWNER TO new_owner;
- 删除表空间:DROP TABLESPACE ts_fast; (必须为空,且所有引用对象已删除;删除前建议先移动或清理对象)
四 迁移对象与常见排错
- 迁移现有表或索引到新表空间(在对象所在库执行):
- 表:ALTER TABLE t SET TABLESPACE ts_fast;
- 索引:ALTER INDEX t_id_idx SET TABLESPACE ts_slow;
- 大数据量对象迁移会重写数据,建议在低峰期执行,并关注锁与长事务影响。
- 常见问题与要点:
- 目录权限与属主:必须为 postgres:postgres,否则创建或写入失败;
- 目录必须为空且已存在;
- 不要将表空间放在临时/可移动文件系统上,表空间丢失会导致集簇不可用;
- 删除前确保对象已全部移走;
- 在 $PGDATA/pg_tblspc 下可见到指向实际目录的符号链接,勿在数据库运行时手工改动这些链接。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: ubuntu pgadmin如何管理表空间
本文地址: https://pptw.com/jishu/786376.html
