Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Nextcloud 28 upgrade で失敗

Nextcloud 28 upgrade で失敗

発表: 鹿児島Linux勉強会 2023.12(オンライン開催)
source: https://gitlab.com/matoken/kagolug-2023.12/-/blob/main/slide/slide.adoc

Kenichiro MATOHARA

December 17, 2023
Tweet

More Decks by Kenichiro MATOHARA

Other Decks in Technology

Transcript

  1. Nextcloud アップデート 管理者のWeb インターフェイスかcli でアップデートが可能 Web だとタイムアウトすることがあるのでcli のほうが確実 確認だけ cli

    でのアップグレード  アップデートチャンネルには,「法人向け」,「安定版」,「ベータ」が あり,アップデートタイミングはそれぞれ違う $ sudo -u www-data php ${NEXTCLOUD_PATH}/updater/updater.phar --no-upgrade $ sudo -u www-data php ${NEXTCLOUD_PATH/occ update:check $ sudo -u www-data php ${NEXTCLOUD_PATH}/updater/updater.pha $ sudo -u www-data php ${NEXTCLOUD_PATH/occ upgrade 7
  2. Error db が当たってるぽい? Nextcloud or one of the apps require

    upgrade - only a limited number of commands are available You may use your browser or the occ upgrade command to do the upgrade Setting log level to debug Turned on maintenance mode Updating database schema Exception: Database error when running migration 28000Date20230906104802 for app core Index name "in_reply_to_prim" for table "oc_social_stream" collides with the constraint on tab Update failed Maintenance mode is kept active Resetting log level 8
  3. db backup バックアップに失敗! デイリーで動かしているフルバックアップは成功している フルバックアップを手動で動かしてみる → 成功 再度Nextcloud のdb backup

    → 成功 あれ? $ mysqldump -unextcloud -p nextcloud | xz -9 > ~/tmp/nextcloud-`date +%F_%T_$$`.mysql.xz mysqldump: Error 2013: Lost connection to server during query when dumping table `oc_mail_mess 10
  4. バックアップ確認 ざっと中身を見た感じ取れていそう $ xzcat ~/tmp/nextcloud-2023-12-14_15\:53\:26_263487.mysql.xz | pee 'head -6' 'tail

    -1' -- MariaDB dump 10.19 Distrib 10.11.4-MariaDB, for debian-linux-gnu (x86_64) -- -- Host: localhost Database: nextcloud -- ------------------------------------------------------ -- Server version 10.11.4-MariaDB-1~deb12u1 -- Dump completed on 2023-12-14 20:22:58 11
  5. db 内容確認&drop source を読んで確認したほうがいいだろうけどbackup あるしとり あえずdump 内容などから要らなそうな方をdrop していく 2回目以降のupdate時に出たError,同様に確認&drop MariaDB

    [nextcloud]> show index from oc_social_stream; MariaDB [nextcloud]> show index from oc_social_3_stream; MariaDB [nextcloud]> drop table oc_social_stream; Index name "sa" for table "oc_social_stream_act" collides with the constraint on table "oc_soc Index name "sh" for table "oc_social_stream_tag" collides with the constraint on table "oc_soc Index name "ts" for table "oc_social_3_stream_dest" collides with the constraint on table "oc_ Index name "afoa" for table "oc_social_follow" collides with the constraint on table "oc_socia 12
  6. 最後までアップデート動いた :) 1 Nextcloud upgrade 2 メンテナンスモード有効のまま 3 アプリを再度最新に 4

    メンテナンスモードをoff に $ sudo -u www-data php /var/www/files.matoken.org/occ upgrade Update successful Maintenance mode is kept active Resetting log level $ sudo -u www-data php /var/www/files.matoken.org/occ app:update --all $ sudo -u www-data php /var/www/files.matoken.org/occ maintenance:mode --off 1 2 3 4 13
  7. 15

  8. 一部のファイルは整合性チェッ クに合格していません。 アプリの twofactor_gateway のhash がおかしいので一旦消してイ ンストールし直す 1 twofactor_gateway アプリを削除

    2 twofactor_gateway アプリをインストール…… 3 NC28 に追従できていなくてインストールに失敗 → 後で WebUI から強制的に有効にした(動かないこともある) - INVALID_HASH: - vendor/composer/platform_check.php: - expected: c88ecdd67613dbf10c51945a4c4e4447f7ee8c929920395b08f6c1d1f6fa599245a22f3da8f3 - current: 6040bf202702599d5a5a07f76c3a9aed5fcc76313261e37c8d7df6a0ca284685214075b68566f $ sudo -u www-data php /var/www/files.matoken.org/occ app:remove twofactor_gateway $ sudo -u www-data php /var/www/files.matoken.org/occ app:install twofactor_gateway Error: App "Two-Factor Gateway" cannot be installed because it is not compatible with this ver 1 2 17
  9. PHP OPcacheモジュールが正しく設定 されていません。 よくわかっておらずドキュメント丸写し $ diff -u config/config.php-2023-12-15 config/config.php ---

    config/config.php-2023-12-15 2023-12-15 05:29:36.919611846 +0900 +++ config/config.php 2023-12-15 18:00:31.483939649 +0900 @@ -26,13 +26,15 @@ 'log_type' => 'file', 'logfile' => '/var/log/nextcloud.log', 'loglevel' => 0, - 'memcache.local' => '\\OC\\Memcache\\Redis', + 'filelocking.enabled' => true, + 'memcache.locking' => '\OC\Memcache\Redis', + 'memcache.distributed' => '\OC\Memcache\Redis', + 'memcache.local' => '\OC\Memcache\\Redis', 'redis' => array ( 'host' => '127.0.0.1', 'port' => '6379', - 'dbindex' => 1, - 'timeout' => 1.5, + 'timeout' => 0.0, ), 'versions_retention_obligation' => '14,auto', 'updater.release.channel' => 'stable', ; Only numbers between 200 and 1000000 are allowed. 19
  10. $ sudo -u www-data php /var/www/files.matoken.org/occ maintenance:mode --on $ sudo

    -u www-data php /var/www/files.matoken.org/occ db:convert-filecache-bigint Following columns will be updated: * files_trash.auto_id This can take up to hours, depending on the number of files in your instance! Continue with the conversion (y/n)? [n] y $ sudo -u www-data php /var/www/files.matoken.org/occ maintenance:mode --off 24