禁用 Geo

如果您想在测试后恢复到常规的 Omnibus 设置,或者您遇到了灾难恢复情况并且想暂时禁用 Geo,您可以使用这些说明来禁用您的 Geo 设置。

如果正确删除它们,则禁用 Geo,与没有次要 Geo 站点的有效 Geo 设置之间应该没有功能差异。

要禁用 Geo,请按照下列步骤操作:

  1. 删除所有次要 Geo 站点
  2. 从 UI 中删除主要站点
  3. 删除次要复制槽
  4. 删除与 Geo 相关的配置
  5. 可选。恢复 PostgreSQL 设置以使用密码并侦听 IP

删除所有次要 Geo 站点

要禁用 Geo,您需要首先删除所有次要 Geo 站点,这意味着这些站点上将不再发生复制。您可以按照我们的文档删除您的次要地理站点

如果您要继续使用的当前站点是次要站点,则需要先将其提升为主要站点。 您可以使用我们关于如何提升次要站点的步骤来执行此操作。

从 UI 中删除主要站点

要删除主要站点:

  1. 删除所有二级 Geo 站点
  2. 在顶部栏上,选择 主菜单 > 管理员
  3. 在左侧边栏上,选择 Geo > 节点
  4. 主要节点选择 删除
  5. 出现提示时选择 删除 进行确认。

删除次要复制槽

要删除次要复制槽,请在 PostgreSQL 控制台 (sudo gitlab-psql) 中的主 Geo 节点上运行以下查询之一:

  • 如果您已经有一个 PostgreSQL 集群,请按名称删除各个复制槽,以防止从同一集群中删除您的次要数据库。您可以使用以下内容获取所有名称,然后删除每个单独的槽:

    SELECT slot_name, slot_type, active FROM pg_replication_slots; -- view present replication slots
    SELECT pg_drop_replication_slot('slot_name'); -- where slot_name is the one expected from above
    
  • 要删除所有次要复制槽:

    SELECT pg_drop_replication_slot(slot_name) FROM pg_replication_slots;
    

删除与 Geo 相关的配置

  1. 对于主 Geo 站点上的每个节点,通过 SSH 连接到节点并以 root 身份登录:

    sudo -i
    
  2. 编辑 /etc/gitlab/gitlab.rb 并通过删除启用 geo_primary_role 的任何行来删除与 Geo 相关的配置:

    ## In pre-11.5 documentation, the role was enabled as follows. Remove this line.
    geo_primary_role['enable'] = true
    
    ## In 11.5+ documentation, the role was enabled as follows. Remove this line.
    roles ['geo_primary_role']
    
  3. 进行这些更改后,重新配置极狐GitLab,使更改生效。

(可选)恢复 PostgreSQL 设置以使用密码并侦听 IP

如果您想删除 PostgreSQL 特定的设置并恢复到默认值(使用套接字代替),您可以安全地从 /etc/gitlab/gitlab.rb 文件中删除以下行:

postgresql['sql_user_password'] = '...'
gitlab_rails['db_password'] = '...'
postgresql['listen_address'] = '...'
postgresql['md5_auth_cidr_addresses'] =  ['...', '...']