Stay organized with collections
Save and categorize content based on your preferences.
This page describes how to confirm that your migrated data is complete and
accurate. At a minimum, you should run SQL statements to verify that your tables
exist in the migrated Cloud SQL database. For a more precise
data comparison between the source and destination database,
you can
try using the open-source Data Validation Tool.
Verify destination data with SQL statements
You can run SQL statements to verify that your tables
exist in the migrated Cloud SQL database. Do the following:
Connect to your Cloud SQL for PostgreSQL instance with a tool where you can
run SQL commands against your migrated databases.
For more information on connecting to Cloud SQL instances, see
Connection options
in Cloud SQL documentation.
Run SQL commands to verify your migrated data. For example:
List all tables in the database:
SELECT*FROMpg_catalog.pg_tables;
Verify the table contents:
SELECT*FROMTABLE_NAME';
Verify data with the Data Validation Tool
The
open-source Data Validation Tool lets you perform very precise
data comparisons between two databases, but it requires creating network
connections to your source and destination databases.
The following steps show a minimal example:
Deploy or use a virtual machine with access to both the source and the destination.
In the virtual machine, create a folder in which to install the Data Validation Tool.
We suggest that you run this validation during replication to ensure relative
consistency. Large table queries may take too long to run during a small promotion
window. In such cases, use the Data Validation Tool to add filters to reduce
runtime or prepare the table list to include a subset of tables for the final
validation.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-29 UTC."],[[["\u003cp\u003eThis guide details how to verify data migration from a source database to a destination Cloud SQL instance.\u003c/p\u003e\n"],["\u003cp\u003eAt a minimum, confirm that the database instance and its tables have been successfully migrated to the Cloud SQL instance.\u003c/p\u003e\n"],["\u003cp\u003eThe Data Validation Tool, an open-source utility, can be used to compare data between the source and destination databases.\u003c/p\u003e\n"],["\u003cp\u003eThe validation process involves installing the Data Validation Tool, establishing connections to both databases, creating a table list, and executing the validation.\u003c/p\u003e\n"],["\u003cp\u003eFor large tables, it's recommended to perform validation during replication or filter tables to reduce runtime during the promotion window.\u003c/p\u003e\n"]]],[],null,["# Verify a migration\n\nThis page describes how to confirm that your migrated data is complete and\naccurate. At a minimum, you should run SQL statements to verify that your tables\nexist in the migrated Cloud SQL database. For a more precise\ndata comparison between the source and destination database,\nyou can\n[try using the open-source Data Validation Tool](#verify-dvt).\n\nVerify destination data with SQL statements\n-------------------------------------------\n\nYou can run SQL statements to verify that your tables\nexist in the migrated Cloud SQL database. Do the following:\n\n1. Connect to your Cloud SQL for PostgreSQL instance with a tool where you can run SQL commands against your migrated databases. For more information on connecting to Cloud SQL instances, see\n [Connection options](/sql/docs/postgres/connect-overview#tools_for_connecting_to)\n in Cloud SQL documentation.\n\n2. Run SQL commands to verify your migrated data. For example:\n\n - List all tables in the database: \n\n ```sql\n SELECT * FROM pg_catalog.pg_tables;\n ```\n - Verify the table contents: \n\n ```sql\n SELECT * FROM TABLE_NAME';\n ```\n\nVerify data with the Data Validation Tool\n-----------------------------------------\n\nThe [open-source Data Validation Tool](https://github.com/GoogleCloudPlatform/professional-services-data-validator) lets you perform very precise\ndata comparisons between two databases, but it requires creating network\nconnections to your source and destination databases.\n\nThe following steps show a minimal example:\n\n1. Deploy or use a virtual machine with access to both the source and the destination.\n\n2. In the virtual machine, create a folder in which to install the Data Validation Tool.\n\n3. Navigate to this folder.\n\n4. Use [`pip`](https://pip.pypa.io/en/stable/) to install the Data Validation Tool.\n\n ```\n pip install google-pso-data-validator\n ```\n5. Create connections to the source Oracle database and the destination Cloud SQL for PostgreSQL database:\n\n ```\n data-validation connections add -c source Oracle --host 'ip-address' --port port --user username --password pswd --database database-name\n data-validation connections add -c target Postgres --host 'ip-address' --port port --user username --password pswd --database database-name\n ```\n\n For example: \n\n ```\n data-validation connections add -c source Oracle --host '10.10.10.11' --port 1521 --user system --password pswd --database XE\n data-validation connections add -c target Postgres --host '10.10.10.12' --port 5432 --user postgres --password pswd --database postgres\n ```\n6. Create or generate a list of tables to compare data between the source and destination databases:\n\n ```\n export TABLES_LIST=$(data-validation find-tables --source-conn source --target-conn target --allowed-schemas schema-name)\n ```\n\n For example: \n\n ```\n export TABLES_LIST=$(data-validation find-tables --source-conn source --target-conn target --allowed-schemas public)\n ```\n7. Run full validation against all tables:\n\n ```\n data-validation validate column --source-conn source --target-conn target --tables-list \"${TABLES_LIST}\"\n ```\n\nWe suggest that you run this validation during replication to ensure relative\nconsistency. Large table queries may take too long to run during a small promotion\nwindow. In such cases, use the Data Validation Tool to add filters to reduce\nruntime or prepare the table list to include a subset of tables for the final\nvalidation."]]