On Thu, Dec 15, 2016 at 9:25 AM, Andrew Martin <amar...@xes-inc.com> wrote:

> > If all of your activity happens via Apache there might be easier ways to
> make
> > all your repositories read only during a backup window and you can also
> always
> > use the start-commit hook as an easy way to make repositories read only.
>
> It's tempting to just stop apache during the backup, but I need to
> continue to
> provide read-only access during the backup window, so apache needs to stay
> on.
>

I was thinking of two approaches:

1.  Have a "read-only" Apache httpd.conf that you swap into place and do a
graceful restart and then swap back at end.  This configuration would use
some variant of these directives I took from the svnbook:

  # Authorization: Authenticated users only for non-read-only
  #                (write) operations; allow anonymous reads
  <LimitExcept GET PROPFIND OPTIONS REPORT>
    Require valid-user
  </LimitExcept>

You would use this concept, not this exact configuration.  You would want
basically be configuring the server to only allow read options.


2. The easier approach is the start-commit hook.  Just have a single master
hook-script that all repositories are symlinked to.  Assuming you do not
use this hook for anything else, you can just have it in place with content
like:

exit 0;

Then when you are doing a backup you change it to something like:

echo "Server is in read-only mode for backup. It should be available again
within N minutes"
exit 1;

That said, based on the approach you are taking, I do not think you need to
do any of this.  Your ZFS snapshot of the filesystem can happen while a
commit is happening since the ultimate backup will be done with an svnadmin
hotcopy and that command will not care if the snapshot grabbed an
in-progress commit.

-- 
Thanks

Mark Phippard
http://markphip.blogspot.com/

Reply via email to