虽然我给数据库创建了表空间,但是操作中仍遇到了些问题,需要创建临时表空间。
配置表
首先了解下 postgres 的配置表,手动修改各种配置。
打开即可看到各种配置,包括临时表空间。
临时表空间
1. postgres 有默认的临时表空间,可手动修改
2. postgres 的临时表空间用来存储临时表或者临时表的索引,而且某些sql语句也会产生临时文件,如排序、聚合等,也需要临时表空间
3. 即使设置了表空间,临时表和临时文件也不会自动存储到表空间,仍存储在默认的临时表空间
4. 修改临时表空间需要配置 temp_tablespaces 参数,postgres 允许设置多个临时表空间,使用逗号隔开
5. 为了提高性能,临时表空间一般放在SSD或者IOPS,以及吞吐量较高的分区中
修改临时表空间首先要创建表空间 【方法就是单纯创建表空间的方法】
$ mkdir -p /data/pg_data/temp_tsp $ chown -R postgres:postgres /data/pg_data/temp_tsp postgres=# CREATE TABLESPACE temp01 LOCATION '/data/pg_data/temp_tsp'; CREATE TABLESPACE
设置临时表空间 -- 会话级生效
[root@localhost ~]# su postgres bash-4.2$ psql could not change directory to "/root" psql (9.2.24) Type "help" for help. postgres=# set temp_tablespaces = 'zns_road'; SET
查看临时表空间
postgres=# show temp_tablespaces ; temp_tablespaces ------------------ zns_road (1 row)
设置成功;
关闭会话后,重新查看
postgres=# show temp_tablespaces; temp_tablespaces ------------------ (1 row)
不存在了。
修改配置文件 -- 永久生效
修改完毕后执行如下命令,修改才能生效。
pg_ctl reload
如果报错,尝试如下操作
bash-4.2$ ./pg_ctl -D /var/lib/pgsql/data reload
server signaled
详情请参考下面链接,或 我的博客
参考资料:
https://blog.csdn.net/pg_hgdb/article/details/78712694 使用pg_ctl启动数据库时报错
https://blog.csdn.net/jinshi366/article/details/80017541 pg_ctl: no database directory specified and environment variable PGDATA unset , centos 7 postgreSQL
https://blog.csdn.net/dracotianlong/article/details/7828515 pg_ctl -- 启动、停止、重启 PostgreSQL
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)