配置灾难恢复¶
Snowflake Connector for ServiceNow® 受 Snowflake Connector 条款 的约束。
Snowflake Connector for ServiceNow® 可以配置为使用第二个实例来支持灾难恢复。
关于 Snowflake Connector for ServiceNow® 灾难恢复支持¶
Snowflake Connector for ServiceNow® 会在应用程序实例中存储有关已配置表及其自身配置的元数据。当应用程序被删除或损坏时,这种内部状态就会丢失。为了避免这种情况,连接器会在特定事件(如以下事件)期间,将元数据与引入的数据一起导出到目标数据库:
计划新的引入
完成重新加载
取消重新加载
导出过程会在目标架构中创建几个表来存储连接器的内部状态。这些表不包含引入的数据,但对于在应用程序丢弃或损坏后恢复连接器的状态至关重要。复制时,这些表还可用于恢复不同 Snowflake 账户上连接器的状态。导出过程会创建以下表格:
APP_CONFIG_SFSDKEXPORT_V1
APP_STATE_SFSDKEXPORT_V1
CONNECTOR_ERRORS_LOG_SFSDKEXPORT_V1
INGESTION_PROCESS_SFSDKEXPORT_V1
INGESTION_RUN_SFSDKEXPORT_V1
NOTIFICATIONS_STATE_SFSDKEXPORT_V1
RESOURCE_INGESTION_DEFINITION_SFSDKEXPORT_V1
__CONNECTOR_STATE_EXPORT
将现有数据和报告导入连接器的新实例¶
如果 Snowflake Connector for ServiceNow® 已卸载或损坏,只要目标数据库没有删除,就有可能恢复引入以前配置的表。连接器中配置的表元数据与引入的数据一起保存在目标数据库中。
要在安装新的连接器实例后继续引入数据,请执行以下操作:
配置连接器
按照 使用 Snowsight 安装和配置连接器 或 使用 SQL 命令安装和配置连接器 中的说明配置连接器。选择目标数据库和架构时,请选择包含前一个连接器实例引入的数据的现有架构。
授予连接器所需的权限
备注
仅当您使用 SQL 命令安装和配置连接器时需要此步骤。如果使用 Snowsight 安装了连接器,可以跳过此步骤。
执行以下命令,确保新安装的连接器成为现有架构中所有对象的所有者:
system$grant_ownership_to_application('your_application_instance', true, '<database>', '<schema>');
其中
<database>
和<schema>
分别是现有数据库和架构的名称。暂停连接器
call pause_connector();
导入现有数据和表配置
在已安装应用程序的上下文中执行以下命令,导入现有数据和表配置:
call import_state(force => true);
将 force 参数设置为 true,以确保对新安装的连接器所做的任何更改都会被旧安装的表配置和内部数据覆盖。
恢复连接器
call resume_connector();
此时,Snowflake Connector for ServiceNow® 连接器的新实例应恢复对现有表的引入。
将目标数据库和连接器状态复制到另一个 Snowflake 部署中¶
本节介绍复制目标数据库内容的步骤。将目标数据库和连接器状态复制到另一个 Snowflake 部署中如果连接器或连接器下载的数据对您的业务至关重要,请考虑在不同区域设置一个辅助 Snowflake 账户,并将目标数据库复制到辅助账户。
术语和定义¶
在灾难恢复配置过程中使用以下术语和定义。
- 目标数据库
配置为连接器引入数据的目标的数据库。这也是连接器的内部状态被导出到的数据库。
- 目标架构
配置为连接器引入数据的目标的架构。
- 内部状态
连接器的内部数据和配置,例如表配置、引入状态和错误日志。
- 连接器实例
在 Snowflake 账户上安装的 Snowflake Connector for ServiceNow® 连接器实例。
- ACCOUNT_PRIM
主账户的示例名称
- ACCOUNT_SEC
辅助(副本)账户的示例名称
- APP_PRIM
在主账户上安装的 Snowflake Connector for ServiceNow® 连接器实例名称示例
- APP_SEC
在辅助账户上安装的 Snowflake Connector for ServiceNow® 连接器实例名称示例
- DST_DB.DST_SCHEMA
连接器实例(数据在此引入,连接器的内部状态在此保存)的目标架构名称示例
- DST_DB
为连接器配置的目标数据库名称示例
- MYORG
您所在组织的示例名称(两个账户必须在同一个组织内)
简介¶
Snowflake Connector for ServiceNow® 连接器(连接器实例)安装到您的账户后,会显示为一个包含数据、过程等内容的正常数据库。不过,不能按复制正常数据库的方式将其复制到辅助账户。目前,还没有将连接器实例及其内部状态复制到副本账户的原生机制。具体来说,已安装的应用程序无法添加到复制组。
连接器不直接复制连接器实例,而是将已配置表的元数据导出到在连接器设置过程中配置的目标架构。状态保存在这里,可以与引入的数据一起复制。
例如,如果您将连接器配置为将数据引入目标架构 DST_DB.DST_SCHEMA,连接器就会自动将其内部状态保存到该架构中。然后,您可以使用以下命令复制引入的数据和内部状态:
create replication group connector_dest_database_group
object_types = databases
allowed_databases = dst_db
allowed_accounts = ...;
设置引入数据和配置报告的复制¶
以下部分包含适用于所有版本 Snowflake 的说明。
在主账户上安装连接器
在主账户上安装和配置 Snowflake Connector for ServiceNow®。有关详细说明,请参阅 使用 Snowsight 安装和配置连接器 或 使用 SQL 命令安装和配置连接器。
在主账户上,创建一个复制组,并将 DST_DB 添加为允许的数据库:
-- on primary account create replication group connector_rep_group_prim object_types = databases allowed_databases = dst_db allowed_accounts = myorg.account_sec replication_schedule = '10 minute';
在辅助账户上设置复制
要将 DST_DB 从主账户复制到辅助账户,请在辅助账户上创建一个新的复制组:
-- on secondary account create replication group connector_rep_group_sec as replica of myorg.account_prim.connector_rep_group_prim; alter replication group connector_rep_group_sec refresh;
此时,应在辅助账户上创建一个只读的 DST_DB 数据库,并根据配置的时间表复制主账户的数据。
在辅助账户上安装连接器
以与主账户相同的方式在辅助账户上安装和配置 Snowflake Connector for ServiceNow®。指向实例,将数据引入复制的数据库和架构。当复制正在进行时(直到删除辅助账户上的复制组),数据库处于只读模式。连接器可以配置为使用只读数据库作为引入目标;但是,在数据库转换为读写模式之前,它不能引入数据。
在二级账户上配置连接器后,执行以下操作暂停连接器:
-- on secondary account call pause_connector();
此时,连接器已安装完毕,可在主账户出现故障时随时接管。
恢复程序¶
当主部署不可用时,请在辅助账户上配置连接器实例以继续引入。
重要
所有步骤都必须在辅助账户上执行。
弃用复制组
弃用辅助账户上的复制组,将复制的数据库过渡到读写模式:
drop replication group connector_rep_group_sec;
将现有数据库对象的所有权授予连接器
执行以下命令,将复制架构中所有对象的所有权授予连接器:
call system$grant_ownership_to_application('app_sec', true, 'dst_db', 'dst_schema');
导入状态
使用从主账户复制的状态初始化连接器:
call import_state(true);
恢复连接器
通过执行以下命令恢复连接器:
call resume_connector();
此时,辅助账户上的连接器应恢复引入数据,从主账户上的连接器停止的地方继续。
备注
确保主账户和辅助账户属于同一组织。复制计划可根据需求进行调整。