TapeTrack Documentation

Because there is more to tape management than you ever realized

User Tools

Site Tools


cookbook:veeam

This is an old revision of the document!


VEEAM Sync Cookbook

Veeam Backup & Replication is a software product developed by Veeam Software to back up, restore and replicate data on virtual machines

Prerequisites

A defined ODBC connection to the Veeam database.

Data Extraction

Data is extracted from Veeam via an SQL connection and then processing that raw data for the Sync with TapeTrack via a ttidef file.

Synchronization

You will need to install the TapeTrack Sync software to complete these instructions.

Synchronization with TapeTrack is performed by calling the TMSS10Sync command line program, along with:

  1. Veeam ODBC connection
  2. Command line arguments that instruct the program how to process volumes.
  3. A synchronization definition file that instructs the program how to interpret the SQL output.

The command line code is usually contained within a batch file and scheduled to execute automatically on a regular time frame to suit your requirements.

Example Command Line Arguments

<sxh plain;> TMSS10Sync -d default.ttidef -a -S batch:-password@server </sxh>

Where:

  • -d is the path to the Synchronization Definition File.
  • -a tells the program to add new tape volumes if they are encountered.
  • -S tells the program what Server to connect to.

Example Batch File

TTIDEF Sample

Sample TTIDEF file (defautlt.ttidef) to:

  • Connect to VEEAM database (veeam2 in this example).
  • Extract barcode, media pool ID and last write time.
  • Set Customer-ID to US01.
  • Set Media-ID to LTO.
  • Set Volume location based off media pool ID.
  • Set Volume Description based off media pool ID

<sxh> # # Connect to Veeam database SetODBC(“DSN=veeam2”); # Extract data SetSQL(“SELECT [barcode],[media_pool_id],[last_write_time] FROM [VeeamBackup].[dbo].[Tape.tape_mediums]”);

# Set Customer-ID SetLiteral(CUSTOMER, “US01”); # Set media to LTO as only one media type in report SetLiteral(MEDIA, “LTO”);

# Set place marker for Description SetLiteral(DESCRIPTION, “????”); # Set place marker for Repository SetLiteral(REPOSITORY, “????”);

# Extract Volume-ID from column 1 Extract(VOLUME, 1, 10, 0); # Extract media pool-id for translation from column 2 Extract(USER1, 2, 50, 0); # Extract last writetime from column 3 Extract(WRITETIME, 3, 50, 0);

# Set writetime format SetWriteTimeFormat(“Y-m-d H:M:S”);

# Add translations to set Description based off Media Pool-ID AddTranslation2(DESCRIPTION, USER1, “4C6BFE92-5C7F-BFE9-A18E-B52A8049C167”, “Alpha media pool”); AddTranslation2(DESCRIPTION, USER1, “601ED8E9-647E-A19E-B18E-F6D66B0EE584”, “Bravo media pool”); AddTranslation2(DESCRIPTION, USER1, “375TED22-7654-B34R-67GH-TMX642021SEE”, “Charlie media pool”); AddTranslation2(DESCRIPTION, USER1, “9454924F-834C-22C0-9A35-F6D44B0EE214”, “Free Tapes”); AddTranslation2(DESCRIPTION, USER1, “3376924Q-221C-59C0-3A65-F6D32B0FW857”, “Imported”);

# Add translations to set Repository based off Media Pool-ID # Move matching media pools offsite AddTranslation2(DESCRIPTION, USER1, “4C6BFE92-5C7F-BFE9-A18E-B52A8049C167”, “OFFS”); AddTranslation2(DESCRIPTION, USER1, “601ED8E9-647E-A19E-B18E-F6D66B0EE584”, “OFFS”); AddTranslation2(DESCRIPTION, USER1, “375TED22-7654-B34R-67GH-TMX642021SEE”, “OFFS”);

# All other media pool place in library AddTranslation2(REPOSITORY, USER1, “*”, “LIBR”);

# Stop any movement from racking back to offsite AddSkipOnRepositoryChange(“OFFS”, “RACK”, “*”); </sxh>

cookbook/veeam.1613526143.txt.gz · Last modified: 2025/01/21 22:07 (external edit)