postgresql - 用于创建索引的 Aurora PostgreSQL 临时存储问题
问题描述
我们已将部分数据从 MS-SQL Server 迁移到 PostgreSQL。并且正在使用 R6G.Large aurora PostgreSQL RDS 实例。我们使用 DMS 将数据传输到 PostgreSQL 实例,表大小约为 183 GB,大约有 15 亿条记录。现在我们正在尝试在 Id 列上创建主键,但它失败并出现以下错误......
错误:无法写入文件“base/pgsql_tmp/pgsql_tmp18536.30”:设备上没有剩余空间上下文:SQL 语句“ALTER TABLE public.tbl_actions ADD CONSTRAINT tbl_actions_pkey PRIMARY KEY (action_id)”PL/pgSQL 函数 inline_code_block 第 10 行 SQL语句 SQL 状态:53100
查看文档时,我们发现索引创建将使用实例的临时存储,而 r6g.large 有 32 GiB。对于这个巨大的表,存储空间不足,因此索引创建失败并出现上述错误。
是否有任何解决方法可以在无需升级实例类型的情况下解决此问题,可能是通过更改参数组或选项组中的某些值。
解决方案
对我来说,这看起来像是存储空间已经用完,而不是 RAM。您可以使用 AWS 控制台中 RDS 实例上“可用存储空间”标题下的“监控”选项卡进行检查。
尝试这个:
增加数据库实例的存储空间
- 登录 AWS 管理控制台并在https://console.aws.amazon.com/rds/打开 Amazon RDS 控制台。
- 在导航窗格中,选择数据库。
- 选择要修改的数据库实例。
- 选择修改。
- 为分配的存储输入一个新值。它必须大于当前值。
更多细节在这里:
推荐阅读
- spring-boot - Spring Boot 2 找不到 @Test(expected = xxx)
- system-calls - 用于挂钩 open() 的 LD_PRELOAD 仅适用于 proc 文件系统
- reactjs - Material-UI 主题浅色/深色是如何工作的?
- php - 如何使用碳获取当前星期几?
- flutter - 如何正确使用未来的功能
- swift - 加速框架:计算向量的成对距离
- c# - 创建广告时无法将类型“string”隐式转换为“int”
- javascript - Formik,ReactJs,选中和取消选中复选框时设置焦点和删除焦点
- postgresql - WHERE Postgres 中不允许设置返回函数
- symfony - Symfony - 更新 OneToOne 学说关系