cookbook:veeam
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
cookbook:veeam [2021/02/16 21:55] – created Scott Cunliffe | cookbook:veeam [2025/01/21 22:07] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== VEEAM Sync Cookbook ====== | ====== 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 ===== | ||
+ | |||
+ | <note important> | ||
+ | |||
+ | Synchronization with TapeTrack is performed by calling the [[cli: | ||
+ | |||
+ | - Veeam ODBC connection. | ||
+ | - Command line arguments that instruct the program how to process volumes. | ||
+ | - 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 ==== | ||
+ | |||
+ | <code plain;> | ||
+ | TMSS10Sync -d default.ttidef -a -S batch: | ||
+ | </ | ||
+ | |||
+ | Where: | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | === Example Batch File === | ||
+ | |||
+ | {{veeam_batch.png}} | ||
+ | |||
+ | ===== TTIDEF Sample | ||
+ | |||
+ | Sample TTIDEF file (default.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. | ||
+ | |||
+ | < | ||
+ | # | ||
+ | # Connect to Veeam database | ||
+ | SetODBC(" | ||
+ | # Extract data | ||
+ | SetSQL(" | ||
+ | |||
+ | |||
+ | # Set Customer-ID | ||
+ | SetLiteral(CUSTOMER, | ||
+ | # Set media to LTO as only one media type in report | ||
+ | SetLiteral(MEDIA, | ||
+ | |||
+ | # Set place marker for Description | ||
+ | SetLiteral(DESCRIPTION, | ||
+ | # Set place marker for Repository | ||
+ | SetLiteral(REPOSITORY, | ||
+ | |||
+ | # Extract Volume-ID from column 1 | ||
+ | Extract(VOLUME, | ||
+ | # Extract media pool-id for translation from column 2 | ||
+ | Extract(USER1, | ||
+ | # Extract last writetime from column 3 | ||
+ | Extract(WRITETIME, | ||
+ | |||
+ | # Set writetime format | ||
+ | SetWriteTimeFormat(" | ||
+ | |||
+ | # Add translations to set Description based off Media Pool-ID | ||
+ | AddTranslation2(DESCRIPTION, | ||
+ | AddTranslation2(DESCRIPTION, | ||
+ | AddTranslation2(DESCRIPTION, | ||
+ | AddTranslation2(DESCRIPTION, | ||
+ | AddTranslation2(DESCRIPTION, | ||
+ | |||
+ | |||
+ | # Add translations to set Repository based off Media Pool-ID | ||
+ | # Move matching media pools offsite | ||
+ | AddTranslation2(DESCRIPTION, | ||
+ | AddTranslation2(DESCRIPTION, | ||
+ | AddTranslation2(DESCRIPTION, | ||
+ | |||
+ | # All other media pool place in library | ||
+ | AddTranslation2(REPOSITORY, | ||
+ | |||
+ | # Stop any movement from racking back to offsite | ||
+ | AddSkipOnRepositoryChange(" | ||
+ | </ | ||
+ | |||
+ | <- : | ||
+ | |||
+ | {{tag> cookbook veeam sync}} | ||
cookbook/veeam.1613512558.txt.gz · Last modified: 2025/01/21 22:07 (external edit)