sql-server - 将弹性作业进程 ID 传递给目标数据库
问题描述
我正在使用 Azure Elastic Job 进行 SQL 维护活动,例如重建索引、清除数据等。
因此,对于多个作业运行,我想在我的目标数据库中跟踪这些操作。我想根据弹性工作流程 ID 跟踪它们。
无论如何我们可以通过存储过程捕获弹性作业进程ID并将其发送到目标数据库。
请注意,我已经创建了我的工作,以每小时和每周定期运行。
解决方案
Azure 弹性作业流程详细信息存储在jobs.job_executions
SELECT * FROM jobs.job_executions
我们不能使用存储过程或直接查询跨数据库获取结果,我们需要配置数据库的弹性查询以将弹性作业代理表数据获取到目标数据库表。
您将需要配置以下步骤(使用示例语法):
创建主密钥
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<master_key_password>';
创建数据库范围的凭据
CREATE DATABASE SCOPED CREDENTIAL ABC WITH IDENTITY = '<username>', SECRET = '<password>';
创建外部数据源
CREATE EXTERNAL DATA SOURCE DatasourceName WITH (LOCATION = '<server_name>.database.windows.net', DATABASE_NAME = 'TargetDB’, CREDENTIAL = ABC, ) ;
创建外部表
CREATE EXTERNAL TABLE [dbo].[job_executions] ( [job_execution_id] nvarchar(256), [Job_name] [nvarchar](256) NOT NULL, …) WITH ( DATA_SOURCE = DatasourceName ) ;
定义外部数据源和外部表后,您可以查询代理数据库表并使用目标数据库中的数据。
更多详情,请访问跨数据库查询
推荐阅读
- apache-nifi - 如何解压 - zip 的 zip 并保持相同的目录结构
- regex - 使用 gawk 提取列中带有字符串的行
- python - Pyinstaller 中的问题
- javascript - 我可以将 `fnname = _ => {}` 转换为 `function fnname(){}` 吗?
- javascript - AsyncStorage 仅在重新加载应用程序时有效
- javascript - 反应;为什么我的 array.map 方法只呈现数组中的一个元素?
- python - 另一个函数返回值时的 Discord API 消息传递
- python - 如何在 Python 中读取文件夹中的特定文件(范围内的文件)
- azure-pipelines - 是否可以在单个 Azure 管道中同时提取 SVN 和 Git?
- sql - SQL 查询时间