Storage Mirroring for Linux Scripting Guide Third Edition (April 2009) Part Number: T2558-96319
© Copyright 2009 Hewlett-Packard Development Company, L.P. Hewlett-Packard Company makes no warranty of any kind with regard to this material, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose. Hewlett-Packard shall not be liable for errors contained herein or for incidental or consequential damages in connection with the furnishing, performance, or use of this material.
Table of Contents Chapter 1 Introduction .........................................................1-1 Resources ......................................................................................... 1-1 Conventions used in this guide ......................................................... 1-2 Chapter 2 Clients and Scripts ................................................2-1 The Command Line Client ................................................................. 2-1 Storage Mirroring scripts ..........
Chapter 9 Data Transmission ................................................9-1 Controlling transmission manually ................................................... 9-1 Controlling a target manually ........................................................... 9-3 Scheduling transmission criteria ....................................................... 9-4 Transmission schedule examples ............................................................................. 9-7 Setting bandwidth limitations ...........
Introduction Welcome to Storage Mirroring® for Linux®! Storage Mirroring has its own scripting language which is explained in this manual. This guide does not explain Storage Mirroring features and functions, only the scripting aspects of Storage Mirroring. For details on the features and functions, see the Storage Mirroring User’s Guide. Resources You have many resources available to you when using Storage Mirroring.
Conventions used in this guide The following conventions are used throughout this guide: Bold is used for items you click or select with the mouse, such as menu names and items, dialog box options, or button names. For example, when you see File, Options, you should select the File menu and then choose Options from the pull-down menu. Blue italics is used for cross-references to other sections or chapters in this guide.
Clients and Scripts The Storage Mirroring scripting language can be used in the Storage Mirroring Command Line Client or in script files, which use the same set of commands. The Command Line Client The Command Line Client is run from the operating system command line, and then Storage Mirroring commands are run from the Storage Mirroring Command line.
Storage Mirroring scripts You can create script files to execute series and combinations of Storage Mirroring commands to meet specific needs. When working with scripts, keep in mind the following. When creating Storage Mirroring scripts, each commented line must start and end with the pound (or number) sign (#). Storage Mirroring scripts must use ANSI coding. Do not use Unicode or other formats. Variables can be used in commands to replace items that vary such as machine or domain names.
Logging on and off of Storage Mirroring To ensure protection of your data, Storage Mirroring uses native operating system security and requires a valid system username and password. If you do not have a valid system username and password for a selected machine, you will not be able to configure Storage Mirroring for that machine. As you enter DTCL commands, Storage Mirroring automatically attempts to log on to the source or target machine. You can verify your access by the resulting message.
Getting Help A listing of the DTCL commands and their syntax is available by typing the help command. Command HELP Description Displays the DTCL commands and their syntax Syntax HELP Notes Press any key to scroll through the list of commands. Press q to exit the help function. You can also type dtcl help from the directory where the Storage Mirroring program files are installed to display the DTCL commands and their syntax.
Replication Sets NOTE: As noted in the Scripting Guide Introduction on page 1-1, this guide does not explain Storage Mirroring features and functions, only the scripting aspects of Storage Mirroring. For details on the different features and functions, see the Storage Mirroring User’s Guide. Using the Storage Mirroring commands, you can perform the following functions to manage your replication sets.
2. Specify it as the active replication set by using the repset use command. Command REPSET USE Description Specifies a replication set as the active replication set Syntax REPSET USE Options repset—Name of the replication set Examples repset use DataFiles Notes Replication set names that contain non-alphanumeric characters must be enclosed in quotation marks. 3. Define a replication set rule by using the repset rule add command.
5. If you need to see the devices available, use the device list command. Command DEVICE LIST Description Displays the block devices available on a machine Syntax DEVICE LIST [ON ] Options filter—Use one of the following options for the device filter ALL—Lists all unique devices on the specified machine. If there is no machine specified, the source, if designated, will be tried first. The target, if designated, will be tried second.
Modifying a replication set Make modifications to a replication set when you want to change the data you wish to protect. 1. View the replication sets associated with the active source machine by using the command. repset list Command REPSET LIST Description Lists all replication set names for the currently selected source Syntax REPSET LIST 2. Identify a replication set as active by using the repset use command.
3. View the replication set’s rules by using the repset display command. Command REPSET DISPLAY Description Displays the replication set rules Syntax REPSET DISPLAY [repset] Options repset—Name of the replication set Examples repset display DataFiles Notes If you do not specify a replication set name, the current replication set will be used. Replication set names that contain non-alphanumeric characters must be enclosed in quotation marks. 4.
5. Add a new rule by using the Command REPSET RULE ADD Description Adds a rule to a replication set. A rule is the specification of a path including volume, directories, wild cards, and/or file names.
Deleting a replication set 1. View the replication sets associated with the active source machine by using the command. repset list Command REPSET LIST Description Lists all replication set names for the currently selected source Syntax REPSET LIST 2. Delete the replication set by using the repset delete command.
Calculating replication set size Use the repset calculate command to manually calculate the size of a replication set. Command REPSET CALCULATE Description Calculates the size of a replication set Syntax REPSET CALCULATE [repset] Options repset—Name of the replication set Examples repset calculate DataFiles Notes If a replication set name is not specified, the active replication set will be used. The results of the calculation are logged to the Storage Mirroring log file.
Establishing a Connection NOTE: As noted in the Scripting Guide Introduction on page 1-1, this guide does not explain Storage Mirroring features and functions, only the scripting aspects of Storage Mirroring. For details on the different features and functions, see the Storage Mirroring User’s Guide. After you have created a replication set, you can establish a connection by connecting the replication set to a target. 1.
Options ...
Simulating a Connection NOTE: As noted in the Scripting Guide Introduction on page 1-1, this guide does not explain Storage Mirroring features and functions, only the scripting aspects of Storage Mirroring. For details on the different features and functions, see the Storage Mirroring User’s Guide. After you have created a replication set, you can simulate a connection by connecting the replication set to the TDU. 1.
Notes The statistic file that the TDU creates can be viewed using DTStat. By default, the file is called statistic.sts. To view the statistic file, type DTStat -f . For details on DTStat, see the Storage Mirroring User’s Guide. Options that contain non-alphanumeric characters must be enclosed in quotation marks.
Managing Connections NOTE: As noted in the Scripting Guide Introduction on page 1-1, this guide does not explain Storage Mirroring features and functions, only the scripting aspects of Storage Mirroring. For details on the different features and functions, see the Storage Mirroring User’s Guide. Using the Storage Mirroring commands, you can perform the following functions to manage your connections.
2. Use the Storage Mirroring status command to display statistical and informational data.
Configuring compression 1. To determine the current compression setting, use the default, compression is disabled. compression list command. By Command COMPRESSION LIST Description Identifies the compression level set and if compression is enabled Syntax COMPRESSION LIST 2. To set the level of compression, use the compression set command.
Disconnecting a connection Use the disconnect command to disconnect the source/target connection.
Mirroring and Replication NOTE: As noted in the Scripting Guide Introduction on page 1-1, this guide does not explain Storage Mirroring features and functions, only the scripting aspects of Storage Mirroring. For details on the different features and functions, see the Storage Mirroring User’s Guide. Using the Storage Mirroring commands, you can perform the following functions to manage mirroring and replication.
Options Examples con_id—Connection ID assigned to the source/target connection DIFFERENT—Mirrors only those files that are different based on the file date, time, and/or size NEWER—Mirrors only those files that are newer on the source than on the target CHECKSUM—Mirrors only those blocks that are different based on block checksum comparisons NOCHECKSUM—Does not perform a checksum comparison when mirroring files ORPHANS—Moves or deletes orphan files on the target NOORPHANS—Does n
Controlling an automatic mirror Use the AutoRemirror option with the get and set commands to configure if a mirror is intiitated automatically when a connection is automatically reconnected. See Server Settings on page 13-1 for more information on using these commands with a Storage Mirroring program setting. Configuring and removing orphan files 1.
Starting replication Start replication by using the replication start command.
6. The target processes the Storage Mirroring task command and completes whatever task is defined, perhaps a snapshot or backup. Since the Storage Mirroring task command is user-defined, you can insert any valid executable or batch file. Storage Mirroring task command processing must be enabled, and there must be an active Storage Mirroring connection for task command processing to function properly. To insert a task command, you would use the queuetask command.
Notes The default setting for this command is nointeract. Any combination of one or more execution points can be used with the same queuetask command. All script processing messages, including errors, can be viewed in the Storage Mirroring logs and the Windows Event Viewer. Onqueue will still execute as soon as the task is placed on the queue even if transmission is stopped (manually stopped or paused, unmet scheduled transmission criteria, etc.).
Verification NOTE: As noted in the Scripting Guide Introduction on page 1-1, this guide does not explain Storage Mirroring features and functions, only the scripting aspects of Storage Mirroring. For details on the different features and functions, see the Storage Mirroring User’s Guide. With Storage Mirroring commands, verification can only be initiatied after a connection is established. 1. Log on to the source using the login command.
3. Initiate the verification process by using the verify command. Command VERIFY Description Verifies the integrity of the data between the source and target machines.
Data Transmission NOTE: As noted in the Scripting Guide Introduction on page 1-1, this guide does not explain Storage Mirroring features and functions, only the scripting aspects of Storage Mirroring. For details on the different features and functions, see the Storage Mirroring User’s Guide. Using the Storage Mirroring commands, you can perform the following functions to manage your connections.
2. To stop the transmission process, use the transmission stop command. Command TRANSMISSION STOP Description Stops the transmission process Syntax TRANSMISSION STOP Options target—Name of the target, an IP address on the target, or a virtual IP address. Depending on the network route Storage Mirroring uses to access the target, you may need to specify the fully qualified domain name.
Controlling a target manually 1. Pause the execution of operations on the target by using the target that you are logged in to.
Scheduling transmission criteria You can clear an existing schedule, disable or enable the use of a schedule, and set start, stop, and window criteria. 1. To clear all existing transmission options, use the schedule clear command.
3. Examples schedule beta disable Notes Target names that contain non-alphanumeric characters must be enclosed in quotation marks. You can specify a start time, a repeat interval, and queue usage criteria.
4. You can specify a transmission duration and a maximum number of bytes. Command SCHEDULE END Description Sets criteria to end the transmission of data from the source to the target Syntax SCHEDULE END [ DURATION = ] [ BYTES = ] Options target—Name of the target, an IP address on the target, or a virtual IP address Depending on the network route Storage Mirroring uses to access the target, you may need to specify the fully qualified domain name.
Transmission schedule examples This section shows examples of how the different schedule commands could be used together. NOTE: The numbers and times were randomly selected for these examples. Be sure to use values that work for your environment. Example 1—In this example, transmission is set to begin on January 12, 2007, at 10:30 p.m. and to end after 6 hours.
Setting bandwidth limitations With a fixed bandwidth limit, data will be transmitted at all times according to the user specified bandwidth configuration. If you want to set a fixed bandwidth limit, use the limit bandwidth command.
Restoration NOTE: As noted in the Scripting Guide Introduction on page 1-1, this guide does not explain Storage Mirroring features and functions, only the scripting aspects of Storage Mirroring. For details on the different features and functions, see the Storage Mirroring User’s Guide. 1. Login to your target by using the login command.
3. Restore Storage Mirroring data from target to the source by using the restore command.
Failover NOTE: As noted in the Scripting Guide Introduction on page 1-1, this guide does not explain Storage Mirroring features and functions, only the scripting aspects of Storage Mirroring. For details on the different features and functions, see the Storage Mirroring User’s Guide. Using the Storage Mirroring commands, you can perform the following functions to manage failover.
2. Determine what NICs are available on the specified target by using the niclist command. Command NICLIST Description Displays the NICs available on the specified target machine. Each NIC is assigned an integer value and this value is used in the monitor move command.
5. Configure the monitor settings (including the IP address to monitor, the target NIC that will assume the IP address when it fails, the monitor interval and missed packets) by using the monitor move command.
6. To remove an IP address from an established monitor, use the monitor remove command. Command MONITOR REMOVE Description Removes an IP address that is currently being monitored Syntax MONITOR REMOVE [monitor] Options IP_address—The currently monitored IP address that should be removed monitor—Name of the source machine designated as the monitor Examples Notes monitor remove 205.31.2.57 alpha monitor remove 205.31.2.
Options Examples FAILALL—When multiple IP addresses exist on a monitor machine, all of the addresses will fail over to the target machine even if only one address fails TRIGGERONE—When multiple IP addresses are being monitored, failover occurs when one of the IP addresses fails TRIGGERALL—When multiple IP addresses are being monitored, failover occurs when all of the IP addresses fail FODELAY—Guarantees that the pre-failover script has completed before failing over NOFODELAY—Does not
8. If you specified to failover or failback the hostname in the monitor option command. You will need to specify a user and the associated password that has update privileges within Active Directory using the monitor account add command. This allows SPNs to be created and deleted during failover and failback.
10. Remove any scripts by using the monitor script remove command.
12. Start failover monitoring by using the monitor start command. Command MONITOR START Description Initiates failover monitoring Syntax MONITOR START [ON ] Options monitor—Name of the source machine designated as the monitor target—Name of the target, an IP address on the target, or a virtual IP address Examples monitor start alpha on beta Notes Options name that contain non-alphanumeric characters must be enclosed in quotation marks.
Editing failover configuration 1. Retrieve your monitor information by using the monitor get command. Command MONITOR GET Description Retrieves and displays the machines that are currently being monitored by the specified target machine Syntax MONITOR GET Options target—Name of the target, an IP address on the target, or a virtual IP address Examples monitor get beta Notes Monitor names that contain non-alphanumeric characters must be enclosed in quotation marks. 2.
Stopping failover monitoring 1. Retrieve your monitor information by using the monitor get command. Command MONITOR GET Description Retrieves and displays the machines that are currently being monitored by the specified target machine Syntax MONITOR GET Options target—Name of the target, an IP address on the target, or a virtual IP address Examples monitor get beta Notes Monitor names that contain non-alphanumeric characters must be enclosed in quotation marks. 2.
Removing failover configuration 1. Retrieve your monitor information by using the monitor get command. Command MONITOR GET Description Retrieves and displays the machines that are currently being monitored by the specified target machine Syntax MONITOR GET Options target—Name of the target, an IP address on the target, or a virtual IP address Examples monitor get beta Notes Monitor names that contain non-alphanumeric characters must be enclosed in quotation marks. 2.
Failing over Verify that the source machine is offline and not connected to the network to avoid IP address conflicts. Trigger failover using the failover command.
Failback NOTE: As noted in the Scripting Guide Introduction on page 1-1, this guide does not explain Storage Mirroring features and functions, only the scripting aspects of Storage Mirroring. For details on the different features and functions, see the Storage Mirroring User’s Guide. 1. If you are performing failback before restoring, verify that your source machine is not connected to the network and that the issue(s) that caused the failure is resolved.
3. Identify the machine you just logged into as the target by using the target command. Command TARGET Description Identifies a machine as the active target machine Syntax TARGET Options target—Name of the target, an IP address on the target, or a virtual IP address Examples target beta Notes You must be logged into a machine using the login command before using the target command. Target names that contain non-alphanumeric characters must be enclosed in quotation marks. 4.
5. Initiate failback by using the failback command. If you specified a pre-failback script in your failover configuration, that script will be executed at this time.
Server Settings While only a subset of the server settings are available through the Management Console, all of the Storage Mirroring server settings are accessible through DTCL. You can retrieve the value of a setting or you can update the value of a setting. Retrieving setting values—To retrieve the current value of a setting, use the Storage Mirroring get command. This command will return the value of the specified setting from the specified server.
Notes Some settings, although immediately applied to Storage Mirroring, will not take effect until the service is restarted. If you do not specify a machine name, the value from the current source will be updated. If you have not identified an active source, no changes will be made. Options that contain non-alphanumeric characters must be enclosed in quotation marks. The following table lists all of the Storage Mirroring server settings, in decimal values.
Server Setting AllMustFail Description Specifies whether or not all IP addresses must fail for failover to take place Values: 0 any IP address can fail 1 All IP addresses must fail Default: 1 GUI Setting: Failover Control Center, Monitor Settings, Failover Trigger, All Monitored IP Addresses Fail AutoReconnect Specifies whether to reinstate the target connection(s) when the source machine is brought online after a source machine failure Values: 0 Do not reconnect 1 Reconnect Default: 1 GUI Setting: Serv
Server Setting CalculateOn Connect Description Specifies whether or not the replication set size should be calculated on connection Values: 0 Do not calculate on connection 1 Calculate on connection Default: 1 GUI Setting: Connection Manager, Mirroring tab, Calculate Replication Set size on connection CaseSensitiveRep SetQueries This entry is no longer used.
Server Setting DirUNetPort Description Port used for directed UDP communications Values: 1025 - 65535 Default: 1105 GUI Setting: Server Properties, Network tab, Interface, Network, Status Listen Port Management Console, File, Options, Network, Status Transmit Port If you change this value, the source service must be stopped and restarted to implement the change.
Server Setting EmailPassword Description The password required for SMTP server authentication Values: Any valid password text Default: None GUI Setting: Server Properties, E-mail Notification tab, Log on to SMTP Server, Password Since the password is encrypted for security, this entry cannot be displayed or changed through the registry or through DTCL.
Server Setting EmailUsername Description The user ID required for SMTP server authentication Values: Any valid user ID text Default: None GUI Setting: Server Properties, E-mail Notification tab, Log on to SMTP Server, Username Since the username is encrypted for security, this entry cannot be displayed or changed through the registry or through DTCL. Enable Performance Tracking This entry will be used in the future.
Server Setting HBTrace Description Specifies whether the heartbeat debugging information is generated Values: 0 not generated 1 Generated Default: 0 GUI Setting: Server Properties, Network tab, Heartbeat, Show Heartbeat Messages in Logger HBTTL Number of seconds without receiving a heartbeat before a remote machine is considered unavailable Values: 0 - 65535 Default: 10 GUI Setting: Server Properties, Network tab, Heartbeat, Missed Heartbeat Limit HPQueueRatio Ratio of replication packets to one mirror
Server Setting LogAllOrphans Description Specifies whether orphan files are logged to the Storage Mirroring log on the target Values:0 Do not log the orphan files to the Storage Mirroring log on the target 1 Log the orphan files to the Storage Mirroring log on the target Default: 0 GUI Setting: Connection Manager/Restoration Manager, Orphans tab, Log Orphaned Files to Target List LogDir The location of the Storage Mirroring messages/alerts, verification, and statistics log files Values: any valid path De
Server Setting MaxNumberofLog Files Description Maximum number of .dtl log files that can exist at one time. When Storage Mirroring creates a new .dtl file, if this number is exceeded, the oldest .dtl file is deleted. Values: 1 - 999 Default: 5 GUI Setting: Server Properties, Logging tab, Messages & Alerts, Maximum Files MaxRemove OrphansOpSize Determines whether or not Storage Mirroring will send over multiple remove orphan operations.
Server Setting MirrorOverwrite Description Determines if the mirror process overwrites existing files Values: 0 never overwrite 1 always overwrite 2 overwrite if older Default: 1 GUI Setting: None MirrorPrompting This entry is no longer used.
Server Setting MoveOrphansDir Description Indicates the name of the directory where orphaned files will be moved if MoveOrphanedFiles=1 Values: any valid path Default: the location where the Storage Mirroring files were installed GUI Setting: Connection/Restoration Manager, Orphans tab, Move Orphaned Files to following location NetPort Port connection for TCP communications Values: 1025 - 65535 Default: 1100 GUI Setting: Server Properties, Network tab, Interface, Service Listen Port If you change this va
Server Setting PostFailoverScript Description Location on the target where the target post-failover script is located Values: Any valid path Default: GUI Setting: Failover Control Center, Monitor Settings, Scripts, Target, Post-Failover PreFailbackScript Location on the target where the target pre-failback script is located Values: Any valid path Default: GUI Setting: Failover Control Center, Monitor Settings, Scripts, Target, Pre-Failback PreFailbackWait Specifies whether or not to wait
Server Setting QJournalFree SpaceMin Description The minimum amount of disk space, in MB, in the specified QJournalDir that must be available at all times. Values: dependent on the amount of physical disk space available Default: 50 GUI Setting: Server Properties, Queue tab, Memory and Disk Usage, Minimum Free Space The QJournalFreeSpaceMin should be less than the amount of physical disk space minus QJournalSpaceMax. QJournalPreload The number of operations being pulled from the disk queue at one time.
Server Setting RemapLink Description Specifies how Storage Mirroring handles a soft link Values: 0 If a soft link exists in a replication set and points to a file or directory inside the replication set, the path contained in the link will retain its original mapping.
Server Setting ScheduleFile Description Name of the database file that contains transmission scheduling information Values: any valid file name Default: Schedule.sts GUI Setting: Server Properties, Database tab, Database Files, Schedule If you change the name of the database file, the source service must be stopped and restarted to start logging to the new database file.
Server Setting StatsPort Description Port used by DTStat to gather Storage Mirroring statistics Values: 1025 - 65535 Default: 1106 GUI Setting: None If you change this value, the source service must be stopped and restarted to implement the change. StatsShmSize This entry is no longer used. StatsWriteInterval Interval, in minutes, in which statistics are written to the statistic.
Server Setting TGExecutionRetry Limit Description The number of times an unfinished operation will be retried on the target before it is discarded. If this value is set to zero (0), an operation will never be discarded and will be retried on the target until it is applied. Values: 0 - 65536 Default: 0 GUI Setting: None TGMirrorCapacity High Maximum percentage of system memory that can contain mirror data before the target signals the source to pause the sending of mirror operations.
Server Setting UpdateInterval Description Interval, in seconds, at which the Failover Control Center updates the monitored machines display Values: 1 - 9999 Default: 1 GUI Setting: Failover Control Center, Settings, Refresh Rate UpgradeCode Used by the Storage Mirroring installation program to maintain the installation settings for an upgrade UserIntervention Specifies whether or not user intervention is required to initiate a failover Values: 0 User intervention is not required 1 User intervention is
Storage Mirroring Commands The Storage Mirroring commands are listed in alphabetical order on the following pages. Each command includes the following: Command name Description of the command Exact syntax for using the command Options, if any Examples, if necessary Notes, if any For details on the conventions used for the command syntax, see Conventions used in this guide on page 1-2.
Compression Set Command COMPRESSION SET Description Sets the compression level Syntax COMPRESSION SET Options con_id—Connection ID assigned to the source/target connection level—Any whole number from 1 to 3 where 1 is minimum compression and 3 is maximum compression Examples compression set 1 2 Notes This command only sets the level of compression. It does not initiate compression.
Connect Command CONNECT Description Establishes a connection between a replication set and a target machine Syntax CONNECT TO MAP EXACT | MAP BASE | MAP TO [,...
Notes The default settings for this command are mirror, replicate, nomonitor, and noorphans. The options (no)mirror, (no)replicate, (no)monitor, (no)orphans, and compression can be used in any combination and in any order. The first option does not require a comma, but the second and remaining options do require a comma before the option. Options that contain non-alphanumeric characters must be enclosed in quotation marks.
Options OKSOURCE—List all devices on the specified source that are OKTARGET—List all devices on the specified target that are capable of replication capable. If a target is specified, an error will be returned. being used as a target path. If a source is specified, an error will be returned. machine—Name of the machine Examples device list all on alpha Notes Machine names that contain non-alphanumeric characters must be enclosed in quotation marks.
Email Enable Command EMAIL ENABLE Description Enables e-mail notification Syntax EMAIL ENABLE Notes You must have an active source specified for any e-mail command to work properly. Email Filter Command EMAIL FILTER Description Displays the filter configuration from the email setfilterinclude command Syntax EMAIL FILTER Notes You must have an active source specified for any e-mail command to work properly.
Email MailServer Command EMAIL MAILSERVER Description Specifies the name of the SMTP mail server for e-mail notification Syntax EMAIL MAILSERVER [username][password] Options server_name—Name of the SMTP mail server ip_address—IP address of the SMTP mail server username—User ID required for SMTP server authentication password—Password associated with the specified user name Examples email mailserver xchng administrator ******* Notes Your SMTP server mus
Email Set Filter Include Command EMAIL SETFILTERINCLUDE Description Specifies which Event Viewer messages are sent via e-mail Syntax EMAIL SETFILTERINCLUDE [INFO, WARNING, ERROR] [EXCLUDEIDS ""] Options INFO—Information messages will be sent via e-mail WARNING—Warning messages will be sent via e-mail ERROR—Error messages will be sent via e-mail Examples Notes EXCLUDEIDS ID1,ID2-ID4,...—A comma separated list of IDs or ID ranges.
Email Subject Command EMAIL SUBJECT Description Specifies if additional text will be displayed in the subject of the e-mail message Syntax EMAIL SUBJECT [PREFIX | NOPREFIX] [DESCRIPTION | NODESCRIPTION] Options Examples NOPREFIX—No prefix will be inserted at the front of the subject line for each Storage Mirroring generated e-mail message DESCRIPTION—Append the message description to the end of the subject line NODESCRIPTION—Do not append the message description to the end of
Email Test Command EMAIL TEST Description Sends a test message to demonstrate e-mail notification Syntax EMAIL TEST [SENDTO ] [TEXT ] Options Examples Notes email_address—Specifies the e-mail address(es) to send the test message to if you do not want to use the e-mail addresses configured with the EMAIL ADD command. This is a comma separated list of addresses. The entire list should be enclosed in quotation marks.
Exit Command EXIT Description Exits the Command Line Interactive client Syntax EXIT Failback Command FAILBACK Description Initiates the failback process for the specified monitor machine Syntax FAILBACK [ON ] [REMONITOR|NOREMONITOR] Options monitor—Name of the source machine designated as the monitor target—Name of the target, an IP address on the target, or a virtual IP address REMONITOR—Automatically continues monitoring the source machine after failback NOREM
Get Command GET Description Requests the value of a Storage Mirroring program setting from the specified server Syntax GET [machine] Options setting—See the table Storage Mirroring Server Settings on page 13-2 for a complete list of the Storage Mirroring program settings machine—Name of the machine Examples Notes get netport get VerifyLogName get DefaultAddress If you do not specify a machine name, the value from the current source will be returned.
Get Local Command GETLOCAL Description Requests the value of a Storage Mirroring program setting from the local machine Syntax GETLOCAL Options setting—See the table Storage Mirroring Server Settings on page 13-2 for a complete list of the Storage Mirroring program settings Examples getlocal netport getlocal VerifyLogName getlocal DefaultAddress Help Command HELP Description Displays the DTCL commands and their syntax Syntax HELP Notes Press any key to scroll through the
Limit Bandwidth Command LIMIT BANDWIDTH Description Sets a fixed bandwidth limitation for transmitting data from the source to the target Syntax LIMIT BANDWIDTH , TO Options bytes—Number of bytes to be transmitted seconds—Maximum number of seconds to wait before transmitting again target—Name of the target, an IP address on the target, or a virtual IP address.
Load Target Command LOAD TARGET Description Loads the Storage Mirroring target module Syntax LOAD TARGET Options machine—Name of the machine Examples load target beta Notes Machine names that contain non-alphanumeric characters should be enclosed in quotation marks. Login Command LOGIN Description Log on to a Storage Mirroring machine Syntax LOGIN [domain] Options machine—Name of the machine username—Name of the user.
Logout Command LOGOUT Description Logs off of a Storage Mirroring machine Syntax LOGOUT Options machine—Name of the machine Examples logout alpha Notes Machine names that contain non-alphanumeric characters must be enclosed in quotation marks. Mirror Pause Command MIRROR PAUSE Description Pauses a mirror that is in progress Syntax MIRROR PAUSE Options con_id—Connection ID assigned to the source/target connection *—Specifies all connection IDs.
Mirror Start Command MIRROR START Description Initiates the mirror process Syntax MIRROR START [DIFFERENT [,NEWER] ,CHECKSUM | NOCHECKSUM] [ORPHANS |NOORPHANS] [CALCULATE | NOCALCULATE] [CLEARRESTOREREQUIRED] Options Examples con_id—Connection ID assigned to the source/target connection DIFFERENT—Mirrors only those files that are different based on the file date, time, and/or size NEWER—Mirrors only those files that are newer on the source than on the target CHECKSUM—Mirrors
Mirror Stop Command MIRROR STOP Description Stops a paused mirror Syntax MIRROR STOP Options con_id—Connection ID assigned to the source/target connection *—Specifies all connection IDs Examples mirror stop 1 mirror stop * Monitor Account Add Command MONITOR ACCOUNT ADD Description Identifies a user account with update permissions within Active Directory Syntax MONITOR ACCOUNT ADD [monitor] Options username—Name of the user in the format dom
Monitor Account Remove Command MONITOR ACCOUNT REMOVE Description Removes the user account used to failover Active Directory Syntax MONITOR ACCOUNT REMOVE Options monitor—Name of the source machine designated as the monitor Examples monitor account remove alpha Notes If you do not specify a monitor, the current source designated as the monitor will be used. If you have not identified a monitor, you will receive an error message stating that a monitor has not been selected.
Monitor Delete Command MONITOR DELETE Description Deletes the specified failover monitor and all of its parameters Syntax MONITOR DELETE Options monitor—Name of the source machine designated as the monitor Examples monitor delete alpha Notes In order to successfully delete a monitor, the monitor must not be running on the server. Use the monitor stop command to ensure the monitor is not running.
Monitor List Command MONITOR LIST Description Displays a list of all failover monitor machines Syntax MONITOR LIST Monitor Move Command MONITOR MOVE Description Designates the IP address that will be failed over to the specified target NIC Syntax MONITOR MOVE TO NIC INTERVAL TIMEOUT [monitor] | NOTEST [monitor] Options IP_address—The IP address which should be moved during failover target_NIC—The integer value of the target NIC obtained from
Monitor Option Command MONITOR OPTION Description Configures the settings to determine how failover will be performed Syntax MONITOR OPTION [MOVENAME | NOMOVENAME] [, MOVEADDRESSES | NOMOVEADDRESSES] [, MOVESHARES | NOMOVESHARES] [, ADD | REPLACE] [, USESHAREFILE | NOUSESHAREFILE] [, FAILONE | FAILALL] [, TRIGGERONE | TRIGGERALL] [, FODELAY | NOFODELAY] [, FBDELAY | NOFBDELAY] [, INTERVENTION | NOINTERVENTION] [, FOHOSTNAME | NOFOHOSTNAME] [, FBHOSTNAME | NOFBHOSTNAME] [monitor] Options MOVENAME—M
Options Examples FAILALL—When multiple IP addresses exist on a monitor machine, all of the addresses will fail over to the target machine even if only one address fails TRIGGERONE—When multiple IP addresses are being monitored, failover occurs when one of the IP addresses fails TRIGGERALL—When multiple IP addresses are being monitored, failover occurs when all of the IP addresses fail FODELAY—Guarantees that the pre-failover script has completed before failing over NOFODELAY—Does not
Monitor Remove Command MONITOR REMOVE Description Removes an IP address that is currently being monitored Syntax MONITOR REMOVE [monitor] Options IP_address—The currently monitored IP address that should be removed monitor—Name of the source machine designated as the monitor Examples Notes monitor remove 205.31.2.57 alpha monitor remove 205.31.2.68 If you do not specify a monitor, the current source designated as the monitor will be used.
Monitor Script Add Command MONITOR SCRIPT ADD Description Specifies the scripts that should be run during the failover and failback processes Syntax MONITOR SCRIPT ADD Options [monitor] type—Any of the following script types PREFAILOVER—The file is a pre-failover script to be run on the target before failover POSTFAILOVER—The file is a post-failover script to be run on the target after failover PREFAILBACK—The file is a pre-failback script to be run on the target b
Monitor Script Remove Command MONITOR SCRIPT REMOVE Description Specifies the scripts that should not be run during the failover and failback processes Syntax MONITOR SCRIPT REMOVE [monitor] Options Examples Notes type—Any of the following script types PREFAILOVER—The file is a pre-failover script to be run on the target before failover POSTFAILOVER—The file is a post-failover script to be run on the target after failover PREFAILBACK—The file is a pre-failback scr
Monitor Stop Command MONITOR STOP Description Stops monitoring the source machine for a failure Syntax MONITOR STOP [ON ] Options monitor—Name of the source machine designated as the monitor target—Name of the target, an IP address on the target, or a virtual IP address Examples monitor stop alpha on beta Notes Option names that contain non-alphanumeric characters must be enclosed in quotation marks.
NICList Command NICLIST Description Displays the NICs available on the specified target machine. Each NIC is assigned an integer value and this value is used in the monitor move command. Syntax NICLIST [target] Options target—Name of the target, an IP address on the target, or a virtual IP address Examples niclist beta Notes If you do not specify a machine name, the value from the current target will be returned. If you have not identified a target, no data will be returned.
Pause Target Command PAUSETARGET Description Allows you to pause the execution of Storage Mirroring operations on the target Syntax PAUSETARGET [FROM
Queue Task Command QUEUETASK Description Queues tasks inline with replication data. Syntax QUEUETASK TO ONQUEUE = [args] | ONTRANSMIT = [args] | ONRECEIVE = [args] | ONEXECUTE = [args] [TIMEOUT = ] [INTERACT | NOINTERACT] Options ONQUEUE—Execute the specified task on the source machine as soon as the source receives and queues the task.
Notes The default setting for this command is nointeract. Any combination of one or more execution points can be used with the same queuetask command. All script processing messages, including errors, can be viewed in the Storage Mirroring logs and the Windows Event Viewer. Onqueue will still execute as soon as the task is placed on the queue even if transmission is stopped (manually stopped or paused, unmet scheduled transmission criteria, etc.).
Replication Stop Command REPLICATION STOP Description Stops the replication process Syntax REPLICATION STOP Options conid—Connection ID assigned to the source/target connection *—Specifies all connection IDs Examples replication stop 1 replication stop * Repset Calculate Command REPSET CALCULATE Description Calculates the size of a replication set Syntax REPSET CALCULATE [repset] Options repset—Name of the replication set Examples repset calculate DataFiles Notes
Repset Delete Command REPSET DELETE Description Deletes the specified replication set Syntax REPSET DELETE Options repset—Name of the replication set Examples repset delete DataFiles Notes Replication set names that contain non-alphanumeric characters must be enclosed in quotation marks.
Repset Rule Add Command REPSET RULE ADD Description Adds a rule to a replication set. A rule is the specification of a path including volume, directories, wild cards, and/or file names.
Repset Save Command REPSET SAVE Description Saves all replication set rules for the currently selected source Syntax REPSET SAVE Repset Use Command REPSET USE Description Specifies a replication set as the active replication set Syntax REPSET USE Options repset—Name of the replication set Examples repset use DataFiles Notes Replication set names that contain non-alphanumeric characters must be enclosed in quotation marks.
Restore Command RESTORE Description Initiates the restoration process Syntax RESTORE FROM ORIGINAL [, OVERWRITE | NOOVERWRITE] [, OVERWRITENEWER | NOOVERWRITENEWER] [, USETARGETDB | NOUSETARGETDB] [, RESTOREDBTOO | NORESTOREDBTOO] [, CHECKSUM | NOCHECKSUM][, ORPHANS | NOORPHANS] Options repset—Name of the replication set target—Name of the target, an IP address on the target, or a virtual IP address original_source—Name of the original source OVERWRI
Resume Target Command RESUMETARGET Description Allows you to resume the execution of Storage Mirroring operations on the target Syntax RESUMETARGET [FROM
Schedule Enable Command SCHEDULE ENABLE Description Enables the transmission schedule Syntax SCHEDULE ENABLE Options target—Name of the target, an IP address on the target, or a virtual IP address Depending on the network route Storage Mirroring uses to access the target, you may need to specify the fully qualified domain name. Examples schedule beta enable Notes Target names that contain non-alphanumeric characters must be enclosed in quotation marks.
Schedule Start Command SCHEDULE START Description Sets criteria to start the transmission of data from the source to the target Syntax SCHEDULE START [STARTTIME = ] [MEMLIMIT = ] [QUEUESIZE = ] [EVERY ] Options Examples Notes target—Name of the target, an IP address on the target, or a virtual IP address Depending on the network route Storage Mirroring uses to access the target, you may need to specify the fully qualified domain name
Schedule Window Command SCHEDULE WINDOW Description Sets criteria to only allow transmissions during a certain period of time Syntax SCHEDULE WINDOW TO Options target—Name of the target, an IP address on the target, or a virtual IP address Depending on the network route Storage Mirroring uses to access the target, you may need to specify the fully qualified domain name. hh:mm—Time in hour:minute format using the 24-hour clock.
Set Local Command SETLOCAL Description Modifies the value of a Storage Mirroring program setting for the local machine Syntax SETLOCAL = Options setting—See the table Storage Mirroring Server Settings on page 13-2 for a complete list of the Storage Mirroring program settings value—See the table Storage Mirroring Server Settings on page 13-2 for a complete list of the Storage Mirroring program settings Examples Notes setlocal netport=1100 setlocal VerifyLogName="HA server.
Source Command SOURCE Description Identifies a machine as the active source machine Syntax SOURCE
StatsLog Status Command STATSLOG STATUS Description Identifies whether or not the DTStats statistics logging utility is currently running Syntax STATSLOG STATUS Options machine—Name of the machine Examples statslog status alpha Notes Machine names that contain non-alphanumeric characters must be enclosed in quotation marks. StatsLog Stop Command STATSLOG STOP Description Stops the DTStats statistics logging utility.
Status Command STATUS Description Requests connection and statistical information Syntax STATUS | | | | Options Examples CONNECT MIRROR REPLICATE TRANSMIT CONNECT—Displays connection information for the connection ID specified con_id—Connection ID assigned to the source/target connection MIRROR—Displays mirroring information for the connection ID specified REPLICATE—Displays replication information for the connection ID specified TRANSMIT—Displ
Test Connections Command TESTCONNECTIONS Description Sends a test command to determine if Storage Mirroring is running. If there are active connections, the replication set(s), IP address(es), and connection ID(s) will be included in the testcon log file. Syntax TESTCONNECTIONS [ filename [OVERWRITE]] Options machine—The name of the machine filename—The name of the log file. The file extension .dts is appended to any file name supplied.
Transmission Resume Command TRANSMISSION RESUME Description Resumes a paused transmission Syntax TRANSMISSION RESUME Options target—Name of the target, an IP address on the target, or a virtual IP address. Depending on the network route Storage Mirroring uses to access the target, you may need to specify the fully qualified domain name. Examples transmission resume beta Notes Target names that contain non-alphanumeric characters must be enclosed in quotation marks.
Unload source Command UNLOAD SOURCE Description Unloads the Storage Mirroring source module Syntax UNLOAD SOURCE Options machine—Name of the machine Examples unload source alpha Notes Machine names that contain non-alphanumeric characters must be enclosed in quotation marks.
Verify Command VERIFY Description Verifies the integrity of the data between the source and target machines.
Version Command VERSION Description Displays the Storage Mirroring version currently installed Syntax VERSION [MACHINE] Options MACHINE—Name of the machine Examples version alpha Notes If no machine name is specified, the version of the active source will be displayed. If there is no active source, no version information will be displayed. Machine names that contain non-alpanumeric characters must be enclosed in quotation marks.
Wait on Restore Command WAITONRESTORE Description This command is used in scripts to force the script to stop executing until the connection has finished restoring. Syntax WAITONRESTORE Options rest_id—Restoration ID assigned to the source/target connection Examples waitonrestore 1 Notes This command requires using the source command immediately before the waitonrestore command.
Scripting Examples This chapter contains sample Storage Mirroring scripts. Most of the sample scripts must be modified. They cannot be used as-is. Modify them to fit your environment. If you need basic assistance with script modifications, contact Technical Support. Assistance with advanced scripting will be referred to Professional Services. NOTE: See Storage Mirroring scripts on page 2-2 for information on using Storage Mirroring scripts.
Using variables to create and connect a replication set and run verification The following script uses variables to identify the source, target, and replication set. These variables are then used in the Storage Mirroring commands. The $connectionID variable will contain the connection ID for the connection established. This variable can then be used to establish a verification schedule.
Using variables to pause a target The following script uses variables to identify the target and credentials to login to that target. These variables are then used in the Storage Mirroring commands to pause the target. $TheTarget = "beta"; $TheUser = "admin"; $ThePassword = "password"; $TheDomain = "domain.
Creating a backup or snapshot of the target by inserting a task command during replication The following script stops the services on the source, pauses the script to allow the source time to write the remaining application data to disk, inserts a Storage Mirroring task command into the Storage Mirroring replication process, and then restarts the services. REM net net net net stop stop stop stop Stop the services on the source so that data changes are stopped.
Creating a backup of the target by rotating connections The following two scripts create multiple copies of your data on the target, but only one copy is active at a time. This allows you the time and availability to backup the inactive copy of data. This is especially helpful when you have applications with interdependent files. Backups occur sequentially from the first file to the last file.
Index B I bandwidth limitations 9-8 batch files 2-2 IF conditional 2-2 scripts in-band control batch files 2-2 See task command processing comments 2-2 flow control 2-2 overview 2-2 L variables 2-2 logging on/off 2-3 server properties 13-1 simulating a connection 5-1 C Command Line Client 2-1 commands 14-1 comments 2-2 compression 6-3 connection automatic reconnections 6-2 creating 4-1 disconnecting 6-4 monitoring 6-1 simulating 5-1 conventions 1-2 E exit 2-4 F failback 12-1 failover configuring 11-1