※ 本記事は、Eloi Lopesによる”Clean up old OCI GoldenGate trails using Python and the OCI CLI“を翻訳したものです。
2023年11月22日
Oracle Cloud Infrastructure (OCI) GoldenGateは、リアルタイムのデータ・メッシュ・プラットフォームを提供するフルマネージド・サービスであり、レプリケーションを使用してデータの可用性を維持し、リアルタイム分析を可能にします。
各OCI GoldenGateデプロイメントでは、デプロイメントの詳細ページにその証跡ファイルのリストが表示されます:

特に多くのテストが実施される開発環境では、未使用の証跡ファイルを蓄積することが一般的です。これらのすべての証跡をクリーンアップする簡単な方法は、次のPythonコードを使用することです。次のコードは、OCI CLIがインストールされていることを前提としています。OCI CLIをまだインストールしていない場合は、リファレンスの項で手順を確認してください。
### Import Packages
import oci
import requests
import json
from base64 import b64encode
import base64
# Auth Config
CONFIG_PROFILE = “DEFAULT”
config = oci.config.from_file(‘~/.oci/config’, CONFIG_PROFILE)
#OCI GoldenGate API
version =”v2″
username = ‘<gg username>’
password = ‘<password>’
issueCommand=f’/services/{version}/commands/execute’
#OCI GoldenGate deployment name
sourceUrl = “https://<OCI GG URL>”
encoded_credentials = b64encode(bytes(f'{username}:{password}’,
encoding=’ascii’)).decode(‘ascii’)
auth_header = f’Basic {encoded_credentials}’
payload=””
header = f'{auth_header}’
headers = {
‘Authorization’: header,
‘Cookie’: ”
}
#initilize service client
golden_gate_client = oci.golden_gate.GoldenGateClient(config)
#function to delete trail
def deleteTrail(inputHearders, inputBody,url):
responsePost = requests.post(url+issueCommand, headers=inputHearders, json=inputBody)
print (responsePost.json())
list_trail_files_response = golden_gate_client.list_trail_files(
deployment_id=”<OCI ID for OCI GG deployment>”)
#data dictionary for trail files
data_dict = json.loads(str(list_trail_files_response.data.items))
#iterate through trail files
for i in data_dict:
#Only for trails that are not currently in use by any extract or replicat.
if i[‘consumers’] == None and i[‘producer’] == None:
#print(i[‘consumers’], i[‘producer’], i[‘trail_file_id’])
trailsDict={
“name”: “purge”,
“purgeType”: “trails”,
“trails”: [ { “name”: i[‘trail_file_id’] } ],
“useCheckpoints”: False,
“keep”: [ {
“type”: “min”,
“units”: “files”,
“value”: 0}]
}
#delete trail
deleteTrail(headers,trailsDict,sourceUrl)
前述のコードは、ExtractおよびReplicatで使用されていない証跡のみを削除します。この記事に付属しているコードにはサポートがないため、ご自身のリスクで使用してください。
リファレンス
