In the Setting Up Disaster Recovery article we covered how to setup basic backup, and a closely related scenario we are often asked about is how to go about synchronising the content from a master studio to a satellite studio located at a different site (and therefore a different network).
On the face of it, this looks to be a similar challenge to backing up for disaster recovery except for one very important difference - backups are for recovery and are used to restore Myriad after some type of disaster and so Myriad is not active when the restoration occurs, whereas by contrast, synchronising data to a remote studio may well involve updating the data while the system in not only active but may be 'on air' itself. This means a totally different approach is needed.
- Rather than replicate the entire file / database, the data must be added or altered in an existing file / database structure.
By taking this approach you can have an 'master' data set at your primary site that updates a totally independent Myriad system at a remote site so the content at the remote site is in sync with the master site.
We need to synchronize two things in order to keep the remote site in sync with the primary studio site:
- Audio that has been added or changed in a specified range on the Media Wall.
- Log for the next 24 hours (including edits, Voice Tracks etc).
In order to achieve this we can use the Myriad 5 Command Line Processor application which is installed with every Myriad 5 Playout installation.
The job of the Myriad 5 Command Line Processor is to perform common tasks when prompted with the appropriate 'command line' options. It is very nerdy but the big advantage is that you can then use the Schedule Task facility built into Windows to schedule the software to perform specific tasks regularly and with no user interaction.
Specifically, to extract the data you need to update a remote site, you need to setup tasks to perform the following:
- Generate 'Transport' files for any Media Items in a given range that have been added or altered since the last time the process ran. Transport files are special files that include both audio from a Media Item along with all associated metadata.
- Extract the next 24 hours of schedule from the Log in a format that can be ingested by Myriad at the remote site.
You may want to run the first task every few hours to keep the remote site up to date but the second task should only be run once a day!
You will find the Myriad 5 Command Line Processor application is located in the same folder that the Myriad Playout and you will find the help document which describes the scripting needed under the Myriad 5 Playout menu on your Start bar.
We will not go into the deep technical aspects of setting this up today but consider the following script:
C:\Program Files (x86)\Broadcast Radio\Myriad Playout v5\MyriadUtilityCL5.exe /Action=ExportTransportFiles /ExportPath="C:\Exports\Songs" /StartMediaId=10000 /EndMediaId=20000 /LastModifiedAfterGroup="Songs"
Lets break that down a bit:
- C:\Program Files (x86)\Broadcast Radio\Myriad Playout v5\MyriadUtilityCL5.exe - this specifies the location of the Cdmmand Line Processor utility.
- /Action=ExportTransportFiles - Tells the Command Line Processor (CLP) that is is going to export some Transport files.
- /ExportPath="C:\Exports\Songs" - Tells the CLP where the exported Transport files should be saved.
- /StartMediaId=10000 /EndMediaId=20000 - Tells the CLP the range of Media Items it should consider.
- /LastModifiedAfterGroup="Songs" - This creates a unique 'ID' for this group within the Myriad Database that is used to store the last time the process was ran so that the CLP can determine what Media Items have changed since then. You can use any reference name you like as long as it is unique compared with other CLP tasks you are running.
You can run the script above manually (paste it into the Run box or CMD window). The first time it runs, nothing will be exported because you have to establish a starting point. On subsequent runs, any Media Items that have changed will be exported as Transport files and saved in the specified folder.
As you can see in the example above, one of the Media Items had changed so was exported as a Transport File to the target folder.
Drop box could be used to automatically replicate this Transport file in a corresponding folder at the remote end and then the standard Media Wall AutoImporter tool could import the altered content onto the Media Wall.
In order for this to be effective, you would need to start with a carbon copy of the Media Wall at the remote end, then any changes made at the primary end will be replicated to the remote site.
You would setup different CLP tasks to export different ranges on the Media Wall and then use Schedule Task to automatically run them periodically. You would also likely setup some ranges at the Remote Site that are not synchronized with the main site. You could even setup some ranges where the duplication works the same way but in reverse!
What about the Log?
The above CLP task could be used to synchronize changes to Media Items but what about duplicating the Log to the remote site?
What we really want is to automatically export the Log for the next day, to the remote site so that it has a copy of the Log complete with any changes you have made or Voice Tracks you have added. Once again, we can do this with a CLP script that we can schedule to run once a day to export the next days complete Log as a XML file that the Myriad Playout system at the remote end can use to manually or automatically import.
C:\Program Files (x86)\Broadcast Radio\Myriad Playout v5\MyriadUtilityCL5.exe /Action=ExportLog /Start=NowDay+1T00:00:00 /End=NowDay+1T23:59:59 /Filename="C:\Exports\Schedule\Schedule.xml" /StationId=0
Lets take a closer look:
- C:\Program Files (x86)\Broadcast Radio\Myriad Playout v5\MyriadUtilityCL5.exe - this specifies the location of the Command Line Processor utility.
- /Action=ExportLog - Tells the Command Line Processor (CLP) that is is going to export a section from the Log
- /Start=NowDay+1T00:00:00 - Tells the CLP that we are interested in 'today + 1' (tomorrow) starting at 00h 00min 00sec.
- /End=NowDay+1T23:59:59 - Tells the CLP that we are interested in 'today + 1' (tomorrow) ending at 23h 59min 59sec.
- /Filename="C:\Exports\Schedule\Schedule.xml" - Tells the CLP the location and name of the Log file to create.
- /StationId=0 - This tells the CLP which 'Station' to use within your Database. Station 0 will be the first Station in the list with 1 being the second etc.
As before, running this task will result in the Log from tomorrow being exported to the specified folder in XML format. You can then replicate this to the remote site using your chosen method and then setup Myriad Playout at the remote end to import a the Log file from the appropriate location and with the file prefix 'schedule' and no 'filename date format'.
Once configured, Myriad Playout at the remote site will check to import Log content from this folder if it need to fill an hour (or day) in the Log. If no file is found then it will fall back on it's own Myriad Schedule clocks to schedule the content.
Please note that the Log will not be automatically updated with any new Log information as it is only read as part of the import process.
This means that the Myriad Playout at the remote end should only be set to schedule a short way ahead of 'current time'. Alternatively you could export the Log from the primary site more than one day ahead but keep in mind that if you have exported the schedule a week ahead and the remote site has ingested the schedule a week ahead, changes made to the Log at the primary site will be exported to the remote site, but won't be imported unless you remove the hours at the remote site first.
If this level of replication is required then you will need to setup full DFS replication and SQL Publisher / Subscriber as described in section 1.
Please note that Disaster Recover Backup and Remote Site Synchronization fall outside of the scope of normal technical support. We are happy to offer some general advice as to how best to tackle various scenarios but cannot offer specific assistance and support within the standard technical support contract.
Should you require us to configure a variation on any of the scenarios outlined in this post, we will be happy to quote you for some onsite or remote engineering time.