Oracle Databaseにログインし、テーブル作成してみた


この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので十分ご注意ください。

はじめに

これまでワードプレスサイトを作成する場合などでデータベースではMySQLを使用してきましたが、企業ではOracle Databaseを利用することが多いと聞き、操作方法を学ぶためにログインやテーブル作成をしてみました。

Oracle Databaseとは

Amazon RDS for Oracle は、クラウドでの Oracle デプロイメントの設定、運用、スケーリングを容易にするフルマネージド型の商用データベースです。

引用:Amazon RDS for Oracle

Oracle DatabaseでSQLコマンド操作

準備

Amazon RDS for OracleとSQLPlus導入とデータベースに入るためにEC2インスタンスが必要になります。

Amazon RDS for Oracle作成

ログインと簡単な操作のみを目的としているため、最低限の機能で作成します。

Oracle Database

Oracle Database

Oracle Database

Oracle Database

Oracle Database

Oracle Database

Oracle Database

Oracle Database

Oracle Database

Oracle Database

RDSのセキュリティグループを変更

インバウンドルールにて、EC2インスタンスのプライベートIPを許可します。

タイプ ソース
Oracle-RDS EC2プライベートIP

Oracle Database

SQL*Plusインストール

Oracle DatabaseにてSQLコマンドを使用するために、SQL*Plusが必要になりますのでEC2インスタンスにインストールします。

Oracle Instant Client basicとSQL*Plusのrpmファイルをダウンロードします。

Oracle Instant Client basic:
Oracle DatabaseでOCI、OCCI、JDBC OCIアプリケーションを実行するのに必要なすべてのファイル

SQL*Plus:
SQLとPL/SQLの文およびスクリプトを実行するためのSQL*Plusコマンドライン・ツールを備える追加のパッケージ

引用:Oracle Instant Client

[ec2-user@ip-172-31-15-120 ~]$ wget https://download.oracle.com/otn_software/linux/instantclient/19600/oracle-instantclient19.6-basic-19.6.0.0.0-1.x86_64.rpm
[ec2-user@ip-172-31-15-120 ~]$ wget https://download.oracle.com/otn_software/linux/instantclient/19600/oracle-instantclient19.6-sqlplus-19.6.0.0.0-1.x86_64.rpm

lsコマンドにて、ダウンロードできていることを確認します。

[ec2-user@ip-172-31-15-120 ~]$ ls
oracle-instantclient19.6-basic-19.6.0.0.0-1.x86_64.rpm
oracle-instantclient19.6-sqlplus-19.6.0.0.0-1.x86_64.rpm

ダウンロードしたファイルをインストールします。

[ec2-user@ip-172-31-15-120 ~]$ sudo yum install -y oracle-instantclient19.6-basic-19.6.0.0.0-1.x86_64.rpm
[ec2-user@ip-172-31-15-120 ~]$ sudo yum install -y oracle-instantclient19.6-sqlplus-19.6.0.0.0-1.x86_64.rpm

SQL*Plusのバージョン確認コマンドでインストールされていることを確認します。

[ec2-user@ip-172-31-15-120 ~]$ sqlplus64 -V
SQL*Plus: Release 19.0.0.0.0 - Production
Version 19.6.0.0.0

ログイン

Oracle Databaseにログインします。

[ec2-user@ip-172-31-15-120 ~]$ sqlplus ユーザー名/パスワード@RDSエンドポイント:1521/データベース名

ログインが成功するとこのように表示されます。

Connected to:
Oracle Database 19c Standard Edition 2 Release 19.0.0.0.0 - Production
Version 19.18.0.0.0

テーブル作成

テーブルのカラムを作成します。
カラム名と型(文字数)を指定します。

SQL> create table rds01 (id number, name varchar2(10), address varchar2(10), age number);

データを入力します。

SQL> insert all
into rds01 values (1, 'Suzuki', 'Tokyo', 30) 
into rds01 values (2, 'Yamada', 'Kanagawa', 25)
into rds01 values (3, 'Kato', 'Chiba', 22)
into rds01 values (4, 'Ogawa', 'Hyogo', 35)
into rds01 values (5, 'Sudo', 'Miyagi', 45)
into rds01 values (6, 'Sato', 'Chiba', 27)
select * from dual;

作成したテーブルを確認します。

SQL> select * from rds01;

        ID NAME       ADDRESS           AGE
---------- ---------- ---------- ----------
         1 Suzuki     Tokyo              30
         2 Yamada     Kanagawa           25
         3 Kato       Chiba              22
         4 Ogawa      Hyogo              35
         5 Sudo       Miyagi             45
         6 Sato       Chiba              27

テーブルを削除する場合は、こちらのコマンドを使用します。

SQL> drop table rds01;

Table dropped.

RDSのよく使用される機能

作成済みRDSのCPUコア数やディスクサイズの拡張方法

RDSを選択し、変更をクリックします。
RDS拡張

CPUコア数、メモリを変更する場合は、インスタンスの設定から変更します。
RDS拡張

ディスクサイズを変更する場合は、ストレージからストレージタイプ、ストレージ割り当てを変更します。
RDS拡張

スケールアップ時のダウンタイム

項目 ダウンタイム
DB インスタンスクラス ダウンタイムが発生
ストレージタイプ 汎用 SSDまたはプロビジョンド IOPS SSD⇔マグネティック
短いダウンタイムが発生
ストレージ割り当て ダウンタイムは発生しない

参照:DB インスタンスの設定

メンテナンスウィンドウ

すべての DB インスタンスには週次のメンテナンスウィンドウがあり、その期間内にシステムの変更が適用されます。メンテナンスウィンドウは、変更やソフトウェアのパッチなどが実行されるタイミングをコントロールする機会と考えます。

引用:Amazon RDS メンテナンスウィンドウ

RDS作成画面のメンテナンスウィンドウの項目にて、ウィンドウを選択を選びます。
メンテナンスを行う開始日(曜日)、開始時間(UTC)、期間(時間)を指定します。
RDSメンテナンスウィンドウ

自動バックアップ

デフォルトで有効になっている Amazon RDS の自動バックアップ機能により、データベースとトランザクションログがバックアップされます。Amazon RDS では DB インスタンスのストレージボリュームのスナップショットを自動的に作成し、個々のデータベースだけではなく、その DB インスタンス全体をバックアップします。

引用:自動バックアップ

RDS作成画面のバックアップの項目にて、自動バックアップを有効にしますを選択します。
バックアップ保持期間(日)を指定します。
RDS自動バックアップ

RDSを復元する際には、自動バックアップから復元するRDSを選択し、アクション内の特定時点への復元から復元することができます。
RDS自動バックアップ

まとめ

今回Oracle Databaseを使用してみて、同じSQLに属しているMySQLとは操作が異なるところが多々あり、勉強になりました。今後、他の機能にも触れて使いこなせるようにしたいと思います。

Last modified: 2023-03-17

Author