I am trying to upgrade Aurora RDS Postgres cluster db.r5.xlarge from version 12.7 to 13.3.
I choose Engine version 13.3, default DB cluster parameter group and DB parameter group default.aurora-postgresql13 and choose 'Apply immediately'.
Received error message:
We're sorry, your request to modify DB cluster clone-cluster has failed.
Cannot modify engine version because instance clone-cluster is running on an old configuration.
Apply any pending maintenance actions on the instance before proceeding with the upgrade
There are no any pending maintenance actions showing in AWS RDS console and I have no idea what configuration they mean.
We are on a free basic support plan no so we cannot get help from AWS. Can anyone please suggest if there's a way to upgrade the whole cluster at once?
I had this issue and contacted AWS support. They said it is a known issue for (some, or all) db.t3 instance types. In my case I was using db.t3.medium.
So the workaround is as follows:
Change instance type on the cluster to r5.xlarge or db.r6g.large.
Upgrade to PostgreSQL 13.3
Change instance type back to db.t3.medium.
Just to add to the other great answers, another possible reason for "old configuration" errors is attempting to upgrade from an old minor version.
I was trying to upgrade from Postgres 12.6 directly to 13.3, which is not supported.
Instead, I had to upgrade to 12.7 first and then upgrade to 13.3.
It's written in the docs, but I didn't notice the minor version requirement.
Hit the same issue with upgrade to a major version and here's the undocumented solution I found:
Select an instance from the cluster, and in the actions menu you should see Upgrade Now.
Do this for each instance that is part of the cluster.
Modify the cluster and you should be able to upgrade to any available 13.x version.
Even though it is shown as the same version as the Cluster, the Upgrade now action will run configuration update on the instance itself putting it in maintenance and rebooting it.
This is not correctly documented at the moment, but it is possible to check and resolve (for those of us automating the upgrade process.) The CLI aws rds describe-pending-maintenance-actions sometimes reports the status. If you know ARNs, you can filter on them, or if just a name, this seems to work:
aws rds describe-pending-maintenance-actions --query 'PendingMaintenanceActions[?contains(ResourceIdentifier, `test`)`
The maintenance can be applied programmatically using apply-pending-maintenance-action.
However...
This message also appears to occur when something about the upgrade path is invalid. In my case, I believe the case is as follows:
Source is 9.6.19 Aurora PostgreSQL
Target is 10.18. This fails.
Set target to 10.14 and upgrade occurs
In short, the UI, and other information about what versions of what are compatible is incomplete. I have reported this to AWS and they mostly shrugged, telling me to look at the doc. Pffft.
This one worked for me. In rds, select the server highlighted in the error message, go to "Configuration" and make sure that the "Recommendations" area is empty, otherwise, "Apply Now" the recommendation/s. Once all completed, "Modify" from the Global/Regional Cluster and try to upgrade again.
Related
Good day. I just finished upgrading my AWS RDS database engine from 9.6.22 to 10.17. I used these steps to make the upgrade using the AWS Console:
Create snapshot of target database to upgrade
Restore snapshot
Upgrade the restored snapshot's (which is now a new instance) DB Engine version.
After I did all of this, everything seems fine but when I access the database, this warning message appears
WARNING: psql major version 9.6, server major version 10.
Some psql features might not work.
I did not continue on my testing because I want to know what is the meaning of this first. Because I am fairly new in AWS as a whole. Thanks!
The meaning is that just because you are connecting to an upgraded database on some machine run by Amazon, the PostgreSQL installation on your local machine was not magically updated. psql from version 9.6 doesn't know what metadata tables were changed in v10, what features were removed and so on.
It would be a good idea to install a more recent version of PostgreSQL on your machine. By the way, upgrading to v10 was not the smartest move, as that version will go out of support in less than a year. You should upgrade to the latest version that your service provider offers.
The client program psql you are using to connect to the database is from an older version than the database it is connecting to. Some of the introspection features might not work. For example, psql from 9.6 won't know how to do tab completion for commands that were added to the server after 9.6.
This is generally not a major problem for psql (unless the server wants to use SCRAM authentication), but for optimal experience it would be good to install a newer client. Other tools like pg_dimp might not with at all against a server newer than they are.
Last time I performed a major postgresql RDS version upgrade, the followers were really messed.
I am about to perform a minor version upgrade (something like 12.5 --> 12.6) and i cannot find any relevant documentation about if and what type of impact this may have on the followers.
Any directions towards any relevant docs?
According to AWS documentation:
There are two kinds of upgrades: major version upgrades and minor version upgrades. In general, a major engine version upgrade can introduce changes that are not compatible with existing applications. In contrast, a minor version upgrade includes only changes that are backward-compatible with existing applications.
Source
I can also mention that I've been running a few RDS PostgreSQL clusters in production, with perhaps all the possible flavors, Aurora RDS with PostgreSQL provisined, Aurora RDS serverless, RDS PostgreSQL and never had an issue when doing a minor upgrade either with master, replicas or clients, we even have the automatic minor version upgrade enabled.
Playing catch up with Grafana versions, (Kubernetes v1.16.15 clusters)
Currently running in PRODUCTION is very out of date (v4)
I'm only upgrading now, and refactoring all my configs for the "new" provisioning.
Should I just upgrade to v5 and release in PROD, and then incrementally upgrade again to v6?
or skip v5 just straight to v7?
According to the official docs there are some functions/solutions that went deprecated from one version to another. You should take a look when upgrading to make sure that you are ready for it.
Other than that, there are two ways to get your Grafana to v7:
Step by step upgrade:
Backup Database
Backup Grafana configuration file (i.e grafana.ini)
Perform the update/upgrade depending on the chosen method.
If that won't work, you can also do a fresh install on top of an existing one or remove the current version, install the latest one and than check grafana.ini file.
If you choose the 1st option than please notice that it is considered safer to upgrade one major version at the time. Also, the database/configuration backup is always recommended.
EDIT:
If you are using Grafana Community Kubernetes Helm Charts than notice that Upgrading an existing Release to a new major version requires the Helm v3 (>= 3.1.0) starting from Grafana v6.0.0.
Thanks #Wytrzymały Wiktor
I'm taking the "safe route" upgrading v4->v5 first. New functions and configuration change impacts are too great (as I said system is very out of date!)
Re-factoring all my helm charts, and getting old dashboards re-imported to v5 DB,and backing up everything as you advise.
v5 will be released to PROD users, and then will start looking at v6 upgrade soon after.
I am looking to upgrade from PostgreSQL to Aurora PostgreSQL and running into an issue when trying to test an upgrade in my CFT I specify the EngineVersion for my DB Cluster as 9.6.11 but I can’t update that to 9.6.12 as it requires a replacement of the cluster stack. If i deploy my stack out without the EngineVersion for the Cluster then it defaults to 9.6.9 which is below the version I want PostgreSQL at. I was able to upgrade the Cluster from 9.6.11 to 9.6.12 via the CLI but when i updated the EngineVersion in the CFT for the cluster to 9.6.12 it still wanted to create a new Cluster Stack even though the version was changed to 9.6.12 via the CLI. Is there a good way to get around this using CloudFormation?
This is an old question, but I'm running into the same problem while trying to upgrade from Aurora Postgres 9.6.11 to 10.11. CloudFormation wants to replace the cluster which wipes out the database. I think what we need to do is the following:
Use Console or CLI to update the Engine version
Snapshot the database
Delete the CloudFormation stack
Rebuild the CloudFormation stack restoring from the Snapshot taken in step 2
This seems a little wonky to me, but I'm not sure how else to update the engine version and also get CloudFormation in sync with the resources. Using the Console or CLI to update the engine version will cause drift in the template, so the only recourse is to delete the stack and recreate it.
I've been tasked with upgrading our Postgresql database to 9.4 and I'm following the instructions found on the documentation found here:
Upgrading Postgresql
The second step for upgrading to 9.4 says this:
For source installs, build the new version
Build the new PostgreSQL source with configure flags that are compatible
with the old cluster. pg_upgrade will check pg_controldata to make sure all settings
are compatible before starting the upgrade.
I rarely have to go into the internals of PGSQL and I'm not sure what is meant by the term 'configure flags'. Is this a specfic term in reference to PGSQL or does this refer tot he command line options at the top of the documentation page? In fact, do I even need to do this? The very nex st sentence says that pg_ugprade will do it for me. I'm upgrading our database that has a lot of sensitive data and I need to get this right. Obviously I have a sandbox though to play with but if someone can help me understand what that means, I'd appreciate it. I've come to find that dealing with PGSQL can be frustrating as hell. Thanks.