The validate command checks that a database is ready to be the Source or the Target of a replication: that it can be reached and that the objects that prepare creates are there. It does not change anything. The result is Valid or Invalid, and the message tells what is missing. The rules that all the database commands share and the messages are on DATABASE CONFIGURATION COMMANDS.
A valid database is not necessarily a database where the processes can work: the command does not test the privileges that the Capture Process and the Apply Process need on the replicated tables (see Database Privileges). The Capture Process and the Apply Process check the objects again each time they start.
| Database | What validate checks |
|---|---|
| SQL Server Source | That CDC is enabled for the database, that the schema repi, the database trigger, the tables, the change tables and the procedure of the Capture Process exist and, on a server with SQL Server Agent, that the Agent is running. |
| Oracle Source | That the login can read the dictionary views that the Capture Process needs (the answer says No privileges were granted for the ones it cannot), that the database is in archive log mode with the minimal supplemental logging, that the user REPI and its tables exist and, with directlogmode=1, that the Oracle directories exist. With dbname the name of the container is checked too. |
| Target Database (SQL Server, Oracle, PostgreSQL, MySQL, Redshift) | That the checkpoint tables and the procedures that the Apply Process uses exist. |
| Snowflake Target | That the table REPI.APPLY_CKPT exists. |
| AWS S3 Target | That AWS can be reached with the credentials: the buckets of the account are listed. |
A valid result can carry warnings: a line for every object that only some functions need (the heartbeat, the data comparison) and that does not exist. prepare creates the missing objects. For an Oracle Source a warning also names the views and tables that the Capture Process reads although the login cannot (V$INSTANCE, GV$THREAD, GV$LOG_HISTORY and the XDB tables of binary XML columns) and the statements that grant them. The checks are listed in Database Privileges.
repcli validate database={source|target} dbtype={oracle|mssql|postgresql|mysql|snowflake|redshift|s3} \
[connection parameters of the database] \
[other parameters of the database]| Parameter | Description |
|---|---|
| database | The role of the database: source or target. Required. |
| dbtype | The type of the database: mssql or oracle for a Source Database, oracle, mssql, postgresql, mysql, snowflake, redshift or s3 for a Target Database. Required. |
| server, port, user, password, dbname and the other connection parameters | How to reach the database. They depend on the database: SQL Server as Source, Oracle as Source, Oracle as Target, SQL Server as Target, PostgreSQL as Target, MySQL as Target, Snowflake as Target, Redshift as Target and AWS S3 as Target. generatesql is accepted and ignored. |
A SQL Server Source Database that is not prepared:
repcli validate database=source dbtype=mssql server=db-src.example.com port=1433 dbname=testDB user=repuser password=Passw0rd123
[Invalid]: Database is not prepared for capture: [CDC is not enabled: 1]A prepared one. The lines that start with RESET LSN are explained in SQL Server as Source:
repcli validate database=source dbtype=mssql server=db-src.example.com port=1433 dbname=testDB user=repuser password=Passw0rd123
[Valid]: Database TESTDB is valid
RESET LSN: 0x00000040000007AC0007 FILE:{E69BB026-FAAC-42F8-A3C1-F6EF8AD9E8B6}5 DATE:2026-10-19T18:33:04ZA SQL Server Target Database that is not prepared, and a prepared one:
repcli validate database=target dbtype=mssql server=db-tgt.example.com port=1433 dbname=testDB user=repuser password=Passw0rd123
[Invalid]: Database is not prepared for apply: [repi schema does not exist: 1]repcli validate database=target dbtype=mssql server=db-tgt.example.com port=1433 dbname=testDB user=repuser password=Passw0rd123
[Valid]: Database TESTDB is validA database that cannot be reached is not valid either. The message is the error of the driver or of the database:
repcli validate database=target dbtype=mssql server=db-none.example.com port=1433 dbname=testDB user=repuser password=Passw0rd123
[Invalid]: lookup db-none.example.com on 10.0.0.5:53: no such hostThe body of the request:
{
"command": "validate",
"parameters": [
["database", "source"],
["dbtype", "mssql"],
["server", "db-src.example.com"],
["port", "1433"],
["user", "repuser"],
["password", "Passw0rd123"],
["dbname", "testDB"]
]
}The body of the answer. The element parameters is only in the answer for a SQL Server Source Database. It holds the choices that the database was prepared with: housekeeping and cdcenable, which is ALL when the database was prepared with “Full DDL Capture” in the Web UI and MIN otherwise. The Web UI uses them to fill the form:
{
"Status": "Valid",
"Message": "Database TESTDB is valid\n RESET LSN: 0x00000040000007AC0007 FILE:{E69BB026-FAAC-42F8-A3C1-F6EF8AD9E8B6}5 DATE:2026-10-19T18:33:04Z",
"parameters": [
["housekeeping", "0"],
["cdcenable", "ALL"]
]
}A database that is not prepared is answered with the status Invalid, and the HTTP code is 200:
{
"Status": "Invalid",
"Message": "Database is not prepared for capture: [CDC is not enabled: 1]"
}| HTTP code | Meaning |
|---|---|
| 200 | The request is valid and the command has been carried out. The body has the status Completed or Failed (prepare and remove) or Valid or Invalid (validate), and the message. A command that cannot do its work, for example because the database cannot be reached, is also answered with 200 and the status Failed or Invalid: always read the status. |
| 401 | The token is invalid. |
| 422 | The request cannot be carried out: the JSON, the command or a parameter is wrong. The body has the status Failed and the message, for example Missed port parameter. |
Click “Test connection” in the dialog “Database Settings” of a Capture Process or an Apply Process. The Web UI can validate only the database that is entered in the dialog. The result is shown under the buttons, green for Valid and red for Invalid:
When the database is not prepared the buttons “Prepare for Replication” and “Show Prepare SQL” appear (see Prepare Source Database and Prepare Target Database):
Prev page:
AWS S3 as TargetNext page:
Remove Repstance Objects from Database