- Oracle Cloud
- Oracle Database
OCI Computeメンテナンス時のダウンタイムを極小化!「ライブ移行」を徹底解説!
OCI Computeのメンテナンスの仕組みと、メンテナンスによるシステムのダウンタイムを最小限に抑えるライブ移行について解説します。
|
## 環境確認 --プライマリ SQL> select BANNER_FULL from v$version; BANNER_FULL --------------------------------------------------------------------------- Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.3.0.0.0 SQL> select db_unique_name, database_role from v$database; DB_UNIQUE_NAME DATABASE_ROLE -------------------- -------------------- ora19c PRIMARY --スタンバイ SQL> select db_unique_name, database_role from v$database; DB_UNIQUE_NAME DATABASE_ROLE -------------------- -------------------- ora19cs PHYSICAL STANDBY ## スタンバイをアクティブへ SQL> alter database open read only; データベースが変更されました。 SQL> alter database recover managed standby database disconnect; データベースが変更されました。 SQL> select db_unique_name, database_role, open_mode from v$database; DB_UNIQUE_NAME DATABASE_ROLE OPEN_MODE -------------------- -------------------- ----------------------------------- ora19cs PHYSICAL STANDBY READ ONLY WITH APPLY ## 通常、更新処理は行えない SQL> conn scott/tiger 接続されました。 SQL> select * from EMP; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ---------- ---------- ---------- ---------- -------- ---------- ---------- ---------- 7369 SMITH CLERK 7902 80-12-17 800 20 7499 ALLEN SALESMAN 7698 81-02-20 1600 300 30 : 7902 FORD ANALYST 7566 81-12-03 3000 20 7934 MILLER CLERK 7782 82-01-23 1300 10 12行が選択されました。 SQL> insert into EMP values (9999,'KNAKAGAKI','ENGINEER',7698,SYSDATE,1000,null,40); insert into EMP values (9999,'KNAKAGAKI','ENGINEER',7698,SYSDATE,1000,null,40) * 行1でエラーが発生しました。: ORA-16000: データベースまたはプラガブル・データベースは読取り専用アクセスでオープンされています
--スタンバイでADG_REDIRECT_DMLを有効化 SQL> ALTER SESSION ENABLE ADG_REDIRECT_DML; セッションが変更されました。 SQL> insert into EMP values (9999,'KNAKAGAKI','ENGINEER',7698,SYSDATE,1000,null,40); 1行が作成されました。 SQL> select * from EMP; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ---------- ---------- ---------- ---------- -------- ---------- ---------- ---------- 7369 SMITH CLERK 7902 80-12-17 800 20 7499 ALLEN SALESMAN 7698 81-02-20 1600 300 30 : 7902 FORD ANALYST 7566 81-12-03 3000 20 7934 MILLER CLERK 7782 82-01-23 1300 10 9999 KNAKAGAKI ENGINEER 7698 19-05-25 1000 40 13行が選択されました。 SQL> commit; コミットが完了しました。 --プライマリ SQL> select * from EMP; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ---------- ---------- ---------- ---------- -------- ---------- ---------- ---------- 7369 SMITH CLERK 7902 80-12-17 800 20 7499 ALLEN SALESMAN 7698 81-02-20 1600 300 30 : 7902 FORD ANALYST 7566 81-12-03 3000 20 7934 MILLER CLERK 7782 82-01-23 1300 10 9999 KNAKAGAKI ENGINEER 7698 19-05-25 1000 40 13行が選択されました。
|
|
--プライマリ SQL> CREATE OR REPLACE TRIGGER SCOTT.logon_adg_redirect_dml AFTER LOGON ON SCOTT.SCHEMA 2 BEGIN 3 EXECUTE IMMEDIATE 'ALTER SESSION ENABLE ADG_REDIRECT_DML'; 4 END; 5 / トリガーが作成されました。 --スタンバイ SQL> select OWNER,TRIGGER_NAME,STATUS from DBA_TRIGGERS 2 where TRIGGER_NAME='LOGON_ADG_REDIRECT_DML'; OWNER TRIGGER_NAME STATUS ---------- ------------------------- ---------- SCOTT LOGON_ADG_REDIRECT_DML ENABLED
|
|
▲ログイン後、データが参照できる状態に
|
|
BIツールを利用して分析処理をしていると「別の観点でグラフを追加したい」や「(年や地域など)デフォルトで選択されている値を変更したい」というようなちょっとした操作を行いたくなることもあります。しかし、こうした追加や変更を保存をするにはリポジトリの更新を伴うため、Read Only環境で行うことはできませんでした。
DMLリダイレクションが利用できることで、グラフの追加もスタンバイ側でできるようになります。実際にグラフの追加→保存を行った際のSQLトレースを採取し、リポジトリテーブルへのINSERT処理が行われていることを確認しています。
|
|
SQL ID: fnnu4qsv741c4 Plan Hash: 0 INSERT INTO WF_REPOSOBJ (HANDLE, APPNAME, CREATEDBY, CREATEDON, DEF_LNG, EXP_DATE, EXT_ID, LASTACCESSBY, LASTACCESSON, LASTMODBY, LASTMODON, OBJNAME, OBJTYPE, PRT_PATH, RSNAME, SRT_ORDER, CLASSNAME) VALUES (:1 , :2 , :3 , :4 , :5 , :6 , :7 , :8 , :9 , :10 , :11 , :12 , :13 , :14 , :15 , :16 , :17 ) call count cpu elapsed disk query current rows ------- ------ -------- ---------- ---------- ---------- ---------- ---------- Parse 1 0.00 0.00 0 0 0 0 Execute 1 0.01 0.39 0 0 3 1 Fetch 0 0.00 0.00 0 0 0 0 ------- ------ -------- ---------- ---------- ---------- ---------- ---------- total 2 0.01 0.39 0 0 3 1 Misses in library cache during parse: 1 Misses in library cache during execute: 1 Optimizer mode: ALL_ROWS Parsing user id: 106 Elapsed times include waiting on following events: Event waited on Times Max. Wait Total Waited ---------------------------------------- Waited ---------- ------------ single-task message 1 0.02 0.02 SQL*Net message from dblink 12 0.13 0.35 SQL*Net message to dblink 11 0.00 0.00 SQL*Net vector data to dblink 2 0.00 0.00 asynch descriptor resize 1 0.00 0.00 Disk file operations I/O 1 0.00 0.00 standby query scn advance 1 0.92 0.92 SQL*Net message to client 1 0.00 0.00 SQL*Net message from client 1 0.00 0.00
このようにDMLリダイレクションを用いることで、スタンバイデータベースを参照しているBIツールから発行される内部的なDMLをカバーすることができ、スタンバイのリソースを有効に活用できます。
ただし、動作としてはデータベースリンクにて処理をプライマリ側にリダイレクトしています。BIツールからのログインやグラフの追加などに伴うリポジトリ更新のような低負荷/低頻度な処理であれば問題ありませんが、バッチ処理をスタンバイ側で実行するなど、大量更新処理の実行は想定されていません。
2021年 18日目
Oracle Databaseのサポート対応で依頼することの多いファイルとコマンド
https://www.ashisuto.co.jp/db_blog/article/jpoug-oracledb-logfiles-command.html
2020年 17日目
Oracle Databaseバージョンアップ後の性能劣化で試したい暫定対処
https://www.ashisuto.co.jp/db_blog/article/jpoug-vup-temp-solution.html
2019年 20日目
【Oracle Database Cloud】"超"現実的に考える!Oracle CloudへのDB移行ガイド
https://www.ashisuto.co.jp/db_blog/article/20191220_cloud.html
2017年 14日目
Oracle Database 12cR2へのアップグレード後に発生するORA-01017
https://www.ashisuto.co.jp/db_blog/article/201712-ora-01017.html
2016年 9日目
【Oracle Database】2016年にサポートにお問い合わせをいただいたORAエラー TOP5
https://www.ashisuto.co.jp/db_blog/article/2016_oerr_rank.html
2015年 15日目
パフォーマンスダウンを「再現待ち」にしないための準備
https://www.ashisuto.co.jp/db_blog/article/20151215_oracle_pfmdwn.html
|
アシスト北海道 2016年アシスト北海道へ入社後、Oracle Databaseのサポート業務に従事。入社2年目より夜間休日帯など営業時間外の緊急対応を主に担当。現在は通常時間帯のサポート業務を担当しており、第一線で日々奮闘中。...show more
|
|
アシスト北海道 2016年にアシスト北海道へ入社し、WebFOCUSのサポートを担当。コア機能のサポートに加え、オプション製品(Resource Analyzer等)のサポートを行っている。
|
■本記事の内容について
本記事に示した定義及び条件は変更される場合があります。あらかじめご了承ください。
■商標に関して
・Oracle®、Java、MySQL及びNetSuiteは、Oracle、その子会社及び関連会社の米国及びその他の国における登録商標です。
・Amazon Web Services、AWS、Powered by AWS ロゴ、[およびかかる資料で使用されるその他の AWS 商標] は、Amazon.com, Inc. またはその関連会社の商標です。
文中の社名、商品名等は各社の商標または登録商標である場合があります。
OCI Computeのメンテナンスの仕組みと、メンテナンスによるシステムのダウンタイムを最小限に抑えるライブ移行について解説します。
2024年9月ラスベガスで開催された「Oracle CloudWorld 2024」。そのハイライトとアシストの注目ポイントをイベント全体の雰囲気とともにお伝えします。
OCIで提供されている生成AIサービスとGPUインスタンスを前回の記事「生成AIにGPUが適している理由」で紹介しました。本記事では、GPUインスタンスをデプロイして、インスタンス上でLLM(大規模言語モデル)の動作環境を構築する方法をご紹介します。