2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[Oracle Cloud] Oracle Database 23ai新機能 Object Storage上の読取り専用表領域(2024/08/26)

Posted at

はじめに

Oracle Database 23aiの新機能に、オブジェクト・ストレージ上の読取り専用表領域 (Read-Only Tablespace on Object Storage) があり、読取り専用表領域のデータファイルをObject Storageに透過的に移動(逆も)でき、それにより、データベースの一部をクラウド内の低コストのストレージに格納できます。

読取り専用表領域のデータファイルをASMからObject Storageへ移動させてみました。

前提条件

前処理

2024年8月時点で、Base DatabaseでのObject Storage上の読取り専用表領域の利用には、ODM object storeライブラリの追加インストールが必要です。

  1. データベースインスタンスのシャットダウン
SQL> connect / as sysdba
SQL> shutdown immediate

2. ODM object storeのインストール(OSコマンド)

$ sudo su - oracle
$ make -f $ORACLE_HOME/rdbms/lib/ins_rdbms.mk opc_on

3. データベースインスタンスの起動

SQL> connect / as sysdba
SQL> startup

事前準備

Object Storage バケットの作成

データファイルを格納するためのOCI Object Storageバケットを作成(バケット名をメモ:例 dbts)

表領域の作成と表の作成

create tablespace TSA datafile '+DATA' size 1G;
create table TBL(COL1 char(10) not null, COL2 char(1000)) tablespace TSA;
insert into TBL values('A','AAAAA');
commit;

パーティション表の例

create tablespace TSA datafile '+DATA' size 1G;
create tablespace TSB datafile '+DATA' size 1G;
partition by list(COL1)
(partition PA values ('A') tablespace TSA,
partition PB values ('B') tablespace TSB
) ;

insert into TBL values('A','AAAAA');
insert into TBL values('B','BBBBB');
commit;

表領域、データファイル情報の取得

set pages 5000 linesize 150
col TABLESPACE_NAME for a10
col FILE_NAME for a100
select FILE_ID, STATUS, TABLESPACE_NAME, FILE_NAME from DBA_DATA_FILES 
where TABLESPACE_NAME like 'TS%';

   FILE_ID STATUS    TABLESPACE FILE_NAME
---------- --------- ---------- -----------------------------------------------------
        18 AVAILABLE TSA        +DATA/DB235_nrt/202C1977/DATAFILE/tsa.281.1177572797
        19 AVAILABLE TSB        +DATA/DB235_nrt/202C1977/DATAFILE/tsb.280.1177572805

表領域を 読取り専用に変更

ALTER TABLESPACE TSA read only;
select tablespace_name , status from dba_tablespaces where TABLESPACE_NAME = 'TSA';

TABLESPACE STATUS
---------- ---------
TSA        READ ONLY

DBMS_CLOUD の動作確認

Object Storageバケット内のファイル名の取得

select object_name from dbms_cloud.list_objects('DEF_CRED_NAME','https://objectstorage.ap-tokyo-1.oraclecloud.com/n/<namespace>/b/dbts/o/');

Object Storageへデータファイルを移動

Enterprise Editionの場合、オンラインでのデータファイル移動が可能

alter database move datafile '+DATA/DB235_nrt/202C1977/DATAFILE/tsa.281.1177572797' to 'https://objectstorage.ap-tokyo-1.oraclecloud.com/n/<namespace>/b/dbts/o/tsa.dbf';

Database altered.


SQL> select FILE_ID, STATUS, TABLESPACE_NAME, FILE_NAME from DBA_DATA_FILES
  2  where TABLESPACE_NAME like 'TS%';

   FILE_ID STATUS    TABLESPACE FILE_NAME
---------- --------- ---------- -----------------------------------------------------
        18 AVAILABLE TSA        https://objectstorage.ap-tokyo-1.oraclecloud.com/n/<namespace>/b/dbts/o/tsa.dbf
        19 AVAILABLE TSB        +DATA/DB235_nrt/202C1977/DATAFILE/tsb.280.1177572805

Standard Editionの場合、表領域をオフラインに変更し、手動でデータファイルをObject Storageへアップロードし、データファイルのRENAMEを実施します。

ALTER TABLESPACE TSA read only;
ALTER TABLESPACE TSA offline;
$ sudo su - grid
$ asmcmd cp +DATA/DB235_nrt/202C1977/DATAFILE/tsa.281.1177572797 /tmp/tsa.dbf
$ sudo su - oracle
$ oci os object put -ns <namespace> -bn dbts --file /tmp/tse.dbf --name tsa.dbf --no-multipart
ALTER TABLESPACE TSA RENAME DATAFILE '+DATA/DB235_nrt/202C1977/DATAFILE/tsa.281.1177572797' to 'https://objectstorage.ap-tokyo-1.oraclecloud.com/n/<namespace>/b/dbts/o/tsa.dbf';
ALTER TABLESPACE TSA online;

select FILE_ID, STATUS, TABLESPACE_NAME, FILE_NAME from DBA_DATA_FILES
where TABLESPACE_NAME = 'TSA';

   FILE_ID STATUS    TABLESPACE FILE_NAME
---------- --------- ---------- -----------------------------------------------------
        18 AVAILABLE TSA        https://objectstorage.ap-tokyo-1.oraclecloud.com/n/<namespace>/b/dbts/o/tsa.dbf

select tablespace_name , status from dba_tablespaces where TABLESPACE_NAME = 'TSA';

TABLESPACE STATUS
---------- ---------
TSA        READ ONLY

おわりに

読取り専用表領域のデータファイルをObject Storageに移動することで、データ量増加時のストレージ費用を節約することができます。
DBMS_CLOUDのインストールは少し手間がかかりますが、データファイルの移動は簡単に実行できました。

参考情報

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?