AからBへの変換
キャラクタ・セット移行のタイプの1つ。AからBへの変換では、新しいUnicodeデータベースを作成し、エクスポート・ユーティリティ、インポート・ユーティリティまたはデータ・ポンプを使用してすべてのデータを既存のデータベースから新しいデータベースに移動します。
「インライン変換」を参照してください。
一括クレンジング・ウィザード
一括で3つの処理の実行を可能にするウィザード:
CHAR
およびVARCHAR2
表列の長さセマンティクスをバイト・セマンティクスからキャラクタ・セマンティクスに一括で変更
即時クレンジング・モードまたはスケジュール・クレンジング・モードのいずれかで文字長セマンティクスに移行する一括クレンジングを実行できます。スケジュール・モードでは、文字長セマンティクスへの移行は、変換フェーズ中に本番環境を中断することなく適用されます。DMUを検証モードで使用している場合は、即時のクレンジング・オプションのみが使用可能になります。
「問題のあるデータの変換を許可する」列変換プロパティの設定
このプロパティを「はい」に設定すると、列のスキャン結果でいくつかの値に変換の問題がある、つまり変換後の値に置換文字が含まれるか、変換後の値が切り捨てられる問題があることが示された場合でも、DMUでデータの変換を実行できます。列またはデータ型の制限を超えたデータを自動的に切り捨てる場合や、破損した値があってもこのデータを使用するアプリケーションにとって大きな影響はないような場合には、これを使用すると便利です。
列値のすべてのバイト・パターンまたは文字パターンを置換または削除
場合によっては、個々のデータ例外の性質を分析した後、障害になっているバイトまたは文字を有効な同等のバイトまたは文字セットに置き換えるか、すべて削除することによってデータを変更できます。同じ問題の兆候が複数のデータベース・オブジェクトにある場合、そのような置換操作は一括での実行が望ましい可能性があります。パターンに基づいた置換クレンジング・オプションによって、選択したデータベース・オブジェクトのすべてのソース・パターンをターゲット・パターンへ置き換えることが可能になります。単一のバイトまたは文字を置き換えることもでき、バイトまたは文字を文字列で指定することもできます。
キャラクタ・セマンティクス
キャラクタ・セマンティクスは、可変幅のマルチバイト文字列の記憶要件を定義する場合に役立ちます。たとえば、Unicodeデータベース(AL32UTF8)で、VARCHAR2
列を英語の5文字とともに最大5文字の中国語文字を格納できるように定義する必要があるとします。バイト・セマンティクスを使用すると、この列には、長さ3バイトである中国語文字用に15バイトと、長さ1バイトである英語文字用に5バイト、合計20バイトが必要です。キャラクタ・セマンティクスを使用すると、この列に必要な文字数は10となります。キャラクタ・セマンティクスを使用すると、データベース・キャラクタ・セットとは関係なく文字数で列サイズを指定できます。
更新の確認ウィザード
DMUライブ・アップデート機能を使用すると、DMUの最新バージョンの有無を確認して、これをインストールできます。これは更新の確認ウィザードを使用して行い、これによってDMU更新センターから新しいバージョンのDMUが使用可能かどうかを確認できます。
CSALTERスクリプト
CSALTER
スクリプトは、Database Character Set Scannerユーティリティに付属しています。これは、キャラクタ・セットの移行方法としては最も簡単ですが、使用できるのは、すべてのスキーマ・データが、新しいキャラクタ・セットの完全なサブセットである場合のみです。
CSREPAIRスクリプト
パススルー構成を使用している場合、CSREPAIR
スクリプトを使用して、データベース・キャラクタ・セット・メタデータを修復できます。パススルー構成においては、(通常はNLS_LANG
クライアント設定を介して)クライアント・キャラクタ・セットがデータベース・キャラクタ・セットと同じになるように定義されていますが、データベース内の文字データが宣言済データベース・キャラクタ・セットとは異なるキャラクタ・セットで格納される可能性があります。CSREPAIR
スクリプトは、DMUリポジトリにアクセスすることにより、DMUクライアントと連携して動作します。これにより変更されるのはデータ・ディクショナリ・メタデータ内のデータベース・キャラクタ・セット宣言のみであり、データベース・データは変換されないことに注意してください。
CSSCANスクリプト
Database Character Set Scanner (CSSCAN
)は、Oracleデータベースから新しいデータベース・キャラクタ・セットへの移行の実行可能性を査定するコマンドライン・ユーティリティです。Database Character Set Scannerにより、データベースのすべての文字データがチェックされ、キャラクタ・セット・エンコーディングの変更による影響と問題点がテストされます。スキャンの終了時には、データベースを新規キャラクタ・セットに変換するために必要な作業の範囲を示すサマリー・レポートが生成されます。
Database Migration Assistant for Unicode (DMU)
キャラクタ・セットを移行するための、直覚的でユーザーフレンドリなGUIツール。これを使用すると、ワークロードを軽減し、すべての移行問題を確実に解決し、データ変換を適切かつ効率的に実行できます。
データベース・スキャン・レポート
データベース・スキャン・レポートにはデータベースのスキャンからの出力が表示され、様々な方法で結果を確認できます。このレポートは、データのステータスに基づいてフィルタリングしたり、カスタマイズすることができます。たとえば、変換後にデータ型制限を超えるデータを含むすべてのオブジェクトのみが表示されるように、レポートをフィルタリングできます。
拡張
レガシー・エンコーディングからUnicodeに移行する場合、Unicodeのエンコーディングのほうがバイト数が多いため、通常は変換で文字の値が拡張されます。その結果、データベースの領域要件が大きくなります。さらに、キャラクタ・セットをUnicodeに移行した後にCHAR
列およびVARCHAR2
列の幅が不足する可能性もあります。この場合、データが切り捨てられる危険があります。列の長さ制約を拡大したり、または、すでにデータ型の制限に達している場合は、列をCLOB
データ型に移行する必要があることもあります。
外部表
通常、外部表は変換の必要がありません。外部表(SQL*Loaderまたはデータ・ポンプ)のソース・ファイルのキャラクタ・セットが適切に宣言されていれば、データがファイルからフェッチされるたびにデータベースは自動的に文字データを新しいデータベース・キャラクタ・セットに変換します。パフォーマンス上の理由で、この変換が行われないようにファイルを完全に変換することも考慮してください。
インライン移行
最初に非ASCIIデータを特定してから、移行の変換フェーズでそのデータとメタデータのみが更新されるような、移行タイプの1つ。変更されるデータベース値の量は通常、データベースに格納されているすべての値のうちわずかな割合にすぎません。
「AからBへの変換」を参照してください。
無効なバイナリ表現
ユーザー・データでよくある問題は、列のデータが実際に宣言済データベース・キャラクタ・セットのデータでないことです。実際には別のキャラクタ・セットのデータであったり、バイナリ・データであったり(たとえば、イメージ、固有のワード・プロセッサ形式のドキュメント、またはカスタムの方法で暗号化されたテキストが含まれている)、1つの列に複数のキャラクタ・セットが存在している場合があります。この問題の原因として考えられるのは、(通常はNLS_LANG
クライアント設定を介して)クライアント・キャラクタ・セットがデータベース・キャラクタ・セットと同じになるように定義されているパススルー構成です。
パススルー構成
パススルー構成においては、(通常はNLS_LANG
クライアント設定を介して)クライアント・キャラクタ・セットがデータベース・キャラクタ・セットと同じになるように定義されています。これらのキャラクタ・セットが同じであるため、Oracle通信プロトコルでは変換が必要でないと判断され、クライアント・キャラクタ・セットからサーバー・キャラクタ・セットへの変換が行われません。クライアント・アプリケーションからのデータが実際に宣言済キャラクタ・セットのデータであるかぎり、この構成でも問題はありません。しかし、データのキャラクタ・セット変換も文字検証も実行されないため、どのようなバイト・シーケンスも実際にデータベースに格納され、そのままの状態で取得される可能性があります。クライアント・アプリケーションのみでデータが解釈されるかぎり、格納されたバイト・シーケンスがデータベース・キャラクタ・セットとは異なる文字エンコーディングに一致する場合や、読取り可能なテキストにまったく一致しない場合があります。
読取り専用オブジェクト
読取り専用の表および表領域は、読取り/書込みにしないかぎり変換できません。明示的に読取り専用とマークされた表、外部表、読取り専用表領域に格納された表などの表は、読取り専用です。このような表は、読取り/書込みにしないと変換できません。表が明示的に読取り専用とマークされている場合を除き(この場合は移行プロセスにより一時的に削除できます)、これ以外の前述の理由には、手動で対処する必要があります。
リポジトリ構成ウィザード
リポジトリを使用して移行の各ステップに必要な情報を管理できるウィザード。データベースに移行リポジトリがない場合、そのデータベースに接続するたびにリポジトリが自動的に作成されます。このウィザードはDMUユーザー・インタフェースから開始することもできます。
「移行リポジトリ」を参照してください。
スキャン
スキャンは、データのUnicodeへの移行の実行可能性を査定するプロセスです。このプロセスの一部として、DMUではデータベースから文字値を読み取ってターゲット・キャラクタ・セットに変換し、変換で変更される値、列に収まらない値、データ型に収まらない値、または無効な文字コードが含まれる値の数をカウントします。列内の値の変換後の最大長など、追加の統計も計算されます。