实战演练:PostgreSQL在线扩容
墨墨导读:最近被问到PG在线扩容的问题,本文整理了整个过程,之前写过一篇文章,供大家参考:《PosgreSQL三种表空间使用方式》https://www.modb.pro/db/14119。
1. 查看表空间
postgres=# \db+ List of tablespaces Name | Owner | Location | Access privileges | Options | Size | Description ------------+----------+----------+-------------------+---------+---------+------------- pg_default | postgres | | | | 1088 MB | pg_global | postgres | | | | 2167 kB | (2 rows)
可以看到这里没有自定义表空间,默认使用pg_default 表空间
2. 创建演示数据库和用户
使用新的数据库app,并且owner为app用户来进行演示
postgres=# create user app password'XXX';CREATE ROLEpostgres=# create database app owner app;CREATE DATABASEpostgres=# \c app appYou are now connected to database "app" as user "app".app=> create schema app authorization app;CREATE SCHEMAapp=> create table public.t1(id int);CREATE TABLEapp=> create table app.t2(id int);CREATE TABLE
3. 新建表空间
创建表空间需要超级用户权限
$ mkdir tblspace_new
app=# CREATE TABLESPACE tbl_app OWNER app LOCATION '/home/postgres/tblspace_new';CREATE TABLESPACE
4. 数据库app使用新表空间作为默认表空间
app=# \c app app
You are now connected to database "app" as user "app".
app=> alter database app set default_tablespace to tbl_app;退出psql再重新连接
app=> create table public.t3(id int);
CREATE TABLE
app=> create table app.t4(id int);
CREATE TABLE
app=> select pg_relation_filepath('t3');pg_relation_filepath
------------------------------------------------pg_tblspc/356916/PG_12_201909212/356883/356935
(1 row)app=> select pg_relation_filepath('app.t4');pg_relation_filepath
------------------------------------------------pg_tblspc/356916/PG_12_201909212/356883/356938
(1 row)app=> select oid,spcname from pg_tablespace ;oid | spcname
--------+------------1663 | pg_default1664 | pg_global356916 | tbl_app
(3 rows)
可以看到在app数据库下新建的表默认变到tbl_app表空间下,即oid为356916。
5. 修改用户app默认表空间为tbl_app
先恢复下上面的配置
drop table public.t3;drop table app.t4;alter database app set default_tablespace to default;
app=# \c app appapp=> alter user app set default_tablespace to tbl_app;
退出psql再重新连接
app=> create table public.t5(id int);CREATE TABLEapp=> create table app.t6(id int);CREATE TABLEapp=> select pg_relation_filepath('t5'); pg_relation_filepath ------------------------------------------------ pg_tblspc/356916/PG_12_201909212/356883/356959(1 row)
app=> select pg_relation_filepath('app.t6'); pg_relation_filepath ------------------------------------------------ pg_tblspc/356916/PG_12_201909212/356883/356962(1 row)
可以看到用户app新建的表默认变到tbl_app表空间下,其他用户不受影响。
6. 总结
如果要迁移数据表的表空间,会锁表,要注意对业务的影响。
新建表修改database级别或者user级别(一般还是database级别)的默认表空间,只需配置一次,原有的数据表存储不改变,这种方式是推荐的。
墨天轮原文链接:https://www.modb.pro/db/26082(复制到浏览器中打开或者点击“阅读原文”)
推荐阅读:144页!分享珍藏已久的数据库技术年刊
数据和云
ID:OraNews
如有收获,请划至底部,点击“在看”,谢谢!
点击下图查看更多 ↓
云和恩墨大讲堂 | 一个分享交流的地方
长按,识别二维码,加入万人交流社群
请备注:云和恩墨大讲堂
点个“在看”
你的喜欢会被看到❤
实战演练:PostgreSQL在线扩容相关推荐
- lvm 扩展根目录_Linux下lvm在线扩容步骤
LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性.LV ...
- Linux 文件系统在线扩容实战
1.关于LVM的简要介绍 LVM,即logic volume manager,逻辑卷管理.LVM的架构图如下: 说明: 第一,重点需要关注pv(physical volume) 物理卷,vg(volu ...
- 腾讯会议核心数据库TDSQL,如何做到快速无损在线扩容?
自去年12月底发布后,腾讯会议40天更新14个版本,8天紧急扩容超过10万台云主机,投入的计算资源超100万核.疫情复工期间,每周都有数万家企业和政府相关机构使用腾讯会议复工复产,通过腾讯会议开拓了云 ...
- h710阵列卡支持最大硬盘_DELL服务器RAID磁盘阵列在线扩容(以H710P阵列卡为例)
DELL服务器RAID磁盘阵列在线扩容(以H710P阵列卡为例) 分享到: 作者来源: 未知 发布时间:2013-01-12 简介 我们可通过扩充容量和 / 或改变 RAID 级别的方式来 ...
- xfs文件系统lvm在线扩容
通过pvs,vgs,lvs 等确认要扩容的VG,LV的名称.大小等信息,以免弄错. 1.确认服务器新扫描到的volume信息 #fdisk -l | more 2.fdisk 给新设备分区,选择分区类 ...
- qcow2 磁盘在线扩容方法
qcow2 磁盘在线扩容方法 - zlzlnet - 博客园qcow2 磁盘在线扩容方法 直接扩展现有qcow2格式磁盘大小的方法 注: 对应虚拟机的分区为vda,虚拟机系统为centos7 1. 查 ...
- linux 扩lv文件系统,Linux LVM系列(五)lv xfs文件系统在线扩容
之前都是ext4文件系统的lvm操作,虽然xfs不支持缩容但是可以扩容,这里是在线扩容 [root@aiker01 ~]# lvdisplay /dev/vg1/lv3 --- Logical vol ...
- linux扩大lvm_Linux下lvm在线扩容步骤
LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性.LV ...
- 快速摆脱在线扩容难的噩梦?
#华为云开年采购季#游戏开服.电商大促抢购,在线人数难预估,时常担心写爆Redis,影响活动正常进行.如何解决Redis来不及扩容?推荐使用企业级Redis,支持秒级在线扩容,关键时刻不掉链. 限时秒 ...
最新文章
- 经典图书《重构:改善既有代码的设计》图灵再版出版倒计时
- fiddler设置抓取https请求后打开网页总是报“你的连接不是私密链接”的解决办法
- React-Native Navigator 过渡动画卡顿的解决方案
- 初等数论--同余--Fermat素性检测算法(为什么每次概率改变1/2)
- 分享15款为开发人员准备的开发移动应用程序必备的新资源和工具
- java实现人脸识别源码【含测试效果图】——Dao层(IBaseDaoUtil)
- Linux中的Total Video Converter——超级音视频转换软件:Winff
- linux删除jpeg动态库,linux如何不用的删除动态库
- 程序员面试强行用代码画画被骂,20分钟后面试官闭嘴了
- 2022年最新《谷粒学院开发教程》:2 - 前后端交互篇
- 数据分析:销售数据怎么分析?简单概述
- 有趣的人工智能项目合集,如老婆生成器
- 「python自学建议贴」Python学习路线+视频教程完整版
- react antd design columns 配置解析
- goahead(嵌入式) webservice (3.3.0)运行goforms
- 基于肌肉骨骼模型的预测仿真
- 【SQL server】关系运算
- java输出希腊字母_java 命令行窗口输出希腊字母表
- 屏幕录制大师哪款好用?这3款录屏工具,值得推荐!
- 飞桨领航团AI达人创造营学习笔记1
热门文章
- 敏捷团队为何失败,Bash技巧,Emacs vs. Vim,为Linux粉丝撰写的12部小说读物,以及其他热门歌曲
- linux 企业邮件服务器_什么是Linux服务器,为什么您的企业需要一个?
- sourceforge_SourceForge依旧re憬未来
- linux 中 man 1 man2 man3 ......man N的区别
- ROS Rviz 显示轨迹 Python
- 深度学习笔记(49) 风格代价函数
- php 7.2.5_CentOS7下PHP5.5.38升级PHP7.2.2
- linux驱动大全,linux驱动
- mvc移动创建oracle表,使用 ASP.NET MVC (C#)在15分钟内创建电影数据库应用程序 | Microsoft Docs...
- akka java_java – Akka和Spring集成