---
title: Configure DBSync
description: Configuring a DBSync system includes extra tasks to create the extensions and configure the database. Perform the overall configuration as follows:
component: pingdirectory
version: 11.0
page_id: pingdirectory:pingdatasync_server_administration_guide:pd_sync_config_dbsync
canonical_url: https://docs.pingidentity.com/pingdirectory/11.0/pingdatasync_server_administration_guide/pd_sync_config_dbsync.html
revdate: September 13, 2023
section_ids:
  steps: Steps
---

# Configure DBSync

Configuring a DBSync system includes extra tasks to create the extensions and configure the database. Perform the overall configuration as follows:

## Steps

1. Download the appropriate Java database connectivity (JDBC) *(tooltip: \<div class="paragraph">
   \<p>A Java API that allows Java programs to interact with databases.\</p>
   \</div>)* driver to PingDataSync's `/PingDataSync/lib` directory.

2. Open the `java.properties` file with a text editor and append the `jdbc.drivers` argument and fully qualified JDBC driver class name to `start-server.java-args`. Save the file.

   Example:

   To use the Microsoft SQL Server JDBC driver, modify `start-server.java-args` as follows:

   ```
   start-server.java-args=-d64 -server -Xmx256m -Xms256m -XX:+UseConcMarkSweepGC -Djdbc.drivers=com.microsoft.sqlserver.jdbc.SQLServerDriver
   ```

   |   |                                                                                                                                                                                                                                      |
   | - | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
   |   | * When using custom JDBC endpoints, SQL statements can't be called unless JDBC drivers are set in the `java.properties` file.

   * When setting multiple JDBC drivers, use a `:` to separate each driver's fully qualified class name. |

3. Run the `dsjavaproperties` command to apply the change.

4. Restart the server to load the new driver into the runtime.

5. Create one or more JDBC extensions based on the Server SDK. If you're configuring for bidirectional synchronization, you need two scripts: one for the JDBC sync source and the other for the JDBC sync destination. Put the compiled extensions in the `/lib/extensions` directory.

6. Configure the database change log table and triggers (presented later). Each table requires one database trigger to detect the changes and load them into the change log table.

   |   |                                                                                                              |
   | - | ------------------------------------------------------------------------------------------------------------ |
   |   | Even if you use the vendor's native change tracking mechanism, you should also configure a change log table. |

7. Configure the sync pipes, sync classes, external servers, distinguished name (DN) *(tooltip: \<div class="paragraph">
   \<p>A name uniquely identifying an object within the hierarchy of a directory tree.\</p>
   \</div>)* maps, and attribute maps for one sync direction.

8. Run the `resync --dry-run` command to test the configuration settings.

9. Run `realtime-sync set-startpoint` to initialize the starting point for synchronization.

10. Run the `resync` command to populate data on the destination endpoint.

11. Start the sync pipes using the `realtime-sync start` command.

12. Monitor PingDataSync using the status commands and logs.

13. For bidirectional synchronization, configure another sync pipe and repeat steps 5 – 9 to test the system.
