La mise à jour de PostgreSQL échoue depuis la Chine

les données ne peuvent pas être reconstruites

./launcher rebuild data
architecture x86_64 détectée.
Vérification de la mise à jour du lanceur
Le lanceur est à jour
2.0.20250129-0720 : Pull depuis docker-hub-china/discourse-base
Digest : sha256:d798a945ca4d31c29e5d263cdaf807bafab9b5f6737be0b1b852bea0063a3b91
Statut : L'image est à jour pour registry.cn-wulanchabu.aliyuncs.com/docker-hub-china/discourse-base:2.0.20250129-0720
registry.cn-wulanchabu.aliyuncs.com/docker-hub-china/discourse-base:2.0.20250129-0720
/usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups.rb
/usr/local/bin/pups --stdin
I, [2025-02-06T04:49:43.809493 #1]  INFO -- : Lecture depuis stdin
I, [2025-02-06T04:49:43.812252 #1]  INFO -- : Hook before_code manquant ignoré
I, [2025-02-06T04:49:43.812294 #1]  INFO -- : Hook before_db_migrate manquant ignoré
I, [2025-02-06T04:49:43.812309 #1]  INFO -- : Hook after_code manquant ignoré
I, [2025-02-06T04:49:43.816721 #1]  INFO -- : Fichier > /etc/service/postgres/run  chmod : +x  chown : 
I, [2025-02-06T04:49:43.820580 #1]  INFO -- : Fichier > /etc/service/postgres/log/run  chmod : +x  chown : 
I, [2025-02-06T04:49:43.824283 #1]  INFO -- : Fichier > /etc/runit/3.d/99-postgres  chmod : +x  chown : 
I, [2025-02-06T04:49:43.827979 #1]  INFO -- : Fichier > /root/install_postgres  chmod : +x  chown : 
I, [2025-02-06T04:49:43.832007 #1]  INFO -- : Fichier > /root/upgrade_postgres  chmod : +x  chown : 
I, [2025-02-06T04:49:43.832273 #1]  INFO -- : Remplacement de data_directory = '/var/lib/postgresql/15/main' par data_directory = '/shared/postgres_data' dans /etc/postgresql/15/main/postgresql.conf
I, [2025-02-06T04:49:43.832904 #1]  INFO -- : Remplacement de (?-mix:#?listen_addresses *=.*) par listen_addresses = '*' dans /etc/postgresql/15/main/postgresql.conf
I, [2025-02-06T04:49:43.833313 #1]  INFO -- : Remplacement de (?-mix:#?synchronous_commit *=.*) par synchronous_commit = $db_synchronous_commit dans /etc/postgresql/15/main/postgresql.conf
I, [2025-02-06T04:49:43.843122 #1]  INFO -- : Remplacement de (?-mix:#?shared_buffers *=.*) par shared_buffers = $db_shared_buffers dans /etc/postgresql/15/main/postgresql.conf
I, [2025-02-06T04:49:43.843548 #1]  INFO -- : Remplacement de (?-mix:#?work_mem *=.*) par work_mem = $db_work_mem dans /etc/postgresql/15/main/postgresql.conf
I, [2025-02-06T04:49:43.843885 #1]  INFO -- : Remplacement de (?-mix:#?default_text_search_config *=.*) par default_text_search_config = '$db_default_text_search_config' dans /etc/postgresql/15/main/postgresql.conf
I, [2025-02-06T04:49:43.844162 #1]  INFO -- : Remplacement de (?-mix:#?checkpoint_segments *=.*) par checkpoint_segments = $db_checkpoint_segments dans /etc/postgresql/15/main/postgresql.conf
I, [2025-02-06T04:49:43.844439 #1]  INFO -- : Remplacement de (?-mix:#?logging_collector *=.*) par logging_collector = $db_logging_collector dans /etc/postgresql/15/main/postgresql.conf
I, [2025-02-06T04:49:43.844732 #1]  INFO -- : Remplacement de (?-mix:#?log_min_duration_statement *=.*) par log_min_duration_statement = $db_log_min_duration_statement dans /etc/postgresql/15/main/postgresql.conf
I, [2025-02-06T04:49:43.845050 #1]  INFO -- : Remplacement de (?-mix:^#local +replication +postgres +peer$) par local replication postgres  peer dans /etc/postgresql/15/main/pg_hba.conf
I, [2025-02-06T04:49:43.845283 #1]  INFO -- : Remplacement de (?-mix:^host.*all.*all.*127.*$) par host all all 0.0.0.0/0 md5 dans /etc/postgresql/15/main/pg_hba.conf
I, [2025-02-06T04:49:43.845505 #1]  INFO -- : Remplacement de (?-mix:^host.*all.*all.*::1\/128.*$) par host all all ::/0 md5 dans /etc/postgresql/15/main/pg_hba.conf
I, [2025-02-06T04:49:43.845723 #1]  INFO -- : > if [ -f /root/install_postgres ]; then
  /root/install_postgres && rm -f /root/install_postgres
elif [ -e /shared/postgres_run/.s.PGSQL.5432 ]; then
  socat /dev/null UNIX-CONNECT:/shared/postgres_run/.s.PGSQL.5432 || exit 0 && echo postgres already running stop container ; exit 1
fi

2025/02/06 04:49:45 socat[33] E connect(, AF=1 "/shared/postgres_run/.s.PGSQL.5432", 36) : Connection refused
initdb : avertissement : activation de l'authentification « trust » pour les connexions locales
initdb : indice : Vous pouvez modifier cela en éditant pg_hba.conf ou en utilisant l'option -A, ou --auth-local et --auth-host, la prochaine fois que vous exécuterez initdb.

Vos journaux semblent incomplets, mais l’extrait ci-dessous peut vous donner un indice.

socat[33] E connect(, AF=1 „/shared/postgres_run/.s.PGSQL.5432“, 36): Connection refused

Voyez-vous également l’erreur ci-dessous beaucoup plus bas dans vos journaux ?

The source cluster was not shut down cleanly

Si c’est le cas, vous pouvez essayer de suivre ces instructions.

Aucun conteneur n’est en cours d’exécution

Voyez-vous des erreurs lors de cette première étape ?

J’ai utilisé les méthodes data.yml et web_only.yml

Vous pouvez toujours suivre les mêmes instructions, mais remplacez toutes les occurrences de app ou standalone par données.

Toujours pas connecté

$ ./launcher enter data
x86_64 arch détecté.
root@sober-data:/# export SVWAIT=300
sv stop nginx
sv stop unicorn
sv stop postgres
exit
fail: nginx: impossible de changer pour le répertoire de service : le fichier n'existe pas
fail: unicorn: impossible de changer pour le répertoire de service : le fichier n'existe pas
ok: down: postgres: 0s, normalement en marche
logout

Cela implique que vous étiez connecté au conteneur. (Assurez-vous simplement que le conteneur web_only reste arrêté pendant la reconstruction du conteneur data.)

ok: down: postgres: 0s, normally up

C’est la sortie qui compte. Cela signifie que postgres s’est maintenant arrêté proprement et que vous pouvez continuer avec les étapes suivantes.

 ./launcher enter  data
 détecté architecture x86_64.
root@sober-data:/# sv stop postgres
ok : arrêté : postgres : 0s, normalement en marche
root@sober-data:/# exit
logout
root@sober:/var/discourse$ ./launcher rebuild  data
 détecté architecture x86_64.
Assurer que le lanceur est à jour
Le lanceur est à jour
Arrêt de l'ancien conteneur
+ /usr/bin/docker stop -t 600 data
data
2.0.20250129-0720 : Récupération depuis docker-hub-china/discourse-base
Digest : sha256:d798a945ca4d31c29e5d263cdaf807bafab9b5f6737be0b1b852bea0063a3b91
Statut : L'image est à jour pour registry.cn-wulanchabu.aliyuncs.com/docker-hub-china/discourse-base:2.0.20250129-0720
registry.cn-wulanchabu.aliyuncs.com/docker-hub-china/discourse-base:2.0.20250129-0720
/usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups.rb
/usr/local/bin/pups --stdin
I, [2025-02-06T06:19:20.379635 #1]  INFO -- : Lecture depuis stdin
I, [2025-02-06T06:19:20.380959 #1]  INFO -- : Hooks avant code manquants sautés
I, [2025-02-06T06:19:20.380976 #1]  INFO -- : Hooks avant migration de la base données manquants sautés
I, [2025-02-06T06:19:20.380983 #1]  INFO -- : Hooks après code manquants sautés
I, [2025-02-06T06:19:20.383923 #1]  INFO -- : Fichier > /etc/service/postgres/run chmod : +x chown : 
I, [2025-02-06T06:19:20.386435 #1]  INFO -- : Fichier > /etc/service/postgres/log/run chmod : +x chown : 
I, [2025-02-06T06:19:20.389343 #1]  INFO -- : Fichier > /etc/runit/3.d/99-postgres chmod : +x chown : 
I, [2025-02-06T06:19:20.391719 #1]  INFO -- : Fichier > /root/install_postgres chmod : +x chown : 
I, [2025-02-06T06:19:20.394375 #1]  INFO -- : Fichier > /root/upgrade_postgres chmod : +x chown : 
I, [2025-02-06T06:19:20.394471 #1]  INFO -- : Remplacement de data_directory = '/var/lib/postgresql/15/main' par data_directory = '/shared/postgres_data' dans /etc/postgresql/15/main/postgresql.conf
I, [2025-02-06T06:19:20.394742 #1]  INFO -- : Remplacement de (?-mix:#?listen_addresses *=.*) par listen_addresses = '*' dans /etc/postgresql/15/main/postgresql.conf
I, [2025-02-06T06:19:20.394972 #1]  INFO -- : Remplacement de (?-mix:#?synchronous_commit *=.*) par synchronous_commit = $db_synchronous_commit dans /etc/postgresql/15/main/postgresql.conf
I, [2025-02-06T06:19:20.395126 #1]  INFO -- : Remplacement de (?-mix:#?shared_buffers *=.*) par shared_buffers = $db_shared_buffers dans /etc/postgresql/15/main/postgresql.conf
I, [2025-02-06T06:19:20.395261 #1]  INFO -- : Remplacement de (?-mix:#?work_mem *=.*) par work_mem = $db_work_mem dans /etc/postgresql/15/main/postgresql.conf
I, [2025-02-06T06:19:20.395400 #1]  INFO -- : Remplacement de (?-mix:#?default_text_search_config *=.*) par default_text_search_config = '$db_default_text_search_config' dans /etc/postgresql/15/main/postgresql.conf
I, [2025-02-06T06:19:20.395510 #1]  INFO -- : Remplacement de (?-mix:#?checkpoint_segments *=.*) par checkpoint_segments = $db_checkpoint_segments dans /etc/postgresql/15/main/postgresql.conf
I, [2025-02-06T06:19:20.395622 #1]  INFO -- : Remplacement de (?-mix:#?logging_collector *=.*) par logging_collector = $db_logging_collector dans /etc/postgresql/15/main/postgresql.conf
I, [2025-02-06T06:19:20.395723 #1]  INFO -- : Remplacement de (?-mix:#?log_min_duration_statement *=.*) par log_min_duration_statement = $db_log_min_duration_statement dans /etc/postgresql/15/main/postgresql.conf
I, [2025-02-06T06:19:20.395845 #1]  INFO -- : Remplacement de (?-mix:^#local +replcation +postgres +peer$) par local replication postgres  peer dans /etc/postgresql/15/main/pg_hba.conf
I, [2025-02-06T06:19:20.395930 #1]  INFO -- : Remplacement de (?-mix:^host.*all.*all.*127.*$) par host all all 0.0.0.0/0 md5 dans /etc/postgresql/15/main/pg_hba.conf
I, [2025-02-06T06:19:20.396007 #1]  INFO -- : Remplacement de (?-mix:^host.*all.*all.*::1\/128.*$) par host all all ::/0 md5 dans /etc/postgresql/15/main/pg_hba.conf
I, [2025-02-06T06:19:20.396096 #1]  INFO -- : > if [ -f /root/install_postgres ]; then
  /root/install_postgres && rm -f /root/install_postgres
elif [ -e /shared/postgres_run/.s.PGSQL.5432 ]; then
  socat /dev/null UNIX-CONNECT:/shared/postgres_run/.s.PGSQL.5432 || exit 0 && echo postgres déjà en cours d'exécution, arrêter le conteneur ; exit 1
fi

initdb : avertissement : activation de l'authentification "trust" pour les connexions locales
initdb : conseil : Vous pouvez changer cela en éditant pg_hba.conf ou en utilisant l'option -A, ou --auth-local et --auth-host, la prochaine fois que vous exécuterez initdb.

La reconstruction est-elle bloquée à ce stade ? Si oui, annulez-la et exécutez ceci à la place, puis publiez les résultats.

./launcher start data
./launcher enter data
psql --version
apt-get update

Merci beaucoup. Laissez-moi revenir à la version Docker et au fichier postgres.template.yml

./launcher rebuild data
arch x86_64 détecté.
Vérification que le launcher est à jour
Le launcher est à jour
Arrêt de l'ancien conteneur
+ /usr/bin/docker stop -t 600 data
data
2.0.20250129-0720 : Pull depuis docker-hub-china/discourse-base
Digest : sha256:d798a945ca4d31c29e5d263cdaf807bafab9b5f6737be0b1b852bea0063a3b91
Statut : Image à jour pour registry.cn-wulanchabu.aliyuncs.com/docker-hub-china/discourse-base:2.0.20250129-0720
registry.cn-wulanchabu.aliyuncs.com/docker-hub-china/discourse-base:2.0.20250129-0720
/usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups.rb
/usr/local/bin/pups --stdin
I, [2025-02-06T07:02:42.768651 #1]  INFO -- : Lecture depuis stdin
I, [2025-02-06T07:02:42.769907 #1]  INFO -- : Ignore le hook before_code manquant
I, [2025-02-06T07:02:42.769923 #1]  INFO -- : Ignore le hook before_db_migrate manquant
I, [2025-02-06T07:02:42.769933 #1]  INFO -- : Ignore le hook after_code manquant
I, [2025-02-06T07:02:42.772767 #1]  INFO -- : Fichier > /etc/service/postgres/run chmod : +x chown :
I, [2025-02-06T07:02:42.775230 #1]  INFO -- : Fichier > /etc/service/postgres/log/run chmod : +x chown :
I, [2025-02-06T07:02:42.777690 #1]  INFO -- : Fichier > /etc/runit/3.d/99-postgres chmod : +x chown :
I, [2025-02-06T07:02:42.779645 #1]  INFO -- : Fichier > /root/install_postgres chmod : +x chown :
I, [2025-02-06T07:02:42.781825 #1]  INFO -- : Fichier > /root/upgrade_postgres chmod : +x chown :
I, [2025-02-06T07:02:42.781974 #1]  INFO -- : Remplacement de data_directory = '/var/lib/postgresql/15/main' par data_directory = '/shared/postgres_data' dans /etc/postgresql/15/main/postgresql.conf
I, [2025-02-06T07:02:42.782261 #1]  INFO -- : Remplacement de (?-mix:#?listen_addresses *=.*) par listen_addresses = '*' dans /etc/postgresql/15/main/postgresql.conf
I, [2025-02-06T07:02:42.782427 #1]  INFO -- : Remplacement de (?-mix:#?synchronous_commit *=.*) par synchronous_commit = $db_synchronous_commit dans /etc/postgresql/15/main/postgresql.conf
I, [2025-02-06T07:02:42.782551 #1]  INFO -- : Remplacement de (?-mix:#?shared_buffers *=.*) par shared_buffers = $db_shared_buffers dans /etc/postgresql/15/main/postgresql.conf
I, [2025-02-06T07:02:42.782661 #1]  INFO -- : Remplacement de (?-mix:#?work_mem *=.*) par work_mem = $db_work_mem dans /etc/postgresql/15/main/postgresql.conf
I, [2025-02-06T07:02:42.782762 #1]  INFO -- : Remplacement de (?-mix:#?default_text_search_config *=.*) par default_text_search_config = '$db_default_text_search_config' dans /etc/postgresql/15/main/postgresql.conf
I, [2025-02-06T07:02:42.782877 #1]  INFO -- : Remplacement de (?-mix:#?checkpoint_segments *=.*) par checkpoint_segments = $db_checkpoint_segments dans /etc/postgresql/15/main/postgresql.conf
I, [2025-02-06T07:02:42.782974 #1]  INFO -- : Remplacement de (?-mix:#?logging_collector *=.*) par logging_collector = $db_logging_collector dans /etc/postgresql/15/main/postgresql.conf
I, [2025-02-06T07:02:42.783076 #1]  INFO -- : Remplacement de (?-mix:#?log_min_duration_statement *=.*) par log_min_duration_statement = $db_log_min_duration_statement dans /etc/postgresql/15/main/postgresql.conf
I, [2025-02-06T07:02:42.783180 #1]  INFO -- : Remplacement de (?-mix:#?local +replication +postgres +peer$) par local replication postgres  peer dans /etc/postgresql/15/main/pg_hba.conf
I, [2025-02-06T07:02:42.783258 #1]  INFO -- : Remplacement de (?-mix:^host.*all.*all.*127.*$) par host all all 0.0.0.0/0 md5 dans /etc/postgresql/15/main/pg_hba.conf
I, [2025-02-06T07:02:42.783334 #1]  INFO -- : Remplacement de (?-mix:^host.*all.*all.*::1\/128.*$) par host all all ::/0 md5 dans /etc/postgresql/15/main/pg_hba.conf
I, [2025-02-06T07:02:42.783416 #1]  INFO -- : > si [ -f /root/install_postgres ]; alors
  /root/install_postgres && rm -f /root/install_postgres
sinon si [ -e /shared/postgres_run/.s.PGSQL.5432 ]; alors
  socat /dev/null UNIX-CONNECT:/shared/postgres_run/.s.PGSQL.5432 || exit 0 && echo postgres déjà en cours d'exécution, arrêter le conteneur ; exit 1
fi

initdb : avertissement : authentification "trust" activée pour les connexions locales
initdb : astuce : Vous pouvez changer cela en éditant pg_hba.conf ou en utilisant l'option -A, ou --auth-local et --auth-host, la prochaine fois que vous exécutez initdb.

2.0.20250129-0720 : Extraction de docker-hub-china/discourse-base

Pouvez-vous confirmer si votre serveur est en Chine ?

Le miroir n’est pas un problème, c’est la méthode d’accélération du réseau miroir chinois, sinon le miroir n’a pas de vitesse réseau.

J’ai déplacé vos requêtes vers un nouveau sujet. Je pense que cela est lié à l’exécution de la mise à jour depuis la Chine.

D’après votre journal, il semble que la reconstruction échoue lors de apt-get update. Je vous recommande d’utiliser un VPN pour connecter votre serveur aux dépôts apt.

J’effectue également un processus d’accélération réseau chinois pour apt-get update. Je voudrais savoir quels logiciels sont mis à jour principalement pour apt-get update

Je préférerais connaître la cause profonde de l’impossibilité de se connecter à /shared/postgres_run/.s.PGSQL.5432

Êtes-vous en mesure d’atteindre le dépôt ci-dessous depuis votre serveur ?

curl -v https://apt.postgresql.org/pub/repos/apt/

Le dépôt est nécessaire pour installer les anciens paquets PostgreSQL utilisés lors de la mise à jour.

Ceci est généralement causé par un arrêt incorrect de la base de données. Nous l’avions corrigé plus tôt lorsque vous aviez démarré et arrêté le conteneur data. L’erreur n’est pas visible dans votre dernière sortie de log.

1 « J'aime »

Vous voulez dire que la version de PostgreSQL est trop ancienne, ce qui pose des problèmes. Cette mise à niveau peut être intégrée au traitement Discourse/base dans le miroir. J’utilise le miroir Discourse/base : 2.0.20250129-0720.

Y a-t-il un problème avec ma compréhension ? Quel est le numéro de version de PostgreSQL qui fonctionne correctement et le numéro de version de PostgreSQL qui pose problème ?

Ou peut-être que le problème vient du fait que le miroir que j’utilise est trop récent, ce qui pose des problèmes lors de la construction des données. Je dois construire les données en utilisant le miroir Discourse/base : 2.0.20250114-0014 pour tenir compte de la mise à niveau de PostgreSQL.

J’ai mis à niveau PostgreSQL vers la version 15.

Les modèles doivent être utilisés séquentiellement :
postgres.13.template.yml
postgres.15.template.yml
postgres.template.yml

Configuration d’accélération réseau Chine pour les fichiers postgres.13.template.yml et postgres.15.template.yml :

run:
  - exec: cat /etc/os-release && psql --version
  - exec: |
      if [ -f /etc/apt/sources.list ]; then
        sudo sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
      else
        echo "deb http://mirrors.ustc.edu.cn/debian bookworm main contrib non-free non-free-firmware" | sudo tee /etc/apt/sources.list
        echo "deb http://mirrors.ustc.edu.cn/debian bookworm-updates main contrib non-free non-free-firmware" | sudo tee -a /etc/apt/sources.list
      fi
  - exec: |
      if [ -f /etc/apt/sources.list.d/debian.sources ]; then
        sudo sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list.d/debian.sources
      else
        sudo bash -c 'cat > /etc/apt/sources.list.d/debian.sources <<EOF
        URIs: http://mirrors.ustc.edu.cn/debian
        Suites: bookworm bookworm-updates
        Components: main contrib non-free non-free-firmware
        Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

        Types: deb
        URIs: http://mirrors.ustc.edu.cn/debian-security
        Suites: bookworm-security
        Components: main contrib non-free non-free-firmware
        Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
        EOF'
      fi
  - exec: cat /etc/apt/sources.list && cat /etc/apt/sources.list.d/debian.sources
2 « J'aime »

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.