目前开发一台EC2的PostgreSQL服务器的磁盘空间已经严重不足,该磁盘非LVM,所以不考虑磁盘扩容方法,研发希望可以分区/data/02对应的/dev/xvdl1磁盘分担部分数据库的数据,这样也不用另加磁盘,这里研发列出了部分数据库。此处借用tablespace特性将部分数据迁移到新磁盘

[postgres@ec2s-autodenalicontentpoi- ~]$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvde1 .9G .3G .2G % /
none 15G 12K 15G % /dev/shm
/dev/xvdl1 493G 46G 422G % /data/
/dev/xvdk1 .0T .8T 113G % /data/
hq-nfs-.eng.telenav.com:/nfs_home/home/
985G 22G 964G % /nfs/home

查看当前所有数据库大小

postgres=# \l+
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges | Size | Tablespace | Description
--------------------+-------------+----------+-------------+-------------+------------------------------+--------+------------+--------------------------------------------
contrib_regression | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | 15 MB | pg_default |
denali | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =Tc/postgres +| 357 MB | pg_default |
| | | | | postgres=CTc/postgres +| | |
| | | | | r_denali_readonly=c/postgres | | |
denali_test | denaliadmin | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | 15 MB | pg_default |
fuse | denaliadmin | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | 15 MB | pg_default |
postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | 27 MB | pg_default | default administrative connection database
region_anz | denaliadmin | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | 17 GB | pg_default |
region_eu | denaliadmin | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | 447 GB | pg_default |
region_il | denaliadmin | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | 12 GB | pg_default |
region_mea | denaliadmin | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | 69 GB | pg_default |
region_na | denaliadmin | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | 603 GB | pg_default |
region_sa | denaliadmin | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | 188 GB | pg_default |
region_sea | denaliadmin | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | 62 GB | pg_default |
regression | denaliadmin | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | 91 GB | pg_default |
template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +| 14 MB | pg_default | unmodifiable empty database
| | | | | postgres=CTc/postgres | | |
template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +| 14 MB | pg_default | default template for new databases
| | | | | postgres=CTc/postgres | | |
template_postgis | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | 19 MB | pg_default |
test | denaliadmin | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | 14 MB | pg_default |
(17 rows)

创建新的表空间

[postgres@ec2s-autodenalicontentpoi-01]$ mkdir -p /data/02/pgsql/data/base

