数据库选型时遇到PostgreSQL的一个问题-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

数据库选型时遇到PostgreSQL的一个问题

2018-03-21 04:33:52 2598 2

首先说一下背景,这是一个传统的面向企业的产品型软件,每天会录入大量的日志型数据到数据库中(目前最高每天几百G),由于是产品型软件,销售后数据库安装在企业内部,上门进行数据库维护是很困难的,所以要求尽可能轻运维(这与大部分的互联网应用方案很不一样)。

以前产品使用的数据库是SQL Server,针对数据进行了分表分库处理,其中有一个功能就是备份/加载,这个功能允许用户定期按天把历史日志数据从系统中备份出来另外存放,当需要使用时才加载回系统进行使用,这个功能对于这个场景应该是很重要的,历史数据如果一直在数据库中对磁盘空间要求要很大,如果能备份出来就可以单独找其他空间来存放了。这个功能由于是按天分库,只要使用SQLServer的Attach和Detach功能就能很好地进行分离和加载,速度是很快的,用户体验会非常好。

目前选型数据库时,发现Postgresql好像满足不了这个需求,考量了它的几种备份方案,都解决不了:

  1. pg_dump来备份,这是逻辑备份方案,在备份和恢复时都需要较长的时间及占用大量的CPU资源
  2. 物理备份只支持整个Postgresql的Data目录备份,显然也是不能满足的
  3. 使用WAL的PITR也是不行的

实际我想实现的是如何能把数据从数据库中快速分离出来,并且能快速加载回去,按这个想法我想到的只有物理备份才有可能做到的,从Postgresql的数据组织来看它不同表的数据也是存放到不同的文件中的。

在官网上也有过这个提问:
https://www.postgresql.org/message-id/CAA-aLv5cQf09zvFRCB1XXUQLSp-ouX0S_Hq6ryScd6CtamipFQ%40mail.gmail.com
简单搜了一下,Oracle和Mysql可以通过传输表空间实现类似的功能:
http://blog.itpub.net/17203031/viewspace-749513/
http://blog.itpub.net/29773961/viewspace-2134065/

想问问有什么方法能实现我的需求吗?
PS: 如果物理备份,不用考虑OS, 版本等差异,一些非常规方案也行(选型MySQL时类似问题就可以通过一些修复语句能做到)

取消 提交回答
全部回答(2)
  • 1131324796142114
    2019-07-17 22:02:32

    一个笨办法,通过sql语句查到表对应的文件,将文件mv出来,用的时候再mv进去。mv出来时,表在数据库可见,但是访问会提示文件不存在;mv回去后可以正常访问。

    mydb=# select relname, nspname, spcname, pg_relation_filepath(tc.relname::regclass), pg_size_pretty(pg_relation_size(tc.relname::regclass)) from pg_class tc, pg_namespace tn, pg_tablespace tt where tn.oid = tc.relnamespace and tt.oid = tc.reltablespace and relname = 'test1';

    relnamenspnamespcnamepg_relation_filepathpg_size_pretty
    test1publictestpg_tblspc/19846/PG_9.5_201510051/19697/2028140 kB

    (1 row)

    mydb=# db

                   List of tablespaces
    Name    |  Owner   |             Location
    pg_defaultapple
    pg_globalapple
    testpostgres/usr/local/pgsql/test_name_space

    (3 rows)

    0 0
  • 陨落
    2019-07-17 22:02:32

    域名投资

    1 0
添加回答
相关问答

0

回答

【精品问答】大数据计算技术1000问

2022-08-02 23:22:46 55浏览量 回答数 0

0

回答

数仓中元数据机制主要支持哪些系统管理功能:呢?

2021-12-12 20:40:55 113浏览量 回答数 0

1

回答

mysql数据库20G,如果导入到PostgreSQL中

2019-11-28 13:42:34 286浏览量 回答数 1

4

回答

【精品问答】大数据计算技术1000问

2019-11-13 16:03:32 15552浏览量 回答数 4

1

回答

大家是怎样监控postgres数据库的?

2019-04-19 09:53:32 1446浏览量 回答数 1

0

回答

数据库被删了

2019-03-15 18:47:42 295浏览量 回答数 0

3

回答

关于postgresql运算符计算问题

2016-03-04 18:16:29 3985浏览量 回答数 3

1

回答

海量的地理位置(经纬度)数据,用什么数据库来存储最好?

2016-02-10 14:54:35 8309浏览量 回答数 1

1

回答

PostgreSQL(数据库)资料

2015-12-22 14:19:46 2548浏览量 回答数 1

0

回答

关于天池数据实验室数据申请的问题

2015-11-09 19:56:27 6752浏览量 回答数 0
+关注
0
文章
1
问答
问答排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载