OCI Database with PostgreSQLのスケール時の動作

# はじめに

OCI Database with PostgreSQL は Oracle Cloud Infrastructure 上で動かすことができるフルマネージドな PostgreSQL の DBaaS になります。
リリース当初はスケールアップ・ダウンなどの操作はできませんでしたが、いつの間にかできるようになっていたので、どのような動きになるのか確認してみました。

# スケール時の動作

次図のような、2OCPU 2ノード構成(プライマリ・レプリカ)のデータベースに対して毎秒接続してクエリ(インサート)を実行しつつ 4OCPU へスケールアップしてみます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2313926/a9816fee-9f71-6584-7d20-14baf9d1013d.png)

「その他のアクション」から「ハードウェア構成の編集」を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2313926/0a1aad47-35f3-0de8-4872-998a8a999b99.png)

4OCPUのシェイプを選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2313926/a8da6b73-bcf9-25f0-9166-68eb985313ff.png)

ステータスが「Updating」に変わります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2313926/b4b39943-4a24-b226-9d24-5a5a6cf0eb5d.png)

実行していたインサート処理が12秒程度失敗していますが、その後正常に戻っています。

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

 id  |             dt
-----+----------------------------
 227 | 2024-12-22 07:27:53.268346
(1 row)

Sun Dec 22 07:27:53 GMT 2024
psql: could not connect to server: Connection refused
        Is the server running on host "10.0.2.64" and accepting
        TCP/IP connections on port 5432?
Sun Dec 22 07:27:54 GMT 2024
psql: could not connect to server: Connection refused
        Is the server running on host "10.0.2.64" and accepting
        TCP/IP connections on port 5432?
Sun Dec 22 07:27:55 GMT 2024
psql: could not connect to server: Connection refused
        Is the server running on host "10.0.2.64" and accepting
        TCP/IP connections on port 5432?
Sun Dec 22 07:27:56 GMT 2024
psql: could not connect to server: Connection refused
        Is the server running on host "10.0.2.64" and accepting
        TCP/IP connections on port 5432?
Sun Dec 22 07:27:57 GMT 2024
psql: could not connect to server: Connection refused
        Is the server running on host "10.0.2.64" and accepting
        TCP/IP connections on port 5432?
Sun Dec 22 07:27:58 GMT 2024
psql: could not connect to server: Connection refused
        Is the server running on host "10.0.2.64" and accepting
        TCP/IP connections on port 5432?
Sun Dec 22 07:27:59 GMT 2024
psql: could not connect to server: Connection refused
        Is the server running on host "10.0.2.64" and accepting
        TCP/IP connections on port 5432?
Sun Dec 22 07:28:00 GMT 2024
psql: could not connect to server: Connection refused
        Is the server running on host "10.0.2.64" and accepting
        TCP/IP connections on port 5432?
Sun Dec 22 07:28:01 GMT 2024
psql: could not connect to server: Connection refused
        Is the server running on host "10.0.2.64" and accepting
        TCP/IP connections on port 5432?
Sun Dec 22 07:28:02 GMT 2024
psql: could not connect to server: Connection refused
        Is the server running on host "10.0.2.64" and accepting
        TCP/IP connections on port 5432?
Sun Dec 22 07:28:03 GMT 2024
psql: could not connect to server: Connection refused
        Is the server running on host "10.0.2.64" and accepting
        TCP/IP connections on port 5432?
Sun Dec 22 07:28:04 GMT 2024

 id  |             dt
-----+----------------------------
 228 | 2024-12-22 07:28:05.451602
(1 row)
Sun Dec 22 07:28:05 GMT 2024
```

しばらくたつと、ステータスが「Active」に戻り、OCPU数も 4 に変更されていることが確認できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2313926/f1a6b820-0f88-b665-06b7-87fd498ebe04.png)


# まとめ

OCI Database with PostgreSQLのスケールアップは～15秒程度で実施できることが確認できました。
現時点ではAurora Serverless v2のような無停止や、Cloud SQLのNear Zero Downtimeのような動作ではありませんが、DBaaSとしては次第点というところでしょうか。
OCI Database with PostgreSQLはIPアドレスのエンドポイントもあるので、DNS切替などを待たなくて良いのは良いところかな、と思いました。

なお、今回はマルチノードで実施しましたが、シングルノードでも同様の確認を実施したところ、ほぼ同様の動作でした。