12 Oracle ASMフィルタ・ドライバの管理
Oracle ASMフィルタ・ドライバ(Oracle ASMFD)を使用すると、システムを再起動するたびにOracle ASMで使用するディスク・デバイスをリバインドする必要がなくなるため、ディスク・デバイスの構成および管理が簡単になります。
この項では、次の項目について説明します。
警告:
Oracle ASMFDを含めてOracle ASMを構成する場合、Oracle ASMディスクの内容を手動で変更または消去したり、構成ファイルなどのファイルを変更したりしないでください。
ノート:
-
Oracle ASMFDの構成は、Oracle Grid Infrastructureのインストール時に自動プロセスとなるようチェック・ボックスを使用して有効にできるようになりました。
-
ASMLIBが既存のOracle ASMインストール用にインストールおよび構成されている場合、Oracle ASMFDのインストールおよび構成前に、既存のASMLIB構成を明示的にアンインストールする必要があります。
-
Oracle ASMフィルタ・ドライバ(Oracle ASMFD)は、Oracle Database 12cリリース1 (12.1.0.2)からLinuxシステムで使用できます。Oracle ASMFDは、Oracle Database 12cリリース2 (12.2.0.1)からSolarisシステムで使用できます。
-
この項のトピックに記載されているプロシージャのステップでは、
$ORACLE_HOME
環境変数はOracle Grid Infrastructureホームのディレクトリ・パスに設定されています。#
がオペレーティング・システム・プロンプトとして表示されているコマンドは、ルート・ユーザーとして実行する必要があります。$
がオペレーティング・システム・プロンプトとして表示されているコマンドは、Oracle Grid Infrastructureホームの所有者として実行する必要があります
関連項目:
-
Oracle Grid InfrastructureでのOracle ASMFDのインストールおよび構成、およびOracle ASMLIBの削除の詳細は、『Oracle Grid Infrastructureインストレーションおよびアップグレード・ガイドfor Linux』を参照してください。
-
Oracleスタンドアロン・サーバーでのOracle ASMFDのインストールおよび構成の詳細は、『Oracle Databaseインストレーション・ガイドfor Linux』を参照してください。
-
サポートされているオペレーティング・システム・プラットフォーム(動作保証マトリックス)や構成の問題など、Oracle ASMFDの詳細は、My Oracle Support (
https://support.oracle.com
)で入手可能なOracle ASMFDに関するMy Oracle Support記事を参照してください。 -
Oracle ASMFDを管理するためのASMCMDコマンドの詳細は、「ASMCMD Oracle ASMフィルタ・ドライバ管理コマンド」
-
すべてのASMCMDコマンドの詳細は、「ASMCMDについて」
-
Oracle Enterprise Managerを使用したOracle ASMの管理の詳細は、「Oracle Enterprise ManagerによるOracle ASMフィルタ・ドライバの管理」
Oracle ASMフィルタ・ドライバについて
Oracle ASMフィルタ・ドライバ(Oracle ASMFD)は、Oracle ASMディスクのI/Oパスに存在するカーネル・モジュールです。Oracle ASMでは、フィルタ・ドライバによりOracle ASMディスクへの書込みI/Oリクエストが検証されます。
Oracle ASMFDを使用すると、システムを再起動するたびにOracle ASMで使用するディスク・デバイスをリバインドする必要がなくなるため、ディスク・デバイスの構成および管理が簡単になります。
Oracle ASMフィルタ・ドライバでは、無効なI/Oリクエストは拒否されます。このアクションにより、ディスク・グループ内のディスクおよびファイルの破損を引き起こす可能性のあるOracle ASMディスクの偶発的な上書きがなくなります。たとえば、偶発的な上書きを引き起こす可能性のあるOracle以外のI/Oは、Oracle ASMフィルタ・ドライバによってすべて除外されます。
Oracle ASMLIBとOracle ASMフィルタ・ドライバについて
Oracle Grid Infrastructure 12cリリース2 (12.2)以降、Oracle ASMLIBがシステムにインストールされている場合、Oracle ASMフィルタ・ドライバ(Oracle ASMFD)をインストールして構成することはできません。Oracle ASMFDをインストールして構成する場合は、先にOracle ASMLIBをアンインストールする必要があります。
関連項目:
-
Oracle Grid InfrastructureでのOracle ASMFDのインストールおよび構成、およびOracle ASMLIBの削除の詳細は、『Oracle Grid Infrastructureインストレーションおよびアップグレード・ガイドfor Linux』を参照してください。
パーティション表とOracle ASMフィルタ・ドライバについて
拡張パーティション表は、Oracle Automatic Storage Management 12.2リリース1 (12.2.0.1)のOracle ASMフィルタ・ドライバ(ASMFD)でサポートされません。
Oracle ASMフィルタ・ドライバが構成されているかどうかの判別
SYS_ASMFD_PROPERTIES
のAFD_STATE
パラメータの値は、Oracle ASMFDがOracle ASMインスタンスに構成されているかどうかを示します。
ASMCMD afd_state
コマンドを使用すると、Oracle ASMFDの状態を確認できます。たとえば:
$ $ORACLE_HOME/bin/asmcmd afd_state ASMCMD-9526: The AFD state is 'LOADED' and filtering is 'DEFAULT' on host 'myhost'
Oracles ASMFDがホストに存在するかどうかを判別するために、SYS_CONTEXT
からAFD_STATE
の値を表示することもできます。問合せは、Oracle ASMインスタンスで実行する必要があります。
AFD_STATE
の値がNOT
AVAILABLE
の場合、Oracle ASMFDは構成されていません。
SQL> SELECT SYS_CONTEXT('SYS_ASMFD_PROPERTIES', 'AFD_STATE') FROM DUAL; SYS_CONTEXT('SYS_ASMFD_PROPERTIES','AFD_STATE') -------------------------------------------------------------------------------- NOT AVAILABLE
値CONFIGURED
は、Oracle ASMFDが完全に設定されており、Oracle ASMインスタンスをドライバに登録できることを意味します。
SQL> SELECT SYS_CONTEXT('SYS_ASMFD_PROPERTIES', 'AFD_STATE') FROM DUAL; SYS_CONTEXT('SYS_ASMFD_PROPERTIES','AFD_STATE') -------------------------------------------------------------------------------- CONFIGURED
Oracle ASMフィルタ・ドライバのAFD_DISKSTRINGパラメータの更新
AFD_DISKSTRING
パラメータは、Oracle ASMFDによって管理されるディスクを識別するために使用されるOracle ASMFDディスク検出文字列を示します。
ASMCMD afd_dsset
およびafd_dgset
コマンドを使用して、AFD_DISKSTRING
パラメータを設定し表示できます。たとえば:
$ $ORACLE_HOME/bin/asmcmd afd_dsset '/dev/rdsk/mydisks/*' $ $ORACLE_HOME/bin/asmcmd afd_dsget AFD discovery string: /dev/rdsk/mydisks/*
ALTER
SYSTEM
SQL文を使用してAFD_DISKSTRING
を設定することもできます。ラベルは、Oracle ASMFDディスク検出文字列によって識別されるディスクのディスク・ヘッダーで作成されます。
SQL> ALTER SYSTEM AFD_DISKSTRING SET '/dev/disk0','/dev/disk1','/devices/dsk/*'; System altered.
次の問合せを使用して、AFD_DISKSTRING
パラメータの値を取得できます。
SQL> SELECT SYS_CONTEXT('SYS_ASMFD_PROPERTIES', 'AFD_DISKSTRING') FROM DUAL; SYS_CONTEXT('SYS_ASMFD_PROPERTIES','AFD_DISKSTRING') -------------------------------------------------------------------------------- '/dev/disk0','/dev/disk1','/devices/dsk/*'
関連項目:
-
Oracle ASMディスク検出文字列の更新の詳細は、「Oracle ASMフィルタ・ドライバ・ディスク用のOracle ASMのASM_DISKSTRINGパラメータの更新」
-
ASM_DISKSTRING
初期化パラメータの詳細は、「ASM_DISKSTRING」 -
Oracle ASMFDディスク検出文字列の表示の詳細は、「afd_dsget」
-
Oracle ASMFDディスク検出文字列の設定の詳細は、「afd_dsset」
Oracle ASMフィルタ・ドライバ・ディスク用のOracle ASMのASM_DISKSTRINGパラメータの更新
Oracle ASMディスク検出文字列を更新して、ASM_DIKSTRING
初期化パラメータに対してOracle ASMFDディスク・ラベル名を追加または削除できます。
たとえば、次のようにOracle ASMFDディスクをASM_DIKSTRING
初期化パラメータに追加できます。
ASM_DISKSTRING = 'AFD:DISK0', 'AFD:DISK1', '/dev/rdsk/mydisks/*'
または、次のようにASM_DIKSTRING
初期化パラメータを設定できます。
ASM_DISKSTRING = 'AFD:*', '/dev/rdsk/mydisks/*'
ASMCMD dsget
およびdsset
コマンドを使用すると、Oracle ASMディスク検出文字列を表示し設定できます。たとえば、次のようにOracle ASMディスク検出文字列を設定すると、Oracle ASMFDディスクを追加できます。
$ $ORACLE_HOME/bin/asmcmd dsset 'AFD:*,/dev/rdsk/mydisks/*'
次のように、以前に追加したOracle ASMFDディスクを削除できます。
$ $ORACLE_HOME/bin/asmcmd dsset '/dev/rdsk/mydisks/*'
関連項目:
-
Oracle ASMFDディスク検出文字列の更新の詳細は、「Oracle ASMフィルタ・ドライバのAFD_DISKSTRINGパラメータの更新」
-
ASM_DISKSTRING
初期化パラメータの詳細は、「ASM_DISKSTRING」 -
Oracle ASMFDディスク検出文字列の表示の詳細は、「afd_dsget」
-
Oracle ASMFDディスク検出文字列の設定の詳細は、「afd_dsset」
Oracle ASMフィルタ・ドライバ・ラベルの設定、クリアおよびスキャン
Oracle ASMFDによって使用されるディスクをプロビジョニングするラベルを設定します。ラベルを設定すると、指定したディスクは、Oracle ASMFDによって管理されます。
ASMCMD afd_label
、afd_unlabel
およびafd_scan
コマンドを使用すると、ラベルを追加、削除およびスキャンできます。たとえば:
$ $ORACLE_HOME/bin/asmcmd afd_label 'disk0' '/dev/rdsk/mydisks/disk0' $ $ORACLE_HOME/bin/asmcmd afd_unlabel 'disk0' $ $ORACLE_HOME/bin/asmcmd afd_scan '/dev/rdsk/mydisks/*'
また、Oracle ASMコンフィギュレーション・アシスタント(ASMCA)では、Oracle ASMFDディスクでのラベルの追加および削除がサポートされます。
SQL文を使用して、ラベルを管理することもできます。ラベルは、ALTER
SYSTEM
LABEL
SET
SQL文を使用して設定できます。たとえば:
SQL> ALTER SYSTEM LABEL SET 'disk0' TO '/dev/disk0'; System altered. SQL> SELECT UPPER(path) FROM V$ASM_DISK ORDER BY PATH; UPPER(PATH) -------------------------------------------------------------------------------- AFD:DISK0
文を実行する際、任意でRENAME
またはMIGRATE
オプションを使用できます。ディスクがOracle ASMFDに対して以前にプロビジョニングされている場合、RENAME
オプションを使用してラベルの名前を変更できます。コマンドの実行時、Oracle ASMFDによってデバイスを管理しないようにする必要があります。ディスクがOracle ASMディスク・グループに以前に使用されていて、このディスク・グループがディスマウントされた場合、MIGRATE
オプションを使用してこのディスクにラベル付けできます。
ALTER
SYSTEM
LABEL
CLEAR
を使用すると、デバイスからラベルを削除し、Oracle ASMFDによるデバイスの管理を停止できます。たとえば:
SQL> ALTER SYSTEM LABEL CLEAR 'disk0'; System altered.
ローカル・ノードでALTER
SYSTEM
LABEL
SET
コマンドを実行した後、リモート・ノードでALTER
SYSTEM
LABEL
SCAN
を使用できます。
ALTER
SYSTEM
LABEL
SET
文は、ディスク・ヘッダー上のラベルを書き込み、そのディスクはノード間で共有されるため、同じ文はクラスタの他のノードで実行されません。
デバイス・パスが指定されていない場合、文ではAFD_DISKSTRING
パラメータ値が使用され、スキャン操作が実行されます。
SQL> ALTER SYSTEM LABEL SCAN
関連項目:
-
Oracle ASMFDディスクでのラベルの追加の詳細は、「afd_label」
-
Oracle ASMFDディスクでのラベルの削除の詳細は、「afd_unlabel」
-
Oracle ASMFDディスクでのラベルのスキャンの詳細は、「afd_scan」
-
ASMCAを使用したディスク・グループの管理の詳細は、「ASMCAによるディスク・グループの管理」
Oracle ASMフィルタ・ドライバの構成解除
Oracle ASMフィルタ・ドライバ(Oracle ASMFD)がシステム上で構成済の場合、これを構成解除できます。
この項では、次の項目について説明します。
-
Oracle Grid Infrastructureのクラスタウェア環境でのOracle ASMフィルタ・ドライバの構成解除
-
Oracle Grid Infrastructureのスタンドアロン(Oracle Restart)環境でのOracle ASMフィルタ・ドライバの構成解除
関連項目:
- Oracle ASMFDを管理するためのASMCMDコマンドの詳細は、「ASMCMD Oracle ASMフィルタ・ドライバ管理コマンド」
-
CRSCTLコマンドの使用方法の詳細は、『Oracle Clusterware管理およびデプロイメント・ガイド』を参照してください。
Oracle Grid Infrastructureのクラスタウェア環境でのOracle ASMフィルタ・ドライバの構成解除
Oracle Clusterware環境でOracle ASMフィルタ・ドライバを構成解除するには、次のステップを実行します。
-
Oracle ASMFDの構成解除後、Oracle ASMがディスク・デバイスを検出できるように、Oracle ASMディスク検出文字列を更新します。
-
Oracle Grid Infrastructure所有者として、任意のノードで次のコマンドを実行し、クラスタ内のノードおよびノード・ロールをリストします。
$ $ORACLE_HOME/bin/olsnodes -a
-
各ハブ・ノードおよびリーフ・ノードで、ローリング・モードまたは非ローリング・モードのいずれかで次を実行します。
-
root
ユーザーとしてログインし、Oracle Grid Infrastructureを停止します。# $ORACLE_HOME/bin/crsctl stop crs
コマンドでエラーが戻された場合、次のようにOracle Grid Infrastructureを強制的に停止します。
# $ORACLE_HOME/bin/crsctl stop crs -f
-
root
として、Oracle ACFSカーネル・モジュールを停止し、信頼性が最も高い停止を確実に実行します。# $ORACLE_HOME/bin/acfsload stop
-
root
として、Oracle ASMFDを構成解除します。# $ORACLE_HOME/bin/asmcmd afd_deconfigure
-
ストレージ・デバイスが
root
によって所有されている場合は、Oracle Grid Infrastructureユーザーがデバイスにアクセスするために必要な権限を設定します。 -
root
として、Oracle ACFSカーネル・モジュールを開始します。# $ORACLE_HOME/bin/acfsload start
-
root
として、ノードのOracle Clusterwareスタックを開始します。# $ORACLE_HOME/bin/crsctl start crs
-
Oracle Grid Infrastructure所有者として、Oracle ASMFDのステータスを確認します。
$ $ORACLE_HOME/bin/asmcmd afd_state
-
-
Oracle Grid Infrastructure所有者として、Oracle ASMFDパスを削除するようにOracle ASM検出文字列を更新します。
$ $ORACLE_HOME/bin/asmcmd dsget $ $ORACLE_HOME/bin/asmcmd dsset
old_diskstring
Oracle ASMディスク検出文字列の現在の値を確認してから、値を更新します。
old_diskstring
の値は、AFD:
(Oracle ASMFD)パスで更新する前の古いディスク検出文字列値です。
関連項目:
-
Oracle ASMディスク検出文字列の更新の詳細は、「Oracle ASMフィルタ・ドライバ・ディスク用のOracle ASMのASM_DISKSTRINGパラメータの更新」
-
Oracle ASMフィルタ・ドライバ検出のディスク検出文字列の更新の詳細は、「Oracle ASMフィルタ・ドライバのAFD_DISKSTRINGパラメータの更新」
-
acfsload
コマンドについては、『Oracle Advanced Cluster File System管理者ガイド』 -
Oracle ASMフィルタ・ドライバの状態のチェックについては、「Oracle ASMフィルタ・ドライバが構成されているかどうかの判別」
- Oracle ASMのデバイス永続性の構成については、Oracle Grid Infrastructureインストレーションおよびアップグレード・ガイドfor Microsoft Windows
Oracle Grid Infrastructureのスタンドアロン(Oracle Restart)環境でのOracle ASMフィルタ・ドライバの構成解除
Oracle Grid Infrastructureのスタンドアロン環境でOracle ASMフィルタ・ドライバを構成解除するには、次のステップを実行します。
-
Oracle ASMFDの構成解除後、Oracle ASMがディスク・デバイスを検出できるように、Oracle ASMディスク検出文字列を更新します。
-
root
ユーザーとしてログインし、次のコマンドを使用して、スタンドアロン・サーバー用のOracle Grid Infrastructureインストールを停止します。# $ORACLE_HOME/bin/crsctl stop has
前述のコマンドでエラーが戻された場合、次のコマンドを使用してください。
# $ORACLE_HOME/bin/crsctl stop has -f
-
root
として、Oracle ACFSカーネル・モジュールを停止し、信頼性が最も高い停止を確実に実行します。# $ORACLE_HOME/bin/acfsload stop
-
root
として、Oracle ASMFDを構成解除します。# $ORACLE_HOME/bin/asmcmd afd_deconfigure
-
ストレージ・デバイスが
root
によって所有されている場合は、Oracle Grid Infrastructureユーザーがデバイスにアクセスするために必要な権限を設定します。 -
root
として、Oracle ACFSカーネル・モジュールを開始します。# $ORACLE_HOME/bin/acfsload start
-
root
として、スタンドアロン・サーバー用のOracle Grid Infrastructureを開始します。# $ORACLE_HOME/bin/crsctl start has
-
Oracle Grid Infrastructureスタンドアロン・サーバーの所有者として、Oracle ASMFDのステータスを確認します。
$ $ORACLE_HOME/bin/asmcmd afd_state
-
Oracle Grid Infrastructureのスタンドアロン・サーバー所有者として、Oracle ASMFDパスを削除するようにOracle ASMディスク検出文字列を更新します。
$ $ORACLE_HOME/bin/asmcmd dsget
$ $ORACLE_HOME/bin/asmcmd dsset old_diskstring
Oracle ASMディスク検出文字列の現在の値を確認してから、値を更新します。old_diskstring
の値は、AFD:
(Oracle ASMFD)パスで更新する前の古いディスク検出文字列値です。
関連項目:
-
Oracle ASMディスク検出文字列の更新の詳細は、「Oracle ASMフィルタ・ドライバ・ディスク用のOracle ASMのASM_DISKSTRINGパラメータの更新」
-
Oracle ASMフィルタ・ドライバ検出のディスク検出文字列の更新の詳細は、「Oracle ASMフィルタ・ドライバのAFD_DISKSTRINGパラメータの更新」
-
acfsload
コマンドについては、『Oracle Advanced Cluster File System管理者ガイド』 -
Oracle ASMフィルタ・ドライバの状態のチェックについては、「Oracle ASMフィルタ・ドライバが構成されているかどうかの判別」
- Oracle ASMのデバイス永続性の構成については、Oracle Grid Infrastructureインストレーションおよびアップグレード・ガイドfor Microsoft Windows
Oracle ASMフィルタ・ドライバのコマンド
この項では、Oracle ASMフィルタ・ドライバを管理するためにインストール時に使用されるOracle ASMフィルタ・ドライバ(ASMFD)コマンドについて説明します。これらのコマンドは、Oracle Grid Infrastructureホームの/bin
ディレクトリにあります。
afdload
目的
afdload
は、Oracle ASMフィルタ・ドライバをロードまたはアンロードします。
構文
afdload { start | stop } [ -s ]
表12-1に、afdload
コマンドで使用可能なオプションを示します。
表12-1 afdloadコマンドのオプション
オプション | 説明 |
---|---|
|
Oracle ASMフィルタ・ドライバをロードします。 |
|
Oracle ASMフィルタ・ドライバをアンロードします。 |
|
サイレント・モードで動作します。 |
説明
afdload
を使用してOracle ASMフィルタ・ドライバを手動でロードまたはアンロードできます。
stop
オプションでドライバをアンロードする前に、ディスク・グループをディスマウントし、Oracle ASMを停止する必要があります。
afdload
を実行するには、root
または管理者の権限が必要です。
例
次に、Oracle ASMフィルタ・ドライバを停止(アンロード)するafdload
の使用例を示します。
# afdload stop
afddriverstate
目的
afddriverstate
は、Oracle ASMフィルタ・ドライバの現在の状態に関する情報を示します。
構文
afddriverstate [-orahome ORACLE_HOME ]
{ installed | loaded | version | supported } [-s]
表12-2に、afddriverstateコマンドで使用可能なオプションを示します。
表12-2 afddriverstateコマンドのオプション
オプション | 説明 |
---|---|
|
ユーザーが |
|
Oracle ASMフィルタ・ドライバがシステムにインストールされているかどうかを判別します。 |
|
Oracle ASMフィルタ・ドライバがメモリーにロードされているかどうかを判別します。 |
|
現在インストールされているOracle ASMフィルタ・ドライバ・システム・ソフトウェアのバージョンをレポートします。 |
|
システムがOracle ASMフィルタ・ドライバでサポートされているカーネルであるかどうかをレポートします。 |
|
コマンドの実行時、サイレント・モードを指定します。 |
説明
afddriverstate
を使用して、Oracle ASMフィルタ・ドライバの現在の状態に関する詳細情報を表示できます。
例
次に、afddriverstate
の使用例を示します。
$ afddriverstate version AFD-9325: Driver operating system kernel version = 2.6.39-400.3.0.el6uek.x86_64(x86_64). AFD-9326: Driver Oracle version = 150728. AFD-9212: Driver build version = MAIN.