Upgrade Guide

From: SVN MultiSite Plus Build: 5041 or earlier

This guide runs through the procedure to upgrade to the latest version of SVN MultiSite Plus from build 5041 or earlier.

Before you upgrade

Prior to starting an upgrade you should first complete the steps outlined below:

stop All repositories must have unique names
It has previously been possible to give separate repositories the same name. While doing so would not cause a problem for the replication engine it could obviously lead to confusion and serious user error. As a result we've added logic to ensure that the use of duplicate repository names is no longer allowed.

Important: Before upgrading you should check your existing repositories and ensure that there are no duplicate names.
If necessary you should take steps to rename any existing repositories that currently share a name.
stop Notifications are lost after an upgrade
The email notification system has not yet been incorporated into the upgrade process. Performing an upgrade will remove any notifications that you have setup on your system. To restore your notication settings you'll either need to re-enter them after completing the upgrade or use the following procedure before starting an upgrade Backup and Restore Notification Settings

These steps are only required if you are upgrading to version 1.2.1 from version 1.2.0 or earlier.
stop Before you begin - IMPORTANT
Run these instructions on each node one at a time -- don't attempt to run them simultaneously. The process would still complete successfully, although you are likely to see pending transactions that won't ever complete.

Although you can update to the latest version of SVN MultiSite Plus by completing a fresh installation (using the installation guide), you would need to recreate your configuration in terms of node, repository and replication group settings. This upgrade procedure offers a method for upgrading while keeping your established setup.

Overview

In this procedure you'll create a backup of your current configuration, shut down MultiSite, then run the installer for the latest version of the product. The installer will detect your existing installation and perform the necessary updates to upgrade your installation. Finally, it will restore your settings from the backup you created in the first step.

tip" Before you begin - IMPORTANT
If Subversion changes are in-flight when the upgrade process is run there is a good chance that the state of each node will not match when you restart, which will prevent replication. It is essential that Subversion write-activity is stopped on all sites, and that enough          time is allowed for any in-flight transactions to be distributed to all sites.

Preparing for the upgrade

Apply this section to all sites before you continue to the Upgrade:

tip" Same version must run on all sites
You should complete the upgrade on all your sites before restarting replication.

As with your initial deployment, ensure that all software is running at the same version on all sites. Running with different software versions may result in sites behaving slightly differently which could result in loss of sync between Subversion repository replicas.

  1. Open a shell onto the first node's server. Ensure that you log in with appropriate privileges.

  2. Archive your SVN MultiSite Plus directory,in case of trouble during the upgrade.

  3. With your current installation safely copied, we'll begin by creating a backup of the configuration data by invoking the following API call:
    curl --user <:username>:<:password> -X POST http://[node_ip_address]:8082/dcone/backup
    e.g.
    curl --user admin:password -X POST http://172.16.2.41:8082/dcone/backup
        
    cd /opt/wandisco/svn-multisite-plus/replicator/database/
    
    

    After running the back up, verify and make a note of the name of the backup file for later -you'll need to reference it during the upgrade. Backups are stored here:

    [Install-Directory]/svn-multisite-plus/replicator/database/backup

    The backup subdirectory is created the first time you run a backup. Each time you run a back a corresponding date-time stamped subdirectory is created in the backup directory. A typical backup will have the following file structure.

        
    drwxr-xr-x 3 root root 4096 Jul 24 10:53 application
    drwxr-xr-x 3 root root 4096 Jul 25 10:33 backup <- backup folder created when backup is first run
       
        drwxr-xr-x 4 root root 4096 Jul 25 10:33 20130713.103306.674_DConE_Backup <- per-backup folder   
            
            drwxr-xr-x 2 root root 4096 Jul 25 10:33 instance
             
                -rw-r--r-- 1 root root   9900 Jul 25 10:33 application_resettable.db-backup.xml 
                -rw-r--r-- 1 root root 226838 Jul 25 10:33 DConE.application.db-backup.xml
                -rw-r--r-- 1 root root  84107 Jul 25 10:33 recovery_application.integration.db-backup.xml
                -rw-r--r-- 1 root root 222815 Jul 25 10:33 recovery_DConE.system.db-backup.xml
                -rw-r--r-- 1 root root  31341 Jul 25 10:33 recovery_DConE.topology.db-backup.xml
       
            drwxr-xr-x 7 root root 4096 Jul 25 10:33 subsystem
            
                drwxr-xr-x 2 root root 4096 Jul 25 10:33 application_resettable.db
                drwxr-xr-x 2 root root 4096 Jul 25 10:33 DConE.application.db
                drwxr-xr-x 2 root root 4096 Jul 25 10:33 recovery_application.integration.db
                drwxr-xr-x 2 root root 4096 Jul 25 10:33 recovery_DConE.system.db
                drwxr-xr-x 2 root root 4096 Jul 25 10:33 recovery_DConE.topology.db
        
    drwxr-xr-x 2 root root 4096 Jul 25 10:23 DConE.application.db
    drwxr-xr-x 5 root root 4096 Jul 24 10:57 recovery
    

  4. Shut down SVN MultiSite Plus.

    tip" Read-only
    Shutting down MultiSite will make all of its replicated repositories read-only. Depending on how disruptive this will be, it may be wise to warn your local Subversion users and complete the process at a time when the outage will be least disruptive.

    To shut down, run the following script:
    [Install-Directory]/svn-multisite-plus/bin/multisite_enterprise_shutdown.sh

