ここでは、Symfoware抽出レプリケーションがサポートするデータベースの機能範囲と注意事項について説明します。
データベース機能のサポート範囲
データ項目の長さと属性
その他の注意事項
レプリケーションが可能なSymfoware ServerまたはEnterprise Postgresのデータベース機能のサポート範囲を説明します。
レプリケーション可能なデータベースの文字コードセットは以下です。
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またはEnterprise Postgresでは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またはEnterprise Postgresの環境変数を指定することにより、チューニングが可能です。ただし、以下の環境変数については無効です。
PGHOST
PGHOSTADDR
PGPORT
PGDATABASE
PGUSER (注)
PGPASSWORD (注)
PGPASSFILE (注)
PGAPPNAME
PGCLIENTENCODING
注) Linkexpress Replication optionコマンドのオプションに、Symfoware ServerまたはEnterprise Postgresへの接続パラメタとして指定している場合に無効となります。
参照
Symfoware ServerまたはEnterprise Postgresの環境変数についての詳細は、Symfoware ServerまたはEnterprise Postgresのマニュアルを参照してください。
Enterprise Postgres が提供する以下の機能と組み合わせることはできません。
災害対策運用
ロジカルレプリケーション
宣言的パーティショニング
マテリアライズド・ビュー
SCRAM認証
スケールアウト機能
以下の機能は格納機能では採用していません。
高速データロード機能
ストリーミングレプリケーションなどのLinkexpress Replication option以外のレプリケーション機能と同時に使用することはできません。
列のデータ型の定義属性として、文字数、精度または位取りの指定がない場合には、データベースへの格納が想定されるデータの最大長を元に、抽出データ格納ファイル内の抽出データの長さを決定することが必要です。
決定した長さは、抽出定義およびDBサービス定義にデータ項目の長さとして指定します。
抽出定義またはDBサービス定義のデータ項目の長さの指定に考慮が必要な場合について以下に示します。それ以外については、データ型の属性に従った値を採用します。
データ型 | 定義属性 | 抽出定義 | DBサービス定義 |
---|---|---|---|
DECIMAL型 | 精度または位取りの指定がない場合 | 常に精度と位取りの指定が必要 | 常に精度と位取りの指定が必要 |
NUMERIC型 | |||
CHARACTER型 | 文字長の制限がない場合 | 差分データの形式が標準形式の場合には長さ(バイト数)の指定が必要 | 常に長さ(バイト数)の指定が必要 |
CHARACTER VARYING型 | |||
NATIONAL CHARACTER型 | |||
NATIONAL CHARACTER VARYING型 | |||
BYTEA型 | - |
注意
Symfoware ServerまたはEnterprise Postgresでは文字列型のデータ型に指定可能な制限値は文字数となります。一方、抽出定義に指定する差分データの長さやDBサービス定義の入力データ項目に指定する長さはバイト数であることから、文字数よりも大きな値を指定する必要があります。
抽出データ格納ファイル内の抽出データの属性は、データベースのデータ型に従います。ただし、複写元システムでのデータ抽出については一部、以下のデータ型について、異なる属性である可変長文字列型(CHARACTER VARYING)として抽出します。
固定長文字列型(CHARACTER)
各国語文字列型(NATIONAL CHARACTER)
可変長各国語文字列型(NATIONAL CHARACTER VARYING)
ここでは、上記以外の特に注意が必要な事項について説明します。
Symfoware ServerまたはEnterprise Postgresの異常や、Linkexpress Replication optionのシステムファイルのディスク破壊などの理由により、一括差分複写業務が異常終了した場合には、全複写を行い、複写元データベースと複写先データベースの同期をとる必要があります。
Linkexpress Replication optionでは、Symfoware ServerまたはEnterprise Postgresの共有メモリバッファやテーブル空間を使用して差分ログ取得を行うため、データベースの業務に影響を及ぼさないように必要に応じてチューニングを行ってください。レプリケーションのチューニングについては“1.2.13 レプリケーションのチューニングについて”を参照してください。
レプリケーション対象の表には、Linkexpress Replication optionが差分ログを取得するトリガを生成します。そのため、利用者プログラムへのオーバヘッドを考慮した運用設計を実施してください。