我正在使用这个AWS .Net SDKfunction来修改一个SQL Server数据库实例。 我不试图更新存储容量,因为我知道它不能在SQL Server上完成。 但是,任何修改任何其他字段的调用失败,并出现以下错误:
分配的存储不能使用此引擎修改为数据库实例:sqlserver-ex
我甚至没有在ModifyDBInstanceRequest对象上设置AllocatedStorage属性,但是它的默认值为0,因为它是inttypes的。
我可以使用相同的function成功修改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);
对于请求对象的“查看者”, AllocatedStorage默认情况下可能显示为0,但内部有一个“is set”值为false。 这意味着在结构中它是0,但在请求期间它不会被发送。
即使您没有更改分配的存储空间,如果您正在设置AllocatedStorage值,SDK也会将其解释为尝试更改尝试并失败。
您必须完全避免将AllocatedStorage属性设置为任何值,即使是与RDS实例上当前分配的存储相匹配的值。