我在用着此 AWS .Net SDK 函数修改 SQL Server 数据库实例。我没有尝试更新存储容量,因为我知道在 SQL Server 上无法做到这一点。但是,任何修改其他字段的调用都会失败,并出现以下错误:
无法修改具有此引擎的数据库实例的 AllocatedStorage:sqlserver-ex
我甚至没有在 ModifyDBInstanceRequest 对象上设置 AllocatedStorage 属性,但由于它是 int 类型,因此它默认为 0。
我可以成功修改具有相同功能的 MySQL 数据库引擎。
这是我正在使用的代码。
ModifyDBInstanceRequest request = new ModifyDBInstanceRequest();
if (storageAllocation.HasValue) { request.AllocatedStorage = (int)storageAllocation; }
request.MasterUserPassword = masterUserPassword;
//all the other request values...
ModifyDBInstanceResponse response = ConnectionCache.GetRDSClient(awsCredential).ModifyDBInstance(request);
答案1
对于请求对象的“查看者”,AllocatedStorage
默认情况下可能显示为 0,但内部有一个“已设置”值 false。这意味着在结构中它是 0,但在请求期间不会发送。
即使您没有更改分配的存储,如果您设置了该AllocatedStorage
值,SDK 也会将其解释为尝试更改并失败。
您必须完全避免将该AllocatedStorage
属性设置为任何值,即使是与 RDS 实例上当前分配的存储匹配的值。