Database Virtualization or Cloning
When lower level data environments aren't keeping pace with business needs.

Writable copies of databases are delivered in seconds to new Docker containers or existing database instances, with each copy occupying <100 MB. Cloned database environments are ideal for Continuous Integration, database development and test, ETL jobs, reporting, and more.
The benefits of database cloning include:
- Over 95% reduction storage
- Database environments for Oracle, SQL Server, Postgre, MySQL, and more
- Faster, more thoroughly tested database updates
- Responsive production debug and support with point-in-time and near real-time production environments
- Compliance with centralized image repo of lower level environments, with security policies built-in.

Images and database timelines
Database virtualization is based on a full byte copy of the database(s) in an image, created by restoring backups, database files, or via an Oracle stand-by instance. Images scale to deliver databases up to 50 TB or more, and can include dozens of databases. Data masking, user permissions, Git operations, and other steps are built in, or applied as clones are delivered, ensuring data is ready for use.
Windocks database virtualization supports a “database timeline” and point in time environments on Linux and Windows. Writable snapshots enable a user environment to be saved as a new image and shared with a larger team.

Windows SQL Server containers and cloning
Windocks is known for Docker Windows SQL Server containers that are created in seconds and identical to conventionally installed instances, ensuring compatibility with Active Directory and other systems. Containers are preferred for geographically distributed teams, and for reduced overhead and support, with up to 50 or more containers served on a single VM. Fewer servers with containers reduces overhead and maintenance, while improving development, test, and DevOps support.
Windocks SQL Server database virtualization is also unique in supporting real-time and point in time environments with transaction log backups. In addition, writable SQL Server snapshots enable user environments to be shared as an updated image. While Windocks is known for SQL Server containers, Windocks database cloning serves SQL Server databases equally well to fixed SQL Server instances!

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 using the instructions provided with the download.
For Oracle database delivery, also install the Windocks service for Linux as described in the download instructions.
2. Create the dockerfile to build the image
Refer to the windocks\samples folder, using clonefromfullbackup as one example:
- enter the path to one or more SQL backup or database files, which are restored to create a database image
- sample dockerfiles are included that deliver database clones to either new containers or existing instances
- Scripts are copied to apply user permissions on the database, as well as masking
- Build the image via a web application, command line or REST API.
3. Deliver database clones on demand from the image
From the image, deliver database clones to containers or 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. If you delivered to an instance, then connect to that instance for the database clone. Clones are writeable. Containers are delivered on the Windocks server at 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.