Database cloning and refresh

Database cloning (also known as database virtualization) is the technology that creates instantaneous writeable copies of databases without using additional storage, no matter how big the data. No additional storage is used by the clone when it is first created. When a clone is created, both the original and the clone use the exact same disk blocks. Any writes to a clone are stored separately for each clone, but the common content is all stored on the same location on disk.

Windocks database orchestration includes integrated database cloning as one of its many capabilities.


Types of cloning

Database cloning Volume cloning VM cloning
Specific database files are cloned Entire disk volumes are cloned An entire VM with all its volumes is cloned
Example: Windocks database cloning NetApp, Actifio, Cohesity volume cloning PureStorage VMDK cloning
Ideal for database delivery for devops, testing, development, reporting, ML Suitable for production database backups, disaster recovery. Requires substantial code for database delivery Suitable for backups of entire production machines with applications and data
Works on standard storage in Linux and Windows Requires proprietary storage Requires proprietary storage

Database cloning is ideal for delivery of databases for dev, test, reporting, support, ML and DevOps. Windocks also automates volume cloning operations, saving organizations from complex code development and maintenance in programming storage infrastructure.

Database refresh

Database refresh is the process of getting incremental changes from the primary / production database and making the current primary / production databases available for testing, development, DevOps, machine learning model test and training. Windocks database refresh is available for SQL Server and Oracle. Build an image once from the full primary databases or backups just once. After that Windocks automatically refreshes the image with incremental changes from primary / production.

Database refresh for SQL Server - video

Database refresh for Oracle

Windocks provides database refresh for Oracle using an Oracle Docker container that stays in sync with the primary / production. Windocks builds point in time images instantaneously using the synced data in this container. From these point in time images, you may self service Oracle database clones in docker containers or Oracle instances. This unique architecture provides point in time database clones for testing, DevOps, and MLOps without requiring complex infrastructure with staging servers.

Steps to get started on DevOps pipelines and databases

1. Install Windocks

Download the Windocks Community Edition or email support@windocks.com for a full featured evaluation edition.


Provision a Windows Server VM (Server 2016, 2019, or 2022), install SQL Server (for SQL database delivery) and then install Windocks as described here.


For Oracle database delivery, also install the Windocks service for Linux as described here.

2. Provide the spec to the Windocks orchestrator to build the image


  • the path to one or more SQL backup or database files or Azure SQL BACPAC files, which database cloning to use  Windocks database cloning or volume cloning from other companies)
  • where to deliver the database clones (Windocks SQL Server Windows containers or SQL Server instances)
  • how often to refresh from production, customizations such as database scripts to be applied
  • which masking software to use (Windocks masking, other masking solutions or scripts)
  • authorization controls

The spec is provided in the form of a dockerfile. Build the image via a web application, command line or REST API.


Tutorial for SQL Server   

Tutorial for Oracle  

Tutorial for PostgreSQL, MySQL

3. Deliver customized database clones on demand from the image

From the image, deliver database clones to containers or instances. The image you built defines where the databases are delivered to. You may define an image that delivers containers with clones as well as clones to instances. To deliver containers and clones, use the web application or use the docker command line or the REST API.

4. Use the writeable clones

Database clones are delivered either to containers or instances based on the image you built. If you delivered to an instance, then connect to that instance for the database clone. Clones are writeable. Containers are delivered on the machine running Windocks on specified ports. Access these containers with regular database tools or command lines or connection strings.

SQL Server containers are accessed with SQL Management Studio or Azure Data Studio or SQLCMD. Connect with the instance name (such as INSTANCE10002 when the container port is 10002). Or you can use the form IPAddressOfWindocksServer,10002 to connect to the SQL container running on port 10002.

Oracle containers are accessed with SQLPlus, RMAN or UI tools for Oracle. You may put in entries in tnsnames.ora for the containers as you would for Oracle instances. With SQLPlus or RMAN, use the form SQLPLUS sys/password@IPAddressOfWindocksLinuxServer:HostPort/orclcdb as sysdba

5. Refresh automatically from production

Images are refreshed with incremental changes from production / primary automatically for both SQL Server and Oracle. After refresh, clones delivered from the image will have the latest production data. See the SQL Server tutorial for a tutorial on refresh for SQL Server using transaction log backups. For a tutorial on Oracle refresh see the sample in the product in windocks\samples\oraclelinux.

Extend CI/CD to your data layer