Oracle 19c Active Data Guard環境におけるパッチ適用およびロールバック手順

前提条件と環境の確認 本手順は、Oracle 19c(19.3.0.0.0)を対象としたパッチ適用プロセスを解説します。作業前に、プライマリ・スタンバイ両サーバーの環境変数($ORACLE_HOME)が適切に設定されていることを確認してください。 1. OPatchツールの更新 最新のRU(Release Update)を適用するためには、所定のバージョン以上のOPatchツールが必要です。以下のコマンドで ...

6月29日 23:16 投稿

Kettleを使用した大規模データ移行のパフォーマンス最適化手法

MySQLの最適化設定 データ移行先としてMySQLを使用する場合、以下の設定により大幅なパフォーマンス向上が見込めます。ここでは一時的なデータ移行用途としてMySQLを設定します。 MySQLのインストールと設定 Oracle公式サイトから64bit版MySQLをダウンロード 任意のディレクトリに解凍(例:D:\mysql-5.7.26-winx64) my.iniファイルを作成し以下の設定を記述 [mysqld ...

6月29日 23:11 投稿

SQL Server と Oracle 間の高並列データ転送設計(初期案と改良版)

システム要件:SQL Server の一時テーブル sqlservertemp_table に格納された COMPANY, OGB04, OGA01, OGA03 フィールドを、事前にリンク済みの Oracle インスタンス ds へ転送し、Oracle 側での条件付き検索を効率化する。 初期実装手順 Oracle 側にグローバル一時テーブルを作成 CREATE GLOBAL TEMPORARY TABLE param_buffer ( COMPANY VARCHAR2(50), OGB04 ...

6月27日 01:27 投稿

OracleのLEFT JOINを使用したクエリでCASE WHENが正しく評価されない問題

問題の概要 OracleでLEFT JOINを使用して関連付けたテーブルに対し、CASE WHEN式を用いた条件分岐が期待通りに動作しない場合があります。本稿では、具体的なクエリ例を基にこの現象について説明します。 問題のあるクエリ例 以下のクエリは、現金移動テーブル(RP_CASH_MOVEMENT)と台帳アイテムテーブル(RP_LEDGER_ITEM)をLEFT JOINで結合し、集計結果を判定してい ...

6月25日 18:33 投稿

OracleのRETURNING INTO句の使い方

1. 概要 RETURNING...INTO...句は、INSERT、UPDATE、またはDELETEステートメントと組み合わせて使用されます。これらのステートメントによって影響を受けた行の特定の列の値をPL/SQL変数に代入するために使用されます。これはSELECT...INTO...ステートメントに似ています。INSERT、UPDATE、DELETEの各ステートメントでRETURNING...INTO...が返す結果は異なります。 DELETE ...

6月24日 20:03 投稿

Oracle定期タスクの実装方法

1.ログ用テーブル作成 CREATE TABLE SAMPLE_LOG(RECORD_TIME DATE); 2.PL/SQLプロシージャ定義 CREATE OR REPLACE PROCEDURE LOG_INSERT_PROC AS BEGIN INSERT INTO SAMPLE_LOG VALUES (SYSDATE); END; 3.DBMS_JOBによる定期実行設定 DECLARE JOB_ID NUMBER; BEGIN dbms_job.submit( JOB_ID, -- ジョブ識別子 'LOG_INSERT_PROC;', ...

6月24日 18:12 投稿

Oracleにおける統計情報の役割とANALYZE・DBMS_STATSの活用ガイド

統計情報の概要と最適化の仕組み Oracle Databaseでクエリのパフォーマンスを最大限に引き出すには、コストベース最適化(CBO)を適切に機能させる必要があります。CBOはテーブルやインデックスの統計情報を参照し、実行コストが最小となる「実行計画」を選択します。 統計情報の収集には、主にANALYZEコマンドとDBMS_STATSパッケージの2つの手法が用いられます。かつて利 ...

6月21日 16:55 投稿

Oracleのリスナーとホワイトリスト

Oracleのリスナーとホワイトリスト リスナーの基本概念と設定: 経験から言うと、データベースのSIDとグローバルデータベース名は分けておくのが良い。設定時に混同しないようにするためだ。サーバ側とクライアント側の両方を設定する必要がある場合、両方の設定方法は同じだ。 Oracleリスナーは何をするのか?サーバ側に設置され、サーバベースのネットワークサービスで ...

6月20日 22:28 投稿

Oracleにおける文字列抽出の完全ガイド

Oracleでの文字列抽出手法の総合的なまとめ substr関数:文字列の一部を抽出する 構文:SUBSTR(文字列, 開始位置, [長さ]) 文字列:抽出元となる元の文字列です。 開始位置:抽出の開始位置で、1から数えます。負の値の場合は文字列末尾から数えます。 長さ:省略可能で、抽出する文字数を指定します。 例: SELECT SUBSTR('Hello SQL!', 1) FROM dual -- 全文字列を抽 ...

6月16日 16:30 投稿

Windows環境でOracleデータベースを再構築する最小構成手順

LinuxではOracleを別サーバーへ丸ごと移行する際、データベースを安全に停止した後、OSユーザー/グループを作り、環境変数を書き換え、$ORACLE_BASE 以下をコピーすれば再起動できる。Windowsでも同様に「OS再インストール後に最小手順で復旧」できるか検証した。 前提条件 OS再インストール前に D:\OracleBase 以下のディレクトリは丸ごと残してある バージョンは 11gR ...

6月15日 18:44 投稿