postgres=# create tablespace region owner denaliadmin location
'/data/02/pgsql/data/base';
postgres=# \db+
List of tablespaces
Name | Owner | Location | Access privileges | Description
------------+-------------+--------------------------+-------------------+-------------
pg_default | postgres | | |
pg_global | postgres | | |
region | denaliadmin | /data/02/pgsql/data/base | |
(3 rows)
postgres=# select oid, * from pg_database;
oid | datname | datdba | encoding | datcollate | datctype | datistemplate | datallowconn | datconnlimit | datlastsysoid | datfrozenxid | datminmxid | dattablespace | datacl
--------+--------------------+--------+----------+-------------+-------------+---------------+--------------+--------------+---------------+--------------+------------+---------------+-------------------------------------------------------------------
1 | template1 | 10 | 6 | en_US.UTF-8 | en_US.UTF-8 | t | t | -1 | 12835 | 200001862 | 1 | 1663 | {=c/postgres,postgres=CTc/postgres}
12835 | template0 | 10 | 6 | en_US.UTF-8 | en_US.UTF-8 | t | f | -1 | 12835 | 200001940 | 1 | 1663 | {=c/postgres,postgres=CTc/postgres}
12840 | postgres | 10 | 6 | en_US.UTF-8 | en_US.UTF-8 | f | t | -1 | 12835 | 295302735 | 1 | 1663 |
16384 | template_postgis | 10 | 6 | en_US.UTF-8 | en_US.UTF-8 | f | t | -1 | 12835 | 205319808 | 1 | 1663 |
21627 | denali_test | 16513 | 6 | en_US.UTF-8 | en_US.UTF-8 | f | t | -1 | 12835 | 205320018 | 1 | 1663 |
17794 | denali | 10 | 6 | en_US.UTF-8 | en_US.UTF-8 | f | t | -1 | 12835 | 205316770 | 1 | 1663 | {=Tc/postgres,postgres=CTc/postgres,r_denali_readonly=c/postgres}
25419 | contrib_regression | 10 | 6 | en_US.UTF-8 | en_US.UTF-8 | f | t | -1 | 12835 | 295302735 | 1 | 1663 |
71746 | regression | 16513 | 6 | en_US.UTF-8 | en_US.UTF-8 | f | t | -1 | 12835 | 187750513 | 1 | 1663 |
103050 | test | 16513 | 6 | en_US.UTF-8 | en_US.UTF-8 | f | t | -1 | 12835 | 200001862 | 1 | 1663 |
48729 | region_na | 16513 | 6 | en_US.UTF-8 | en_US.UTF-8 | f | t | -1 | 12835 | 190246393 | 1 | 1663 |
153385 | region_sea | 16513 | 6 | en_US.UTF-8 | en_US.UTF-8 | f | t | -1 | 12835 | 200001862 | 1 | 1663 |
158397 | fuse | 16513 | 6 | en_US.UTF-8 | en_US.UTF-8 | f | t | -1 | 12835 | 200001862 | 1 | 1663 |
81870 | region_eu | 16513 | 6 | en_US.UTF-8 | en_US.UTF-8 | f | t | -1 | 12835 | 192495454 | 1 | 1663 |
93796 | region_sa | 16513 | 6 | en_US.UTF-8 | en_US.UTF-8 | f | t | -1 | 12835 | 200778866 | 1 | 1663 |
99928 | region_mea | 16513 | 6 | en_US.UTF-8 | en_US.UTF-8 | f | t | -1 | 12835 | 190246488 | 1 | 1663 |
101209 | region_il | 16513 | 6 | en_US.UTF-8 | en_US.UTF-8 | f | t | -1 | 12835 | 199337179 | 1 | 1663 |
101862 | region_anz | 16513 | 6 | en_US.UTF-8 | en_US.UTF-8 | f | t | -1 | 12835 | 199763417 | 1 | 1663 |
(17 rows)
postgres=# select oid,* from pg_tablespace;
oid | spcname | spcowner | spcacl | spcoptions
--------+------------+----------+--------+------------
1663 | pg_default | 10 | |
1664 | pg_global | 10 | |
271240 | region | 16513 | |
(3 rows)

将部分数据库迁移到新的表空间

postgres=# alter database region_il set tablespace region;
postgres=# alter database region_anz set tablespace region;
postgres=# alter database region_mea set tablespace region;
postgres=# alter database region_sa set tablespace region; postgres=# select d.datname as database, t.spcname as tablespace from pg_database d, pg_tablespace t where d.dattablespace=t.oid;
database | tablespace
--------------------+------------
template1 | pg_default
template0 | pg_default
postgres | pg_default
template_postgis | pg_default
denali_test | pg_default
denali | pg_default
contrib_regression | pg_default
regression | pg_default
test | pg_default
region_na | pg_default
region_sea | pg_default
region_il | region
region_anz | region
region_mea | region
region_sa | region
fuse | pg_default
region_eu | pg_default
(17 rows)

