3.5. 手动恢复 undercloud 节点数据库
如果 undercloud 数据库没有作为 undercloud 恢复过程的一部分恢复,您可以手动恢复数据库。您只能在之前创建的独立数据库备份时恢复数据库。
先决条件
- 您已创建了 undercloud 数据库的独立备份。更多信息请参阅 第 1.5 节 “创建 undercloud 节点的独立数据库备份”。
流程
-
以
root用户身份登录 director undercloud 节点。 停止所有 tripleo 服务:
systemctl stop tripleo_*
[root@director ~]# systemctl stop tripleo_*Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令确保没有容器在服务器上运行:
podman ps
[root@director ~]# podman psCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果有任何容器正在运行,请输入以下命令停止容器:
podman stop <container_name>
[root@director ~]# podman stop <container_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建当前
/var/lib/mysql目录的备份,然后删除该目录:cp -a /var/lib/mysql /var/lib/mysql_bck rm -rf /var/lib/mysql
[root@director ~]# cp -a /var/lib/mysql /var/lib/mysql_bck [root@director ~]# rm -rf /var/lib/mysqlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重新创建数据库目录并为新目录设置 SELinux 属性:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为
mariadb镜像创建本地标签。将<image_id> 和 <undercloud.ctlplane.example.com> 替换为环境中适用的值:podman images | grep mariadb
[root@director ~]# podman images | grep mariadb <undercloud.ctlplane.example.com>:8787/rh-osbs/rhosp16-openstack-mariadb 16.2_20210322.1 <image_id> 3 weeks ago 718 MBCopy to Clipboard Copied! Toggle word wrap Toggle overflow podman tag <image_id> mariadb
[root@director ~]# podman tag <image_id> mariadbCopy to Clipboard Copied! Toggle word wrap Toggle overflow podman images | grep maria
[root@director ~]# podman images | grep maria localhost/mariadb latest <image_id> 3 weeks ago 718 MB <undercloud.ctlplane.example.com>:8787/rh-osbs/rhosp16-openstack-mariadb 16.2_20210322.1 <image_id> 3 weeks ago 718 MBCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用容器初始化
/var/lib/mysql目录:podman run --net=host -v /var/lib/mysql:/var/lib/mysql localhost/mariadb mysql_install_db --datadir=/var/lib/mysql --user=mysql
[root@director ~]# podman run --net=host -v /var/lib/mysql:/var/lib/mysql localhost/mariadb mysql_install_db --datadir=/var/lib/mysql --user=mysqlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 复制您要导入到数据库的数据库备份文件:
cp /root/undercloud-all-databases.sql /var/lib/mysql
[root@director ~]# cp /root/undercloud-all-databases.sql /var/lib/mysqlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 启动数据库服务以导入数据:
podman run --net=host -dt -v /var/lib/mysql:/var/lib/mysql localhost/mariadb /usr/libexec/mysqld
[root@director ~]# podman run --net=host -dt -v /var/lib/mysql:/var/lib/mysql localhost/mariadb /usr/libexec/mysqldCopy to Clipboard Copied! Toggle word wrap Toggle overflow 导入数据并配置
max_allowed_packet参数:登录到容器并配置它:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 停止容器:
podman stop <container_id>
[root@director ~]# podman stop <container_id>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查没有容器正在运行:
podman ps
[root@director ~]# podman ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES [root@director ~]#Copy to Clipboard Copied! Toggle word wrap Toggle overflow
重启所有 tripleo 服务:
systemctl start multi-user.target
[root@director ~]# systemctl start multi-user.targetCopy to Clipboard Copied! Toggle word wrap Toggle overflow