Oracle では、「alter tablespace tablespace name readonly」ステートメントを使用して、テーブルスペースを読み取り専用に設定できます。alter tablespace ステートメントは、テーブルスペースのデータを変更するために使用されます。スペースが読み取り専用状態にある場合、データは変更されず、システムの効率が向上します。
このチュートリアルの動作環境: Windows 10 システム、Oracle 11g バージョン、Dell G3 コンピューター。
alter tablespace 表空间名 read only;
表スペースが読み取り専用状態の場合、実行できるのは読み取り操作のみであるため、データ ファイル内のデータは実行されません。そのため、REDO ログは保護されず、REDO 操作は発生しません。したがって、この状態にあるとシステムの効率が向上します。
読み取り専用状態に変更された直後、表スペースはまだ中間状態にあり、すべてのトランザクションが完了した後に読み取り専用状態に設定されました。表スペースが読み取り専用状態に変更されると、システムはチェックポイントを生成します。もちろん、読み取り専用表スペース内のテーブル、インデックスなどのオブジェクトを削除することもできます。オブジェクトを削除するコマンドは DDL ステートメントであるため、データ ファイルではなくデータ ディクショナリのみが変更されます。
例は次のとおりです:
1. dba_tablespaces 構造を表示します
SQL> desc dba_tablespaces; 名称 是否为空? 类型 ----------------------------------------- -------- ---------------------------- TABLESPACE_NAME NOT NULL VARCHAR2(30) BLOCK_SIZE NOT NULL NUMBER INITIAL_EXTENT NUMBER NEXT_EXTENT NUMBER MIN_EXTENTS NOT NULL NUMBER MAX_EXTENTS NUMBER PCT_INCREASE NUMBER MIN_EXTLEN NUMBER STATUS VARCHAR2(9) CONTENTS VARCHAR2(9) LOGGING VARCHAR2(9) FORCE_LOGGING VARCHAR2(3) EXTENT_MANAGEMENT VARCHAR2(10) ALLOCATION_TYPE VARCHAR2(9) PLUGGED_IN VARCHAR2(3) SEGMENT_SPACE_MANAGEMENT VARCHAR2(6) DEF_TAB_COMPRESSION VARCHAR2(8) RETENTION VARCHAR2(11) BIGFILE VARCHAR2(3)
2. XUANXUAN テーブル スペースのステータスをクエリします
SQL> select TABLESPACE_NAME, STATUS, CONTENTS from dba_tablespaces where TABLESPACE_NAME like 'XUANXUAN'; TABLESPACE_NAME STATUS CONTENTS ------------------------------ --------- --------- XUANXUAN ONLINE PERMANENT
クエリ結果、オンライン状態です。
3. XUANXUAN 表スペースを読み取り専用ステータスに変更します。
SQL> alter tablespace XUANXUAN read only;
テーブルスペースが変更されました。
4. 変更後、クエリを実行して、変更が成功したかどうかを確認します。
SQL> select TABLESPACE_NAME, STATUS, CONTENTS from dba_tablespaces where TABLESPACE_NAME like 'XUANXUAN'; TABLESPACE_NAME STATUS CONTENTS ------------------------------ --------- --------- XUANXUAN READ ONLY PERMANENT
5. 読み書き可能な状態に戻したい場合は、以下のコマンドを実行する必要があります。
SQL> alter tablespace XUANXUAN read write;
テーブルスペースが変更されました。
6. 変更後、クエリを実行して、変更が成功したかどうかを確認します。
SQL> select TABLESPACE_NAME, STATUS, CONTENTS from dba_tablespaces where TABLESPACE_NAME like 'XUANXUAN'; TABLESPACE_NAME STATUS CONTENTS ------------------------------ --------- --------- XUANXUAN ONLINE PERMANENT
結果は、表スペース XUANXUAN がすでにオンラインであることを示しています。
推奨チュートリアル: 「Oracle ビデオ チュートリアル 」
以上がOracle でテーブルスペースを読み取り専用に設定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。