自動systemd管理を使用するTimesTenインスタンスの作成について
systemdは、Linuxオペレーティング・システム用のシステムおよびサービス・マネージャです。System V initメカニズムとsystemdの両方をサポートするLinuxシステムがある場合は、TimesTenデーモンの管理方法を選択できます。この項では、systemdについて説明します。
ノート:
- TimesTenがOracle Clusterwareによって管理されている場合は、systemdをTimesTenデーモンの自動管理に使用できません。
- systemdを使用したTimesTenデーモンの自動管理は、TimesTen Classicでのみサポートされています。TimesTen Scaleoutではサポートされていません。
systemdは、デーモンおよび関連するプロセスを起動および制御するためのサービス・ユニット・タイプを提供します。systemdは、名前が.service
で終わるsystemdサービス・ユニット構成ファイルを使用して、デーモン・プロセスに関する情報をエンコードします。systemdは、この情報を使用してプロセスを制御および管理します。
TimesTen完全ディストリビューションは、TimesTen用にカスタマイズされたsystemdサービス・ユニット構成ファイルを提供します。その目的は、systemdがTimesTenデーモンを自動的に制御および管理できるように、必要な情報を提供することです。TimesTenは、インスタンス管理者がTimesTenインスタンスを作成するときに、このファイルをtimesten_home/startup
ディレクトリで使用できるようにします。このファイルはTimesTenサービス・ファイルと呼ばれます。tt_myinstance.service
というネーミング規則があります。myinstance
はTimesTenインスタンスの名前です。このTimesTenサービス・ファイルから作成されたsystemdサービスは、TimesTenサービスと呼ばれます。このTimesTenサービスを有効にして開始すると、systemdによるTimesTenデーモンの自動管理が可能になります。
TimesTenサービス・ファイルは、systemdサービス・ユニット構成ファイルの要件に固有の形式であり、設定はTimesTen用にカスタマイズされています。systemdは、/etc/security/limits.conf
ファイルのmemlock
エントリを無視します。これらのmemlock
エントリは、ユーザーがロックできるメモリーの量を制御し、TimesTenのオペレーティング・システムの要件を構成する際に重要な設定です。/etc/security/limits.conf
ファイルのmemlock
エントリを使用するかわりに、systemdがサービス・ユニット構成ファイルの#Service Limit Settings
セクションのLimitMEMLOCK
設定を使用します(TimesTenサービス・ファイル)。この設定およびその他の2つの設定は、TimesTen環境にとって重要です。必要に応じて変更してください。
-
LimitNOFILE
:65536
-
LimitMEMLOCK
:infinity
-
TasksMax
:65536
たとえば、TimesTenサービス・ファイルのセクションを次に示します。
% cat timesten_home/start/tt_myinstance.service
#
# Oracle TimesTen In-Memory Database
# Copyright (c) 2020, 2021, Oracle and/or its affiliates.
...
# Service Limit Settings
LimitNOFILE = 65536
LimitMEMLOCK = infinity
TasksMax=65536
...
ノート:
このファイルに他の変更を加えないでください。そうすると、TimesTenのsystemd構成が変更されます。-
systemd用のTimesTenインスタンスの構成: インスタンス管理者は、
-systemd
オプションを指定したttInstanceCreate
ユーティリティを使用してTimesTenインスタンスを作成します。または、インスタンス管理者はttInstanceCreate
ユーティリティを対話形式で実行できます。Would you like to use systemd to manage TimesTen
の質問で入力を求められたら、インスタンス管理者はYes
と回答します(またはデフォルトを受け入れます)。 -
Linuxカーネル・パラメータの構成: TimesTen完全インスタンスを作成した後、Linuxカーネル・パラメータを構成する必要があります。これには、
shmmax
およびshmmall
共有メモリー・カーネル・パラメータ、HugePages、セマフォおよびSHMMNI
パラメータが含まれます。 -
TimesTenサービス・ファイルの変更:
必要に応じて、インスタンス管理者は、
timesten_home/startup/tt_myinstance.service
Times Tenサービス・ファイルの# Service Limit Settings
セクション内のLimitNOFILE
、LimitMEMLOCK
およびTasksMax
設定を変更します(myinstance
はTimesTenインスタンスの名前です)。これにより、TimesTen環境でオペレーティング・システムの制限要件が満たされます。 -
TimesTenユーティリティ・スクリプトのインストール:
systemdを使用して構成されているTimesTenインスタンスは、自動的に有効になりません。
root
ユーザーは、timesten_home/bin/setuproot
ユーティリティ・スクリプトを-install
-systemd
オプションとともに使用して、systemdによるTimesTenインスタンスの自動管理を有効にします。
-
systemd.service - サービス・ユニット構成の詳細は、https://www.freedesktop.org/software/systemd/man/systemd.service.htmlを参照してください。
-
systemd.exec - 実行環境構成の詳細は、https://www.freedesktop.org/software/systemd/man/systemd.exec.htmlを参照してください。これは、
LimitNOFILE
およびLimitMEMLOCK
設定にとって重要です。 -
systemd.resource-control - リソース制御ユニット設定の詳細は、https://www.freedesktop.org/software/systemd/man/systemd.resource-control.htmlを参照してください。これは、
TasksMax
設定にとって重要です。 -
TimesTenの
ttInstanceCreate
ユーティリティの詳細は、Oracle TimesTen In-Memory DatabaseリファレンスのttInstanceCreateを参照してください。