我是亚马逊RDS的新手。 我正在尝试创建应用程序的表空间,但我无法找到应该存储它的位置。
是否可以在PostgreSQL RDS上创建表空间?
答案 0 :(得分:6)
我没有找到关于此的RDS文档,但显然Postgres表空间在RDS上运行良好。您无法直接访问RDS正在使用的基础EBS卷,但是如果您尝试使用某个任意目录的CREATE TABLESPACE命令:
Function CheckSheetExists(ByVal name As String) as boolean
dim WS as worksheet
on error resume next
set ws = Worksheet(name)
on error goto 0
if(ws is nothing) then
CheckSheetExists = false
else
CheckSheetExists = true
end if
set ws=nothing
End Function
您可以看到表空间的创建方式如下:
CREATE TABLESPACE testspace LOCATION '/foo/bar/baz';
你应该能够在该表空间中创建表格:
mydb=> \db
List of tablespaces
Name | Owner | Location
------------+------------+-------------------------------------------
pg_default | rdsadmin |
pg_global | rdsadmin |
testspace | db_user | /rdsdbdata/db/base/tablespace/foo/bar/baz
(3 rows)
答案 1 :(得分:2)
诸如日志传送/备用服务器之类的东西在很大程度上取决于表空间的位置。我不会冒险,盲目使用我无法访问且不完全了解的位置(如乔什建议的那样)
我想我们所有人都必须承认它,就像我们喜欢AWS服务一样,在某些方面它们滞后了,特别是在外部/独立产品(RDS,ECS上的Docker编排等)的SaaS解决方案方面。
更新: 如果此post是正确的,则Postgres的RDS复制确实依赖于流复制,这使得对表空间路径的任何操作都非常危险,除非您可以在其官方文档中或通过企业支持找到该策略,否则该策略将始终有效。期待。
答案 2 :(得分:0)
在撰写本文时,RDS确实支持PostgreSQL表空间,尽管不支持IO拆分或隔离(因为所有表空间都将在同一卷上创建)。可以在here中找到有关此功能的AWS文档。