ここでは、Symfoware抽出レプリケーションがサポートするデータベースの機能範囲と注意事項について説明します。
データベース機能のサポート範囲
データ項目の長さと属性
その他の注意事項
レプリケーションが可能なSymfoware Serverのデータベース機能のサポート範囲を説明します。
レプリケーション可能なデータベースの文字コードセットは以下です。
Linuxの場合
UTF8
SolarisおよびWindowsの場合
UTF8
EUC_JP
一意性制約の指定がある表に対するレプリケーションが可能です。
それ以外の、一時表、ビュー、シーケンスまたはラージオブジェクトなどをレプリケーション対象にすることはできません。
一括差分複写で取得可能な差分データは、以下のSQL文によって行われたデータベースへの更新動作によるものです。
INSERT文
UPDATE文
DELETE文
COPY文(INSERT文の扱いです)
TRUNCATE文
注意
上記以外の方法でデータベースを更新すると、複写元データベースと複写先データベース間の整合性が保てなくなりますので、一括差分複写業務の運用中は実行しないようにしてください。誤って実行してしまった場合には、複写元データベースと複写先データベースの同期をとるために、全複写を行う必要があります。
列のデータ型には、レプリケーションがサポートしているデータ型と未サポートのデータ型があります。また、サポートしているデータ型にも扱える定義属性に条件があります。以下に詳細を示します。
データ型 | サポート可否 | 利用可能な定義属性の条件 |
---|---|---|
SMALLINT型 | ○ | |
INTEGER型 | ○ | |
NUMERIC型 | ○ | 精度が18桁以下の場合 |
DECIMAL型 | ○ | (注1) |
REAL型 | ○ | |
DOUBLE PRECISION型 | ○ | |
FLOAT型 | ○ | (注2) |
CHARACTER型 | ○ | 文字数の上限が31,996以下または無制限の場合 |
CHARACTER VARYING型 | ○ | |
NATIONAL CHARACTER型 | ○ | |
NATIONAL CHARACTER VARYING型 | ○ | |
BYTEA型 | ○ | |
TIMESTAMP型 | ○ | 秒数フィールドの小数点以下の桁数が0または指定がない場合 |
TIMESTAMP WITH TIME ZONE型 | × | |
DATE型 | ○ | |
TIME型 | ○ | 秒数フィールドの小数点以下の桁数が0または指定がない場合 |
TIME WITH TIME ZONE型 | × | |
INTERVAL型 | × | |
INTERVAL YEAR型 | ○ | |
INTERVAL YEAR TO MONTH型 | ○ | |
INTERVAL MONTH型 | ○ | |
INTERVAL DAY型 | ○ | |
INTERVAL DAY TO HOUR型 | ○ | |
INTERVAL DAY TO MINUTE型 | ○ | |
INTERVAL DAY TO SECOND型 | ○ | 秒数フィールドの小数点以下の桁数が0または指定がない場合 |
INTERVAL HOUR型 | ○ | |
INTERVAL HOUR TO MINUTE型 | ○ | |
INTERVAL HOUR TO SECOND型 | ○ | 秒数フィールドの小数点以下の桁数が0または指定がない場合 |
INTERVAL MINUTE型 | ○ | |
INTERVAL MINUTE TO SECOND型 | ○ | 秒数フィールドの小数点以下の桁数が0または指定がない場合 |
INTERVAL SECOND型 | ○ | 秒数フィールドの小数点以下の桁数が0または指定がない場合 |
その他 | × |
注1) Symfoware ServerではDECIMAL型はNUMERIC型と等価の扱いであるため、Linkexpress Replication optionではNUMERIC型として扱います。
注2) 桁数が1~24桁の場合はREAL型、桁数が25~53桁の場合はDOUBLE PRECISION型として扱います。
参考
未サポートのデータ型が定義されている表をレプリケーション対象とする場合には、抽出対象の列から除外することで対処可能です。
列のデータ型によっては、実際に扱えるデータの長さや桁数の上限値、決められた精度などレプリケーションを行う上での制限があります。以下に制限事項を示します。
データ型 | 制限事項 |
---|---|
DECIMAL型 |
|
NUMERIC型 | |
CHARACTER型 |
|
CHARACTER VARYING型 | |
NATIONAL CHARACTER型 | |
NATIONAL CHARACTER VARYING型 | |
DATE型 | 西暦紀元前の日付および西暦紀元後10,000年以降の日付のデータ |
TIMESTAMP型 |
|
TIME型 | 秒数フィールドの小数点以下の桁数は切り捨てて、全複写および一括差分複写を継続します (注2) |
INTERVAL型 |
|
注1) 抽出データ項目の長さについては、“1.1.1.2 データ項目の長さと属性”を参照してください。
注2) 複写先データベースの表の一意性制約の構成列に含める場合には、小数点以下の桁数を扱わないデータを対象とするなどの注意が必要です。
注3) INTERVAL型には以下の制限事項があります。
データ型 | 扱える値の範囲 | その他の制限事項 |
---|---|---|
INTERVAL YEAR TO MONTH型 | -178,956,970年8ヶ月から +178,956,970年7ヶ月 | - |
INTERVAL YEAR型 | -178,956,970年から +178,956,970年 | - |
INTERVAL MONTH型 | -999,999,999ヶ月から +999,999,999ヶ月 | 制限2:月の単位が9桁を超えるデータ |
INTERVAL DAY TO HOUR型 | -999,999,999日99時間から +999,999,999日99時間 | 制限1:年または月の単位の値が格納されているデータ 制限2:日の単位が9桁を超えるデータ 制限3:時間の単位が2桁を超えるデータ 制限4:日と時間の単位で符号が異なるデータ |
INTERVAL DAY TO MINUTE型 | -999,999,999日99時間59分から +999,999,999日99時間59分 | |
INTERVAL DAY TO SECOND型 | -999,999,999日99時間59分59秒 から +999,999,999日99時間59分59秒 | |
INTERVAL DAY型 | -999,999,999日から +999,999,999日 | 制限1:年または月の単位の値が格納されているデータ 制限2:日の単位が9桁を超えるデータ |
INTERVAL HOUR TO MINUTE型 | -999,999,999時間59分から +999,999,999時間59分 | 制限1:年または月または日の単位の値が格納されているデータ 制限2:時間の単位が9桁を超えるデータ |
INTERVAL HOUR TO SECOND型 | -999,999,999時間59分59秒から +999,999,999時間59分59秒 | |
INTERVAL HOUR型 | -999,999,999時間から +999,999,999時間 | |
INTERVAL MINUTE TO SECOND型 | -999,999,999分59秒から +999,999,999分59秒 | 制限1:年または月または日の単位の値が格納されているデータ 制限2:分の単位が9桁を超えるデータ |
INTERVAL MINUTE型 | -999,999,999分から +999,999,999分 | |
INTERVAL SECOND型 | -999,999,999秒から +999,999,999秒 | 制限1:年または月または日の単位の値が格納されているデータ 制限2:秒の単位が9桁を超えるデータ |
注意
レプリケーションの運用中に制限を超えるデータを検出した場合には、全複写および一括差分複写が異常終了します。そのため、レプリケーションの定義を見直してから、再定義を行い、全複写による同期をとってください。
参考
抽出定義時に制限を超える可能性があるデータ型が含まれるとシステムが判断した場合には、警告メッセージを出力して定義を継続します。
抽出レコードの長さには以下の制限があります。
2,147,483,647バイト以下 または
32,000バイト以下(BYTEA型の抽出データ項目を含まない場合)
Linkexpress Replication optionのコマンドは、Symfoware Serverの環境変数を指定することにより、チューニングが可能です。ただし、以下の環境変数については無効です。
PGHOST
PGHOSTADDR
PGPORT
PGDATABASE
PGUSER (注)
PGPASSWORD (注)
PGPASSFILE (注)
PGAPPNAME
PGCLIENTENCODING
注) Linkexpress Replication optionコマンドのオプションに、Symfoware Serverへの接続パラメタとして指定している場合に無効となります。
参照
Symfoware Serverの環境変数についての詳細は、Symfoware Serverのマニュアルを参照してください。
ストリーミングレプリケーションなどのLinkexpress Replication option以外のレプリケーション機能と同時に使用することはできません。
列のデータ型の定義属性として、文字数、精度または位取りの指定がない場合には、データベースへの格納が想定されるデータの最大長を元に、抽出データ格納ファイル内の抽出データの長さを決定することが必要です。
決定した長さは、抽出定義およびDBサービス定義にデータ項目の長さとして指定します。
抽出定義またはDBサービス定義のデータ項目の長さの指定に考慮が必要な場合について以下に示します。それ以外については、データ型の属性に従った値を採用します。
データ型 | 定義属性 | 抽出定義 | DBサービス定義 |
---|---|---|---|
DECIMAL型 | 精度または位取りの指定がない場合 | 常に精度と位取りの指定が必要 | 常に精度と位取りの指定が必要 |
NUMERIC型 | |||
CHARACTER型 | 文字長の制限がない場合 | 差分データの形式が標準形式の場合には長さ(バイト数)の指定が必要 | 常に長さ(バイト数)の指定が必要 |
CHARACTER VARYING型 | |||
NATIONAL CHARACTER型 | |||
NATIONAL CHARACTER VARYING型 | |||
BYTEA型 | - |
注意
Symfoware Serverでは文字列型のデータ型に指定可能な制限値は文字数となります。一方、抽出定義に指定する差分データの長さやDBサービス定義の入力データ項目に指定する長さはバイト数であることから、文字数よりも大きな値を指定する必要があります。
抽出データ格納ファイル内の抽出データの属性は、データベースのデータ型に従います。ただし、複写元システムでのデータ抽出については一部、以下のデータ型について、異なる属性である可変長文字列型(CHARACTER VARYING)として抽出します。
固定長文字列型(CHARACTER)
各国語文字列型(NATIONAL CHARACTER)
可変長各国語文字列型(NATIONAL CHARACTER VARYING)
ここでは、上記以外の特に注意が必要な事項について説明します。
Symfoware Serverの異常や、Linkexpress Replication optionのシステムファイルのディスク破壊などの理由により、一括差分複写業務が異常終了した場合には、全複写を行い、複写元データベースと複写先データベースの同期をとる必要があります。
Linkexpress Replication optionでは、Symfoware Serverの共有メモリバッファやテーブル空間を使用して差分ログ取得を行うため、データベースの業務に影響を及ぼさないように必要に応じてチューニングを行ってください。レプリケーションのチューニングについては“1.2.13 レプリケーションのチューニングについて”を参照してください。
レプリケーション対象の表には、Linkexpress Replication optionが差分ログを取得するトリガを生成します。そのため、利用者プログラムへのオーバヘッドを考慮した運用設計を実施してください。