Switching Kyvos Repository
Applies to: Kyvos Enterprise Kyvos Cloud (SaaS on AWS) Kyvos AWS Marketplace
Kyvos Azure Marketplace Kyvos GCP Marketplace Kyvos Single Node Installation (Kyvos SNI)
The section provides information on the following:
Important points
From Kyvos 2025.10 onwards, heterogeneous repository types are no longer supported.
Switching will only be allowed across repository types same as Kyvos Manager. Switching Kyvos repository to a repository type which is not the same as Kyvos Manager is not supported. If you want to change the repository type for Kyvos, first change the repository type for Kyvos Manager.
You can see the last operation details, including progress status and start time, by clicking the i icon. To view more comprehensive details, simply click the View Details link, which will take you to the Operations page, where you can view the operation information in detail.
To avoid semantic model data loss, ensure that before switching ensure property “OBSOLETE_CUBE_PURGE_FREQUENCY“ is set in biserver.properties by increasing the value for it to desired frequency value in which verification that switching worked well can be complete.
If the target repository password is different then only for connection testing purposes password can be specified in provided optional input. If not specified explicitly, Kyvos Manager will use the existing password configured in the system for validating the connection. This is not applicable to GCP.
Before switching the repository ensure that you have data ready in the target Postgres instance to which you are switching.
Dump import and export can be done using pgdump and psql. However, in case of external to external repository change service on the snapshot offered by the cloud can be used to take snapshot from source Postgres and restore it in destination Postgres.
Username and Password and database name in target Postgres instance to which switching to is expected to be same as that of current in-use Postgres instance.
Rollback Scenario: If after an upgrade, the repository is switched then before performing rolling back, ensure it is switched back to the original repository.
Permissions required in role attached on Kyvos Manager node remains same as that of required for automated deployed in case of external repository thus for switching from external repository to external repository no additional permission is required in the role added on Kyvos Manager node.
For switching from bundled to an external repository, you need to add permission on the role attached to the Kyvos Manager node so that fetch or external repository details work. If permission is not added to the role, then the Fetch Details will not work. However, you can still proceed ahead by providing those details manually on provided UI inputs.
If switching to an external repository, then proper network access should be configured.
The security group must have a role granting access to the port used by external repo from BI Server and Kyvos Manager node if it is in the same region and resource group (For Azure Postgres) as that of the cluster.
Following tags are expected on the external repository:
UsedBy - Kyvos
ROLE - DATABASE
LAYER - Metadata_Storage
For GCP CloudSQL, the following privileges required while importing dump to external repository:
GRANT ALL PRIVILEGES ON DATABASE your_database_name TO your_username;
GRANT new_owner TO current_user WITH SET TRUE;
GRANT kmdbuser TO postgres WITH SET TRUE;
Using commands to import and export database
Note:
Database name is fixed and always required as delverepo.
For import and export, run the below commands from kyvos/Postgres/bin folder of Kyvos Manager machine.
Connect to Database from terminal
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:{KYVOS_HOME}/Postgres/lib:{KYVOS_HOME}/Postgres/librhel8
./psql -h <HOST-NAME> -p <PORT> -U <USER-NAME>Database dump Import
Before importing, if database is not created automatically, you must manually create database first using create database command
Execute one of the following commands:
./psql -U <USER-NAME> -p <PORT> -h <HOST-NAME> -d <DATABASE-NAME> -f <FILE-NAME>
./psql -U <USER-NAME> -p <PORT> -h <HOST-NAME> -d <DATABASE-NAME> < <PATH-TO-FILE-IN-WHICH-CONTAINS-EXPORTED-DUMP>The following tables describes the sample commands. This is ONLY for reference.
Repository | Sample command (for Kyvos database ONLY) |
|---|---|
Import to bundled | ./psql -U postgres -p 45421 -h localhost -d delverepo -f db-dump.sql |
Import to external | AWS: |
Database dump export
./pg_dump -c -C --host=<host> --port=<port> --dbname=<database name> --user=<user name> --password=<password> <file name>The following tables describes the sample commands. This is ONLY for reference.
Repository | Sample command (for Kyvos database ONLY) |
|---|---|
Export from bundled | ./pg_dump -c -C --host=localhost --port=45421 --dbname=delverepo --user=postgres --password=<password> dbdump.sql |
Export from external | AWS: Azure: GCP: |
Switching repository
The section provides information on the following:
Switching from external repository to another external repository
Switching to a new bundled repository (recovered state) from the bundled repository (for Disaster Recovery)
Switching Repository from External PostgreSQL to Installed PostgreSQL
Switching Repository from Installed PostgreSQL to External PostgreSQL
Switching from Bundled PostgreSQL 13 to the installed PostgreSQL 16
Switching from installed PostgreSQL 16 to Bundled PostgreSQL 13
Switching from bundled repository to external repository
In the case of a cloud environment, you can switch to an external repository.
Export data from bundled Postgres.
Import the data exported from step #1 above, in the new Postgres instance (AWS RDS or Azure Postgres) running on the cloud.
On the Kyvos Manager, navigate to Utilities > Manage Kyvos Repository.
On the page, select the External Repository option (by default, the Bundled Postgres-Server is selected)
Enter details as:
Note
Ensure that the Role attached on the Kyvos Manager node has sufficient permission to get External repository details.
In case fetch for details of the external repository fails, then manually provide the necessary details of the external repository (endpoint and port).
Click the Automatically Start or Stop checkbox.
Note
Select this checkbox when your repository is not shared (only Kyvos is using this repository). If your repository is shared and it is being used by any other service, you must not select this checkbox.
Perform repository connection validation using Test Connection link.
NOTE: In case of any problem with the test connection, you will see an error message. Fix those problems before proceeding with switching the repository.Once the connection is validated successfully, click the Save button. This will configure new Postgres as a repository for Kyvos.
Restart the BI Server service.
Switching from external repository to another external repository
Export data from the current configured external Postgres repository (AWS RDS or Azure Postgres) running on the cloud.
Import the data exported in above step-1 to the new target external Postgres instance (AWS RDS or Azure Postgres) running on the cloud.
On the Kyvos Manager, navigate to Utilities > Manage Kyvos Repository.
On the Manage Repository page, provide the details of the external repository you use.
Note
Ensure that the Role attached on the Kyvos Manager node has sufficient permission to get External repository details.
In case fetch for details of the external repository fails, then manually provide the necessary details of the external repository (endpoint and port).
Port access must be permitted as a prerequisite in the network security group.
Enter details as:
Perform repository connection validation using Test Connection link.
NOTE: In case of any problem with the test connection, you will see an error message. Fix those problems before proceeding with switching the repository.Once the connection is validated successfully, click the Save button. This will configure a new Postgres as a repository for Kyvos.
Restart the BI Server service.
Switching from an external repository to bundled repository
Export data from external Postgres (Azure Postgres or GCP CloudSQL).
In an existing cluster, identify the target node for running bundled Postgres and start the Postgres service on that target node.
On the navigation bar, click Utilities > Manage Kyvos Repository.
On the Manage Kyvos Repository page, select the Bundled Postgres Repository option (by default, Bundled Postgres will be shown selected).
Select that cluster node from the dropdown on which the data dump is imported in step #2 above.
If needed, select the Restore Database Dump option to restore a dump of the Postgres database.
Locate Dump data from:
Restore data from last backup: Select this option to get the data restored from the last created backup.
Upload data dump file: Select this option to upload a previously saved data dump file.
Perform repository connection validation using Test Connection link.
NOTE: In case of any problem with the test connection, you will see an error message. Fix those problems before proceeding with switching the repository.Once the connection is validated successfully, click the Save button. This will configure new Postgres as a repository for Kyvos.
Restart the BI Server service.
Switching to a new bundled repository (recovered state) from the bundled repository
The following procedure is required in Kyvos Manager node Disaster Recovery case. When the bundled Postgres was configured on Kyvos Manager node.
Download data dump from DFS.
In an existing cluster, identify the target node for running bundled Postgres and start the Postgres service on that target node, and import that data into that Postgres instance which was downloaded as a dump from DFS in step #1.
On the Kyvos Manager, navigate to Utilities > Manage Kyvos Repository.
On the Manage Repository page, select the Bundled Postgres Repository option (by default external repository will be shown selected).
Provide details for the target External repository.
Perform repository connection validation using Test Connection link.
NOTE: In case of any problem with the test connection, you will see an error message. Fix those problems before proceeding with switching the repository.Once the connection is validated successfully, click the Save button. This will configure new Postgres as a repository for Kyvos.
Restart the BI Server service.
Switching Repository from External to Installed PostgreSQL
This document describes the procedure for switching both Kyvos Manager (KM) and Kyvos repositories from an external PostgreSQL instance to an installed PostgreSQL service (version 16). The activity involves stopping Kyvos and Kyvos Manager services, exporting and importing database dumps, updating configurations, and validating the migration.
Step 1: Preparatory Actions
Update the passwords for both Kyvos Manager and Kyvos external repositories to match the default passwords used for the installed Kyvos Manager and Kyvos repositories.
Install PostgreSQL 16 service: On the Kyvos Manager node, run the ./configure-postgres16.sh command with sudo user to install PostgreSQL 16 using the Kyvos-provided shell script. Ensure that the PostgreSQL service is running at: sudo systemctl status postgresql post installation.
Use installed PostgreSQL commands: All PostgreSQL-related commands (for dump export and import) should be executed from the installed PostgreSQL directory.
Step 2: Database Export and Import
Export database dumps
Take separate dumps of the Kyvos Manager and Kyvos databases from the external repository using the
pg_dumputility.Use a PostgreSQL version up to 16.9.
Do not use version 16.10 or above, as additional manual edits (removal of unsupported
\restrictand\unrestrictentries) will be required in the dump files.
Example command: pg_dump -U <username> -h <external_host> -p <port> -d <database_name> -f <dump_file_path>
Import database dumps into installed PostgreSQL
Import the KM and Kyvos dumps into the installed PostgreSQL service using the
psqlcommand.Always use postgres as the user (
-U postgres) during import.
Example command: psql -U postgres -d <target_database> -f <dump_file_path>
Note: Any compatibility changes required previously for PostgreSQL 13 are no longer needed, as the installed PostgreSQL version is 16.
TLS Configuration (If Applicable): If TLS is enabled in the deployed cluster using the bundled PostgreSQL, perform the following steps:
Copy the certificate files
server.crtandserver.keyfrom <bundled_pg_base_path>/postgres/data/ to <installed_pg_data_dir> to the data directory of the installed PostgreSQL.Change ownership using sudo chown postgres:postgres /var/lib/pgsql/data/<file-name>.
Enable SSL in
postgresql.conf: ssl=onUpdate the following properties in
postgresql.conf:ssl_cert_file = '<certificate_file_name>' ssl_key_file = '<key_file_name>'Restart the installed PostgreSQL 16 service after making the above changes.
Update KM configuration: In the
jdbc.propertiesfile, update the installedRepo=true parameter before starting Kyvos Manager:Remove or update any
repoIdentifieror outdated repository URL entries as per the installed PostgreSQL connection configuration.Push the following from Kyvos Manager:
KM data snapshot
disaster-recovery.shsnapshot
Update symbolic link on cluster nodes
On each cluster node:
Move the existing
postgresfolder outside thekyvosdirectory.Create a soft link inside the
kyvosdirectory pointing to the relocatedpostgresfolder.
Example command:
ln -s /path/to/postgres /path/to/kyvos/postgres
Step 4: Switch Repository for Kyvos
Using the Kyvos Manager UI, perform the Switch Repository operation for Kyvos.
During this process, Kyvos Manager will automatically update the configuration parameters for Kyvos to point to the installed PostgreSQL repository.
Post-Migration Validation
Start Kyvos Manager and verify that it connects successfully to the installed PostgreSQL repository.
Start Kyvos cluster services and validate connectivity for both KM and Kyvos repositories.
Confirm that all repository-dependent functionalities operate as expected.
Switch Repository from Installed PostgreSQL to External PostgreSQL
Prerequisites
Stop all Kyvos services.
Stop Kyvos Manager.
Ensure you have access to both installed and external PostgreSQL servers.
Use pg_dump version 16.9 or lower. (Do not use version 16.10 or higher — remove
\restrictand\unrestrictentries if already used.)Ensure the KM and Kyvos repository passwords in installed PostgreSQL are the same as those configured in the external PostgreSQL.
Step 1: Switch Kyvos Manager Repository
Export KM Repository Dump
pg_dump -U postgres -h <installed_host> -p <port> -d <kyvos_database> -f <kyvos_dump_path> -or- ./pg_dump -c -C --host=localhost --port=45421 --dbname=delverepo --user=postgres > kyvosdbdump.sqlImport Dump to External PostgreSQL
psql -U postgres -h <external_host> -p <port> -d <km_database> -f <km_dump_path>Update Kyvos Manager Configuration
Open the jdbc.properties file from the Kyvos Manager configuration path.
Update or add the following:
installedRepo=false repoIdentifier=<external_repo_identifier> jdbc.url=<external_postgres_jdbc_url>Save the file.
Start Kyvos Manager
Start the Kyvos Manager service.
Verify that it connects successfully to the external PostgreSQL repository.
Step 2: Switch Kyvos Repository
Export Kyvos Repository Dump
pg_dump -U postgres -h <installed_host> -p <port> -d <kyvos_database> -f <kyvos_dump_path> -or- ./pg_dump -c -C --host=localhost --port=45421 --dbname=delverepo --user=postgres > kyvosdbdump.sqlImport Dump to External PostgreSQL
psql -U postgres -h <external_host> -p <port> -d <kyvos_database> -f <kyvos_dump_path>Switch Repository for Kyvos (via KM UI)
Log in to Kyvos Manager.
Go to Configuration → Repository → Switch Repository.
Select External Repository.
Provide external PostgreSQL connection details.
Click Switch Repository.
Automatic Configuration Update
Kyvos Manager automatically updates Kyvos configuration for external PostgreSQL.