Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Verwendung eines AWS SCT Erweiterungspakets zur Emulation des SQL Server-Agents in Postgre SQL
SQLServer Agent ist ein Microsoft Windows-Dienst, der SQL Serverjobs ausführt. SQLDer Server-Agent führt Jobs nach einem Zeitplan, als Reaktion auf ein bestimmtes Ereignis oder bei Bedarf aus. Weitere Informationen zum SQL Server-Agent finden Sie in der technischen Dokumentation von Microsoft
Postgre SQL hat kein Äquivalent für SQL Server Agent. AWS SCT Erstellt ein Erweiterungspaket, um die Funktionen des SQL Server-Agents zu emulieren. Dieses Erweiterungspaket verwendet AWS Lambda Amazon CloudWatch. AWS Lambda implementiert die Schnittstelle, die Sie zum Verwalten von Zeitplänen und zum Ausführen von Jobs verwenden. Amazon CloudWatch hält die Zeitplanregeln ein.
AWS Lambda und Amazon CloudWatch verwendet einen JSON Parameter, um zu interagieren. Dieser JSON Parameter hat die folgende Struktur.
{ "mode":
mode
, "parameters": {list of parameters
}, "callback":procedure name
}
Im vorherigen Beispiel
ist der Typ der Aufgabe und mode
besteht aus einer Reihe von Parametern, die vom Typ der Aufgabe abhängen. Dies list of parameters
ist auch der Name der Prozedur, die nach Abschluss der Aufgabe ausgeführt wird.procedure name
AWS SCT verwendet eine Lambda-Funktion zur Steuerung und Ausführung von Jobs. Die CloudWatch Regel startet die Ausführung des Jobs und stellt die erforderlichen Informationen zum Starten des Jobs bereit. Wenn die CloudWatch Regel ausgelöst wird, startet sie die Lambda-Funktion mit den Parametern aus der Regel.
Verwenden Sie das folgende Format, um einen einfachen Job zu erstellen, der eine Prozedur aufruft.
{ "mode": "run_job", "parameters": { "vendor": "mysql", "cmd": "lambda_db.nightly_job" } }
Verwenden Sie das folgende Format, um einen Job mit mehreren Schritten zu erstellen.
{ "mode": "run_job", "parameters": { "job_name": "Job1", "enabled": "true", "start_step_id": 1, "notify_level_email": [0|1|2|3], "notify_email": email, "delete_level": [0|1|2|3], "job_callback": "ProcCallBackJob(job_name, code, message)", "step_callback": "ProcCallBackStep(job_name, step_id, code, message)" }, "steps": [ { "id":1, "cmd": "ProcStep1", "cmdexec_success_code": 0, "on_success_action": [|2|3|4], "on_success_step_id": 1, "on_fail_action": 0, "on_fail_step_id": 0, "retry_attempts": number, "retry_interval": number }, { "id":2, "cmd": "ProcStep2", "cmdexec_success_code": 0, "on_success_action": [1|2|3|4], "on_success_step_id": 0, "on_fail_action": 0, "on_fail_step_id": 0, "retry_attempts": number, "retry_interval": number }, ... ] }
Um das Verhalten des SQL Server-Agents in Postgre zu emulierenSQL, erstellt das AWS SCT Erweiterungspaket auch die folgenden Tabellen und Verfahren.
Tabellen, die den SQL Server-Agenten in Postgre emulieren SQL
Um den SQL Server-Agenten zu emulieren, verwendet das Erweiterungspaket die folgenden Tabellen:
- sysjobs
Speichert die Informationen über die Jobs.
- sysjobsteps
Speichert die Informationen über die Schritte eines Jobs.
- Sysschedules
Speichert die Informationen über die Jobpläne.
- sysjobschedules
Speichert die Zeitplaninformationen für einzelne Jobs.
- sysjobhistory
Speichert die Informationen über die Ausführung von geplanten Aufträgen.
Verfahren, die den SQL Server-Agent in Postgre emulieren SQL
Um den SQL Server-Agenten zu emulieren, verwendet das Erweiterungspaket die folgenden Verfahren:
- sp_add_job
Fügt einen neuen Job hinzu.
- sp_add_jobstep
Fügt einem Job einen Schritt hinzu.
- sp_add_schedule
Erstellt eine neue Zeitplanregel in Amazon CloudWatch. Sie können diesen Zeitplan für eine beliebige Anzahl von Jobs verwenden.
- sp_attach_schedule
Legt einen Zeitplan für den ausgewählten Job fest.
- sp_add_jobschedule
Erstellt eine Zeitplanregel für einen Job in Amazon CloudWatch und legt das Ziel für diese Regel fest.
- sp_update_job
Aktualisiert die Attribute des zuvor erstellten Jobs.
- sp_update_jobstep
Aktualisiert die Attribute des Schritts in einem Job.
- sp_update_schedule
Aktualisiert die Attribute einer Zeitplanregel in Amazon CloudWatch.
- sp_update_jobschedule
Aktualisiert die Attribute des Zeitplans für den angegebenen Job.
- sp_delete_job
Löscht einen Job.
- sp_delete_jobstep
Löscht einen Auftragsschritt aus einem Job.
- sp_delete_schedule
Löscht einen Zeitplan.
- sp_delete_jobschedule
Löscht die Zeitplanregel für den angegebenen Job von Amazon CloudWatch.
- sp_detach_schedule
Entfernt eine Verknüpfung zwischen einem Zeitplan und einem Job.
- get_jobs, update_job
Interne Verfahren, die interagieren mit. AWS Elastic Beanstalk
- sp_verify_job_date, sp_verify_job_time, sp_verify_job, sp_verify_jobstep, sp_verify_schedule, sp_verify_job_identifiers, sp_verify_schedule_identifiers
Interne Verfahren, die Einstellungen überprüfen.
Syntax für Prozeduren, die den SQL Server-Agent in Postgre emulieren SQL
Die aws_sqlserver_ext.sp_add_job
Prozedur im Erweiterungspaket emuliert die Prozedur. msdb.dbo.sp_add_job
Weitere Informationen zum SQL Quellserver-Agent-Verfahren finden Sie in der technischen Dokumentation von Microsoft
par_job_name varchar, par_enabled smallint = 1, par_description varchar = NULL::character varying, par_start_step_id integer = 1, par_category_name varchar = NULL::character varying, par_category_id integer = NULL::integer, par_owner_login_name varchar = NULL::character varying, par_notify_level_eventlog integer = 2, par_notify_level_email integer = 0, par_notify_level_netsend integer = 0, par_notify_level_page integer = 0, par_notify_email_operator_name varchar = NULL::character varying, par_notify_netsend_operator_name varchar = NULL::character varying, par_notify_page_operator_name varchar = NULL::character varying, par_delete_level integer = 0, inout par_job_id integer = NULL::integer, par_originating_server varchar = NULL::character varying, out returncode integer
Das aws_sqlserver_ext.sp_add_jobstep
Verfahren im Erweiterungspaket emuliert das msdb.dbo.sp_add_jobstep
Verfahren. Weitere Informationen zum SQL Quellserver-Agent-Verfahren finden Sie in der technischen Dokumentation von Microsoft
par_job_id integer = NULL::integer, par_job_name varchar = NULL::character varying, par_step_id integer = NULL::integer, par_step_name varchar = NULL::character varying, par_subsystem varchar = 'TSQL'::bpchar, par_command text = NULL::text, par_additional_parameters text = NULL::text, par_cmdexec_success_code integer = 0, par_on_success_action smallint = 1, par_on_success_step_id integer = 0, par_on_fail_action smallint = 2, par_on_fail_step_id integer = 0, par_server varchar = NULL::character varying, par_database_name varchar = NULL::character varying, par_database_user_name varchar = NULL::character varying, par_retry_attempts integer = 0, par_retry_interval integer = 0, par_os_run_priority integer = 0, par_output_file_name varchar = NULL::character varying, par_flags integer = 0, par_proxy_id integer = NULL::integer, par_proxy_name varchar = NULL::character varying, inout par_step_uid char = NULL::bpchar, out returncode integer
Das aws_sqlserver_ext.sp_add_schedule
Verfahren im Erweiterungspaket emuliert das msdb.dbo.sp_add_schedule
Verfahren. Weitere Informationen zum SQL Quellserver-Agent-Verfahren finden Sie in der technischen Dokumentation von Microsoft
par_schedule_name varchar, par_enabled smallint = 1, par_freq_type integer = 0, par_freq_interval integer = 0, par_freq_subday_type integer = 0, par_freq_subday_interval integer = 0, par_freq_relative_interval integer = 0, par_freq_recurrence_factor integer = 0, par_active_start_date integer = NULL::integer, par_active_end_date integer = 99991231, par_active_start_time integer = 0, par_active_end_time integer = 235959, par_owner_login_name varchar = NULL::character varying, *inout par_schedule_uid char = NULL::bpchar,* inout par_schedule_id integer = NULL::integer, par_originating_server varchar = NULL::character varying, out returncode integer
Das aws_sqlserver_ext.sp_attach_schedule
Verfahren im Erweiterungspaket emuliert das msdb.dbo.sp_attach_schedule
Verfahren. Weitere Informationen zum SQL Quellserver-Agent-Verfahren finden Sie in der technischen Dokumentation von Microsoft
par_job_id integer = NULL::integer, par_job_name varchar = NULL::character varying, par_schedule_id integer = NULL::integer, par_schedule_name varchar = NULL::character varying, par_automatic_post smallint = 1, out returncode integer
Das aws_sqlserver_ext.sp_add_jobschedule
Verfahren im Erweiterungspaket emuliert das msdb.dbo.sp_add_jobschedule
Verfahren. Weitere Informationen zum SQL Quellserver-Agent-Verfahren finden Sie in der technischen Dokumentation von Microsoft
par_job_id integer = NULL::integer, par_job_name varchar = NULL::character varying, par_name varchar = NULL::character varying, par_enabled smallint = 1, par_freq_type integer = 1, par_freq_interval integer = 0, par_freq_subday_type integer = 0, par_freq_subday_interval integer = 0, par_freq_relative_interval integer = 0, par_freq_recurrence_factor integer = 0, par_active_start_date integer = NULL::integer, par_active_end_date integer = 99991231, par_active_start_time integer = 0, par_active_end_time integer = 235959, inout par_schedule_id integer = NULL::integer, par_automatic_post smallint = 1, inout par_schedule_uid char = NULL::bpchar, out returncode integer
Das aws_sqlserver_ext.sp_delete_job
Verfahren im Erweiterungspaket emuliert das msdb.dbo.sp_delete_job
Verfahren. Weitere Informationen zum SQL Quellserver-Agent-Verfahren finden Sie in der technischen Dokumentation von Microsoft
par_job_id integer = NULL::integer, par_job_name varchar = NULL::character varying, par_originating_server varchar = NULL::character varying, par_delete_history smallint = 1, par_delete_unused_schedule smallint = 1, out returncode integer
Das aws_sqlserver_ext.sp_delete_jobstep
Verfahren im Erweiterungspaket emuliert das msdb.dbo.sp_delete_jobstep
Verfahren. Weitere Informationen zum SQL Quellserver-Agent-Verfahren finden Sie in der technischen Dokumentation von Microsoft
par_job_id integer = NULL::integer, par_job_name varchar = NULL::character varying, par_step_id integer = NULL::integer, out returncode integer
Das aws_sqlserver_ext.sp_delete_jobschedule
Verfahren im Erweiterungspaket emuliert das msdb.dbo.sp_delete_jobschedule
Verfahren. Weitere Informationen zum SQL Quellserver-Agent-Verfahren finden Sie in der technischen Dokumentation von Microsoft
par_job_id integer = NULL::integer, par_job_name varchar = NULL::character varying, par_name varchar = NULL::character varying, par_keep_schedule integer = 0, par_automatic_post smallint = 1, out returncode integer
Das aws_sqlserver_ext.sp_delete_schedule
Verfahren im Erweiterungspaket emuliert das msdb.dbo.sp_delete_schedule
Verfahren. Weitere Informationen zum SQL Quellserver-Agent-Verfahren finden Sie in der technischen Dokumentation von Microsoft
par_schedule_id integer = NULL::integer, par_schedule_name varchar = NULL::character varying, par_force_delete smallint = 0, par_automatic_post smallint = 1, out returncode integer
Das aws_sqlserver_ext.sp_detach_schedule
Verfahren im Erweiterungspaket emuliert das msdb.dbo.sp_detach_schedule
Verfahren. Weitere Informationen zum SQL Quellserver-Agent-Verfahren finden Sie in der technischen Dokumentation von Microsoft
par_job_id integer = NULL::integer, par_job_name varchar = NULL::character varying, par_schedule_id integer = NULL::integer, par_schedule_name varchar = NULL::character varying, par_delete_unused_schedule smallint = 0, par_automatic_post smallint = 1, out returncode integer
Das aws_sqlserver_ext.sp_update_job
Verfahren im Erweiterungspaket emuliert das msdb.dbo.sp_update_job
Verfahren. Weitere Informationen zum SQL Quellserver-Agent-Verfahren finden Sie in der technischen Dokumentation von Microsoft
par_job_id integer = NULL::integer par_job_name varchar = NULL::character varying par_new_name varchar = NULL::character varying par_enabled smallint = NULL::smallint par_description varchar = NULL::character varying par_start_step_id integer = NULL::integer par_category_name varchar = NULL::character varying par_owner_login_name varchar = NULL::character varying par_notify_level_eventlog integer = NULL::integer par_notify_level_email integer = NULL::integer par_notify_level_netsend integer = NULL::integer par_notify_level_page integer = NULL::integer par_notify_email_operator_name varchar = NULL::character varying par_notify_netsend_operator_name varchar = NULL::character varying par_notify_page_operator_name varchar = NULL::character varying par_delete_level integer = NULL::integer par_automatic_post smallint = 1 out returncode integer
Das aws_sqlserver_ext.sp_update_jobschedule
Verfahren im Erweiterungspaket emuliert das msdb.dbo.sp_update_jobschedule
Verfahren. Weitere Informationen zum SQL Quellserver-Agent-Verfahren finden Sie in der technischen Dokumentation von Microsoft
par_job_id integer = NULL::integer par_job_name varchar = NULL::character varying par_name varchar = NULL::character varying par_new_name varchar = NULL::character varying par_enabled smallint = NULL::smallint par_freq_type integer = NULL::integer par_freq_interval integer = NULL::integer par_freq_subday_type integer = NULL::integer par_freq_subday_interval integer = NULL::integer par_freq_relative_interval integer = NULL::integer par_freq_recurrence_factor integer = NULL::integer par_active_start_date integer = NULL::integer par_active_end_date integer = NULL::integer par_active_start_time integer = NULL::integer par_active_end_time integer = NULL::integer par_automatic_post smallint = 1 out returncode integer
Das aws_sqlserver_ext.sp_update_jobstep
Verfahren im Erweiterungspaket emuliert das msdb.dbo.sp_update_jobstep
Verfahren. Weitere Informationen zum SQL Quellserver-Agent-Verfahren finden Sie in der technischen Dokumentation von Microsoft
par_job_id integer = NULL::integer par_job_name varchar = NULL::character varying par_step_id integer = NULL::integer par_step_name varchar = NULL::character varying par_subsystem varchar = NULL::character varying par_command text = NULL::text par_additional_parameters text = NULL::text par_cmdexec_success_code integer = NULL::integer par_on_success_action smallint = NULL::smallint par_on_success_step_id integer = NULL::integer par_on_fail_action smallint = NULL::smallint par_on_fail_step_id integer = NULL::integer par_server varchar = NULL::character varying par_database_name varchar = NULL::character varying par_database_user_name varchar = NULL::character varying par_retry_attempts integer = NULL::integer par_retry_interval integer = NULL::integer par_os_run_priority integer = NULL::integer par_output_file_name varchar = NULL::character varying par_flags integer = NULL::integer par_proxy_id integer = NULL::integer par_proxy_name varchar = NULL::character varying out returncode integer
Das aws_sqlserver_ext.sp_update_schedule
Verfahren im Erweiterungspaket emuliert das msdb.dbo.sp_update_schedule
Verfahren. Weitere Informationen zum SQL Quellserver-Agent-Verfahren finden Sie in der technischen Dokumentation von Microsoft
par_schedule_id integer = NULL::integer par_name varchar = NULL::character varying par_new_name varchar = NULL::character varying par_enabled smallint = NULL::smallint par_freq_type integer = NULL::integer par_freq_interval integer = NULL::integer par_freq_subday_type integer = NULL::integer par_freq_subday_interval integer = NULL::integer par_freq_relative_interval integer = NULL::integer par_freq_recurrence_factor integer = NULL::integer par_active_start_date integer = NULL::integer par_active_end_date integer = NULL::integer par_active_start_time integer = NULL::integer par_active_end_time integer = NULL::integer par_owner_login_name varchar = NULL::character varying par_automatic_post smallint = 1 out returncode integer
Beispiele für die Verwendung von Verfahren, die den SQL Server-Agent emulieren, in Postgre SQL
Gehen Sie wie aws_sqlserver_ext.sp_add_job
folgt vor, um einen neuen Job hinzuzufügen.
SELECT * FROM aws_sqlserver_ext.sp_add_job ( par_job_name := 'test_job', par_enabled := 1::smallint, par_start_step_id := 1::integer, par_category_name := '[Uncategorized (Local)]', par_owner_login_name := 'sa');
Gehen Sie wie aws_sqlserver_ext.sp_add_jobstep
folgt vor, um einen neuen Auftragsschritt hinzuzufügen.
SELECT * FROM aws_sqlserver_ext.sp_add_jobstep ( par_job_name := 'test_job', par_step_id := 1::smallint, par_step_name := 'test_job_step1', par_subsystem := 'TSQL', par_command := 'EXECUTE [dbo].[PROC_TEST_JOB_STEP1];', par_server := NULL, par_database_name := 'GOLD_TEST_SS');
Gehen Sie wie aws_sqlserver_ext.sp_add_schedule
folgt vor, um einen einfachen Zeitplan hinzuzufügen.
SELECT * FROM aws_sqlserver_ext.sp_add_schedule( par_schedule_name := 'RunOnce', par_freq_type := 1, par_active_start_time := 233000);
aws_sqlserver_ext.sp_attach_schedule
Gehen Sie wie folgt vor, um einen Zeitplan für einen Job festzulegen.
SELECT * FROM aws_sqlserver_ext.sp_attach_schedule ( par_job_name := 'test_job', par_schedule_name := 'NightlyJobs');
aws_sqlserver_ext.sp_add_jobschedule
Gehen Sie wie folgt vor, um einen Zeitplan für einen Job zu erstellen.
SELECT * FROM aws_sqlserver_ext.sp_add_jobschedule ( par_job_name := 'test_job2', par_name := 'test_schedule2', par_enabled := 1::smallint, par_freq_type := 4, par_freq_interval := 1, par_freq_subday_type := 4, par_freq_subday_interval := 1, par_freq_relative_interval := 0, par_freq_recurrence_factor := 0, par_active_start_date := 20100801, par_active_end_date := 99991231, par_active_start_time := 0, par_active_end_time := 0);
Anwendungsbeispiele für die Emulation des SQL Server-Agents in Postgre SQL
Wenn Ihr Quelldatenbankcode den SQL Server-Agent zum Ausführen von Jobs verwendet, können Sie das SQL SQL Server-to-Postgre-Erweiterungspaket verwenden, um diesen Code AWS SCT nach Postgre zu konvertieren. SQL Das Erweiterungspaket verwendet AWS Lambda Funktionen, um das Verhalten des Server-Agenten zu emulieren. SQL
Sie können eine neue AWS Lambda Funktion erstellen oder eine vorhandene Funktion registrieren.
Um eine neue AWS Lambda Funktion zu erstellen
-
Öffnen Sie in der Zieldatenbankstruktur das Kontextmenü (Rechtsklick), wählen Sie Erweiterungspaket anwenden für und wählen Sie dann Postgre SQL aus. AWS SCT
Der Assistent des Erweiterungspakets wird angezeigt.
-
Gehen Sie auf der Registerkarte SQLServer-Agent-Emulationsdienst wie folgt vor:
-
Wählen Sie AWS Lambda Funktion erstellen aus.
-
Geben Sie für Datenbank-Login den Namen des Zieldatenbankbenutzers ein.
-
Geben Sie unter Datenbankkennwort das Passwort für den Benutzernamen ein, den Sie im vorherigen Schritt eingegeben haben.
-
Geben Sie für Python-Bibliotheksordner den Pfad zu Ihrem Python-Bibliotheksordner ein.
-
Wählen Sie AWS Lambda Funktion erstellen und dann Weiter.
-
Um eine AWS Lambda Funktion zu registrieren, die Sie zuvor bereitgestellt haben
-
Führen Sie das folgende Skript in Ihrer Zieldatenbank aus.
SELECT FROM aws_sqlserver_ext.set_service_setting( p_service := 'JOB', p_setting := 'LAMBDA_ARN', p_value :=
ARN
)Im vorherigen Beispiel
ist der Amazon-Ressourcenname (ARN) der bereitgestellten AWS Lambda Funktion.ARN
Das folgende Beispiel erstellt eine einfache Aufgabe, die aus einem Schritt besteht. Alle fünf Minuten führt diese Aufgabe die zuvor erstellte job_example
Funktion aus. Diese Funktion fügt Datensätze in die job_example_table
Tabelle ein.
Um diese einfache Aufgabe zu erstellen
-
Erstellen Sie einen Job mit der
aws_sqlserver_ext.sp_add_job
Funktion wie im Folgenden gezeigt.SELECT FROM aws_sqlserver_ext.sp_add_job ( par_job_name := 'test_simple_job');
-
Erstellen Sie einen Auftragsschritt mithilfe der
aws_sqlserver_ext.sp_add_jobstep
Funktion, wie im Folgenden gezeigt.SELECT FROM aws_sqlserver_ext.sp_add_jobstep ( par_job_name := 'test_simple_job', par_step_name := 'test_simple_job_step1', par_command := 'PERFORM job_simple_example;');
Der Job-Schritt gibt an, was die Funktion macht.
-
Erstellen Sie mithilfe der
aws_sqlserver_ext.sp_add_jobschedule
Funktion einen Scheduler für den Job, wie im Folgenden gezeigt.SELECT FROM aws_sqlserver_ext.sp_add_jobschedule ( par_job_name := 'test_simple_job', par_name := 'test_schedule', par_freq_type := 4, /* Daily */ par_freq_interval := 1, /* frequency_interval is unused */ par_freq_subday_type := 4, /* Minutes */ par_freq_subday_interval := 5 /* 5 minutes */);
Der Job-Schritt gibt an, was die Funktion macht.
Um diesen Job zu löschen, verwenden Sie die aws_sqlserver_ext.sp_delete_job
Funktion wie folgt.
PERFORM aws_sqlserver_ext.sp_delete_job( par_job_name := 'PeriodicJob1'::character varying, par_delete_history := 1::smallint, par_delete_unused_schedule := 1::smallint);