Commit a6af03fe authored by Jean-Benoist Leger's avatar Jean-Benoist Leger

update doc

parent 38226c1f
Ceci est pour installer une database from sctrach. Si vous avez déjà une
database suivant le schema pgsnapshot d'osmosis et que vous voulez l'utiliser,
veuillez lire le fichier approprié.
Prérequis sur le serveurs
=========================
......@@ -92,20 +95,19 @@ Schéma de la base (en tant que rv)
Ajouts pour rv
psql -d rv -f local/share/rv/sql/00-schema.sql
psql -d rv -f local/share/rv/sql/00-schema-rv_heigt.sql
cat local/share/rv/sql/10-fonctions-*.sql | psql -d rv
psql -d rv -f local/share/rv/sql/20-functions-update-rv.sql
psql -d rv -f local/share/rv/sql/30-fonctions-osmosisUpdate.sql
psql -d rv -f local/share/rv/sql/schemas/base.sql
psql -d rv -f local/share/rv/sql/schemas/height.sql
cat local/share/rv/sql/functions/*.sql | psql -d rv
psql -d rv -f local/share/rv/sql/misc/osmosisUpdate.sql
Si on veut activer le timing (stoqué dans une table rv_update_timing) on
psql -d rv -f local/share/rv/sql/00-schema-timing.sql
psql -d rv -f local/share/rv/sql/17-fonction-timing-enabled.sql
psql -d rv -f local/share/rv/sql/schemas/timing.sql
psql -d rv -f local/share/rv/sql/misc/timing-enabled.sql
Sinon
psql -d rv -f local/share/rv/sql/17-fonction-timing-disabled.sql
psql -d rv -f local/share/rv/sql/misc/timing-disabled.sql
On peut désactiver le timing à tout moment (et éventuellement supprimer la
table). Le timing est négligeable en taille sur la base et en temps, mais ça
......@@ -193,14 +195,99 @@ Ménage
Remplissage initial des tables perso
------------------------------------
psql -d rv -f local/share/rv/sql/90-initial-import.sql
psql -d rv -f local/share/rv/sql/scripts/initial-import.sql
psql -d rv -c "VACCUM ANALYZE;"
Ménage
------
Configuration de la mise à jour de la base de donnée (partie osmosis)
=====================================================================
Création du répertoire et config
--------------------------------
mkdir update_routing_db
osmosis --rrii workingDirectory=update_db/
Etiter le fichier `update_routing_db/configuration.txt` pour mettre les deux lignes :
baseUrl=http://download.geofabrik.de/europe/france-updates
maxInterval = 1
`maxInterval` à `1` permet de forcer l'application des diffs un à un (à moins
qu'il y ai plusieurs diff par secondre). En théorie on peut appliquer plusieurs
diff en même temps, mais osmosis peut planter lorsqu'un nœud est supprimé après
avoir été crée ou modifié dans un diff antérieur.
Telechager un state.txt plus vieux que l'import. On peut prendre un peu de
marge, ça ne mange pas de pain.
Script d'update
---------------
J'utilise ce script d'update (à part le log ce n'est qu'une commande osmosis
dans une boucle)
#!/bin/bash
dir=/home/rv/update_db/
(
printf "Begin: $(date +'%Y-%m-%d %H:%M:%S')\n\n" >&2
printf "Old state\n\n" >&2
cat $dir/state.txt >&2
printf "\n\n" >&2
k=0
seq_number=$(sed -ne '/sequenceNumber/s/^.*=//p' $dir/state.txt)
finish=0
while test $finish -eq 0
do
((k++))
old_seq_number=$seq_number
printf "Osmosis, execution number $k\n\n" >&2
osmosis \
--read-replication-interval workingDirectory=$dir \
--simplify-change \
--write-pgsql-change database=rv user=rv password=lR0Jqttl1GsQ
printf "\n\n" >&2
printf "New state\n\n" >&2
cat $dir/state.txt >&2
printf "\n\n" >&2
seq_number=$(sed -ne '/sequenceNumber/s/^.*=//p' $dir/state.txt)
if test $seq_number -eq $old_seq_number
then
finish=1
fi
done
printf "End: $(date +'%Y-%m-%d %H:%M:%S')\n" >&2
) 2> $dir/log/$(date +%Y-%m-%d_%H-%M-%S).log
Puis le placer dans une crontab. Fréquence du cron… quotidien semble un bon
choix.
Mise à jour des tables pour le routage
======================================
Il est inutile (et débile) de faire une mise à jour plus fréquente que celle de
la partie osmosis (partie précedente).
Il suffit d'executer le script SQL. `local/share/rv/sql/scripts/update.sql`.
Un petit coup de balai
On peut choisir de mettre la commande suivante dans une crontab:
rm -r data/
psql -d rv '/home/rv/local/share/rv/sql/scripts/update.sql'
Fréquence du cron… hebdomadaire semble un bon choix.
Création du répertoire et config
================================
mkdir update_routing_db
osmosis --rrii workingDirectory=update_routing_db/
Etiter le fichier `update_routing_db/configuration.txt` pour mettre les deux lignes :
baseUrl=http://download.openstreetmap.fr/replication/europe/france/minute
maxInterval = 864000
Telechager un state.txt plus vieux que l'import
Script d'update
===============
J'utilise ce script d'update (à part le log ce n'est qu'un commande osmosis et qu'un VACUUM ANALYZE)
#!/bin/bash
dir=/home/rv/update_routing_db/
(
printf "Begin: $(date +'%Y-%m-%d %H:%M:%S')\n\n" >&2
printf "Old state\n\n" >&2
cat $dir/state.txt >&2
printf "\n\n" >&2
printf "Osmosis\n\n" >&2
osmosis \
--read-replication-interval workingDirectory=$dir \
--simplify-change \
--write-pgsql-change database=rv user=rv password=aLzLaTdCNkoo
printf "\n\n" >&2
printf "New state\n\n" >&2
cat $dir/state.txt >&2
printf "\n\n" >&2
printf "VACUUM ANALYZE;" >&2
time psql -d rv -c "VACUUM ANALYZE;"
printf "\n\n" >&2
printf "End: $(date +'%Y-%m-%d %H:%M:%S')\n" >&2
) 2> >(gzip>$dir/log/$(date +%Y-%m-%d_%H-%M-%S).log.gz)
Puis le placer dans une crontab
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment