Update Alation to 2024.3.2 or 2024.3.3¶
Customer Managed Applies to customer-managed instances of Alation
2024.3.2 and 2024.3.3 Update Version Dependencies¶
Alation supports a direct update to versions 2024.3.2 or 2024.3.3 from the following previous versions:
From 2024.3.2 to 2024.3.3
From 2024.3 and 2024.3.1 to 2024.3.2 or 2024.3.3
From 2024.1.x to 2024.3.2 or 2024.3.3
From 2023.3.x to 2024.3.2 or 2024.3.3
The information about new features and bug fixes in 2024.3.x is available in Release Notes 2024.3 (General Availability).
Update from Version 2023.1.x or Older¶
Direct update to 2024.3.2 or 2024.3.3 is not supported from 2023.1.x or older versions. First, update Alation to a version that supports the update to 2024.3.2 or 2024.3.3 and then perform a second update to 2024.3.2 or 2024.3.3.
Update Known Issues¶
Reset Postgres Password¶
If you have a password set on the internal PostgreSQL database (Rosemeta), the update will result in an error similar to the following:
WARN: unable to check pg-1: [DbConnectError] unable to connect to 'dbname='postgres' port=5432': FATAL: password authentication failed for user "postgres" password retrieved from file "/home/postgres/.pgpass" ERROR: [056]: unable to find primary cluster - cannot proceed
The update process requires that the password on the internal PostgreSQL database should be cleared for the time of the update. The password can be set again after the update is completed. On how to set the Postgres password, see Set Password for Internal PostgreSQL Instances.
Use Cluster Splitting for HA Pair Update¶
The Alation update of an HA pair without splitting the cluster fails. We recommend upgrading HA instances using the cluster splitting upgrade method until this issue is resolved.
Update-Specific Information¶
The previous release 2024.3.1 included an upgrade of the Alation internal PostgreSQL database and the Alation Analytics PostgreSQL database to version 16.4. Depending on your current version, you may need to perform additional steps to prepare for this database upgrade when updating to versions 2024.3.2 or 2024.3.3.
Use the instructions specific to the release you are updating from:
The update from 2024.3.2 to 2024.3.3 follows standard procedures and does not require any non-standard steps. Use the information in Update Alation from Version 2024.1.4, 2024.1.5, 2024.3, or 2024.3.1 to Version 2024.3.2 or 2024.3.3 to update. No database upgrade happens during this update.
Update Alation from Version 2024.1.4, 2024.1.5, 2024.3, or 2024.3.1 to Version 2024.3.2 or 2024.3.3—No additional non-standard steps are required:
When updating from version 2024.3.1, no database upgrade is needed as the PostgreSQL databases are already on version 16.4.
When updating from versions 2024.1.4, 2024.1.5, or 2024.3, the PostgreSQL databases will be automatically upgraded to version 16.4.
Update Alation from Version 2023.3.x, 2024.1.0, 2024.1.1, 2024.1.2.x, 2024.1.3.x to Version 2024.3.2 or 2024.3.3—Additional steps are required to ensure a successful upgrade of the PostgreSQL databases.
Update Alation from Version 2024.1.4, 2024.1.5, 2024.3, or 2024.3.1 to Version 2024.3.2 or 2024.3.3¶
Use the steps below to update Alation from versions 2024.1.4, 2024.1.5, 2024.3, or 2024.3.1 to version 2024.3.2 or 2024.3.3.
Step 1: Scan Postgres¶
We recommend using the scan_postgres
action to validate that the internal Postgres database is in a healthy state before the update. For steps, see How to Scan Postgres for Corrupted Indexes.
Note
If in your instance the Postgres scan runs on a schedule, you can check the scan-postgres.log file in /opt/alation/site/logs inside the Alation shell to check the Postgres state.
Step 2: Verify Backup Availability¶
Ensure you have a valid, up-to-date Alation backup. We recommend taking the most recent backup possible to closely match your current data.
Step 3: Update the Alation Application¶
Update a standalone instance:
Update a High Availability (HA) pair:
Step 4: Update Alation Connector Manager¶
This step applies if you are using Open Connector Framework (OCF) and OCF connectors.
Update Alation Connector Manager using the steps in Update Alation Connector Manager.
Step 5: Update Alation Analytics¶
This step applies if you are using the Alation Analytics application.
Use the steps in Update Alation Analytics V2 to update the Alation Analytics application.
Update Alation from Version 2023.3.x, 2024.1.0, 2024.1.1, 2024.1.2.x, 2024.1.3.x to Version 2024.3.2 or 2024.3.3¶
Starting in version 2024.3.2, Alation’s internal PostgreSQL database and the Alation Analytics PostgreSQL database are on version 16.4. The database upgrade happens automatically during the update but requires additional actions before and after.
Step 7: Update Extensions and Restore Custom Aggregate Functions
Step 8: Rebuild Search Index (applies if updating directly from version 2023.3.x)
Step 1: Scan Postgres¶
We recommend using the scan_postgres
action to validate that the internal Postgres database is in a healthy state before the update. For steps, see How to Scan Postgres for Corrupted Indexes.
Note
If in your instance the Postgres scan runs on a schedule, you can check the scan-postgres.log file in /opt/alation/site/logs inside the Alation shell to check the Postgres state.
Step 2: Verify Backup Availability¶
Ensure you have a valid, up-to-date Alation backup. We recommend taking the most recent backup possible to closely match your current data.
Step 3: Prepare for the Postgres Upgrade¶
As part of this update, Alation’s internal PostgreSQL database—Postgres—will be upgraded to version 16.4. To facilitate a successful upgrade, perform these preparatory steps:
Note
On a High Availability (HA) pair that is updated through splitting and rebuilding the HA cluster, these additional steps must be performed on both primary and secondary instances.
Check Disk Space¶
Verify the available space in the /data1 and /data2 mounts to ensure it’s at least 20%
of the total allocated space. Then check that the /dev mount is set to 50%
of the physical memory.
To check the disk space:
Use SSH to connect to the Alation server.
Run the following command:
df -h
In the output, look for the Mounted on values /data1 and /data2. For these values, look at the Use% column. It must be at
80%
or less, which means20%
or more of space is currently available.Note
To calculate available disk space, subtract the Use% value from
100%
:100% - Use% = available space
. For example, if we had to calculate the available space for the example output below, /data1 has99%
available, and /data2 has95%
available. Each has more than20%
available.Filesystem Size Used Avail Use% Mounted on /dev/xvdd1 147G 482M 139G 1% /data1 /dev/xvdb1 98G 4.6G 89G 5% /data2 devtmpfs 15G 156K 15G 1% /dev
If you discover that less than
20%
space is available on /data1 or /data2, add more disk space before performing the update. The available space must be20%
or more.Note
If you use Alation Analytics, please note that it has similar space requirement for this update. See more in Check Disk Space for Alation Analytics. If you need to add space, consider increasing disk space for both simultaneously to Alation to avoid repetitive adjustments.
Check that the /dev directory is set to
50%
of the disk space. If not, it’s recommended setting it to50%
.Note
The following command can be used:
sudo mount -o remount,size=<value> devtmpfs /dev
For example, if the disk space is 64GB, then to set /dev to
50%
:sudo mount -o remount,size=32G devtmpfs /dev
Update Extensions and Drop Custom Aggregate Functions¶
To ensure compatibility with the newer Postgres version, you’ll need to update database extensions and identify and drop any custom aggregate functions of types anyarray
and anyelement
in your Postgres databases. Such functions are not typically part of the standard Alation product but may exist due to previous customizations of Postgres. After the upgrade, any custom functions that were dropped must be manually restored to maintain their functionality.
If any of the user-defined functions exist during the update, it is expected to fail with the following exception in the update logs installer.log (/opt/alation/site/logs inside the chroot):
Your installation contains user-defined objects that refer to internal polymorphic functions with arguments of type “anyarray” or “anyelement”. These user-defined objects must be dropped before upgrading and restored afterwards, changing them to refer to the new corresponding functions with arguments of type “anycompatiblearray” and “anycompatible”.
Note
If you have custom aggregate functions in your Postgres instances, you may need to review and update the SQL code of the function definition when recreating them in the newer PostgreSQL version. You will be able to retrieve the current function definitions using this guide. Carefully review the instructions and plan your steps accordingly. You can reach out to Alation Support if you need assistance recreating the functions.
Alation provides a script that helps prepare for the Postgres upgrade. The script covers both types of Postgres deployments: built-in or externalized to Amazon RDS. The script should be used to:
Update Postgres extensions
Check for the presence of custom aggregate functions in the internal Postgres databases (Rosemeta, Lineage, Template1).
If custom aggregate functions are found, the same script will be used to drop them.
To prepare for the Postgres upgrade:
Download the Zip file with the script to your local machine from Alation Community: 2024.x Update Helper Script (requires a login)
Extract the script file pgupgrade_helper.py.
Copy the file to the Alation server. Initially, you can place it into the /tmp directory on the host.
Use SSH to connect to the Alation server.
Transfer the extracted pgupgrade_helper.py file to a directory accessible from the Alation chroot. For example, if you have it in the /tmp directory on the host, you could copy it to the /tmp directory /opt/alation/alation/data1/tmp/, which is /data1/tmp when accessed from inside the chroot:
sudo cp /tmp/pgupgrade_helper.py /opt/alation/alation/data1/tmp/
Note
The same script will also be used when updating Alation Analytics. We recommend leaving the script in this directory until you have upgraded all Alation components.
Enter the Alation shell.
sudo /etc/init.d/alation shell
Change the user to
alation
.sudo su alation
Navigate to the directory where you placed the pgupgrade_helper.py file, for example /data1/tmp/ (inside the chroot) if you previously moved it there.
Run the script with the
--pre
parameter. The script will update Postgres extensions and check for the presence of custom aggregate functions of typesanyarray
andanyelement
. If any functions are dropped, their definitions will be saved on the Alation server. The script will not drop any functions yet, allowing for an analysis of what customizations your instance contains.python pgupgrade_helper.py --pre
Analyze the output: look for the text
Aggregate functions Check [Failed]
and a list of functions below it.If you don’t find this line and a list of functions, the script hasn’t identified any functions to be dropped. Exit from the
alation
user and the Alation shell by usingexit
twice. Continue with updating Alation.Example output when no functions were identified:
(env) PROD [alation@ip-10-13-31-60 ~]$ python pgupgrade_helper.py --pre Pre flag: True Post flag: False CPU: None Drop Function: False Connected to database postgres [Success] Updating Extensions [Success] Connected to database rosemeta [Success] Updating Extensions [Success] Connected to database template1 [Success] Updating Extensions [Success] Connected to database lineage [Success] Updating Extensions [Success] Pre Upgrade tasks completed [Success]
If you find the line
Aggregate functions Check [Failed]
and a list of functions below it, those functions need to be dropped. Continue to step 11 of this instruction.Example output where a function was identified:
(env) PROD [alation@ip-10-13-31-60 ~]$ python pgupgrade_helper.py --pre Pre flag: True Post flag: False CPU: None Drop Function: False Connected to database postgres [Success] Updating Extensions [Success] Connected to database rosemeta [Success] Aggregate functions Check [Failed] - array_agg_array Updating Extensions [Success] Connected to database template1 [Success] Updating Extensions [Success] Connected to database lineage [Success] Updating Extensions [Success] Pre Upgrade tasks completed [Success]
Run the script again with the
--pre
and--drop-func
parameters. The script will retrieve the definitions of the identified aggregate functions, record them into a file, and drop the functions.Note
The
--pre
parameter is still required during the second run as it identifies the pre-upgrade stage of the process.Example output:
(env) PROD [alation@ip-10-13-31-60 ~]$ python pgupgrade_helper.py --pre --drop-func Pre flag: True Post flag: False CPU: None Drop Function: True Connected to database postgres [Success] Updating Extensions [Success] Connected to database rosemeta [Success] Aggregate functions Check [Failed] - array_agg_array Dropped function array_agg_array [Success] Updating Extensions [Success] Connected to database template1 [Success] Updating Extensions [Success] Connected to database lineage [Success] Updating Extensions [Success] Saved all the dropped functions definition: /data1/tmp/recreate-agg-function.sql Pre Upgrade tasks completed [Success]
Check the contents of the recreate-agg-function.sql file. (The path to the file will be in the line
Saved all the dropped functions definition:
. It depends on where you have the script, as the file is generated in your working directory). The file contains the information about the databases and the function definitions of all dropped functions. For example:(env) PROD [alation@ip-10-13-31-60 ~]$ cat /data1/tmp/recreate-agg-function.sql rosemeta,create aggregate public.array_agg_array(anyarray) (sfunc = array_cat, stype = anyarray);
Where:
rosemeta
is the database from which a function was deletedcreate aggregate public.array_agg_array(anyarray) (sfunc = array_cat, stype = anyarray);
is the corresponding function definition.
Copy the file to your local machine, renaming it to recreate-agg-function_Postgres.sql. It’s crucial to restoring the functions manually after the update.
Warning
The file should be saved locally as it will be overwritten when you run the same script during the Alation Analytics update.
Exit from the
alation
user.exit
Exit from the Alation shell.
exit
Proceed with the Alation update: Step 4: Update the Alation Application.
Step 4: Update the Alation Application¶
Update a standalone instance:
Update a High Availability (HA) pair:
Step 5: Update Alation Connector Manager¶
This step applies if you are using Open Connector Framework (OCF) and OCF connectors.
Update Alation Connector Manager using the steps in Update Alation Connector Manager.
Step 6: Update Alation Analytics¶
This step applies if you are using the Alation Analytics application.
Use the steps in Update Alation Analytics Database to 16.2 or 16.4 and a Compatible Release to update the Alation Analytics.
Step 7: Update Extensions and Restore Custom Aggregate Functions¶
After updating Alation, it’s important to update the extensions and restore the custom aggregate functions if any were dropped to ensure compatibility with the new version.
Update Extensions After the Update¶
To update the Postgres extensions:
Use SSH to connect to the Alation instance.
We recommend running the next command using a terminal multiplexer, such as Screen. If Screen is available, start a screen session.
screen -S alation-extensions
Enter the Alation shell.
sudo /etc/init.d/alation shell
Change the user to
alation
.sudo su alation
Navigate to the directory where you placed the pgupgrade_helper.py file.
Run the script with the
--post
parameter. The script will update Postgres extensions and run an analysis of the internal Postgres databases on your instance.python pgupgrade_helper.py --post
Example output:
(env) PROD [alation@ip-10-13-31-60 ~]$ python pgupgrade_helper.py --post Pre flag: False Post flag: True CPU: None Drop Function: False Connected to database template1 [Success] Updating Extensions [Success] Connected to database postgres [Success] Updating Extensions [Success] Connected to database rosemeta [Success] Updating Extensions [Success] Connected to database lineage [Success] Updating Extensions [Success] vacuumdb: vacuuming database "lineage" vacuumdb: vacuuming database "postgres" vacuumdb: vacuuming database "rosemeta" vacuumdb: vacuuming database "template1" Analyze DB [Success] Post Upgrade tasks completed [Success]
Your next step depends on whether or not any custom aggregate functions were dropped before the update.
If the script previously didn’t drop any custom aggregate functions, the Alation update is complete. Exit from the
alation
user and the Alation shell by usingexit
twice. Test your instances post-update. If you identify any issues with the Alation application, contact Alation Support.If the script previously dropped any functions, restore them manually: Restore Custom Aggregate Functions.
Restore Custom Aggregate Functions¶
To restore the functions:
Review the function definitions from the recreate-agg-function_Postgres.sql file that was generated by the script.
Update the SQL code as necessary to be compatible with the newer PostgreSQL version. You may need to change
anyarray
toanycompatiblearray
andanyelement
toanycompatible
or update the SQL code in other ways, depending on your specific customization.On the Alation host, enter the Alation shell if you have exited if previously.
sudo /etc/init.d/alation shell
Enter the Postgres shell.
alation_psql
Run the following command for each function to be recreated, replacing the placeholder
func-definition
with the SQL code of the specific definition you are restoring.CREATE AGGREGATE func-definition;
Example:
CREATE AGGREGATE public.array_agg_array(anyarray) (sfunc = array_cat, stype = anyarray);
Exit
alation_psql
.\q
Your next step depends on your version:
If you have updated from version 2024.1.x, the Alation update is complete. Exit from the
alation
user and the Alation shell by usingexit
twice. Test your instances post-update. If you identify any issues with the Alation application, contact Alation Support.If you have updated from version 2023.3.x, proceed to Step 8: Rebuild Search Index and check if you need to update the search index.
Step 8: Rebuild Search Index¶
Perform this step if you have updated from version 2023.3.x.
Rebuild your search index if:
Your search index hasn’t been updated since version 2022.4. Even if you’ve updated Alation from version 2023.3.x, the index may still be using the old search schemas.
Determine if Search Index Requires Rebuilding¶
To determine if your search index requires rebuilding:
Use SSH to connect to the Alation server.
Enter the Alation shell using the following command:
sudo /etc/init.d/alation shell
Run the following command to inspect the schema of your search index:
curl localhost:9200/live/_mappings | grep dbtype.
In the output, look for the
dbtype
field output:If you’ve determined that an index rebuild is required, proceed to index rebuilding.
Rebuild Search Index¶
Rebuilding the search index aligns it with the latest search schemas and can be performed without downtime. For detailed steps, see How to Rebuild Search Index Without Downtime.