doc/book/admin/additional-tips.rst
author Denis Laxalde <denis.laxalde@logilab.fr>
Mon, 06 Mar 2017 14:19:20 +0100
changeset 12008 7694dcf5ad30
parent 10491 c67bcee93248
permissions -rw-r--r--
[etwist] Do not call repository's start_looping_tasks anymore and warn about this We are about to drop this method from Repository class and replace it by a blocking alternative. This is not compatible with how things currently work in a Twisted server implementation. So do not start repository "looping tasks" in Twisted server anymore and issue a warning about this. If someone is interested in restoring the "all-in-one" behavior where the repository runs within a Twisted server, they may start by implementing repository looping tasks using a Twisted mechanism such as, e.g., http://twistedmatrix.com/documents/current/core/howto/time.html and eventually provide the repository with a compatible scheduler instance so that is can register its periodic tasks. At the moment, we lack resources to do this (and maintain the Twisted server of CubicWeb in general). Related to #17057223.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
4429
0cd207567f37 le patch admin_tips_for_backup a été importé
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
     1
0cd207567f37 le patch admin_tips_for_backup a été importé
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
     2
.. _Additional Tips:
0cd207567f37 le patch admin_tips_for_backup a été importé
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
     3
5400
b7ab099b128a [doc/book] various content fixes
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents: 5002
diff changeset
     4
Backups (mostly with postgresql)
b7ab099b128a [doc/book] various content fixes
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents: 5002
diff changeset
     5
--------------------------------
4429
0cd207567f37 le patch admin_tips_for_backup a été importé
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
     6
5400
b7ab099b128a [doc/book] various content fixes
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents: 5002
diff changeset
     7
It is always a good idea to backup. If your system does not do that,
b7ab099b128a [doc/book] various content fixes
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents: 5002
diff changeset
     8
you should set it up. Note that whenever you do an upgrade,
b7ab099b128a [doc/book] various content fixes
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents: 5002
diff changeset
     9
`cubicweb-ctl` offers you to backup your database.  There are a number
b7ab099b128a [doc/book] various content fixes
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents: 5002
diff changeset
    10
of ways for doing backups.
4429
0cd207567f37 le patch admin_tips_for_backup a été importé
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
    11
5400
b7ab099b128a [doc/book] various content fixes
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents: 5002
diff changeset
    12
Using postgresql (and only that)
b7ab099b128a [doc/book] various content fixes
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents: 5002
diff changeset
    13
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
b7ab099b128a [doc/book] various content fixes
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents: 5002
diff changeset
    14
b7ab099b128a [doc/book] various content fixes
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents: 5002
diff changeset
    15
Before you
5002
0ce27e435b3a [D] book: update backup procedures in additional tips
Julien Jehannet <julien.jehannet@logilab.fr>
parents: 4784
diff changeset
    16
go ahead, make sure the following permissions are correct ::
4429
0cd207567f37 le patch admin_tips_for_backup a été importé
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
    17
0cd207567f37 le patch admin_tips_for_backup a été importé
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
    18
   # chgrp postgres /var/lib/cubicweb/backup
0cd207567f37 le patch admin_tips_for_backup a été importé
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
    19
   # chmod g+ws /var/lib/cubicweb/backup
0cd207567f37 le patch admin_tips_for_backup a été importé
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
    20
   # chgrp postgres /etc/cubicweb.d/*<instance>*/sources
0cd207567f37 le patch admin_tips_for_backup a été importé
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
    21
   # chmod g+r /etc/cubicweb.d/*<instance>*/sources
0cd207567f37 le patch admin_tips_for_backup a été importé
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
    22
5002
0ce27e435b3a [D] book: update backup procedures in additional tips
Julien Jehannet <julien.jehannet@logilab.fr>
parents: 4784
diff changeset
    23
Simply use the pg_dump in a cron installed for `postgres` user on the database server::
4429
0cd207567f37 le patch admin_tips_for_backup a été importé
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
    24
5002
0ce27e435b3a [D] book: update backup procedures in additional tips
Julien Jehannet <julien.jehannet@logilab.fr>
parents: 4784
diff changeset
    25
    # m h  dom mon dow   command
0ce27e435b3a [D] book: update backup procedures in additional tips
Julien Jehannet <julien.jehannet@logilab.fr>
parents: 4784
diff changeset
    26
    0 2 * * * pg_dump -Fc --username=cubicweb --no-owner <instance> > /var/backups/<instance>-$(date '+%Y-%m-%d_%H:%M:%S').dump
4429
0cd207567f37 le patch admin_tips_for_backup a été importé
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
    27
5400
b7ab099b128a [doc/book] various content fixes
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents: 5002
diff changeset
    28
