● Demander une adresse IP full stack chez Free pour avoir tous les ports
● Enfouissement de pales d'éoliennes: vrai ou faux?
● Raspberry Pi en récepteur audio Bluetooth (A2DP audio sink)
● Réparation d'un radio réveil impossible à mettre à l'heure et qui affiche 7L7
● Appairer un Freeplug avec un boîtier CPL d'une autre marque
● Réparation d'une VMC: condensateur HS
● Mettre à jour Postgresql vers une nouvelle version
● Réduire la taille d'une image de carte SD d'un Raspberry Pi
Bonjour,Merci beaucoup pour cette trouvaille, je peux maintenant supprimer les dossiers !!!!
En ce moment je suis contraint d'utiliser cette “BOX” à cause de ma vieille ligne cuivre ADSL qui n'est plus entretenue et qui a des problèmes de déconnexions intempestives.Ce que je peux en dire c'est que ça fonctionne parfaitement en tant que solution de secours et le comble c'est que c'est bien p[...]
Si c'est pour obtenir une adresse par dhcp c'est beaucoup plus simple.Il faut d'abord connecter la machine au réseau wifi en lui indiquant le nom du réseau wifi ainsi que le mot de passe wifi. Pour ça le fichier /etc/wpa_supplicant/wpa_supplicant.conf doit être comme ça:ctrl_interface=DIR=/var/run/w[...]
BOnjour Mr Forain, merci pour cet approfondissement. Pourriez vous m'aider pour une connexion avec dhcpcd sur mon hotspot mobile ? Serait-il possible donc de creer un connexion ip4 ou ip6 dynamique, avec un authentification wpa2_personal ? Pour cela suffit-t-il de faire : Code: interface wlan0 stat[...]
L'IP full stack n'a rien à voir avec le problème. Ça concerne seulement l'IP publique pour ceux qui veulent héberger un serveur chez eux et le rendre accessible depuis internet comme c'est mon cas avec le serveur qui héberge ce blog.Là c'est un problème au niveau du réseau local. Le disque dur doit [...]
Bonjour,Merci de consacrer un site sur Free et ses méandres.J'ai été client Free ADSL pendant 20 ans pendant lesquels un Seagate Central 42E17E a été connecté Ethernet sur le Freebox Server sans aucun problème, visible sur PC, télé, smartphone…Je suis revenu à Free avec la fibre récemment après un a[...]
Ok, je vais voir ce que je peux faire... Je ne garantis rien, mais je vais tenter (parce que faire des trucs Bluetooth dans un conteneur Docker, je n'ai jamais encore fait, je ne sais même pas si c'est possible à vrai dire). Et je ne garantis pas le temps que je vais prendre pour le faire, car cela [...]
"Le SFP, à part les geeks je ne pense pas qu'il y ait grand monde qui utilise ça." Alors pourquoi avoir fait une box 8 Gb/s alors que même le WiFi 6E ne peut, dans des conditions optimales, dépasser ~2 Gb/s ? Dans ce cas, une fibre 2.5 Gb/s comme Orange aurait suffi… Et pourquoi intégrer un CPU tell[...]
S'il y a quand même quelques arguments que l'on peut mettre dans l'URL, comme "?run" qui permet de lancer le speedtest au chargement de la page.plus d'info sur : https://openspeedtest.com/selfhosted-speedtest#:~:text=3)%20To%20enable%20stress%20pass%20%27Stress%27%20or%20%27S%27%20keyword%20as%20a%2[...]
J'ai découvert Openspeedtest il y a un mois et j'avais prévu d'en faire un article. C'est ultra simple à utiliser pour un novice, rien à configurer et pas besoin d'avoir des connaissances en réseau; sous Windows il y a juste à lancer l'exécutable pour démarrer le serveur.Le seul défaut d'Openspeedte[...]
La mise à jour vers une nouvelle version majeure de Postgres, ici on va passer de Postgres 14 à 15, est une opération simple et automatisée grâce au programme pg_upgrade fourni avec Postgres.
J'ai utilisé cette procédure pour mettre à jour Postgres sur le Raspberry Pi hébergeant ce blog, ce qui m'a pris environ 5 min. Bien entendu, cette durée dépend de la taille de tes bases et de ton matériel.
J'utilise un serveur Postgres simple c'est à dire sans cluster ni réplication, la procédure est peut être différente.
Important! avant de procédér à la mise à jour de Postgres, sauvegarde tes bases, ça t'évitera les pertes de données en cas de problème.
Se connecter en root
Arrêter le serveur Postgres actuel
systemctl stop postgresql
Installer la nouvelle version, ici la version 15
apt install postgresql-15
Le nouveau serveur est automatiquement démarré, il faut l'arrêter. Pour pouvoir continuer, il ne doit plus y avoir un seul serveur Postgres en cours d'exécution.
systemctl stop postgresql
Se connecter avec l'utisateur portgres
su - postgres
Tester que tout est OK pour faire la migration.
On va déclarer 2 variables contenant l'ancien et le nouveau numéro de version. Ceci sera plus pratique pour exécuter les commandes suivantes.
export PG_OLD_VERSION=<ANCIEN_NUMÉRO_DE_VERSION>
export PG_NEW_VERSION=<NOUVEAU_NUMÉRO_DE_VERSION>
Dans notre exemple de mise à jour de postgres 14 à 15 on fera:
export PG_OLD_VERSION=14
export PG_NEW_VERSION=15
Cette commande va juste vérifier que la migration peut être effectuée sans problèmes grâce au paramètre --check indiquant que l'on souhaite juste faire une vérification sans rien modifier.
/usr/lib/postgresql/$PG_NEW_VERSION/bin/pg_upgrade \
--old-datadir=/var/lib/postgresql/$PG_OLD_VERSION/main \
--new-datadir=/var/lib/postgresql/$PG_NEW_VERSION/main \
--old-bindir=/usr/lib/postgresql/$PG_OLD_VERSION/bin \
--new-bindir=/usr/lib/postgresql/$PG_NEW_VERSION/bin \
--old-options '-c config_file=/etc/postgresql/$PG_OLD_VERSION/main/postgresql.conf' \
--new-options '-c config_file=/etc/postgresql/$PG_NEW_VERSION/main/postgresql.conf' \
--check
Tu doit avoir des "ok" partout. Les cas d'erreurs courants sont un service postgres en cours d'exécution ou un mot de passe manquant (export PGPASSWORD="<MOT_DE_PASSE>").
Exécution de tests de cohérence
-------------------------------
Checking cluster versions ok
Checking database user is the install user ok
Checking database connection settings ok
Checking for prepared transactions ok
Checking for system-defined composite types in user tables ok
Checking for reg* data types in user tables ok
Checking for contrib/isn with bigint-passing mismatch ok
Checking for presence of required libraries ok
Checking database user is the install user ok
Checking for prepared transactions ok
Checking for new cluster tablespace directories ok
*Les instances sont compatibles*
Si tout est OK, tu peux effectuer la migration. C'est la même commande que précédemment mais sans le paramètre --check.
/usr/lib/postgresql/$PG_NEW_VERSION/bin/pg_upgrade \
--old-datadir=/var/lib/postgresql/$PG_OLD_VERSION/main \
--new-datadir=/var/lib/postgresql/$PG_NEW_VERSION/main \
--old-bindir=/usr/lib/postgresql/$PG_OLD_VERSION/bin \
--new-bindir=/usr/lib/postgresql/$PG_NEW_VERSION/bin \
--old-options '-c config_file=/etc/postgresql/$PG_OLD_VERSION/main/postgresql.conf' \
--new-options '-c config_file=/etc/postgresql/$PG_NEW_VERSION/main/postgresql.conf'
La durée de traitement dépend de la taille de tes bases et des performances matérielles.
Exécution de tests de cohérence
-------------------------------
Checking cluster versions ok
Checking database user is the install user ok
Checking database connection settings ok
Checking for prepared transactions ok
Checking for system-defined composite types in user tables ok
Checking for reg* data types in user tables ok
Checking for contrib/isn with bigint-passing mismatch ok
Creating dump of global objects ok
Creating dump of database schemas
ok
Checking for presence of required libraries ok
Checking database user is the install user ok
Checking for prepared transactions ok
Checking for new cluster tablespace directories ok
Si pg_upgrade échoue après cela, vous devez ré-exécuter initdb
sur la nouvelle instance avant de continuer.
Réalisation de la mise à jour
-----------------------------
Analyzing all rows in the new cluster ok
Freezing all rows in the new cluster ok
Deleting files from new pg_xact ok
Copying old pg_xact to new server ok
Setting oldest XID for new cluster ok
Setting next transaction ID and epoch for new cluster ok
Deleting files from new pg_multixact/offsets ok
Copying old pg_multixact/offsets to new server ok
Deleting files from new pg_multixact/members ok
Copying old pg_multixact/members to new server ok
Setting next multixact ID and offset for new cluster ok
Resetting WAL archives ok
Setting frozenxid and minmxid counters in new cluster ok
Restoring global objects in the new cluster ok
Restoring database schemas in the new cluster
ok
Copying user relation files
ok
Setting next OID for new cluster ok
Sync data directory to disk ok
Creating script to delete old cluster ok
Checking for extension updates ok
Mise à jour terminée
--------------------
Les statistiques de l'optimiseur ne sont pas transférées par pg_upgrade.
Une fois le nouveau serveur démarré, pensez à exécuter :
/usr/lib/postgresql/15/bin/vacuumdb --all --analyze-in-stages
Exécuter ce script supprimera les fichiers de données de l'ancienne
instance :
./delete_old_cluster.sh
Se déconnecter de l'utilisateur postgres et se remettre en root
exit
Changer le port d'écoute 5433 en 5432.
Comme on a installé 2 serveurs Postgres, le plus récent écoute sur le port 5433 afin que les 2 cohabitent. Mais comme on ne veut plus qu'un seul serveur, on fait écouter le nouveau sur le port 5432 qui est le port standard de Postgres.
Ouvre le fichier postgresql.conf
vim /etc/postgresql/15/main/postgresql.conf
Et remplace le port 5433 par 5432
port = 5432 # (change requires restart)
Si tu as modifié les méthodes d'authentification, édite le fichier de configuration
vim /etc/postgresql/15/main/pg_hba.conf
Vérifie aussi que tu n'as pas d'autres fichiers spécifiques à ta configuration dans /etc/postgresql/14/main/. En cas de doute, fais une copie de ce dossier car on va le supprimer dans la suite.
On va tester que le nouveau serveur fonctionne correctement avant de supprimer l'ancien.
L'ancien serveur écoutant toujours sur le port 5432, on va le changer pour qu'il écoute sur le 5433 afin de ne pas avoir de conflit. La procédure est la même que précédemment avec le nouveau serveur.
Ouvre le fichier postgresql.conf de l'ancien serveur
vim /etc/postgresql/14/main/postgresql.conf
Et remplace le port 5432 par 5433
port = 5433 # (change requires restart)
Démarre le service Postgres
systemctl start postgresql
Ton nouveau serveur est opérationnel, vérifie que les applications utilisant ton serveur fonctionnent correctement et qu'il n'y a pas d'erreurs.
On va supprimer les fichiers de configuration et de base de données de l'ancienne version.
Liste les paquets Postgres installés
dpkg --list | grep postgres
rc pgdg-keyring 2018.2 all keyring for apt.postgresql.org
ii postgresql-14 14.6-1.pgdg110+1 arm64 The World's Most Advanced Open Source Relational Database
ii postgresql-15 15.1-1.pgdg110+1 arm64 The World's Most Advanced Open Source Relational Database
ii postgresql-client-14 14.6-1.pgdg110+1 arm64 front-end programs for PostgreSQL 14
ii postgresql-client-15 15.1-1.pgdg110+1 arm64 front-end programs for PostgreSQL 15
ii postgresql-client-common 246.pgdg110+1 all manager for multiple PostgreSQL client versions
ii postgresql-common 246.pgdg110+1 all PostgreSQL database-cluster manager
Ici on a 2 paquets Postgres en version 14, on va les supprimer ainsi que tous les fichiers de bases de données et de configuration qui leur sont associés. Pour cela on utilise le paramètre --purge.
apt --purge remove postgresql-14 postgresql-client-14
Durant la désinstallation, on va te demander si tu veux tout supprimer. Ça ne concerne que Postgres 14, ta nouvelle installation Postgres 15 n'est pas concernée.
Configuration de postgresql-14
La suppression du paquet du serveur PostgreSQL laissera les grappes de bases de données existantes intactes, c'est-à-dire que leurs répertoires de configuration, de données et de journal ne seront pas supprimés. Lors de la purge du paquet, les répertoires peuvent être supprimés de façon optionnelle.
Faut-il supprimer les répertoires de PostgreSQL lors de la purge du paquet ?
Dit “Oui”