如何备份
# 前言
当我们使用go-ldap-admin全面接管了openLDAP之后,openLDAP平台的数据的备份,也就从原来的备份openLDAP转移到了更加简单易用的备份MySQL数据就可以了。让我们再看一次平台设计的架构图:
只要我们把MySQL数据备份好了,那么就算是整个平台全部挂了,而MySQL数据库是异地备份着的,那么就可以很快将原来的openLDAP恢复回来。
本文就是针对这一问题进行讲解以及演示。
# 准备
首先我们部署好了一套go-ldap-admin系统,而且已经在生产使用了,此时可以看到系统中数据大概如下:
在原来默认数据的基础上,我们创建了一个ops的cn,与zhangsan的用户。
# 思路
平时我们可以通过脚本+定时任务将数据库进行备份,并且异地保存。
此时一旦在运行的主机崩溃,或者其他原因,导致数据丢失或损毁而服务不可用,则可按如下思路进行恢复:
- 首先还按照原来的部署方案进行部署,只不过需要注意,禁用掉config.yml中的数据初始化参数。
- 然后将数据导入到MySQL,再在平台上把分组以及用户同步到openLDAP即可。
# 实践
我们当前的服务目录如下:
tree -L 2
.
├── config
│ ├── config.yml
│ ├── init.ldif
│ └── my.cnf
├── data
│ ├── mysql
│ ├── openldap
│ └── phpadmin
├── docker-compose.yml
└── go_ldap_admin.sql
5 directories, 5 files
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
可以看到数据都在data目录,现在我们删除掉data目录,以模拟数据异常的故障。
此时需要注意,务必把config.yml中的初始化配置关闭掉:
# 是否初始化数据(没有初始数据时使用, 已发布正式版改为false)
init-data: false
1
2
2
然后启动服务。
服务启动之后,此时go-ldap-admin是无法登陆的,需要把go_ldap_admin.sql 拷贝到mysql容器中,然后将数据恢复回去。
恢复完成之后,再重启一下服务,然后就可以登陆web界面了。
此时可以看到,一些非默认的数据,已经出现了上传的按钮:
这个时候需要注意,先同步分组,然后再同步用户,这两部执行完成之后,可以看到openLDAP中的数据又恢复了:
# 总结
所以我们以后对接平台之后,就不再需要维护openLDAP的数据了,平时只要注意两边的数据对齐,然后妥善把MySQL数据异地备份就可以了。
帮助我们改善此页面 (opens new window)
上次更新: 2023/03/28, 14:14:01