Generische Skripte in einer Autonomous Database-Instanz aufrufen
Sie können generische Skripte des Typs BASH, C oder Python in Ihrer Autonomous Database aufrufen.
- Allgemeine Skripte in Autonomous Database ausführen
Sie können generische Skripte, einschließlich in Bash, C oder Python geschriebener Skripte, aus einer Autonomous Database-Instanz aufrufen. - Wallet hochladen, um eine sichere Verbindung zur EXTPROC-Agent-Instanz zu erstellen
Im Rahmen der Erstellung der Agent-AnwendungEXTPROC
wird ein selbstsigniertes Wallet erstellt. Mit diesem Wallet können Sie von einer Autonomous Database-Instanz auf die Agent-InstanzEXTPROC
zugreifen. - Schritte zum Aufrufen generischer Skripte
Zeigt die Schritte zum Aufrufen generischer Skripte in einer Autonomous Database an.
Übergeordnetes Thema: Benutzerdefinierte Funktionen aufrufen
Allgemeine Skripte in Autonomous Database ausführen
Sie können generische Skripte, einschließlich in Bash, C oder Python geschriebener Skripte, aus einer Autonomous Database-Instanz aufrufen.
Sie können ein generisches Skript nicht direkt auf einer Autonomous Database-Instanz ausführen. Stattdessen wird das Skript remote auf einem Oracle Autonomous Database Extproc-Containerimage gehostet, das in einem virtuellen Cloud-Netzwerk (VCN) von Oracle Cloud Infrastructure ausgeführt wird. Mit Oracle Scheduler-Jobs rufen Sie generische Skripte aus Autonomous Database auf. Der von Ihnen erstellte Oracle Scheduler-Job muss ein ausführbarer Job sein. Die ausführbaren Jobs können Shellskripte oder andere ausführbare Dateien ausführen.
Dieses Feature wird nur für das Oracle-Datenbankrelease 19c unterstützt.
Generische Skripte aus Autonomous Database werden nur unterstützt, wenn sich die Datenbank auf einem privaten Endpunkt befindet. Um generische Skripte auszuführen, müssen Sie das Oracle Autonomous Database-Containerimage abrufen, installieren und konfigurieren, wobei der Agent EXTPROC
installiert ist. Mit dem Autonomous Database-Containerimage EXTPROC
können Sie externe Prozeduren und Skripte aufrufen, die in BASH, C oder Python aus Ihrer Autonomous Database geschrieben wurden. Die Agent-Instanz EXTPROC
wird in einem privaten Subnetz gehostet, und die Autonomous Database greift über einen Reverse Connection Endpoint (RCE) auf den Agent EXTPROC
zu.
Generische Skripte werden wie folgt bereitgestellt:
-
Ein Oracle hat das Autonomous Database-Containerimage mit dem installierten
EXTPROC
-Agent bereitgestellt. Oracle stellt das Containerimage in GitHub-Packages bereit.Anweisungen zum Abrufen und Konfigurieren des
EXTPROC
-Containerimages finden Sie unter GitHub README:Die Agent-Instanz
EXTPROC
wird remote auf einem Containerimage gehostet, das in einem virtuellen Oracle Cloud Infrastructure-Cloud-Netzwerk (VCN) ausgeführt wird. Die sichere Kommunikation zwischen Ihrer Autonomous Database- und der Agent-InstanzEXTPROC
wird gesichert, indem Network Security Group-(NSG-)Regeln festgelegt werden, sodass der Traffic von der Autonomous Database-Instanz, die auf einem privaten Endpunkt ausgeführt wird, zur Agent-InstanzEXTPROC
zulässig ist. DasEXTPROC
-Agent-Image ist für den Host vorkonfiguriert und führt externe Prozeduren auf Port 16000 aus. -
PL/SQL-Prozeduren zur Registrierung von Endpunktumgebungen und zur Verwaltung von Berechtigungen für die registrierten Endpunkte. Weitere Informationen finden Sie unter DBMS_CLOUD_FUNCTION_ADMIN Package.
-
PL/SQL-Prozeduren zum Erstellen und Verwalten von Scheduler-Jobs und Programmen zum Aufrufen generischer Skripte.
Weitere Informationen finden Sie unter DBMS_SCHEDULER.
Führen Sie die folgenden Schritte aus, um ein generisches Skript aus einer Autonomous Database-Instanz auszuführen:
-
Rufen Sie das Containerimage
EXTPROC
ab, und konfigurieren Sie es. Weitere Informationen finden Sie unter GitHub README. -
Konfigurieren Sie Autonomous Database, um eine Verbindung zur Agent-Instanz
EXTPROC
herzustellen. Weitere Informationen finden Sie unter Wallet hochladen, um eine sichere Verbindung zur EXTPROC Agent-Instanz zu erstellen. -
Generische Skripte in Autonomous Database aufrufen Weitere Informationen finden Sie unter Schritte zum Aufrufen generischer Skripte.
Übergeordnetes Thema: Generische Skripte auf einer Autonomous Database-Instanz aufrufen
Wallet hochladen, um eine sichere Verbindung zur EXTPROC-Agent-Instanz zu erstellen
Im Rahmen der Erstellung der Agent-Anwendung EXTPROC
wird ein selbstsigniertes Wallet erstellt. Mit diesem Wallet können Sie von einer Autonomous Database-Instanz auf die Agent-Instanz EXTPROC
zugreifen.
Um generische Skripte in der Agent-Instanz EXTPROC
auszuführen, verbinden sich Autonomous Database und der Agent EXTPROC
mit Mutual Transport Layer Security (mTLS). Wenn Sie mit mTLS eine Verbindung zum EXTPROC-Agent herstellen, verwenden Sie eine TCPS-(Secure TCP-)Datenbankverbindung mit TLS 1.2-Standardzertifikat und einem CA-(Trusted Client Certificate Authority-)Zertifikat. Weitere Informationen finden Sie unter Verbindungen zu Autonomous Database-Instanzen herstellen.
Sie können auch ein öffentliches Zertifikat beziehen und verwenden, das von einer Certificate Authority (CA) ausgestellt wurde.
Als Voraussetzung müssen Sie das Wallet aus dem Verzeichnis /u01/app/oracle/wallets/extproc_wallet/
auf der VM, auf der EXTPROC
ausgeführt wird, in Object Storage exportieren. Dadurch kann Autonomous Database mit dem Wallet sicher auf die EXTPROC
zugreifen.
Laden Sie das EXTPROC
-Wallet in die Autonomous Database-Instanz hoch:
Übergeordnetes Thema: Generische Skripte auf einer Autonomous Database-Instanz aufrufen
Schritte zum Aufrufen generischer Skripte
Zeigt die Schritte zum Aufrufen generischer Skripte in einer Autonomous Database an.
Nachdem Sie die Agent-Instanz EXTPROC
so konfiguriert haben, dass generische Skripte ausgeführt werden, registrieren Sie einen Remoteendpunkt und erstellen Scheduler-Jobs, um generische Skripte aufzurufen.
Die folgenden Voraussetzungen sind erforderlich, um generische Skripte mit Autonomous Database aufzurufen:
-
Die generischen Skripte müssen in die EXTPROC-Agent-Instanz kopiert werden. Weitere Informationen finden Sie unter GitHub README.
-
Um Scheduler-Jobs zum Aufrufen generischer Skripte mit einem anderen Benutzer als ADMIN zu erstellen und zu verwalten, benötigen Sie die folgenden Berechtigungen:
-
MANAGE SCHEDULER
-
CREATE JOB
-
Berechtigung für den registrierten Remoteendpunkt
-
Themen
- Remoteendpunkt in Autonomous Database registrieren und verwalten
Führen Sie als ADMIN-Benutzer die folgenden Schritte aus, um Remoteendpunkte in Autonomous Database zu registrieren und zu verwalten. - Scheduler-Jobs zum Aufrufen generischer Skripte erstellen und verwalten
Zeigt die Schritte zum Erstellen und Verwalten von Scheduler-Jobs zum Aufrufen generischer Skripte aus Autonomous Database an.
Übergeordnetes Thema: Generische Skripte auf einer Autonomous Database-Instanz aufrufen
Remoteendpunkt in Autonomous Database registrieren und verwalten
Führen Sie als ADMIN-Benutzer die folgenden Schritte aus, um Remoteendpunkte in Autonomous Database zu registrieren und zu verwalten.
Remoteendpunkt registrieren
Verwenden Sie DBMS_CLOUD_FUNCTION_ADMIN.REGISTER_REMOTE_EXECUTION_ENV
, um einen Remoteendpunkt zu registrieren.
Beispiel:
BEGIN
DBMS_CLOUD_FUNCTION_ADMIN.REGISTER_REMOTE_EXECUTION_ENV
(
remote_endpoint_name => 'rem_executable',
remote_endpoint_url => 'remote_extproc_hostname:16000',
wallet_dir => 'WALLET_DIR',
remote_cert_dn => 'CN=MACHINENAME'
);
END;
/
In diesem Beispiel wird die rem_executable
-Bibliothek erstellt und die EXTPROC
-Agentinstanz registriert, die im Parameter remote_url
in Ihrer Autonomous Database angegeben ist. Die Agent-Instanz EXTPROC
ist für das Hosten generischer Skripte auf Port 16000 vorkonfiguriert.
Weitere Informationen finden Sie unter Prozedur REGISTER_REMOTE_EXECUTION_ENV.
Berechtigungen für einen registrierten Endpunkt verwalten
Dieser Schritt ist optional und nur erforderlich, wenn ein anderer Benutzer als ADMIN generische Skripte aus Autonomous Database aufrufen muss.
Verwenden Sie DBMS_CLOUD_FUNCTION_ADMIN.GRANT_REMOTE_EXECUTION_ENV
, um einem anderen Benutzer als ADMIN die Berechtigung für den registrierten Endpunkt zu erteilen.
Beispiel:
BEGIN
DBMS_CLOUD_FUNCTION_ADMIN.GRANT_REMOTE_EXECUTION_ENV
(
remote_endpoint_name => 'REM_EXECUTABLE',
user_name => 'username');
END;
/
In diesem Beispiel wird dem angegebenen Benutzer die Berechtigung für REM_EXECUTABLE
erteilt. Weitere Informationen finden Sie unter Prozedur GRANT_REMOTE_EXECUTION_ENV.
Nachdem Sie die Berechtigung für den registrierten Endpunkt erteilt haben, können Sie mit DBMS_CLOUD_FUNCTION_ADMIN.REVOKE_REMOTE_EXECUTION_ENV
die Berechtigung für den registrierten Endpunkt als Benutzer entziehen.
Beispiel:
BEGIN
DBMS_CLOUD_FUNCTION_ADMIN.REVOKE_REMOTE_EXECUTION_ENV
(
remote_endpoint_name => 'REM_EXECUTABLE',
user_name => 'username');
END;
/
In diesem Beispiel wird dem angegebenen Benutzer die Berechtigung für REM_EXECUTABLE
entzogen. Weitere Informationen finden Sie unter Prozedur REVOKE_REMOTE_EXECUTION_ENV.
Sie können die DBA_CLOUD_FUNCTION_REMOTE_EXECUTION_GRANT
abfragen, um die Berechtigungen aufzulisten, die für alle Remoteendpunkte erteilt wurden. Weitere Informationen finden Sie in der Ansicht DBA_CLOUD_FUNCTION_REMOTE_EXECUTION_GRANT.
Registrierten Endpunkt entfernen
Verwenden Sie DBMS_CLOUD_FUNCTION_ADMIN.DEREGISTER_REMOTE_EXECUTION_ENV
, um einen registrierten Remoteendpunkt zu entfernen.
Beispiel:
BEGIN
DBMS_CLOUD_FUNCTION_ADMIN.DEREGISTER_REMOTE_EXECUTION_ENV
(
remote_endpoint_name => 'REM_EXECUTABLE');
END;
/
Dadurch wird der Remoteendpunkt rem_executable
aus Autonomous Database entfernt. Weitere Informationen finden Sie unter Prozedur DEREGISTER_REMOTE_EXECUTION_ENV.
Übergeordnetes Thema: Schritte zum Aufrufen generischer Skripte
Scheduler-Jobs zum Aufrufen generischer Skripte erstellen und verwalten
Zeigt die Schritte zum Erstellen und Verwalten von Scheduler-Jobs zum Aufrufen generischer Skripte aus Autonomous Database an.
Übergeordnetes Thema: Schritte zum Aufrufen generischer Skripte