Keycloak备份操作

时间:2017-01-10 09:56:41

标签: backup keycloak

我正在阅读Keycloak中针对export operation的文档,以便设置备份操作(例如通过cron作业),并说它是在服务器启动期间导出的:

  

在服务器启动时及其参数触发导出和导入   通过Java系统属性传入。重要的是要注意到这一点   因为导入和导出发生在服务器启动时,没有其他操作   应该在发生这种情况时在服务器或数据库上进行。

虽然有一点,在导出操作期间没有其他操作发生,我想知道什么是最佳实践来保留现有密钥泄露数据的备份?例如,cron作业是否应该每周重启keycloak服务器以保留备份,或者我应该考虑在数据库端(RDBMS)进行备份操作?

2 个答案:

答案 0 :(得分:0)

进入“ Keycloak / bin /”文件夹,然后运行以下命令来导出所有领域数据。

  

sh standalone.sh -Dkeycloak.migration.action = export   -Dkeycloak.migration.provider =单个文件-Dkeycloak.migration.file = keycloak-export.json -Djboss.http.port = 8888 -Djboss.https.port = 9999 -Djboss.management.http.port = 7777

这将导出所有内容,但会更改您在“ Standard.xml”文件中使用的端口。 另外,如果您也想备份用户,则可以查看本指南:

https://github.com/slim-hmidi/keycloak-export-realm

导出领域数据,您始终可以进行postgres数据库备份,也可以运行cron job进行备份。

  

0 * * * 0 pg_dump -U postgres dbname>〜/ postgres / backups / dbname.bak

答案 1 :(得分:0)

我很确定这不是最佳实践,但是如果您使用的是standalone.(bat|sh)所提供的默认H2数据库:

peter@machine:~/keycloak-10.0.2$ cat /tmp/query.sql
SCRIPT TO '/tmp/db-dump.sql'

peter@machine:~/keycloak-10.0.2$ java -cp \
    ./modules/system/layers/base/com/h2database/h2/main/h2-1.4.197.jar \
     org.h2.tools.RunScript \
     -url "jdbc:h2:file:./standalone/data/keycloak" \
     -user sa -password sa -script /tmp/query.sql -showResults

peter@machine:~/keycloak-10.0.2$ less /tmp/db-dump.sql

this post获得灵感。