9.7.3.3.2 スクリプトの実行

SQLスクリプトを使用してテスト・マスター・データ・ファイルの所有権を設定することもできます。

次の手順は、前のトピックのコマンドと同じ結果になりますが、ファイル名をV$DATAFILEに問い合せる点が異なります。

  1. ディスク・グループの所有者としてオペレーティング・システム・ユーザーを追加します。
    SQL> ALTER DISKGROUP DATA ADD USER 'scott';
    
  2. set_owner.sqlという名前のスクリプトを生成して、テスト・マスター・データ・ファイルの所有者を設定します。
    • テスト・マスターがフル・データベースの場合は、テスト・マスター・データベースで次のコマンドを実行します。

      set newpage 0
      set linesize 999
      set pagesize 0
      set feedback off
      set heading off
      set echo off
      set space 0
      set tab off
      set trimspool on
      spool set_owner.sql
      select 'ALTER DISKGROUP DATA set ownership owner='||''''||'scott'||''''||' for file '||''''||name||''''||';' from v$datafile;
      exit
      
    • テスト・マスターがPDBの場合は、テスト・マスターPDBのCDB$ROOTで次のコマンドを実行します。

      次のselect文では、この例のテスト・マスターPDBのcon_idは10と想定しています。

      set newpage 0
      set linesize 999
      set pagesize 0
      set feedback off
      set heading off
      set echo off
      set space 0
      set tab off
      set trimspool on
      spool set_owner.sql
      select 'ALTER DISKGROUP DATA set ownership owner='||''''||'scott'||''''||' for file '||''''||name||''''||';' -
      from v$datafile where con_id=10;
      exit
      
  3. set_owner.sqlの余分な行を削除します。
    sed -i '/SQL/d' set_owner.sql
    
  4. このスクリプトをASMインスタンスで実行します。
    SQL> @set_owner