利用tablespace特性将数据库移动到新磁盘的更多相关文章

  1. 使AJAX调用尽可能利用缓存特性

    优化网站设计(十四):使AJAX调用尽可能利用缓存特性 前言 网站设计的优化是一个很大的话题,有一些通用的原则,也有针对不同开发平台的一些建议.这方面的研究一直没有停止过,我在不同的场合也分享过这样的 ...

  2. Android(java)学习笔记193:利用谷歌API对数据库增删改查(推荐使用)

    接下来我们通过项目案例来介绍:这个利用谷歌API对数据库增删改查 1.首先项目图: 2.这里的布局文件activity_main.xml: <LinearLayout xmlns:android ...

  3. SQL Server 2016新特性:列存储索引新特性

    SQL Server 2016新特性:列存储索引新特性 行存储表可以有一个可更新的列存储索引,之前非聚集的列存储索引是只读的. 非聚集的列存储索引支持筛选条件. 在内存优化表中可以有一个列存储索引,可 ...

  4. 利用RMAN恢复整个数据库

    利用RMAN恢复整个数据库案例一 适合场合:恢复的目录一致,同时备份的过程中有归档日志 恢复的数据库目录和down机的数据库一致,还有一个就是RMAN备份的时候已经备份了归档日志. 备份脚本: run ...

  5. Android(java)学习笔记136:利用谷歌API对数据库增删改查(推荐使用)

    接下来我们通过项目案例来介绍:这个利用谷歌API对数据库增删改查 1. 首先项目图: 2. 这里的布局文件activity_main.xml: <LinearLayout xmlns:andro ...

  6. 利用oneproxy部署mysql数据库的读写分离

    实验系统:CentOS 6.6_x86_64 实验前提:防火墙和selinux都关闭 实验说明:本实验共有4台主机,IP分配如拓扑 实验软件:mariadb-10.0.20 oneproxy-rhel ...

  7. 利用xtrabackup备份mysql数据库

    利用xtrabackup备份mysql数据库 一.安装1.直接下载二进制文件wget http://www.percona.com/downloads/XtraBackup/XtraBackup-2. ...

  8. Atitit python3.0 3.3 3.5 3.6 新特性 Python2.7新特性1Python 3_x 新特性1python3.4新特性1python3.5新特性1值得关注的新特性1Pyth

    Atitit python3.0 3.3 3.5 3.6 新特性 Python2.7新特性1 Python 3_x 新特性1 python3.4新特性1 python3.5新特性1 值得关注的新特性1 ...

  9. 重新想象 Windows 8.1 Store Apps (91) - 后台任务的新特性: 下载和上传的新特性, 程序启动前预下载网络资源, 后台任务的其它新特性

    [源码下载] 重新想象 Windows 8.1 Store Apps (91) - 后台任务的新特性: 下载和上传的新特性, 程序启动前预下载网络资源, 后台任务的其它新特性 作者:webabcd 介 ...

随机推荐

  1. 【转载】vim 中如何替换选中行或指定几行内的文本

    https://segmentfault.com/q/1010000002552573/a-1020000002552589 :'<,'>s/替换项/替换为/g 以下命令将文中所有的字符串 ...

  2. Appium典型问题处理

    1. http://ask.testfan.cn/article/902 Appium 服务端安装-windows2. http://ask.testfan.cn/article/1078 最新版本a ...

  3. 【BZOJ】3575: [Hnoi2014]道路堵塞

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3575 大概的做法是,按照顺序枚举每一条要删去的边,(假设当前点为$u$,在最短路径上的下一 ...

  4. Easyui使用心得(1)--DateGrid表格

    最近一直在用easyui这个控件,有一点心得,在这里和大家分享一下,也是对自己工作的一个小小的总结,希望可以形成一个完整的Easyui的笔记体系,可以方便更多的人 因为自己也是在摸索中前进,难免有遗漏 ...

  5. Flexbox弹性布局,更优雅的布局

    Flexbox,更优雅的布局 Flex 布局教程:语法篇 Flex 布局教程:实例篇 2009年,W3C提出了一种新的方案----Flex布局,可以简便.完整.响应式地实现各种页面布局.目前,它已经得 ...

  6. 实现一个键对应多个值的字典(multidict)

    一个字典就是一个键对应一个单值的映射.如果你想要一个键映射多个值,那么你就需要将这多个值放到另外的容器中, 比如列表或者集合里面.比如,你可以像下面这样构造这样的字典: d = { , , ], , ...

  7. leetcode 查找每个元素都出现两次的列表,返回只出现一次的元素

    Given an array of integers, every element appears # twice except for one. Find that single one. clas ...

  8. oracle 存储过程给另一个用户的权限问题

    grant execute on (包名)存储过程名称 to 用户名; grant debug on  (包名)存储过程名称 to 用户名 grant select on  存储过程名称 to 用户名 ...

  9. 使用padding值控制控件的隐藏与显示

    在学自定义控件下拉刷新这一案例,控制ListView头条目和尾条目的显示隐藏时,就是设置其padding值的正负控制其的显示与隐藏.这并不是什么很大的知识点.只是一个小技巧,这里给大家分享一下. 这一 ...

  10. Linux修改hostname时/etc/hosts、/etc/sysconfig/network ,hostname,三者的区别和联系

    [root@localhost /]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.l ...