Upgrade

Complete these steps on each node in turn:

  1. Copy the latest SVN MultiSite Plus installer file to the same location as your backed up version and run it using the following command:
    ./multisite-plus.sh
    This will kick off an installation which will first check to see if there is an exising installation, along with a database backup. Providing the above steps have been taken the process will look like this:
    [root@localhost wandisco]# perl multisite-plus.sh
    Verifying archive integrity... All good.
    Uncompressing WANdisco MultiSite Plus...........
        ,             ..   .    .  `''` . ..`''   ...`    .   :,     ,;.     :;
       ::,  ::  ::     +   +'  '+ +++++++ ++++++, +   ,'  ; ;   :   ;   +  '`   +
      ::::,:::: :::    +'  ++  +;;+    ++ ++   '+ +     : ; +      '      .      :
     ::::::::::: :::   ;+ '++  + +'    `+ ++    + +     + ; '     .       +      +
    ,:::::::::::: :::   + +.+;++ +,     + ++    + +     ; ;  .++  :       +      '
     ::::::::::: :::    +++ .++, +'    `+ ++    + +     + ;     .`.       +      +
      ::::,:::: :::     .++  ++  '+    ++ ++    + +     : ;      ; '      ,      :
       ::,  ::  ::       +.  ++   +++++++ ++    + +   .'  ; +   ,  `;   '  +    +
        ,                ,   ``    .++` , ,,    , ,,,.    .  `;:     :',     ;;
    
    Checking SVN
    SVN version 1.7.9-2 is already installed, will not install SVN
    
    Beginning WANdisco SVN MultiSite Plus Installation...
    
    Upgrade complete, you may now start up the Web UI and Replicator
    [root@localhost wandisco]#
    

  2. The upgrade is now complete. You can use the regular startup command to start the Web UI and Replicator, however, you should complete the upgrade process on all of your other nodes before you do.

Restart

When all nodes are upgraded, complete the following step on all sites:

  1. Restart SVN MultiSite Plus using svn-multisite service, located in the init.d folder. e.g.
    [root@localhost init.d]#  ./svn-multisite start
  2. It's worth doing some test commits to ensure that replication is working on all sites before allowing your Subversion users to continue their work.
    Remember to make your repositories writable again before announcing to your Subversion users that they can start committing again.