ホームページ  >  記事  >  データベース  >  Oracle でテーブルスペースを読み取り専用に設定する方法

Oracle でテーブルスペースを読み取り専用に設定する方法

WBOY
WBOYオリジナル
2022-05-13 15:44:513654ブラウズ

Oracle では、「alter tablespace tablespace name readonly」ステートメントを使用して、テーブルスペースを読み取り専用に設定できます。alter tablespace ステートメントは、テーブルスペースのデータを変更するために使用されます。スペースが読み取り専用状態にある場合、データは変更されず、システムの効率が向上します。

Oracle でテーブルスペースを読み取り専用に設定する方法

このチュートリアルの動作環境: Windows 10 システム、Oracle 11g バージョン、Dell G3 コンピューター。

Oracle 表スペースを読み取り専用に設定する方法

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。