克隆 OpenResty Edge 环境

在面对如以下的场景时,我们可能需要构建一个与生产环境一致或者是尽可能一致的环境:

  • 进行升级测试:升级 OpenResty Edge 前,搭建一个与生产环境一致的环境,进行升级测试,测试通过后,再对生产环境进行升级。
  • 迁移式升级:不对生产环境进行升级,而是构建一个与生产环境一致的环境,对新环境进行升级并测试,测试通过后,直接把旧环境中的流量切换到新环境中。

下面介绍详细的步骤。

  1. 从生产环境中获取数据备份:登录 Edge Admin DB 环境,确认磁盘空间足够后,执行以下命令进行数据备份

    # PostgreSQL 12
    /usr/local/openresty-postgresql12/bin/pg_dump or_edge_admin -C -Upostgres | gzip > or_edge_admin-`date +%F`.gz
    
    # PostgreSQL 9
    /usr/local/openresty/postgresql/bin/pg_dump or_edge_admin -C -Upostgres | gzip > or_edge_admin-`date +%F`.gz
    

    数据备份完成并取出后,后续的步骤中不再需要对生产环境进行任何操作,为防止误操作,您可以断开与当前机器的连接。

  2. 在测试环境中安装与生产环境一样的 OpenResty Edge 版本,如果您想测试在 Kubernetes 环境中部署的 OpenResty Edge,请参考在 Kubernetes 环境中部署 OpenResty Edge;否则,请参考安装 OpenResty Edge

  3. 导入数据到新环境中:登录新环境的数据库机器,把前面导出的数据上传到此机器上,然后执行以下命令来重命名安装时生成的 or_edge_admin 数据库和导入数据

    # PostgreSQL 12
    /usr/local/openresty-postgresql12/bin/psql -Upostgres -c "ALTER DATABASE or_edge_admin RENAME TO or_edge_admin_old"
    
    # PostgreSQL 9
    /usr/local/openresty-postgresql/bin/psql -Upostgres -c "ALTER DATABASE or_edge_admin RENAME TO or_edge_admin_old"
    
    # PostgreSQL 12
    zcat or_edge_admin-{date}.gz | /usr/local/openresty-postgresql12/bin/psql -Upostgres
    
    # PostgreSQL 9
    zcat or_edge_admin-{date}.gz | /usr/local/openresty-postgresql/bin/psql -Upostgres
    
  4. 然后对新环境进行升级,详见 升级 OpenResty Edge

有问题我们随时沟通 :)