Cloud governed
- Simple deployment
- Easy configuration through a WordPress plugin.
- No direct connectivity source – target required.
Inbound & Outbound
- Both replica directions supported
- Different configurable data sources for inbound or outbound
- Configurable sync frequency.
Heterogeneous replication
- Solution not tied to specific DB technology
- Automatic creation of target tables
- Sync started from scratch or from seed data.
data replication and synchronization
HOW IT WORKS
Relational data replication to / from website database with no direct connectivity requirements
A WordPress plugin provides the user interface for easy configuration, dataset selection and synchronization scheduling, while providing direct access to your WordPress based website database.
A cloud based orchestration and governance engine provides the capability of secure data transfer with no direct connectivity requirement from source and target environments, enabling very simple and versatile deployment scenarios.
A simple Docker based DSmirror agent deployed in any environment with access to the external database used as source or target data repository is the engine dedicated to pumping data in or out. It uses a sophisticated algorithm for enabling efficient data synchronization even through heterogeneous database environments.
QUICK START
Go to your WordPress based website and install the DSmirror plugin through the Add Plugin option. You can search it directly in WordPress marketplace or download the plugin here and upload it.
Request a free DSmirror license with your email. You will receive an appId and secret through email to be configured in your agent and plugin. Start the DSmirror agent in any Docker based environment, with access to your external database, using the provided appId and secret.
Configure your agent with the database connection settings for inbound and / or outbound replication. Register your plugin with the appId and secret and define the basic configuration: effective tables to replicate, sync scheduling. Test the replication engine. All set!
SETUP INSTRUCTIONS
Install DSmirror plugin
In your WordPress admin interface, go to Plugins / Add New. Either search “DSmirror” and install or download the plugin here and press Upload to install it. Activate the plugin. Once active, a new DSmirror menu entry should be created in the Tools section.
Request a DSmirror license and secret key
Request a free license. Just provide a valid email and your license and secret key will be sent to your inbox. Check your spam folder just in case it is not arriving. The license consists in an appId and secret that you will configure in both the plugin and DSmirror agent to get them connected. You can also buy a cost-effective unrestricted license with all the DSmirror functionality as described in the pricing section
Launch DSmirror agent
You will need a server or desktop environment with Docker and connectivity to your database (the one you want to send/receive data to/from your website database). In Windows/Mac you may use Docker Desktop. In Linux, just check here the setup instructions for the main Linux distributions. Once you have an operational Docker environment, just run the DSmirror agent by issuing the command:
docker run -d --restart unless-stopped -p 8008:80 --name dsmirror tecknolab/dsmirror <appId> <secret>
Where <appId> and <secret> are the values received in your DSmirror license email.
This will start the agent listening in port 8008. Any other free port can be used just changing the value in the docker run command. For listening in 8000 for instance, just use -p 8000:80 in the command above.
Open in your browser http://localhost:8008 to configure the agent (supposing you are logged in the save server/desktop as the Docker engine). Otherwise change “localhost” by your Docker host name or IP.
Configure external data source
Connect to the DSmirror agent web UI (by default http://localhost:8088) and configure your external data source. It is possible configure the external database as a source (sending data to the WordPress database) or target (receiving data from WordPress database) of replication; it is even possible configure one database as source and one as target. Just provide the credentials for connecting to the database, check that the connection is successful and, for source database, select the tables that will be available in WordPress to be replicated in. Save your configuration.
Configure your replicas
Go to the admin section of your WordPress website and select DSmirror in the Tools menu. Configure your appId and secret with the details provided in the license email. Optionally activate the outbound replication checkbox (in the case you need to replicate data from WordPress DB to your external DB). Press register to connect your DSmirror agent and the plugin. If the connection is successful, the registration status will turn green. Select the tables you want to replicate and, optionally, provide a different name if required. Update your configuration. Once at least one table is selected for replication, a test dropdown menu is shown at the bottom. Select one of your candidate tables and press “Test” to perform a partial replication of 10 rows, that will validate the full process is working ok.
For any issue, just register in the My Account section with the same email as your license and raise a support ticket.
FREQUENTLY ASKED QUESTIONS (FAQ)
What are the minimum requirements for using DSmirror?
Very minimum. A WordPress based website (v 5.2 or later); an external MySQL DB (other technologies to be supported very soon); a server or desktop with a supported version of Docker; connectivity from this server with the external database; access to Internet (outbound only) from the server and the website (specifically to https://app.dsmirror.tecknolab.com).
The tables to be replicated must have a primary key or at least one unique key, otherwise they are discarded as replica candidate an will not be shown in the plugin.
I am seeing a WP_cron error message. How can I solve it?
The DSmirror plugin uses the WordPress built-in scheduling mechanism, called WP_cron, to launch and run the synchronization jobs. It is required a one-minute WP-cron schedule (regardless of user-configured frequency for sync jobs).
It is quite common to have issues with WordPress WP-cron mechanisms in website. One common issue is that WP-cron requires traffic in your website to launch schedules, so if your site has no or little traffic it may be a problem, since your sync jobs will get delayed.
If you see that the sync is not running and a message regarding issues with WP-cron is shown in DSmirror plugin configuration, check your WP-cron configuration as described here. Potentially, one solution is create an external cron job, calling every minute the wp-cron.php page in your site.
My website is not public in Internet. Can I use DSmirror?
Absolutely! Your website can be in your intranet or even just a test site inside your laptop. You only need outbound internet access (e.g. with your wifi connection).
My intranet based customers database cannot be reached from my public website deployed in my ISP. Can I use DSmirror?
Sure, as described above, your intranet deployed database server (or the server where you are running the DSmirror agent) does not need direct connectivity with your website server or website database. Only outbound internet connection to a concrete https address (https://app.dsmirror.tecknolab.com) from your DSmirror agent is required.
I need a WordPress backup solution. Is DSmirror a backup solution?
DSmirror is a data replication solution not a backup solution. It only sync data sources (tables in a database) from a source to a target DB. You can potentially replicate all your website database tables to a external environment but this is not a backup of your website.
I have a large table to replicate. Is DSmirror to handle large datasets?
DSmirror is designed to replicate large datasets. It is extremely recommendable for large tables to use a singe attribute primary key (or unique key) for efficient synchronization. In addition, it can be used a manual import of a initial version of the large table in the target environment in order to speed up the first synchronization.
Can I handle a bidirectional replica?
A single table from a source and a target database cannot be bidirectionally replicated. DSmirror is designed for environments where one ‘leg’ of the replica is handled in read-only and updates are performed in the source side only. Updates in the target ‘leg’ will be overwritten in the next sync job with the data existing in the source ‘leg’.
However, we can activated inbound and outbound replication simultaneously and define different external DB settings for inbound and outbound replication (what is recommendable in this scenario). That is, the tables we replicate from our WordPress website database can land in one database and, at the same time, we can ingest in our WordPress website database data coming from a different external DB (or the same DB, but in this case, a different table; using the same table in both directions would lead to unexpected results).
Can I use the same license (appId and secret) in multiple websites?
No! A specific license carries a specific configuration in the cloud-governed backend and is designed for a singe pair of DSmirror plugin-DSmirror agent. If you set the same key in two different websites connecting with the same agent, both websites will override the configuration of each other and is a non-supported configuration. Avoid please this scenario.
In addition, only ONE free license can be generated for a single email address. Requesting several times the license with the same email will not create a new one.
DSmirror Pricing
Free version available. No credit card required, no commitment.
FREE
- Up to 3 tables
- Up to 100 rows per table
- Sync hourly schedule or more
STANDARD
- Full version
- Standard support
- Unrestricted number of tables, rows, schedule
- Suscribe