occコマンドでownCloudのバージョンアップを行ったところタイムアウト「SQLSTATE[HY000]: General error: 2006 MySQL server has gone away」が起きアップデートを完了することが出来なかった。
アップデートコマンド実行とメッセージ
コマンド実行
% /usr/local/bin/php-7.0 ~/html/oc/occ upgrade -v
メッセージ
The process control (PCNTL) extensions are required in case you want to interrupt long running commands - see http://php.net/manual/en/book.pcntl.php ownCloud 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 2020-03-28T14:36:25+00:00 Set log level to debug 2020-03-28T14:36:25+00:00 Repair step: Repair MySQL database engine 2020-03-28T14:36:25+00:00 Repair step: Repair MySQL collation 2020-03-28T14:36:25+00:00 Repair step: Repair SQLite autoincrement 2020-03-28T14:36:25+00:00 Repair step: Repair duplicate entries in oc_lucene_status 2020-03-28T14:36:25+00:00 Repair info: lucene_status table does not exist -> nothing to do 2020-03-28T14:36:25+00:00 Checking whether the database schema can be updated (this can take a long time depending on the database size) 2020-03-28T14:36:25+00:00 Checking table oc_appconfig 2020-03-28T14:36:26+00:00 Checking table oc_storages 2020-03-28T14:36:27+00:00 Checking table oc_mounts 2020-03-28T14:36:28+00:00 Checking table oc_mimetypes 2020-03-28T14:36:28+00:00 Checking table oc_filecache 2020-03-28T15:02:00+00:00 Doctrine\DBAL\Exception\DriverException: An exception occurred while executing 'SET unique_checks=1': SQLSTATE[HY000]: General error: 2006 MySQL server has gone away 2020-03-28T15:02:00+00:00 Update failed 2020-03-28T15:02:00+00:00 Maintenance mode is kept active 2020-03-28T15:02:00+00:00 Reset log level
原因調査
oc_filecache 確認
実行後のメッセージが “oc_filecache” のところで止まっていたので状況見てみるとレコード数(1千万レコード以上)・容量(9GB以上)ともにかなり肥大化してしまっていました…こちらのテーブルのレコードを削除した方がよさそうな状況でした。
対処法
oc_filecache のレコード削除
DELETE FROM oc_filecache;
ダメ元で一気に全レコードの削除を試みましたが、タイムアウトなど以下のエラーが発生しました。
ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction
ERROR 2013 (HY000): Lost connection to MySQL server during query
面倒ですが、状況みながら10万レコード単位で全レコードを削除することにしました。(※計測していませんが数時間かかりました。)
アップデートコマンド再実行
コマンド実行
% /usr/local/bin/php-7.0 ~/html/oc/occ upgrade -v
メッセージ
The process control (PCNTL) extensions are required in case you want to interrupt long running commands - see http://php.net/manual/en/book.pcntl.php ownCloud 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 2020-03-29T07:22:52+00:00 Set log level to debug 2020-03-29T07:22:52+00:00 Repair step: Repair MySQL database engine 2020-03-29T07:22:52+00:00 Repair step: Repair MySQL collation 2020-03-29T07:22:52+00:00 Repair step: Repair SQLite autoincrement 2020-03-29T07:22:52+00:00 Repair step: Repair duplicate entries in oc_lucene_status 2020-03-29T07:22:52+00:00 Repair info: lucene_status table does not exist -> nothing to do 2020-03-29T07:22:52+00:00 Checking whether the database schema can be updated (this can take a long time depending on the database size) 2020-03-29T07:22:52+00:00 Checking table oc_appconfig 2020-03-29T07:22:52+00:00 Checking table oc_storages 2020-03-29T07:22:52+00:00 Checking table oc_mounts 2020-03-29T07:22:52+00:00 Checking table oc_mimetypes 2020-03-29T07:22:52+00:00 Checking table oc_filecache 2020-03-29T07:22:52+00:00 Checking table oc_group_user 2020-03-29T07:22:52+00:00 Checking table oc_group_admin 2020-03-29T07:22:53+00:00 Checking table oc_groups 2020-03-29T07:22:53+00:00 Checking table oc_preferences 2020-03-29T07:22:53+00:00 Checking table oc_properties 2020-03-29T07:22:53+00:00 Checking table oc_share 2020-03-29T07:22:53+00:00 Checking table oc_jobs 2020-03-29T07:22:53+00:00 Checking table oc_users 2020-03-29T07:22:53+00:00 Checking table oc_authtoken 2020-03-29T07:22:53+00:00 Checking table oc_vcategory 2020-03-29T07:22:53+00:00 Checking table oc_vcategory_to_object 2020-03-29T07:22:53+00:00 Checking table oc_systemtag 2020-03-29T07:22:53+00:00 Checking table oc_systemtag_object_mapping 2020-03-29T07:22:53+00:00 Checking table oc_systemtag_group 2020-03-29T07:22:53+00:00 Checking table oc_privatedata 2020-03-29T07:22:53+00:00 Checking table oc_file_locks 2020-03-29T07:22:54+00:00 Checking table oc_comments 2020-03-29T07:22:54+00:00 Checking table oc_comments_read_markers 2020-03-29T07:22:54+00:00 Checking table oc_credentials 2020-03-29T07:22:54+00:00 Checked database schema update 2020-03-29T07:22:54+00:00 Checking updates of apps 2020-03-29T07:22:54+00:00 Checked database schema update for apps 2020-03-29T07:22:54+00:00 Updating database schema 2020-03-29T07:22:54+00:00 Updated database 2020-03-29T07:22:54+00:00 Repair step: Repair mime types 2020-03-29T07:22:54+00:00 Repair step: Clear asset cache after upgrade 2020-03-29T07:22:54+00:00 Repair info: Asset pipeline disabled -> nothing to do 2020-03-29T07:22:54+00:00 Repair step: Detect file cache entries with path that does not match parent-child relationships 2020-03-29T07:22:54+00:00 Repair step: Generate ETags for file where no ETag is present. 2020-03-29T07:22:54+00:00 Repair info: ETags have been fixed for 0 files/folders. 2020-03-29T07:22:54+00:00 Repair step: Clean tags and favorites 2020-03-29T07:22:54+00:00 Repair info: 13 tags of deleted users have been removed. 2020-03-29T07:22:54+00:00 Repair info: 62 tags for delete files have been removed. 2020-03-29T07:22:54+00:00 Repair info: 0 tag entries for deleted tags have been removed. 2020-03-29T07:22:54+00:00 Repair info: 41 tags with no entries have been removed. 2020-03-29T07:22:54+00:00 Repair step: Drop old database tables 2020-03-29T07:22:54+00:00 Drop old database tables 2020-03-29T07:22:54+00:00 2020-03-29T07:22:54+00:00 Drop old database table: gallery_sharing 2:54+00:00 2020-03-29T07:22:54+00:00 Drop old database table: locks 2020-03-29T07:22:54+00:00 9/28 [=========>] 32% 2020-03-29T07:22:54+00:00 Drop old database table: log 10/28 [==========>] 35% 2020-03-29T07:22:54+00:00 Drop old database table: media_albums 11/28 [===========>] 39%2020-03-29T07:22:54+00:00 Drop old database table: media_artists 12/28 [============>] 422020-03-29T07:22:54+00:00 Drop old database table: media_sessions 13/28 [=============>] 42020-03-29T07:22:54+00:00 Drop old database table: media_songs 14/28 [==============>] 2020-03-29T07:22:54+00:00 Drop old database table: media_users 15/28 [===============>] 2020-03-29T07:22:54+00:00 Drop old database table: permissions 16/28 [================>]2020-03-29T07:22:54+00:00 Drop old database table: pictures_images_cache 17/28 [=================>2020-03-29T07:22:54+00:00 Drop old database table: principalgroups 18/28 [==================2020-03-29T07:22:54+00:00 Drop old database table: principals 19/28 [===================>] 67% 2020-03-29T07:22:54+00:00 Drop old database table: queuedtasks 20/28 [====================>] 71% 2020-03-29T07:22:54+00:00 Drop old database table: sharing 21/28 [=====================>] 75% 2020-03-29T07:22:54+00:00 Drop old database table: clndr_calendars 22/28 [======================>] 78% 2020-03-29T07:22:54+00:00 Drop old database table: clndr_objects 23/28 [=======================>] 82% 2020-03-29T07:22:54+00:00 Drop old database table: clndr_share_event 24/28 [========================>] 85% 2020-03-29T07:22:54+00:00 Drop old database table: clndr_share_calendar 25/28 [=========================>] 89% 2020-03-29T07:22:54+00:00 Drop old database table: clndr_repeat 26/28 [==========================>] 92% 2020-03-29T07:22:54+00:00 Drop old database table: contacts_addressbooks 27/28 [===========================>] 96% 2020-03-29T07:22:54+00:00 Drop old database table: contacts_cards 28/28 [============================] 100% 2020-03-29T07:22:54+00:00 Done 28/28 [============================] 100% 2020-03-29T07:22:54+00:00 2020-03-29T07:22:54+00:00 Repair step: Drop old background jobs 2020-03-29T07:22:54+00:00 Repair step: Remove getetag entries in properties table 2020-03-29T07:22:54+00:00 Repair info: Removed 0 unneeded "{DAV:}getetag" entries from properties table. 2020-03-29T07:22:54+00:00 Repair step: Repair outdated OCS IDs 2020-03-29T07:22:54+00:00 Repair step: Repair invalid shares 2020-03-29T07:22:54+00:00 Repair info: Removed 18 shares where the parent did not exist 2020-03-29T07:22:54+00:00 Repair step: Remove old share propagation app entries 2020-03-29T07:22:54+00:00 Repair step: Remove old (< 9.0) calendar/contact shares 2020-03-29T07:22:54+00:00 Remove old (< 9.0) calendar/contact shares 2020-03-29T07:22:54+00:00 2020-03-29T07:22:54+00:00 Starting … 0/4 [>-] 0% 2020-03-29T07:22:54+00:00 Starting … 1/4 [=======>] 25% 2020-03-29T07:22:54+00:00 Starting … 2/4 [==============>] 50% 2020-03-29T07:22:54+00:00 Starting … 3/4 [=====================>] 75% 2020-03-29T07:22:54+00:00 Starting … 4/4 [============================] 100% 2020-03-29T07:22:54+00:00 Done 4/4 [============================] 100% 2020-03-29T07:22:54+00:00 2020-03-29T07:22:54+00:00 Repair step: Fix permissions so avatars can be stored again 2020-03-29T07:22:54+00:00 Fix permissions so avatars can be stored again 2020-03-29T07:22:54+00:00 2020-03-29T07:22:54+00:00 Starting … 0/2 [>-] 0% 2020-03-29T07:22:54+00:00 Starting … 1/2 [==============>] 50% 2020-03-29T07:22:54+00:00 Done 2/2 [============================] 100% 2020-03-29T07:22:54+00:00 2020-03-29T07:22:54+00:00 Repair step: Remove shares of a users root folder 2020-03-29T07:22:54+00:00 Repair step: Repair unmerged shares 2020-03-29T07:22:54+00:00 Starting code integrity check… 2020-03-29T07:23:04+00:00 Finished code integrity check 2020-03-29T07:23:04+00:00 Update successful 2020-03-29T07:23:04+00:00 Maintenance mode is kept active 2020-03-29T07:23:04+00:00 Reset log level
メンテ―モード解除
“oc_filecache” テーブルの全レコード削除後は問題なくアップデート処理が最後までいきました!
% /usr/local/bin/php-7.0 ~/html/oc/occ maintenance:mode --off
動作環境情報
CPI シェアードプランACE01 ownCloud 9.1.7 > 9.1.8 PHP 7.0
コメント