On Thu, Dec 15, 2016 at 9:25 AM, Andrew Martin <[email protected]> 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/