Using :command:`cubicweb-ctl db-dump`
b7ab099b128a [doc/book] various content fixes
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents: 5002
diff changeset
    29
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4429
0cd207567f37 le patch admin_tips_for_backup a été importé
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
    30
5400
b7ab099b128a [doc/book] various content fixes
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents: 5002
diff changeset
    31
The CubicWeb way is to use the :command:`db-dump` command. For that,
b7ab099b128a [doc/book] various content fixes
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents: 5002
diff changeset
    32
you have to put your passwords in a user-only-readable file at the
b7ab099b128a [doc/book] various content fixes
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents: 5002
diff changeset
    33
home directory of root user.  The file is `.pgpass` (`chmod 0600`), in
b7ab099b128a [doc/book] various content fixes
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents: 5002
diff changeset
    34
this case for a socket run connection to PostgreSQL ::
4429
0cd207567f37 le patch admin_tips_for_backup a été importé
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
    35
5002
0ce27e435b3a [D] book: update backup procedures in additional tips
Julien Jehannet <julien.jehannet@logilab.fr>
parents: 4784
diff changeset
    36
    /var/run/postgresql:5432:<instance>:<database user>:<database password>
4429
0cd207567f37 le patch admin_tips_for_backup a été importé
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
    37
0cd207567f37 le patch admin_tips_for_backup a été importé
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
    38
The postgres documentation for the `.pgpass` format can be found `here`_
0cd207567f37 le patch admin_tips_for_backup a été importé
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
    39
5002
0ce27e435b3a [D] book: update backup procedures in additional tips
Julien Jehannet <julien.jehannet@logilab.fr>
parents: 4784
diff changeset
    40
Then add the following command to the crontab of the user (`crontab -e`)::
4429
0cd207567f37 le patch admin_tips_for_backup a été importé
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
    41
0cd207567f37 le patch admin_tips_for_backup a été importé
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
    42
    # m h  dom mon dow   command
0cd207567f37 le patch admin_tips_for_backup a été importé
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
    43
    0 2 * * * cubicweb-ctl db-dump <instance>
0cd207567f37 le patch admin_tips_for_backup a été importé
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
    44
5400
b7ab099b128a [doc/book] various content fixes
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents: 5002
diff changeset
    45
b7ab099b128a [doc/book] various content fixes
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents: 5002
diff changeset
    46
Backup ninja
b7ab099b128a [doc/book] various content fixes
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents: 5002
diff changeset
    47
~~~~~~~~~~~~
4429
0cd207567f37 le patch admin_tips_for_backup a été importé
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
    48
5002
0ce27e435b3a [D] book: update backup procedures in additional tips
Julien Jehannet <julien.jehannet@logilab.fr>
parents: 4784
diff changeset
    49
You can use a combination `backup-ninja`_ (which has a postgres script in the
0ce27e435b3a [D] book: update backup procedures in additional tips
Julien Jehannet <julien.jehannet@logilab.fr>
parents: 4784
diff changeset
    50
example directory), `backuppc`)_ (for versionning).
4429
0cd207567f37 le patch admin_tips_for_backup a été importé
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
    51
5002
0ce27e435b3a [D] book: update backup procedures in additional tips
Julien Jehannet <julien.jehannet@logilab.fr>
parents: 4784
diff changeset
    52
Please note that in the *CubicWeb way* it adds a second location for your
0ce27e435b3a [D] book: update backup procedures in additional tips
Julien Jehannet <julien.jehannet@logilab.fr>
parents: 4784
diff changeset
    53
password which is error-prone.
4429
0cd207567f37 le patch admin_tips_for_backup a été importé
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
    54
0cd207567f37 le patch admin_tips_for_backup a été importé
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
    55
.. _`here` : http://www.postgresql.org/docs/current/static/libpq-pgpass.html
0cd207567f37 le patch admin_tips_for_backup a été importé
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
    56
.. _`backup-ninja` : https://labs.riseup.net/code/projects/show/backupninja/
0cd207567f37 le patch admin_tips_for_backup a été importé
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
    57
.. _`backuppc` : http://backuppc.sourceforge.net/
5400
b7ab099b128a [doc/book] various content fixes
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents: 5002
diff changeset
    58
b7ab099b128a [doc/book] various content fixes
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents: 5002
diff changeset
    59
.. warning::
b7ab099b128a [doc/book] various content fixes
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents: 5002
diff changeset
    60
b7ab099b128a [doc/book] various content fixes
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents: 5002
diff changeset
    61
  Remember that these indications will fail you whenever you use
b7ab099b128a [doc/book] various content fixes
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents: 5002
diff changeset
    62
  another database backend than postgres. Also it does properly handle
b7ab099b128a [doc/book] various content fixes
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents: 5002
diff changeset
    63
  externally managed data such as files (using the Bytes File System
b7ab099b128a [doc/book] various content fixes
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents: 5002
diff changeset
    64
  Storage).