用kolla部署的帶有高可用的openstack環境中,如果重啟控制節點,經常出現mariadb容器無法啟動的問題,解決方法如下:
1.ssh到無法啟動mariadb容器的控制節點,停止mariadb容器。docker stop mariadb.
2.備份mariadb的配置文件。cp /etc/kolla/mariadb/config.json /etc/kolla/mariadb/config.json.bck
3.vim /etc/kolla/mariadb/config,將“command”:"/usr/bin/mysqld_safe"改為“command”:“sleep 3600”
4.啟動mariadb容器。docker start mariadb
5.進入mariadb容器。docker exec -it mariadb bash
6.執行mysqld_safe,驗證是否出現Found 1 prepared transactions! It means that mysqld was not shut down properly last time and critical recovery information (last binlog or tc.log file)
was manually deleted after a crash.You have to start mysqld with --tc-heuristic-recover switch to commit or rollback pending transactions的錯誤。
7.若出現此錯誤,執行mysqld_safe --tc-heuristic-revocer rollback.
8.數據庫回滾完成后,將/etc/kolla/mariadb/config.json恢復為原來配置,重啟docker,問題解決!
