Faqs

Syniti DR (17)

Data Replicatorが強制停止することがある

本エラーは例えばOracle 11.2のクライアントを使用している場合「oracore11.dll」にて障害が発生した旨Windowsイベントログに記録されている可能性があります。
一部の条件下にて本事象が発生するケースがあり、エラー発生までの流れは以下の通りです。

1. DBMoto から Oracle へ Oracle クライアントで接続するためコネクションをオープンする
2. このオープンしたタイミングで Oracle クライアント側のoracore11.dll というファイル関連で何らかの障害が発生しエラーとなる可能性がある
3. 2に引きずられて DBMoto の Data Replicator が強制終了する

つまり、発生トリガーは1の「Oracle へのコネクションを確立した際」です。

これまで発生事例から Windows のダンプファイルの解析、マイクロソフト社のダンプ解析ツール ADPlus でさらに詳細を解析するなどし下記のことが判明しております。

・エラーは Oracle 側の DLL で発生している
・エラーは .NET Framework の外で発生している
・DBMoto はすべて .NET Framework 内で動作するので本エラーが DBMoto 起因である可能性は極めて低い
(DBMoto が原因の場合は .NET Framework 内でエラー発生する)
・再現するマシンが一部に限られている

回避策としてレプリケーション毎に Oracle への接続をオープンにしないようコネクションプールを有効にする方法がございます。設定手順は以下の通りです。

1. Data Replicator サービスを停止します
2. ターゲットの Oracle 接続を右クリック→「プロパティ」を開きます。
3. 接続 Oracle .NET Driver の右にあるボタンをクリックします。
4. Pooling が False になっているので True へ変更します。

これにより Oracle へのコネクションプーリングが有効となり、
本事象は発生しなくなります。

AS/400のレプリケーションで「レプリケーション検証機能」を使用すると文字変換が正しくないとのエラーが出ます。

DBMotoの機能に、レプリケーションのソースとターゲット双方のテーブル間で差異が生じていないかを確認するレプリケーション検証機能があります。
AS/400のテーブルで、VARGRAPHIC型もしくはGRAPHIC型があるテーブルで検証を行うと、「CCSID 65535とCCSID 13488の間の文字変換は正しくない」とのエラーメッセージが出力されることがあります。
このエラーメッセージは通常のレプリケーション中には発生せず、データは問題なくレプリケーションできていることが多いです。

sort_sequence_table_error

これは、このレプリケーション検証機能使用時に限り、DBMotoの「検証のソート・シーケンステーブル」設定が有効であるため、GRAPHIC型が文字変換を行おうとして失敗しています。
対処法は、この設定個所の部分を空欄にすることです。(設定変更時はData Replicatorの停止が必要です。)

sort_sequence_table

なお、通常のレプリケーションは、前述の通りこの設定を使用していないので、問題なく変換され動作します。

レプリケーション検証機能で正常なレコードがソースのみ、ターゲットのみのレコードとして表示されます。

レプリケーションの検証をすることで、ソースのみのレコード、ターゲットのみのレコード、ソースとターゲットで差異のあるレコードを確認できます。

しかし、本来、ソースにもターゲットにも存在し、差異のないレコードがソースのみ、ターゲットのみに存在するレコードとして表示されることがあります。

 

これは、DBMotoはソースとターゲットのレコードを比較する前に主キーをベースにレコードのソートを行いますが、このときのソースDBとターゲットDBのソートの仕様の違いによるものです。

例えば、Oracleの場合、大文字、小文字を区別してソートするため、D→aの順番でソートされ、MySQLの場合、大文字、小文字を区別せずソートするため、a→Dの順番でソートされます。

このソートの順番が異なるため、このような結果が生じます。

 

この事象を回避するため、検証機能のオプション「ORDER BY句」の「ソーステーブル」「ターゲットテーブル」に「LOWER(主キー)」を入力してください。こうすることで、大文字、小文字の区別なくソートが行えるため、問題なく検証することが可能です。

validation

シンクロナイゼーション レプリケーション作成時にエラーが発生します。 「接続’DB接続名’用に定義されたユーザ’sa’はsysadminであり、シンクロナイゼーションでは有効ではありません。sysadmin以外のユーザでログインを定義してください。また、ディストリビュータを作成し、トランザクションログを読むためにsysadminのログインIDを供給しています。」

SQL Serverの接続設定に「sa」以外のユーザをご利用ください。
シンクロナイゼーションでは、更新がループしないようにするため、接続設定に使用したユーザでの更新はレプリケーション対象として検出しない仕様となっております。
そのため、シンクロナイゼーションを行う場合には、DBMoto専用ユーザを用意する必要がございます。
「sa」はDBMoto専用とすることができないため、このようなエラーが発生します。

CHARの代わりにVARCHARを使用してRedshiftにレプリケートすることで、より多くの文字をサポートし、予期しない文字の混在を防ぐことができます。

データベーススキーマの設計方法

データベーススキーマの設計は、データの書式が一貫していること、すべての項目が主キーを持つこと、重要なデータが除外されていないことを保証します。データベーススキーマは、視覚的なものと論理的なものがあり、データベースを管理するための公式のセットを含んでいます。開発者は、これらの公式とデータ定義を使用して、データベーススキーマを作成します。

 

最も一般的なデータベーススキーマの種類を以下に概説します。

 

階層的モデル: 階層型:ルートノードに子ノードが付随するツリー状の構造を持つデータベーススキーマを階層型という。このデータベーススキーマモデルは、家系図などのネストされたデータを格納することができる。

 

フラットモデル:フラットモデル: データを単次元または二次元の配列に整理したもので、行と列を持つスプレッドシートのようなモデル。このモデルは、複雑な関係を持たない単純なデータを表形式で整理するのに適している。

 

リレーショナルモデル:リレーショナルモデルは、データが表、行、列に整理されるフラットモデルに似ている。ただし、このモデルでは、異なるエンティティ間の関係を定義することができる。

 

スタースキーマ: スターデータベーススキーマは、データを「ディメンション」と「ファクト」に整理します。ディメンジョンには説明的なデータが含まれ、ファクトには数値が含まれる。

 

スノーフレークスキーマ: スノーフレーク(雪片)型データベーススキーマは、データベース内のデータを論理的に表現したものである。このタイプのスキーマの表現はスノーフレークに似ており、複数のディメンジョンが1つの集中ファクトテーブルにくっ付いている。

 

ネットワークモデル: ネットワークデータベーススキーマは、データを接続された複数のノードとして含みます。このモデルは、多対多の関係などの複雑な接続を可能にするため、特定のタスクを達成するために使用されます。

データベーススキーマ設計のベストプラクティス

データベーススキーマを最大限に活用するためのベストプラクティスを以下に紹介します。

 

セキュリティ: 効果的なデータベーススキーマの設計は、データセキュリティに重点を置く必要があります。また、ログイン情報、個人を特定できる情報(PII)、パスワードなどの機密データを保護するために、高度な暗号化を使用します。
名前の規則: スキーマ設計をより効果的にするために、データベースで適切な命名規則を定義することができます。テーブル、カラム、フィールド名には、複雑な名前、特殊文字、予約語を使用しないようにします。
正規化: 正規化とは、独立したエンティティやリレーションシップが、同じテーブルやカラムにまとめられないようにすることで、冗長性を排除するものです。これにより、データの整合性が向上し、開発者が情報を取得しやすくなります。また、正規化により、データベースのパフォーマンスを最適化することもできます。
ドキュメンテーション: データベーススキーマは、開発者とドキュメンテーションの作成にとって非常に重要です。データベーススキーマの設計は、説明書、コメント、スクリプトなどとともに文書化する必要があります。

データベースのスキーマには、大きく分けてどのような種類があるのでしょうか。

物理データベーススキーマ: 物理データベーススキーマは、データの物理的な配置と、ファイル、インデックス、キーと値のペアなどのストレージのブロックへの格納方法を表します。

 

論理データベーススキーマ:論理データベーススキーマはデータの論理的な表現を記述し、論理的な制約を伝達する。データはある種のデータレコードとして記述することができ、異なるデータ構造として格納される。ただし、データの実装などの内部的な詳細はこのレベルでは隠されている。

データベーススキーマは何に使うのですか?

データベーススキーマは、情報を体系的に整理するために設計された認知的な枠組みや概念です。スキーマがあれば、膨大な量の情報を素早く解釈することができる。未整理のデータベースは混乱しやすく、維持・管理も困難です。きれいで、効率的で、一貫性のあるデータベーススキーマの設計により、組織のデータを最大限に活用することができます。リレーショナルデータベースは、データの冗長性を排除し、データの不整合を防ぎ、データの検索と分析を容易にし、データの整合性を確保し、不正なアクセスからデータを保護するために、データベーススキーマ設計に大きく依存します。強力なテスト環境でデータをテーブルとカラムに整理することが極めて重要です。データの整合性を管理し、データベースとソースコードを更新する計画が必要です。

データベース・スキーマ設計とは?

データベーススキーマ設計は、データベースのアーキテクチャを開発するための設計図を提供することで、膨大な情報を体系的に格納することができる。また、データベースの構築に関わる戦略やベストプラクティスを指します。データベーススキーマ設計は、データを個別のエンティティに整理し、整理されたエンティティ間の関係を決定することによって、データの消費、解釈、取得をはるかに容易にします。

データベースのスキーマはどのように設計されているのですか?

データベース設計者は、プログラマーが効率的にデータベースを操作できるように、データベーススキーマを作成します。データベースを作成するプロセスは、データモデリングとして知られています。データベーススキーマを設計するためには、情報を収集し、それらをテーブル、行、列に並べる必要があります。情報を整理することで、理解しやすく、関連付けやすく、使いやすくする必要があります。

データベーススキーマの定義

データベーススキーマとは、リレーショナルデータベース全体の論理的、視覚的な構成のことである。データベースのオブジェクトは、テーブル、関数、リレーションとしてグループ化され表示されることが多い。スキーマは、データベース内のデータの構成と格納を記述し、さまざまなテーブル間の関係を定義します。データベーススキーマは、スキーマ図を通して描くことができるデータベースの記述的な詳細を含んでいます。

Oracleからのミラーリングで「Record to update not found in target table」の後にターゲットへの補管INSERTでNOT NULL制約違反が発生する

まず更新対象レコードがターゲットに存在しない場合に「Record to update not found in target table」警告が発生し、その後DBMotoは補完INSERTを行います(行わないようにすることも可能です)

しかし Oracle のトランザクションログモードがLog Readerの場合、REDOログから取得できる情報は更新したカラムとPKのみとなります。
このため更新していないカラムはNULLとしてターゲットへのINSERTを行い、結果NOT NULL制約のカラムがあるとエラーになります。

対処方法は以下の2通りです。

1. Oracle のトランザクションログモードを「トリガー」にする(Oracle 10gかつDBMoto v9以降)

2. Oracle に対して以下のクエリを発行し、すべてのカラム情報をREDOログから取得できるようにする。
>ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS

Oracleからのミラーリングタイミングが更新が起きていない時間帯でもバラバラです。

Oracleからのミラーリング時にはデフォルトでアーカイブログを参照し、またその際にCONTINIOUS_MINEオプションを有効にしています。
一部のOracle環境ではCONTINIOUS_MINEオプションをオンにしているとミラーリングタイミングがバラバラになることがあります。
CONTINIOUS_MINEオプションを外すとこの事象が解消することがあります。
オプションの切り替えにより、レプリケーションの性能劣化やOracleに対する負荷増加が発生することはほとんどありません。

continuous_mine

DB2のHADR構成のスタンバイサーバからミラーリングは可能ですか?

トリガー形式およびログ参照形式のいずれも不可です。
DB2側の仕様でトリガーに必要な機能もログ参照に必要なAPIもスタンバイサーバでは利用できません。

MySQLへのミラーリングが反映されません

MySQLへミラーリングを行うためには、MySQLでautocommitが有効になっている必要があります。以下のクエリで確認が可能です。
mysql>SELECT @@autocommit;

もしもこの結果が0の場合、autocommitが無効になっているので、有効化してください。
もしアプリの都合で有効化が困難な場合は、以下の対応を行ってください。

1. Data Replicator を停止し、Management Center を閉じます。
2. 以下のファイルをダウンロードし、ExecuteList.xml を開きます。
https://www.climb.co.jp/soft/download/DBMoto/ExecuteList.zip
3. <connection name=”ここ”> に DBMoto で設定済みのMySQL 接続名を指定します。
4. ExecuteList.xml を DBMoto インストールディレクトリに配置します。
5. Data Replicator を開始し、正常にレプリケーションされることを確認します。

これによりMySQL への接続毎に「SET autocommit=1;」のコマンドを発行して一時的にautocommitを有効化してレプリケーションを行うようになります。

RDSのAurora/MySQLでバイナリログ(binlog)を使用してミラーリングするためには?

【RDS Auroraの場合】
パラメータグループのDB Cluster Parameter Groupにてbinlog_formatを「ROW」に変更することでバイナリログを記録するようになり、ミラーリング可能となります。

【RDS MySQLの場合】
パラメータグループのDB Parameter Groupにてbinlog_formatを「ROW」に変更することでバイナリログを記録するようになり、ミラーリング可能となります。

【DBMotoでの設定】
「DBMySqlUtil.dll」をDBMotoインストールディレクトリに配置する必要があります。
お手元にない場合はお問合せください。

RDSのAurora/MySQLでトリガーを使用してミラーリングするためには?

【RDS Auroraの場合】
パラメータグループのDB Cluster Parameter Groupにてbinlog_formatが「OFF」になってる場合はそのままトリガーを使用可能です。
binlog_formatが有効化されている場合は、DB Parameter Groupにてlog_bin_trust_function_creatorsを「1」へ変更することでトリガーを使用することが可能となります。

【RDS MySQLの場合】
パラメータグループのDB Parameter Groupにてlog_bin_trust_function_creatorsを「1」へ変更することでトリガーを使用することが可能となります。

Sybase ASEから差分レプリケーションは可能ですか?

トリガーを使用することで可能です。

ただし、Sybase ASEでは1つのテーブルにおいて1つのトリガーのみしか使用できない仕様のため、既存でテーブルにトリガーを設定している場合は、DBMotoから差分レプリケーションを実施することはできません。

スクリプトで、.Net Frameworkの○○という関数が動きません。

スクリプトに記述した、.Net Frameworkの関数が動作しないことがあります。

これは、その関数の動作に必要な.Net FrameworkのライブラリがDBMotoに読み込まれていないのが原因です。

DBMotoでは本体の動作に不要な.Net Frameworkのライブラリは読み込まないようになっております。
適宜リファレンスで必要な.Net Frameworkのライブラリを読み込んでください。

■例
SHA256CryptoServiceProvider関数を利用する場合、System.Core.dllというライブラリを呼び出す必要があります。
Microsoft公式のSHA256CryptoServiceProvider解説ページ
このDLLファイルは、C:\Windows\Microsoft.NET\Framework64\vX.X.XXXX(Xは任意のバージョン数値)にありますので、ここへのリファレンスを追加してください。(64bit版の場合)

DBMotoでOracleのマテリアライズドビューはレプリケーションできますか?

リフレッシュとミラーリングが可能です。
 
ミラーリング時の注意点として、DBMotoは差分データの取得にトランザクションログを用いていますが、マテリアライズビューにあるレコードに対するUPDATE操作をOracleが内部で行う際、UPDATEではなくDELETEとINSERTを組み合わせて行っているため、トランザクションログの数が1つではなく、2つになっています。
 
DBMotoのレコード処理件数表示はトランザクションログをベースにしている都合上、マテリアライズドビューのリフレッシュモードが「完全」の場合は、ビュー上の全レコード数×2、「部分」の場合は、UPDATE対象レコードの数×2の数が、レコード処理件数として表示されます。これはOracle側の仕様によるものです。

Amazon EC2上のDBMotoからAmazon Redshiftへの接続ができません。

EC2上のWindowsに用意したDBMotoからRedshiftに接続しようとするとフリーズすることがあります。
これは、EC2上のインスタンスのNIC設定に由来する問題です。レジストリ上からMTU値を設定します。
次の場所にあるレジストリ内にMTU値を示すレジストリエントリーを追加します。
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\(アダプタのID)
追加するレジストリは、DWORD型で、値の名前は MTU 、データの値は 1500 に設定します。設定後コンピュータを再起動して、新しい値を適用します。
詳細は下記Amazon様ページをご覧いただきますよう、お願いいたします。
データベースへの接続が中断された – Amazon Redshift

マルチメンバーファイル(テーブル)からレプリケーションができません。

AS400上のマルチメンバーファイルとなっているテーブルからレプリケーションしようとすると、ステータスは成功なのに処理件数が0件のまま動かないことがあります。

これはマルチメンバーファイルの仕様上の制限でSELECTクエリが実行できないためです。
テーブルのエイリアスを作成していただければSELECTクエリで結果が取得できるため、レプリケーションできるようになります。
エイリアスを作成するクエリの一例は以下の通りです。

CREATE ALIAS MYLIB.FILE1MBR1 FOR MYLIB.MYFILE(MBR1)
CREATE ALIAS MYLIB.FILE1MBR2 FOR MYLIB.MYFILE(MBR2)

メタデータは複数作成できますか?同時に使用できますか?

DBMotoのメタデータは、複数作成することは可能です。
これにより運用環境とテスト環境それぞれのメタデータを用意できます。
しかし、複数のメタデータを同時に使用することはできません。それぞれのメタデータ内にあるレプリケーションは、それぞれのメタデータを有効化していない限り動作しません。
メタデータの切り替えは、メタデータ上で右クリックして表示されるメニューの、「既定のメタデータにする」で可能です。
metadata_switch

MySQLレプリケーションのスレーブ側サーバからミラーリングをしたいのですが、必要な設定はなんですか?

スレーブ側MySQLのmy.iniの[mysqld]に次の一行を付け加えます。
log_slave_updates=TRUE
これは、スレーブサーバがマスターサーバから受け取った更新をスレーブサーバ自身のバイナリログに反映する設定となります。

デフォルトですと設定がされていない(FALSE)ため、DBMotoからスレーブ側のバイナリログを読み込みにいっても、マスター側の更新が記録されず、変更を検知できません。

ビューのレプリケーションに対応していますか?

参照するベースのテーブルが1つの場合かつSQLServerのビュー更新条件(特定の関数が使用されていないこと)を満たしている場合に限り、リフレッシュのみ可能です。
複数のベーステーブルを参照するビューの場合は、ビューの仕様でinsert, update, deleteが行えず、selectのみ可能となりますので、DBMotoでも同様にレプリケーションは行えなくなります。

複数のテーブル内のレコードを1つのテーブルに結合可能ですか?

可能ですが注意が必要です。
ミラーリング時はPKが各テーブルで重複していなければ問題ありませんが、リフレッシュ時はそのまま実行してしまいますとリフレッシュ前に一度レコードを削除する処理(DBMotoの仕様)が行われます。これを回避するためにスクリプトでリフレッシュ時にレコードを削除しないようブロックする必要があります。
なお、各テーブル内のレコードが結合後に重複する可能性がある場合は、PK代わりのフィールドを新規で作成することでPK重複エラーを回避可能です。

評価するには何が必要になりますか?

下記の環境をご用意ください。
・DBMotoインストール用のWindowsPC(仮想マシンでも可)
・ソースDBとターゲットDB、及び評価の際に使用するテストデータ
※インストールするサーバについては、システム要件をご確認ください。
※インストールや設定方法についてのマニュアルやデモ動画を事前にご確認ください。

どのようにして差分レプリケーションが行われますか?

どのようにして差分レプリケーションが行われますか?

DB2 Logを参照する方法と、トリガーログテーブルを作成する方法があります。DB2 Logを使用する場合、予めdb2udbreadlogという拡張ファイル(DBMotoに同梱済み)をDB2側に格納する必要があります。

サプリメンタルロギングを設定時の「Minimal Level」と「Database Level」は何が違うのでしょうか?また、実行されるSQLを教えてください。

●Minimal Level

レプリケーションするテーブルのみ(最低限)にサプリメンタルロギングの設定が行われます。

以下のSQLが実行されます。

・サプリメンタルロギング設定時

ALTER DATABASE ADD SUPPLEMENTAL LOG DATA

・レプリケーション作成時

ALTER TABLE テーブル名 ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY, UNIQUE INDEX) COLUMNS
●Database Level

データベース全体(すべてのテーブル)に対してサプリメンタルロギングの設定が行われます。

以下のSQLが実行されます。

・サプリメンタルロギング設定時

ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY, UNIQUE INDEX) COLUMNS

シンクロナイゼーション時に双方の同じレコードを更新した場合にはどうなりますか?

シンクロナイゼーションでレコードを更新してもレプリケーションされないことがあり、エラーも出力されません。

マルチシンクロナイゼーションにおいて、ソースとターゲットの複数で同じタイミングで同一レコードの更新をかけた場合、どのサーバのレコードが優先されますか?

Veeam Backup&Replication (152)

インスタンスとはなんでしょうか?

保護対象の単位です。1インスタンスにつき10個まで、以下のバックアップ対象を割り当てることができます。
●1仮想マシン(vSphere/Hyper-V/AHV)
●1物理サーバ(Windows/Linuxなど)
●1クラウドインスタンス(AWS/Azure/GCP)
●500 GB分のNASデータ

 

詳しくはお問合せください。
お問合せフォームはコチラ

Veeamサーバのウィルススキャン時に、ApplicationDataフォルダ階層がループし、Windows側で警告が発生する

Veeamサーバのウィルススキャン時に、Windowsイベントログに以下の警告が発生することがあります。

———————————————————————————————————

ソース “SpntLog” からのイベント ID 212 の説明が見つかりません。このイベントを発生させるコンポーネントがローカル コンピューターにインストールされていないか、インストールが壊れています。ローカル コンピューターにコンポーネントをインストールするか、コンポーネントを修復してください。

イベントが別のコンピューターから発生している場合、イベントと共に表示情報を保存する必要があります。

イベントには次の情報が含まれています:

C:\ProgramData\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\veeam.log

———————————————————————————————————

これはWindows側の無限ループ問題です。
基本的にProgramDataフォルダはデフォルトでApplication Data内にシンボリックリンク(ショートカット)されています。
これはWindows側の仕様となっており、このシンボリックリンクがウィルス対策ソフトにてスキャンされたとき、
フォルダ階層の無限ループが発生することがあります。

また、ウィルス対策ソフトのスキャンアルゴリズムのバグ等でも発生することがあります。

Veeamの動作としては問題はありませんが、Application DataとProgramDataフォルダ配下はウィルス対策ソフトの対象から除外することでこの警告を回避できます。

レプリケーションが”The operation is not allowed in the current state.”または”その操作は、現在の状態では実行できません。”で失敗します。

以下をご確認ください。
・レプリケーション元ESXiホスト
・レプリケーション先ESXiホスト
・レプリケーション対象VMのハードウェアバージョン

 

レプリケーション先のESXiホストがVMのハードウェアバージョンと互換性がない場合に、
このエラーによってレプリケーションが失敗します。

【参考】ハードウェアバージョンの互換性リスト

 

互換性のある状態にする必要があるため、
対処法としては、以下の2通りの方法があります。
・レプリケーション先ESXiホストをバージョンアップする。
・VMのハードウェアバージョンをダウングレードする。

【参考】ハードウェアバージョンのダウングレード方法

Enterprise ManagerでROLES設定を行いVMを選択するときに、一部ホストが表示されない。

以下に該当していないかご確認ください。
・vCenter経由とスタンドアロンホストの両方で同一ホストを登録している。
・どちらもホスト名で登録されている。

このとき、名前解決が行えず、Enterprise Managerが情報を正常に収集できません。

 

以下の対応を実施することで、全てのホストが表示されるようになります。
1.以下のいずれかを実施します。
・スタンドアロンホストをホスト名ではなく、IPアドレスで登録しなおす。
・Veeamサーバのhostsファイルにスタンドアロンホストのホスト名をIPアドレスを記載する。
2.Veeamコンソールで上記のホストをRescanします。
3.Enterprise ManagerでVeeamサーバの情報を収集します。

レプリケーションしたいVMのクローンVMを利用して初回のフルレプリケーションを行わず、差分レプリケーションを行えますか?

Veeam Universal License (VUL)はどんなライセンス体系ですか?

Veeam Universal License(VUL)は、サブスクリプション(年額前払)形態でご利用いただけます。インスタンス数(保護対象数)または保護容量で課金するライセンス体系で、以下が保護対象となります。
●仮想マシン(vSphere/Hyper-V/AHV)
●物理サーバ(Windows/Linuxなど)
●クラウドインスタンス(AWS/Azure/GCP)
●NASデータ

詳細は:

Veeam Universal License (VUL)について | クライム情報発信ブログ:ClimbMeUp

詳しくはお問合せください。
お問合せフォームはコチラ

スナップショット&イメージレベルバックアップ

サーバ仮想化の基本要素である、1台のホスト上に存在するすべてのVMは、物理サーバのリソースを共有し、1つのハイパーバイザによって管理されていることを忘れてはいけません。もし、これら全てのVMが同時にバックアップジョブを開始したらどうなるのでしょうか?ハイパーバイザーやホストサーバのリソースに負担がかかり、遅延が発生したり、最悪の場合バックアップが失敗したりする可能性があります。

 

ここでスナップショットの威力が発揮されます。スナップショットはVMのある時点のコピーを取得し、フルバックアップと比較してはるかに迅速な処理が可能です。スナップショット自体はバックアップではありませんが、イメージベースバックアップの重要な構成要素です。VMスナップショットがバックアップと同等でない主な理由は、VMから独立して保存できないからです。このため、スナップショットの取得頻度によっては、VMのストレージ容量が急速に増大し、パフォーマンスに影響を与える可能性があります。このため、取得するスナップショットの数量を認識することが重要です。

Veeam Backup for Azure V3を詳しく見てみましょう。

Veeam Backup for Azure の最新版v3で何が追加されたのか、少し掘り下げてみましょう。

 

既にVeeam Backup for Azureを使用している場合は、内蔵のアップデーターを使用して以前のインストールをアップグレードすることができます。

 

何が含まれているか?

 

毎回のリリースと同様に、いくつかの主要な機能強化があり、細かい改善と同様に多くのアンダーザフードのものがあります。

 

最初の大きな特徴は、Azure SQLのサポートです。Veeam Backup for Microsoft Azureは、SQL ServerまたはAzure SQL Managed Instanceとして実行されているSQLデータベースをバックアップおよびリストアすることができるようになりました。

 

AWSのVeeam BackupがS3 Glacierを使用した長期アーカイブのサポートを追加したように、Veeamは、Azureにもこの機能を追加しました。バックアップを長期間保存するために、ホットまたはクール・ストレージを使用しなければならないのは嫌ではありませんか?もう心配する必要はありません! 今日からAzure Archiveへのバックアップの階層化を始めましょう! 今こそコスト削減のチャンスです(クラウドでは何にでもお金がかかります)。

複数のAzureアカウントに対応

 

今回のリリースで大きな特徴のひとつは、実は複数のAzureアカウントをサポートしたことです。これはVeeamのAWSとGCPのソリューションで既に可能でしたが、Azureは1つのAzureアカウントに限定されていました。これを強化し、複数のアカウントを許可することで、1枚のガラスからすべてのアカウントを管理および保護することが容易になります。

 

セキュリティ強化の追加

セキュリティは重要なテーマであり、ここでも需要の高まりが感じられます。そこで、2つの新機能を追加しました。

 

●ロールベースのアクセスコントロール:ロールベースのアクセスコントロール:ビルトインのロールを使用して特定のユーザーにアクセスを委任することにより、組織内でより高いセキュリティを確保するために範囲を制限することができます。現在、3つの異なるロールがサポートされており、アプライアンス内でそれぞれのロールが独自の範囲を持ちます。
●シングルサインオンをサポート:外部のIDプロバイダーを登録し、ローカル・ユーザーを作成する必要はありません。既存のユーザー・アカウントを再利用して、Veeam Backup for Azureで日常的なタスクを実行するだけです。
●Azure Key Vaultのサポート。バックアップ・データを暗号化するためにAzure Key Vaultを使用することができるようになりました。もうパスワードをメモして保管庫に入れる必要はありません

その他の追加機能

 

Azure、AWS、GCPを問わず、リリースするたびに、ユーザーインターフェイスとエクスペリエンスの改善に努めています。

 

更新されたウィザード(例えば、リポジトリとポリシーウィザード)では、全画面を使って構成設定を明確に表示するようになり、ウィザードを簡単に進めることができるようになりました。初めてログインすると、製品の最新情報を紹介する「What’s New」が表示されます。

 

Veeamは、ログイン画面を更新し、Veeam Backup for Azureで作成したアカウントでログインするか、シングルサインオンの恩恵を受けるかを簡単に選択することができます。

バックアップ対象(VM01, VM02)からVM02を除外した場合、VM02のリストアポイントは指定した世代数を保持しますか?

いいえ、保持しません。
例えば、リストアポイントを4世代とした場合、バックアップを取得するたびに世代数が減っていきます。
11/1, 11/2, 11/3, 11/4とバックアップを取得し、11/5にVM02が除外されたバックアップを取得した場合、VM02のリストアポイントは11/2, 11/3, 11/4となり、11/1のリストアポイントは消されます。
最終的には11/4のリストアポイントがフルバックアップファイル内に残り続けます。
これを消すにはフルバックアップの再作成や再構成(Compact full)が必要です。

Veeam V12新機能:オブジェクトストレージへの直接バックアップ

Object Storage

V12では、Direct-to-ObjectとDirect-to-Cloudの2つの主要な機能を提供しています。最初の機能は、バックアッププロキシやエージェントからオブジェクトストレージに直接バックアップを送信することで、中間ステップを回避することができます。さらに、このようなストレージへの直接接続が不可能な場合、トラフィックはゲートウェイサーバーの弾力的なプールを介してリダイレクトされることができます。さらに、ROBO(Remote Office Branch Office)環境を含め、より効率的なクラウドへの直接バックアップを実装しています。

また、新しいSmart Object Storage API(SOSAPI)ソフトウェア・インターフェースにより、オブジェクト・ストレージ・ベンダーがVeeam Backup & Replication v12と深く統合できるようになったことも特筆に値する(パフォーマンスの向上とユーザー・エクスペリエンスの改善に向けて)。

Veeam V12新機能:イミュータビリティ機能の強化

イミュータブル(Immutable)バックアップ機能は、ランサムウェアからバックアップを保護する手段を実装しています。この機能は、オンプレミスとクラウドネイティブの両方のワークロードで利用でき、ストレージのライフサイクルを通じてバックアップを保護し、管理者側の操作からも保護します。また、バックアップだけでなく、アラームにも不変性を持たせることができるため、より高度なインフラ保護が可能です。

Immutability Workloads

イメージレベルでのバックアップのサポートに加え、NASストレージ、スタンドアロンエージェント、AWSとMicrosoft Azureのバックアップ(Azure Blob Storageも)、HPE StoreOnceストレージでバックアップのイミュータビリティが利用可能です。また、トランザクションログやエンタープライズアプリケーションに対しても、プラグインを介して利用することができます。

Veeam V12新機能:多要素認証とベストプラクティスアナライザー

これらの高度なセキュリティ機能により、管理者は2つの新しいツールを手に入れることができます:

多要素認証は、RFC 6238に基づくTOTP(Time-Based One-Time Passwords)の仕組みに基づく2要素認証(2FA)機能を通じてコンソールへのアクセスを可能にします。個々のアカウントに対して有効にすることができます。

Multi-factor authentication

Best Practices Analyzerコンポーネントは、バックアップサーバーと製品の構成をチェックし、セキュリティと復旧成功の可能性を向上させるための重要な変更を管理者に提案します。

The Best Practices Analyzer component checks the backup server and product configuration

Veeam V12新機能:バックアップのインフラ整備

回転メディアに切り替えると、ディスクは自動的に既存の古いバックアップからクリアされます。さらに、ユーザは既存のバックアップチェーンを使い続けることもでき、現在のタスクにのみ属するバックアップを削除するか、メディア上のすべてのバックアップを削除するかの2つのオプションのうち1つを選択することができます。

Storage Compatibility Settings

v12では、SOBRリバランス機能が導入されました。Performance Tierエクステントのブロックおよびファイルストレージレベルでストレージ消費をリバランスし、エクステント間のデータ分散を均等にすることができるようになりました。この操作は、新しいエクステントを追加するときに実行する必要がありますが、常に実行する必要はありません。エクステント退避とSOBRリバランスの操作は、前述した新しいVeeaMoverエンジンを使用して、エクステント間でより効率的にバックアップを移動させます。

SOBR rebalance

また、ユーザーの要望により、マルチサイトやネットワーク環境でのトラフィックを管理するためのいくつかのインターネットルールが追加されました:

at the request of users, several internet rules have been added to manage traffic in multi-site and network environments

最後に、メール通知のOAuth 2.0対応です。SMTPによる認証に加え、Google GmailとMicrosoft 365のOAuthプロトコルによる認証をVBR V12がサポートするようになりました:

OAuth 2.0 support for email notifications

Veeam V12新機能:バックアップとリカバリー

新しいBackup Copyジョブは、新しいプラットフォームの機能との互換性を確保するために、個々のVMに基づく新しいフォーマットでチェーンを作成します(Per-machine backup chain)。既存のジョブはこのアップデートの影響を受けません。

Per-machine backup chains

アプリケーショングループについては、仮想テストラボで起動する前に、Windowsファイアウォールのネットワーク接続を自動的に無効化するオプションが追加されました。これは、リストアプロセスのテストが必要なバックアップで、ファイアウォールが外部接続をブロックするのを防ぐために必要です。

Windows Firewall network connection before launching them in a virtual test lab

そして最後の非常に便利な機能です。これからは、更新されたBackup Browserを使って、復元ポイントと本番機のファイルを比較することができ、選択したバックアップが取られた後にどのファイルが変更または削除されたかを表示します。

Compare a restore point with the files on the production machine using the updated Backup Browser

また、バックアップシステムと本番システムの間で、個々のファイルやフォルダの属性の違いを、新しいダイアログボックスを使って1画面で確認するオプションが追加されました:

Compare Attributes

もう一つの新機能は、ファイルやフォルダーのアクセスコントロールリスト(ACL)だけを復元する機能です。これは、管理者が誤ってフォルダやファイルのパーミッションを一括で変更してしまった場合に必要になることがあります。また、v12では、Windowsファイルを直接復元する際に、異なるターゲットマシンを選択できるようになりました(これまではLinuxのみ)。最後に、バックアップのエクスポートの機能が向上し、元のバックアップがあった同じリポジトリだけでなく、エクスポートしたポイントの保存先を任意に選択できるようになりました:

Export Backup

Veeam V12新機能:テープバックアップの改善

WindowsとLinuxの両サーバーに接続されたテープライブラリーやメディアをテープバックアップ用に登録することが可能に:

wp-image-21286

Backup-to-Tapeタスクは、ワークロードの種類に関係なく、即時モードまたは定期モードの新しいマルチプラットフォームBackup Copyジョブタイプによって作成されたすべてのバックアップコピーのエクスポートをサポートするようになりました。

すべてのテープ機能で、LTO-9テープの初期化プロセスをサポートし、初期化に時間がかかるとタイムアウトするのではなく、初期化が完了するまで正しく待機するようになりました。カセットテープを誤って消去しないように、InventoryとCatalogの操作後にテープメディアが自動的にテープライブラリードライブから排出されるようになりました。

Veeam V12新機能:CDP(Continuous Data Protection)の改善

CDPプロキシはLinuxサーバー上で動作するため、Windowsのライセンスを節約することができます。通常のバックアップ作業に加え、任意のクラウドホストサービスプロバイダを使用して、CDPポリシー内でレプリケーションを実行することができます。そして、VMやvAppモジュールのインスタントリカバリ機能を持つCloud Directorインスタンス内でレプリケーションを使用することができます。また、CDPはvVolスナップショットのネイティブサポートを提供するようになり、そこに保存されるオブジェクトの数を減らし、vVolボリュームのスケーリングに小さな制限があるデバイスでの信頼性を向上させます。

Veeam V12新機能:Veeam Agentの改良

Windows Serverに加え、保護グループウィザードに、Windows 10以降を実行しているワークステーションにVeeam changed block tracking (CBT) ドライバをインストールし、より高速な増分バックアップを行うオプションが追加されました。また、管理者はBare Metal Recoveryのリストアタスクのためにユーザーに与えることができる一時的なアクセスキーまたはリカバートークンを生成することができます。

 

v12のリリースに伴い、ゲストOS用の利用可能なすべてのエージェントがソリューション内で更新されたことに留意してください:

 

  • Veeam Agent for Microsoft Windows
  • Veeam Agent for Linux
  • Veeam Agent for Mac
  • Veeam Agent for AIX
  • Veeam Agent for Solaris

Veeam V12新機能:アプリケーションプラグイン

保護グループウィザードが改善され、グループに含まれるサーバーのアプリケーションプラグインのインストールとアップデートを制御するための設定が追加されました。アプリケーションのトポロジーに関する情報収集と、スキャンおよび再スキャン時のOracle RACおよびSAP HANAシステムの検出ができるようになりました。

wp-image-21278

アプリケーションのバックアップポリシーには、各サーバーのバックアップ処理をリアルタイムで監視し、データベースやREDOログのバックアップの統計やレポートを可視化するツールがあります。

 

また、Oracle RMAN、SAP HANA、SAP on Oracleのバックアップをバックアップコンソールからポリシーに基づいてオーケストレーションする機能があり、各データベースサーバーのプラグイン設定やバックアップシナリオを手動で整備する必要がなくなりました。また、Version12では、これらのプラグインによるバックアップと復旧の速度が最大で3倍に向上しています。

 

Microsoft SQL Server用の新しいプラグインは完全に刷新され、SQL Server(VDIプラグイン)との深い統合を実現し、Veeamリポジトリへの直接バックアップを可能にしました。VDIプラグインは、バックアップの一貫性を確保するためにネイティブな手段を使用し、スナップショットベースのバックアップとは異なり、Microsoft VSSに依存しないため、共有ボリュームを持つWindows Server Failover Clustersなど、異なるSQL Server構成のバックアップを可能にします。

 

Veeam V12新機能:PostgreSQLのサポート

 

マルチプラットフォームのPostgreSQLエンジンがサポートされ、Microsoft SQL Server Express Editionのデータベースサイズ(10GB)の制限を回避することができるようになりました。SQL Server Express Editionはまだサポートされていますが、Veeam Backup and Replication製品に含まれなくなりました。

 

PGAdminでPostgreSQLデータベースがどのように見えるかをご紹介します:

Here's a glimpse of what a PostgreSQL database looks like in PGAdmin

さらに、Linux上のPostgreSQLデータベースのポイントインタイムリカバリーのためのトランザクションログのアプリケーションアウェアバックアップがサポートされるようになりました。同じ機能は、Microsoft SQL ServerやOracleではすでに提供されていました。

 

また、PostgreSQLの経験を持つ管理者でなくてもインスタンスをリストアできる「Veeam Explorer for PostgreSQL」という製品も登場しました。インスタンスの任意のポイントインタイム状態をバックアップから指定されたDev/Testサーバに直接公開することができ、その後、公開されたデータベースに加えられた変更をエクスポートまたは元に戻すことができます。

Veeam V12新機能:新規VeeaMover エンジン

VeeaMoverを使用すれば、異なるタイプのリポジトリ間でデータを移動することができます。ソースとターゲットリポジトリのタイプを気にする必要はもうありません – VeeaMoverが自動的にデータ移動のすべての作業を処理します。

 

With VeeaMover, you can now move data between repositories of different types

 

さらに、バックアップはタスク間で簡単に移動できるようになり、関連するすべての操作が自動的に実行されます(例えば、包含リストや除外リストの操作など)。また、保持ポリシーを保持したまま(変更も可能)、数回のクリックでバックアップチェーン全体を別の場所に移動させることができます。

Veeam V12新機能:バックアップコンソールの改良

タスクセッションで対応するマシンをクリックすることで、タスク内のすべてのマシンに対してこの操作を開始することなく、個々のマシンに対して処理の再開やアクティブフルバックアップの実行ができるようになりました。また、誤ってタスクに追加された場合でも、処理から完全に除外したいマシンのマスターリストを指定することで、恒久的または一時的な除外の管理がより簡単になりました。Global Exclusionsダイアログはメインメニューから利用でき、これらのマシンはインベントリータブでDisable processingオプションが選択されています。

 

wp-image-21282

 

また、便利な機能として、既存のバックアップをタスクから切り離すことができ、次のフルバックアップ実行時に新しいバックアップチェーンが開始されます。切断されたバックアップは、「バックアップ」タブの「孤児」セクションに、最新の保持ポリシーとともに表示されます。

Veeam V12新機能:プライマリーとセカンダリーのストレージの改善

バックアップタスクは、既存のストレージレプリケーションリンクを使用して、追加のリカバリポイントとしてストレージベースのスナップショットに基づくレプリカを作成できるようになりました。これにより、プライマリストレージへの負荷を避けるために、セカンダリストレージアレイからバックアップを取ることができます。

 

さらに、Veeam のUniversal Storage APIのVer2が導入され、スナップショットレプリケーションとアーカイブのオーケストレーション機能、および同期レプリケーションのサポートが含まれています。Cisco HyperFlex、IBM Spectrum Virtualize、NetApp All SAN Array(ASA)、Dell Data Domain、Infinidat InfiniGuard、富士通 CS800、HPE StoreOnce、HPE Nimble、HPE Alletra 5000/6000ストレージアレイ向けに、バックアップの不変性など多くの重要機能が追加されています。ネイティブブロッククローニング機能の拡張サポートがExaGridストレージアレイに追加されました。

 

wp-image-21285

Wasabi Object Lock for Veeam Backup & Replication

オブジェクト・ロック(Object Lock)の利点

オブジェクト・ロックは、指定された期間に達するまで、データがストレージから削除または変更されるのを防ぎます。これは、誰も誤って、または悪意を持って、Veeamバックアップを変更または暗号化できないことを意味します。本質的に、これはランサムウェアに対する究極の保護を提供します。

 

データ保護の課題

オフサイトに保存されていても、バックアップは危険にさらされています。データを保護するためにデータをエアギャップする従来の方法は、組織のデータが電源から切り離されたLTOテープ・カートリッジやHDDにオフラインで保存されることを意味しました。この方法で保存されたデータを取り出すには数時間から数日かかり、ビットの腐敗や損傷が起こりやすく、最終的にはデータが破壊される可能性がありました。バックアップをイミュータブルにすることで、オブジェクト・ロックはこの脆弱性を排除し、データが保存された場所に正確に残るようにします。データが保存された場所に正確に残ることを保証します。

 

なぜオブジェクト・ロックが重要なのか?

なぜなら、物事は変化するからです。イミュータブルオブジェクトにより、情報は偶発的または意図的な削除や改ざんから保護されます。一度情報がWasabiホットストレージクラウドに保存されると、ロックの有効期限が切れるか、バケットが完全に削除されるまで(これはまた別の問題ですが)、保存され続けることが保証されます。

 

サイバー犯罪者はランサムウェアキャンペーンの一環としてバックアップやアーカイブを攻撃するからです。プライマリ・システムをダウンさせるだけでは不十分で、ランサムウェアへのアクセスを確保するためにセカンダリ/バックアップ・システムも攻撃します

なぜなら、規制当局はこれらを定期的にチェックしているからです。コンプライアンスと消費者保護基準のために、規制業界のデータを保護することは必須です。

 

監視ビデオのようなデジタル証拠に関しては、偽造または改ざんされた映像が今や司法に対する脅威となっているため、法的手続きは親権の連鎖と不変性に依存しています。オブジェクトロック機能は、HIPAA、FINRA、CJISのような特定の政府および業界の規制に対応する組織であり、電子記録、取引データ、および活動ログを安全に提供することができます。

 

Veeam Backup & Replicationとのオブジェクトロック機能

 

Wasabiのオブジェクトロック機能は、Veeam Backup & Replication v10以上のEnterpriseおよびEnterprise Plusエディションの両方をサポートします。

WasabiとVeeamによる最も復元力のあるデータ保護ソリューション

業界をリードするバックアップとリストアと不変のホットクラウドストレージを組み合わせて、最高のハイブリッドクラウドデータ保護を実現

 

データ量とデータ速度は指数関数的なペースで増加し続けており、業界によっては年複利で20%、40%、80%の成長を経験しています。従来のオンプレミスバックアップアプローチは、コストのかかるスケールアップアーキテクチャとクラウド接続性を備えていないため、コンプライアンス規制を満たしたり、ランサムウェア攻撃と戦うために必要なデータ量と増え続ける保持時間に追いつくことができません。

 

VeeamとWasabiを組み合わせることで、オンプレミスおよびクラウドネイティブなワークロードのための完全なデータ保護ソリューションを提供します。Veeam Backup & Replication (v9.5.4、v10、v11、v12)、Veeam Backup for Microsoft Office 365、Wasabiのホットクラウドストレージ、Object Lockによるバックアップの不変性が含まれます。Veeamの単一的なインターフェースは、バックアップの運用管理をシンプルにし、Wasabiの無制限クラウドストレージは、卓越したセキュリティとデータの不変性を提供します。

データ保護戦略で最も重要なのは、正確なデータを迅速にリストアし、通常業務を再開する能力です。そのためには、信頼できるバックアップデータと、復旧時間目標(RTO)を満たすストレージ性能が必要です。WasabiのS3 Object Lock APIの実装により、データが改ざんされていないことを確認できます。S3 Object Lockは、組織内外の誰によってもデータが削除されたり変更されたりしないことを保証します。ロックされたデータセットは不変であり、ユーザが定義した期間保持されます。

 

データ損失の可能性を想定して演習するには、頻繁にリストアの演習をする必要があります。クラウドストレージを使用する場合、データをダウンロードする必要があり、場合によってはギガバイトやマルチテラバイトの規模になることもあります。Wasabiのホットクラウドストレージでは、追加料金はかかりません。部分的または完全なリストアでバックアップデータの完全性を検証する場合、その作業に必要な時間と人以外にコストはかかりません。このため、Wasabiは他のクラウドストレージプロバイダーとは一線を画し、このような作業をより簡単に、低コストで頻繁に実行することができます。

 

Microsoft Office 365用バックアップ

 

Veeam Backup for Microsoft 365は、Exchange、SharePoint、OneDrive、Teamsのバックアップとリカバリを可能にします。また、Veeam Backup for Microsoft Office 365は、プライマリ・バックアップ・ストレージ・システムとしてWasabiホット・クラウド・オブジェクト・ストレージをサポートし、大企業および中小企業が短期および長期の保持のため、クラウドの無限の容量を経済的に活用することを可能にします。

Veeam Backup and Replicationがデータ保護を合理化 :バックアップ・ジョブとクラウドへの移行をさらに簡単にします。

 

Veeam Backup and Recoveryは、古いオンプレミス・バックアップをコピー・ジョブでクラウドに移動するように自動的にスケジュールすることができます。このセット・アンド・フォーゲット機能は、オンプレミスシステムが常に利用可能なディスクスペースを維持し、最高のRTOのためにリストアパフォーマンスを最大化することを保証します。また、バックアップをローカルストレージとクラウドに同時に送信するように設定することもできます。これにより、オフサイト・バックアップが劇的に簡素化され、3-2-1-1-0ガイドラインに準拠することができます。

 

Veeam Backup and Replicationは、異なるクラウド・オブジェクト・ストレージ・レポジトリ間のデータ移行をサポートします。例えば、AWS S3を使用していたが、Wasabiホット・クラウド・ストレージに変更することを決定したとします。この機能を使えば、AWSからWasabiにデータを移行することができます。

 

非構造化データの保護を簡素化

 

WasabiはVeeam Ready Objectとして、またVeeam Ready Object – Object Lockとして認定されています。Wasabiは現在、Veeam Backup and Recoveryの名前付きクラウドストレージサービスです。

 

Wasabiホットクラウドストレージが画期的な経済性とデータセキュリティを実現

 

Wasabiホットクラウドストレージは、低コスト、高速、信頼性の高いクラウドストレージをオンデマンドで提供します。Wasabiは、全てのデータを「ホット」に保ち、数ミリ秒でアクセスできるようにします。すべてのVeeamとWasabiのユーザは、データをホットデータとして扱うことができるため、バックアップウィンドウを短縮し、データに素早くアクセスして、リストア時間を短縮することができます。

バックアップを取得している仮想マシンのデータストアを、ストレージvMotionで別のデータストアに移動した場合、差分バックアップを継続できますか?

アップデートや再インストール時にVeeamの設定情報を引き継げますか?

はい、引き継げます。
Veeam Backup & Replicationの設定情報はSQL Serverに保存されているため、既にあるVeeam Backup & Replicationのインスタンスを再利用することで設定情報等の引き継ぎが行えます。
しかしバージョンアップに伴い表の構造等が変更されますので、基本的には同一バージョンもしくは上位のバージョンでのみ再利用が可能です。古いバージョンを再インストールした際に、インスタンスの再利用が行えない場合もございますので、お気をつけください。

Veeam Backup & Replication と vCenter Serverを同じマシンに導入してもいいですか?

技術的にはVeeam Backup & Replication(Veeam B&R)とvCenter Serverを同じWindowsマシンに導入することは問題ありません。
しかし、この2つのソフトウェアを同居させることは推奨しておりません。
理由として以下の3点があげられます。

  • 双方ともにリソースを消費しやすいソフトウェアであり、リソースの適切なプロヴィジョニングが難しいこと
  • 片方に障害が発生しマシンの再起動が必要となった場合、もう片方の動作に影響をおよぼすこと
  • 双方ともにデフォルトのインストールではSQL Server Express Editionをインストールし使用しますが、Express Editionは使用可能なリソースに制限が加えられており、VeeamとvCenter双方からの激しいアクセスに耐え切れず双方の挙動に影響を及ぼすことがあること

これらの理由のため、可能であれば別々のマシンにインストールしていただくことを推奨しております。

Contract No.とは何ですか?

Contract No.はユーザがVeeam/クライムとのサポート・保守に加入した最新(または最後)の追跡番号です。
この番号はユーザのライセンス・ポータルでも確認することができます。
サポート・保守更新時には必ず必要になりますので、Contract No.をお問合せください。
サポート・保守が更新されますと、暫くした後、新たなContract No.がアサインされます。
以前のContract No.では追跡ができなくなります。

Windows Storage Server をVeeamサーバとして利用可能ですか?

Windows Storage ServerとWindows Serverは同じコードを元に構築されているため、基本的には全てのVeeamのコンポーネントをStorage Server OS上にインストール可能です。
Veeam Server console
Veeam Backup Proxy
Vpower NFS server
WAN accelerator
Backup repository

しかし、Windows Storage Serverはベンダーによってカスタマイズされていることが多く、.NETの機能が有効化されていない場合や.NET Frameworkのインストールに問題がある場合があります。このような場合にはVeeam ServerのGUIは.NETコンポーネントに依存しているため、インストールすることができません。

.NETコンポーネントについてWindows Storage Serverのエンドユーザライセンス(EULA)のご確認やベンダーへのお問い合わせをお願いいたします。
EULAのパス C:\windows\system32\license.rtf
開発元KB http://www.veeam.com/kb1923

差分リストアはできますか?

Veeam Backup & Replication Ver8からQuick Rollbackという機能が追加されました。
これは差分データ・リストア機能です。

Quick_Rollback

このQuick Rollback機能の使用制限:
1. Network または Virtual Appliance モードのみで使用可能。VMwareサイドの制限でDirect SAN Accessモードでは使用できません。

2.続けて2つの差分リストア・セッションを実行することは出来ません。VMまたはVMディスクに対して差分リストアを実行した後にそのVM上のCBTはリセットされます。差分リストアが再度実行できるように最低1回の差分バックアップを実行する必要があります。

レプリケーション先にはどの程度のディスクスペースがあれば良いですか?

仮想マシンのディスクタイプにはシンプロビジョニングとシックプロビジョニングがありますが、
それぞれに必要なディスクスペースに違いがあります。
これはシンとシックではストレージ領域の確保方法に違いがあるためです。

 

シンプロビジョニングで作成した仮想マシンの場合は
ストレージ領域が必要になるごとに領域を確保するため、
レプリケーション元の仮想マシンで使用済みのディスクサイズ分の
フリースペースがレプリケーション先に必要です。

 

シックプロビジョニングで作成した仮想マシンの場合は
仮想マシン作成時に指定したサイズ分の領域を確保するため、
レプリケーション元の仮想マシン全体のディスクサイズ分の
フリースペースがレプリケーション先に必要です。

“Commit Failback” と “Undo Failback” の処理の違いを詳しく知りたい。

■Commit Failback
レプリケーション先の VM をレプリケーションジョブを実行できる状態(“Failover” を実行する前の状態)にします。

■Undo Failback
レプリケーション先の VM を “Failback” を実行する前の状態(“Failover” を実行している状態)に戻します。

どちらもレプリケーション先の VM の状態を変更する機能です。
そのため、”Undo Failback” を実行した場合でも、
レプリケーション元の VM は変更が反映された状態(“Failback” 実行後の状態)のままになります。

ジョブ実行時にCBT(Change Block Tracking)が有効になっているか確認する方法はありますか?

既存のレプリカVMを利用して初回のフルレプリケーションを行わず、差分レプリケーションが行えますか?

オリジナルの仮想マシンとレプリカの仮想マシンをマッピングすることで、
差分レプリケーションからジョブを開始することができます。

参考: レプリカシーディング・レプリカマッピング機能について

 

関連トピック

レプリケーションしたいVMのクローンVMを利用して初回のフルレプリケーションを行わず、差分レプリケーションを行えますか?

サポートは最新バージョンのみですか? 古い(前の)バージョンもサポートしてもらえますか?

最新バージョン以外の古いバージョンのサポートも承っております。
しかし、開発元(Veeam 社)の正式サポートは最新バージョンとその1つ前のバージョンまでとなります。(例:2022年1月現在のVeeam Backup & ReplicationのバージョンはVer11.0、10.0、9.5、9.0、8.0、7.0、6.5…と存在していますが、このときの正式サポート対象はVer11.0、10.0 となります。)
そのため、古いバージョンの場合、いただいたご質問の内容によっては開発元からのサポートを受けられず、アップグレードをお願いすることになりますので、ご了承ください。

ライセンス体系はどのようになっていますか?

サブスクリプション(年額前払)形式となります。
1ライセンスにつき10個まで以下対象を保護できます。
●1仮想マシン(vSphere/Hyper-V/AHV)
●1物理サーバ(Windows/Linuxなど)
●1クラウドインスタンス(AWS/Azure/GCP)
●500 GB分のNASデータ

 

※Veeam Backup Essentials の場合
1ライセンスで5台(1環境につき50台の制限)

 

詳細はこちら

リストア時の処理方法について教えてください。

Veeamには3つの処理モードが用意されております。

・ダイレクトストレージアクセスモード
・バーチャルアプライアンスモード
・ネットワークモード

 

参考

バックアップ、レプリケーション時の処理モードX 3
VMware環境での3つの転送モード方式と処理の流れ
処理モードの中では一番の高速バックアップ【Veeam Backup & Replication:Direct SANモード】
手間とコストをかけずに簡単に高速バックアップ【Veeam Backup & Replication:Virtual Applianceモード】
特別な条件の必要ない簡単・確実なバックアップ【Veeam Backup & Replication:Networkモード】

 

バックアップ時、リストア時にどの条件を満たしているかによって処理モードが変更されます。
しかし、リストアの場合は処理モードがVirtual ApplianceモードとNetworkモードのみ使用可能となっております。

 

関連トピック
VMwareのHot add機能を利用したバックアップは可能か?
SAN内の仮想マシンを別のSANにバックアップする際にモード選択でSANモードで処理可能か?

複数のジョブを同時に実行中、次のメッセージが表示され実行されないジョブがあります。「Waiting for backup infrastructure resources availability」

これは、複数ジョブを実行するためのリソースが不足しているため、処理中のジョブが終了し、リソースが解放されるまで待機状態になっていることを表しています。

 

そのため、複数のジョブを同時刻に実行したいということであれば、ジョブごとにプロキシサーバ(処理サーバ)を用意していただくか、プロキシサーバのスペックをあげていただく必要がございます。デフォルトではVeeamサーバがプロキシサーバとして動作します。

 

参考
プロキシサーバの同時実行タスク数について

インスタントVMリカバリ実行中に元の仮想マシンに対してバックアップを行えますか?

Veeamには2つのバックアップモード(増分・差分)があり、増分バックアップであれば実行中にもバックアップ可能ですが、差分バックアップの場合は行えません。

 

差分バックアップは毎回フルバックアップファイル(vbk)に差分をマージするのでvbkに書き込みを行います。しかし、インスタントVMリカバリではバックアップファイルから直接仮想マシンを作成するため、フルバックアップファイル(vbk)をロックします。そのため、vbkに書き込みが行えずエラーとなります。

 

増分バックアップでは増分ファイル(vib)の作成は行いますが、vbkに対して書き込みを行わないためバックアップ可能となります。しかし、バックアップファイルの変換オプション(Transform previous full backup chains into rollbacks)を有効にした場合は、増分バックアップは問題ありませんが、フルバックアップ時には増分ファイルを差分ファイルへ変換する処理が入りますので、ファイルがロックされるインスタントVMリカバリ中にフルバックアップは行えません。

 

 

 

vSphereのVMFS領域をバックアップ先として使用できますか?

バックアップ先ストレージとして利用可能なのはWindows、Linux、共有フォルダとなっています。
登録可能なデータ保存先(リポジトリ)

 

ESXにはLinuxをベースとした管理用OSが搭載されているため、Linuxのバックアップ先ストレージとして利用可能でした。

 

しかし、ESXi(vSphere5.1)はこの管理用OSを削除しており、直接バックアップ先ストレージとして利用できなくなっております。そのため、vSphere5.1上に仮想マシンを登録し、その仮想マシンをバックアップ先として利用する必要があります。

Veeam Backup & ReplicationサーバをVMware FT(Fault Tolerance)で構成したい。

VeeamサーバをVMware FT構成にすることは、基本的には問題ありません。

しかし、いくつか注意点がございます。

1.Veeamのコンソールとして使用するのは問題ないですが、プロキシとして使用するのは非推奨となります。もし、Virtual Applianceモードでバックアップを実行していた場合、処理途中で仮想マシンが切り替わるとVirtual Applianceモードが動作しなくなります。

2.バックアップ保存先への接続はNASかCIFSを使用する必要があります。Veeamサーバに直接接続されたディスクを使用すると、切り替わった際に機能しなくなります。

 

サポートしているテープの種類は何ですか?

テープ・ライブラリ・コンパチブル・リスト(Unofficial)

ADIC Scalar 100

Dell PowerVault 124T
Dell PowerVault 136T
Dell PowerVault TL2000

FalconStor (VTL) [VERIFIED]

Fujitsu Eternus LT40

HP ESL 712e
HP MSL G3 Series 4048
HP MSL G3 Series 8096
HP MSL 6030
HP MSL 6480
HP StorageWorks 1/8 G2 LTO-3 Ultrium 920
HP StorageWorks LTO-4 Ultrium 1840 SCSI
HP StoreOnce (VTL) [MSL series emulation]

IBM TS3100
IBM TS3200
IBM TS3310
IBM TS3500
IBM ProtectTier 7650 (VTL)
IBM ULTRIUM HH5 SCSI

Overland NEO 100s [VERIFIED]
Overland NEO 200s [VERIFIED]
Overland NEO 400s [VERIFIED]
Overland NEO 2000e [VERIFIED]
Overland NEO 4000e [VERIFIED]
Overland NEO 8000e [VERIFIED]

Quantum Scalar i40
Quantum Scalar i80
Quantum Scalar i500
Quantum Scalar i6000

QUADStor (VTL) [IBM TS3100/3580 emulation] [VERIFIED]

Qualstar RLS

Spectra Logic T50e [Quantum P7000 emulation]

Tandberg T24 [VERIFIED]
Tandberg T40+ [VERIFIED]
Tandberg T80+ [VERIFIED]
Tandberg T120+ [VERIFIED]
Tandberg T160+ [VERIFIED]
Tandberg RDX Quikstation (VTL) [T80+ emulation] [VERIFIED]

mhVTL (VTL) [64KB block size] [VERIFIED]

バックアップ対象の仮想マシンをStorage vMotionで移動した後、バックアップジョブを作り直す必要がありますか?

バックアップジョブにvCenter経由で仮想マシンを登録していれば、Veeamは仮想マシンに割り振られた参照IDを追跡しますので、ジョブの作り直しは必要ありません。
参考: vMotionやStorage vMotionに対応したジョブの作成

 

しかし、Storage vMotion実施後は仮想マシンのCBTがリセットされるため、実施後最初のバックアップはフルバックアップになります。
参考: Change Block Tracking is reset after a storage vMotion operation in vSphere 5.x

 

関連トピック
バックアップ対象の仮想マシンをStorage vMotionで移動する際にスナップショットエラーは発生しますか?
バックアップを取得している仮想マシンのデータストアを、ストレージvMotionで別のデータストアに移動した場合、差分バックアップを継続できますか?

Backup Job作成時のオプション “Retention policy” で設定した数以上のリストアポイントが作成されてしまいます。

Jobの終了時にバックアップ先のディスクの空き容量が不足していると警告が表示されます。

Veeam Backup & Replicationではバックアップ先のディスクの空き容量が設定した容量より少なくなった際に警告を表示します。
デフォルト設定では、空き容量が10%以下になった場合、警告を表示します。

 

また、バックアップ先のディスクの空き容量が設定したしきい値よりも下回った場合、VMのスナップショット取得の処理を行わずにジョブを終了させる設定もございます。
※デフォルト設定では、しきい値は5%となっております。

 

この設定はVeeamの管理コンソールから「Options」>「Notifications」タブで設定可能です。

レプリケーション後のレプリカVMの起動をvSphere Clientから行いたい。

はい、可能です。
任意の時点のスナップショットに戻してからレプリカVMを起動してください。

 

しかし、vSphere clientから起動することでVeeamから管理を行うことができなくなり、Failback(オリジナルへの切り戻し)が行えなくなります。プライマリサイト復旧後は、新規にレプリケーションジョブを作成してDRサイト⇒プライマリサイトの方向にレプリケーションを行う必要があります。レプリカVMを停止することでまたVeeamから管理することが可能になりますが、レプリカVMに対して行われた変更は反映されません。

 

バックアップ対象の仮想マシンをStorage vMotionで移動する際にスナップショットエラーは発生しますか?

Job作成時の “Advanced Settings” ボタンの “vSphere” タブの “Enable VMware Tools quiescence” にチェックを入れることでどのような動作をしますか?

Job作成時のオプション “Enable application-aware image processing” はどんな機能ですか?

オプション「Enable application-aware image processing」を有効にしてJobを実行するとVeeam独自にカスタマイズした方式でMicrosoftのVSSを利用してアプリケーションレベルでの静止点作成処理を行います。

 

しかし、Linuxや下記WindowsはMicrosft VSSをサポートしていません。
・Windows 95 ・Windows 98 ・Windows NT
そのため、静止点を取得する際にはカスタムスクリプトを使用していただく必要があります。

 

■技術ブログ
Windows OSのオンラインバックアップ手順【VMWare専用 バックアップ & レプリケーションソフト Veeam】
batと連携しての仮想マシンのバックアップ手順(MySQLの起動・停止)
オンラインダンプを使った仮想マシンのバックアップ方法【Veeam Backup & Replication】

 

関連トピック

Job作成時のオプション “Enable guest file system indexing” はどんな機能ですか?
Veeam静止点処理において必要な認証情報をVM個別に指定する方法はありますか?

サポートするバックアップ保存先

リポジトリサーバのローカル(内部)ストレージ

リポジトリサーバに直接接続されたストレージ(DAS)
※外部のUSB/eSATAドライブ、USBパススルー、RAWデバイスマッピング(RDM)ボリュームなどを含みます。

ストレージエリアネットワーク(SAN)
※バックアップリポジトリにハードウェアまたは仮想HBA、ソフトウェアiSCSIイニシエータを介してSANファブリックに接続する必要があります。

ネットワーク接続ストレージ(NAS)
-SMB(CIFS)共有:リポジトリとして直接登録することが可能です。
-NFS共有:Linuxのリポジトリサーバにマウントする必要があります。

高度な連携が可能な重複排除ストレージアプラインス
-Dell EMC Data Domain(DD OSバージョン5.6、5.7、6.0、6.1)
-ExaGrid(ファームウェアバージョン5.0.0以降)
-HPE StoreOnce(ファームウェアバージョン3.15.1以降)
-Quantum DXi(ファームウェアバージョン3.4.0以降)

 

関連トピック
バックアップ先はどこが選択できますか?

Veeam Backup & Replication Enterprise Managerに推奨される環境

※Veeam Backup & Replication Enterprise ManagerはWebブラウザからVeeam Backup & Replicationのバックアップ・レプリケーションジョブ等を管理するためのソフトウェアです。またEnterprise版の機能であるU-Airや1 Click File Restoreでも使用いたします。

ハードウェア
・CPU: x86-x64 プロセッサ

・メモリ: 4 GB RAM (推奨する最小構成)

・ディスク容量: システムディスク上に 2 GB

・ネットワーク: 1Gbit/sec

 

対応OS(下記のの64bit OSにインストール可能です)
●Mictosoft Windows Server 2022(Veeam Backup Enterprise Manager 11a以降で対応)
●Microsoft Windows Server 2019
●Microsoft Windows Server 2016
●Microsoft Windows Server 2012 R2
●Microsoft Windows Server 2012
●Microsoft Windows 2008 R2 SP1
●Microsoft Windows 2008 SP2
●Microsoft Windows 10
●Microsoft Windows 8.x
●Microsoft Windows 7 SP1

 

SQL Server(有償版もしくはExpressエディション)
●Microsoft SQL Server 2019
●Microsoft SQL Server 2017
●Microsoft SQL Server 2016
●Microsoft SQL Server 2014
●Microsoft SQL Server 2012
●Microsoft SQL Server 2008 R2
●Microsoft SQL Server 2008

※インストーラにはMicrosoft SQL Server 2012のExpressが含まれています。

 

ソフトウェア
Microsoft .NET Framework 4.7.2 ※インストーラに含まれます。

Microsoft Internet Information Services 7.5 以降
※IIS 8.0の場合、ASP.NET 4.5、.NET 4.5拡張機能を含みます。
※IIS8.5の場合、Veeam Self-Service Backup PortalとvSphere Self-Service Backup Portalを使用する際には、URL書き換えモジュールが必要です。
※これらのコンポーネントがインストールされていない場合、セットアップ中に自動的に構成することも可能です。

 

ブラウザ
Internet Explorer 11.0以上
Microsoft Edge
Mozilla Firefox、Google Chromeの最新版
※JavaScriptとWebSocketを有効にする必要があります。
※Enterprise Managerからエクスポートしたレポートを表示するためにMicrosoft Excel 2003以上が必要です。

EspressReport (0)

どのような形式のアプリケーションで利用できますか?

Javaのアプリケーションであれば、サーバーサイド、クライアントサイドのどちらでも利用できます。
サーバーサイドの場合には、サーブレット・JSP上でEspress ReportのAPIを使用し、チャートイメージをWebブラウザへ転送することが出来ます。
クライアントサイドの場合には、一般的なJavaのアプレットの他、Swingもサポートしております。

日本語対応していますか?

データソースに含まれる日本語等のマルチバイト文字に対応しています。GUIはデフォルトで英語ですが、日本語化マッピングファイルを適用いただくことで日本語UIに変更可能です。また、日本語の製品ドキュメントをご用意しております。

web公開時にレポートは表示されるのにチャートが表示されません。

RPTImageGenerator.classが必要です。
ImageGeneratorディレクトリ内のRPTImageGenerator.classをサーバに配置してください。

Syniti DR -導入・製品 (9)

Syniti DR -ライセンス (3)

Syniti DR -購入サポート (7)

Syniti DR -評価 (4)

評価するには何が必要になりますか?

下記の環境をご用意ください。
・DBMotoインストール用のWindowsPC(仮想マシンでも可)
・ソースDBとターゲットDB、及び評価の際に使用するテストデータ
※インストールするサーバについては、システム要件をご確認ください。
※インストールや設定方法についてのマニュアルやデモ動画を事前にご確認ください。

Syniti DR -機能 (8)

レプリケーション検証機能で正常なレコードがソースのみ、ターゲットのみのレコードとして表示されます。

レプリケーションの検証をすることで、ソースのみのレコード、ターゲットのみのレコード、ソースとターゲットで差異のあるレコードを確認できます。

しかし、本来、ソースにもターゲットにも存在し、差異のないレコードがソースのみ、ターゲットのみに存在するレコードとして表示されることがあります。

 

これは、DBMotoはソースとターゲットのレコードを比較する前に主キーをベースにレコードのソートを行いますが、このときのソースDBとターゲットDBのソートの仕様の違いによるものです。

例えば、Oracleの場合、大文字、小文字を区別してソートするため、D→aの順番でソートされ、MySQLの場合、大文字、小文字を区別せずソートするため、a→Dの順番でソートされます。

このソートの順番が異なるため、このような結果が生じます。

 

この事象を回避するため、検証機能のオプション「ORDER BY句」の「ソーステーブル」「ターゲットテーブル」に「LOWER(主キー)」を入力してください。こうすることで、大文字、小文字の区別なくソートが行えるため、問題なく検証することが可能です。

validation

複数のテーブル内のレコードを1つのテーブルに結合可能ですか?

可能ですが注意が必要です。
ミラーリング時はPKが各テーブルで重複していなければ問題ありませんが、リフレッシュ時はそのまま実行してしまいますとリフレッシュ前に一度レコードを削除する処理(DBMotoの仕様)が行われます。これを回避するためにスクリプトでリフレッシュ時にレコードを削除しないようブロックする必要があります。
なお、各テーブル内のレコードが結合後に重複する可能性がある場合は、PK代わりのフィールドを新規で作成することでPK重複エラーを回避可能です。

Syniti DR -IBM DB2 for AS/400 (13)

AS/400のレプリケーションで「レプリケーション検証機能」を使用すると文字変換が正しくないとのエラーが出ます。

DBMotoの機能に、レプリケーションのソースとターゲット双方のテーブル間で差異が生じていないかを確認するレプリケーション検証機能があります。
AS/400のテーブルで、VARGRAPHIC型もしくはGRAPHIC型があるテーブルで検証を行うと、「CCSID 65535とCCSID 13488の間の文字変換は正しくない」とのエラーメッセージが出力されることがあります。
このエラーメッセージは通常のレプリケーション中には発生せず、データは問題なくレプリケーションできていることが多いです。

sort_sequence_table_error

これは、このレプリケーション検証機能使用時に限り、DBMotoの「検証のソート・シーケンステーブル」設定が有効であるため、GRAPHIC型が文字変換を行おうとして失敗しています。
対処法は、この設定個所の部分を空欄にすることです。(設定変更時はData Replicatorの停止が必要です。)

sort_sequence_table

なお、通常のレプリケーションは、前述の通りこの設定を使用していないので、問題なく変換され動作します。

マルチメンバーファイル(テーブル)からレプリケーションができません。

AS400上のマルチメンバーファイルとなっているテーブルからレプリケーションしようとすると、ステータスは成功なのに処理件数が0件のまま動かないことがあります。

これはマルチメンバーファイルの仕様上の制限でSELECTクエリが実行できないためです。
テーブルのエイリアスを作成していただければSELECTクエリで結果が取得できるため、レプリケーションできるようになります。
エイリアスを作成するクエリの一例は以下の通りです。

CREATE ALIAS MYLIB.FILE1MBR1 FOR MYLIB.MYFILE(MBR1)
CREATE ALIAS MYLIB.FILE1MBR2 FOR MYLIB.MYFILE(MBR2)

どのようにして差分レプリケーションが行われますか?

Syniti DR -Oracle (17)

Data Replicatorが強制停止することがある

本エラーは例えばOracle 11.2のクライアントを使用している場合「oracore11.dll」にて障害が発生した旨Windowsイベントログに記録されている可能性があります。
一部の条件下にて本事象が発生するケースがあり、エラー発生までの流れは以下の通りです。

1. DBMoto から Oracle へ Oracle クライアントで接続するためコネクションをオープンする
2. このオープンしたタイミングで Oracle クライアント側のoracore11.dll というファイル関連で何らかの障害が発生しエラーとなる可能性がある
3. 2に引きずられて DBMoto の Data Replicator が強制終了する

つまり、発生トリガーは1の「Oracle へのコネクションを確立した際」です。

これまで発生事例から Windows のダンプファイルの解析、マイクロソフト社のダンプ解析ツール ADPlus でさらに詳細を解析するなどし下記のことが判明しております。

・エラーは Oracle 側の DLL で発生している
・エラーは .NET Framework の外で発生している
・DBMoto はすべて .NET Framework 内で動作するので本エラーが DBMoto 起因である可能性は極めて低い
(DBMoto が原因の場合は .NET Framework 内でエラー発生する)
・再現するマシンが一部に限られている

回避策としてレプリケーション毎に Oracle への接続をオープンにしないようコネクションプールを有効にする方法がございます。設定手順は以下の通りです。

1. Data Replicator サービスを停止します
2. ターゲットの Oracle 接続を右クリック→「プロパティ」を開きます。
3. 接続 Oracle .NET Driver の右にあるボタンをクリックします。
4. Pooling が False になっているので True へ変更します。

これにより Oracle へのコネクションプーリングが有効となり、
本事象は発生しなくなります。

Oracleからのミラーリングで「Record to update not found in target table」の後にターゲットへの補管INSERTでNOT NULL制約違反が発生する

まず更新対象レコードがターゲットに存在しない場合に「Record to update not found in target table」警告が発生し、その後DBMotoは補完INSERTを行います(行わないようにすることも可能です)

しかし Oracle のトランザクションログモードがLog Readerの場合、REDOログから取得できる情報は更新したカラムとPKのみとなります。
このため更新していないカラムはNULLとしてターゲットへのINSERTを行い、結果NOT NULL制約のカラムがあるとエラーになります。

対処方法は以下の2通りです。

1. Oracle のトランザクションログモードを「トリガー」にする(Oracle 10gかつDBMoto v9以降)

2. Oracle に対して以下のクエリを発行し、すべてのカラム情報をREDOログから取得できるようにする。
>ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS

Oracleからのミラーリングタイミングが更新が起きていない時間帯でもバラバラです。

Oracleからのミラーリング時にはデフォルトでアーカイブログを参照し、またその際にCONTINIOUS_MINEオプションを有効にしています。
一部のOracle環境ではCONTINIOUS_MINEオプションをオンにしているとミラーリングタイミングがバラバラになることがあります。
CONTINIOUS_MINEオプションを外すとこの事象が解消することがあります。
オプションの切り替えにより、レプリケーションの性能劣化やOracleに対する負荷増加が発生することはほとんどありません。

continuous_mine

DBMotoでOracleのマテリアライズドビューはレプリケーションできますか?

リフレッシュとミラーリングが可能です。
 
ミラーリング時の注意点として、DBMotoは差分データの取得にトランザクションログを用いていますが、マテリアライズビューにあるレコードに対するUPDATE操作をOracleが内部で行う際、UPDATEではなくDELETEとINSERTを組み合わせて行っているため、トランザクションログの数が1つではなく、2つになっています。
 
DBMotoのレコード処理件数表示はトランザクションログをベースにしている都合上、マテリアライズドビューのリフレッシュモードが「完全」の場合は、ビュー上の全レコード数×2、「部分」の場合は、UPDATE対象レコードの数×2の数が、レコード処理件数として表示されます。これはOracle側の仕様によるものです。

サプリメンタルロギングを設定時の「Minimal Level」と「Database Level」は何が違うのでしょうか?また、実行されるSQLを教えてください。

●Minimal Level

レプリケーションするテーブルのみ(最低限)にサプリメンタルロギングの設定が行われます。

以下のSQLが実行されます。

・サプリメンタルロギング設定時

ALTER DATABASE ADD SUPPLEMENTAL LOG DATA

・レプリケーション作成時

ALTER TABLE テーブル名 ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY, UNIQUE INDEX) COLUMNS
●Database Level

データベース全体(すべてのテーブル)に対してサプリメンタルロギングの設定が行われます。

以下のSQLが実行されます。

・サプリメンタルロギング設定時

ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY, UNIQUE INDEX) COLUMNS

Syniti DR -IBM DB2 for Linux, Windows, AIX (3)

DB2のHADR構成のスタンバイサーバからミラーリングは可能ですか?

トリガー形式およびログ参照形式のいずれも不可です。
DB2側の仕様でトリガーに必要な機能もログ参照に必要なAPIもスタンバイサーバでは利用できません。

どのようにして差分レプリケーションが行われますか?

DB2 Logを参照する方法と、トリガーログテーブルを作成する方法があります。DB2 Logを使用する場合、予めdb2udbreadlogという拡張ファイル(DBMotoに同梱済み)をDB2側に格納する必要があります。

Syniti DR -SQL Server (8)

シンクロナイゼーション レプリケーション作成時にエラーが発生します。 「接続’DB接続名’用に定義されたユーザ’sa’はsysadminであり、シンクロナイゼーションでは有効ではありません。sysadmin以外のユーザでログインを定義してください。また、ディストリビュータを作成し、トランザクションログを読むためにsysadminのログインIDを供給しています。」

SQL Serverの接続設定に「sa」以外のユーザをご利用ください。
シンクロナイゼーションでは、更新がループしないようにするため、接続設定に使用したユーザでの更新はレプリケーション対象として検出しない仕様となっております。
そのため、シンクロナイゼーションを行う場合には、DBMoto専用ユーザを用意する必要がございます。
「sa」はDBMoto専用とすることができないため、このようなエラーが発生します。

ビューのレプリケーションに対応していますか?

参照するベースのテーブルが1つの場合かつSQLServerのビュー更新条件(特定の関数が使用されていないこと)を満たしている場合に限り、リフレッシュのみ可能です。
複数のベーステーブルを参照するビューの場合は、ビューの仕様でinsert, update, deleteが行えず、selectのみ可能となりますので、DBMotoでも同様にレプリケーションは行えなくなります。

Syniti DR -MySQL (5)

MySQLへのミラーリングが反映されません

MySQLへミラーリングを行うためには、MySQLでautocommitが有効になっている必要があります。以下のクエリで確認が可能です。
mysql>SELECT @@autocommit;

もしもこの結果が0の場合、autocommitが無効になっているので、有効化してください。
もしアプリの都合で有効化が困難な場合は、以下の対応を行ってください。

1. Data Replicator を停止し、Management Center を閉じます。
2. 以下のファイルをダウンロードし、ExecuteList.xml を開きます。
https://www.climb.co.jp/soft/download/DBMoto/ExecuteList.zip
3. <connection name=”ここ”> に DBMoto で設定済みのMySQL 接続名を指定します。
4. ExecuteList.xml を DBMoto インストールディレクトリに配置します。
5. Data Replicator を開始し、正常にレプリケーションされることを確認します。

これによりMySQL への接続毎に「SET autocommit=1;」のコマンドを発行して一時的にautocommitを有効化してレプリケーションを行うようになります。

MySQLレプリケーションのスレーブ側サーバからミラーリングをしたいのですが、必要な設定はなんですか?

スレーブ側MySQLのmy.iniの[mysqld]に次の一行を付け加えます。
log_slave_updates=TRUE
これは、スレーブサーバがマスターサーバから受け取った更新をスレーブサーバ自身のバイナリログに反映する設定となります。

デフォルトですと設定がされていない(FALSE)ため、DBMotoからスレーブ側のバイナリログを読み込みにいっても、マスター側の更新が記録されず、変更を検知できません。

DB2 Connectivity (Syniti DC) (10)

HiT Db2 Connectivity製品の選択方法 ( ID:1635)

○もしアプリケーションがADO.NET または Visual Studioで構築されたいれば、Ritmo (.NET)を選択

○もしアプリケーションがJavaで構築されていればHiT JDBCを選択

○もしアプリケーションが Powerbuilder等の他で構築されていればHiT ODBC か HiT OLEDBを選択

ただしHiT ODBCはリレーショナル・データベース形式のみをサポートし、HiT OLEDBはリレーショナル+他のすべてのデータ形式にサポートします。

ODBC/400 と ODBC/Db2の異差

●HiT ODBC/DB2およびHiT ODBC Server/DB2はIBM Db2 on z/OS, Linux, Unix, Windowsサーバとの通信でDRDAプロトコールを使用します。 HiT ODBC/DB2およびHiT ODBC Server/DB2は、以下のIBM Db2環境で動作します。

· IBM Db2 LUW

· IBM Db2 for z/OS (OS/390)

· IBM Db2 for i – supporting IBM OS/400 Operating Systems V4R2 or higher

●HiT ODBC / 400およびHiT ODBC Server / 400は、ODBSプロトコルを使用し、IBM iオペレーティング・システムV3R1以上を必要とします。

HiT DB2 Connectivity Developer Edition (DE: 開発者版)について

IBMのi5, System i, iSeries, AS/400上で稼動するDB2データをWindowsでのActive Server Page(ASP)に利用したり、Visual Basicアプリケーションに利用したりすることは通常は簡単ではありません。HiT ODBC Server/400 Developer EditionとHiT OLEDB Server/400 Developer Editionに含まれるHiT ASPと HiT VBツールキットを利用することにより、それらの開発時間を大幅に短縮できます。

○ HiT ODBC Server/400 Developer Edition (DE: 開発者版)はi5, System i, iSeries, AS/400上で稼動するIBM DB2をアクセスするためのSQLミドルウェアで、Windowsプラットフォーム上で稼動し、ユーザまたはサードパーティのアプリケーションで利用されます。HiT ODBC Server/400 DEはDB2データのアクセス、リトリーブ、アップデートにWindows Open Database Connectivity (ODBC)をサポートします。またActive Server Page(ASP)と Visual Basic のツールキットを含みADO経由でDB2データを接続、クエリー、リトリーブ、アップデートが可能なソースコードを含むサンプル・アプリケーションが含まれます。
またIBM Optimized Database Server (ODBS)プロトコール標準を利用しているので、HiT ODBC Server/400 DEはネイティブなIBM OS/400サーバ・プログラムを使用し、i5, System i, iSeries, AS/400プラットフォームに特別なソフトウェアは必要ありません。

○ HiT OLEDB Server/400 Developer Edition (DE)は同様にi5, System i, iSeries, AS/400上で稼動するIBM DB2をアクセスするためのSQLミドルウェアで、Windowsプラットフォーム上で稼動し、ユーザまたはサードパーティのアプリケーションで利用されます。HiT OLEDB Server/400 DEはADO v2.x経由、またはOEL DBオブジェクト・プロパティ経由での直接にアプリケーションSQLステートメントが可能で、そしてDB2データのアクセス、リトリーブ、アップデートが可能です。また同様にHiT ASPと HiT VBツールキットを含みます。

●HiT ASP ツールキット
Webアプリケーションの開発の高速化に最適
Microsoft IIS Web開発用のHiT Active Server Page (ASP) ツールキットはHiT ODBC Serverミドルウェアとの組合せでIIS ASP開発環境でのDB2のWeb統合に有益なスタートをもたらします。

HiT ASPツールキットに含まれるWebアプリケーションからDB2テーブルに対するクエリー、アップデートの検証済ASPサンプルを開発者が利用することでWebアプリケーション・開発時間を大幅に削減できます。サンプルにはADOレコードセットを使用しての接続確立方法、ストアード・プロシージャ実行、テーブル・データのリトリーブとインサート、HTML経由での結果表示などがあります。すべてのサンプルは各種のDB2サーバとプラットフォームで検証されています。HiT ASPツールキットはWindowsフラットフォームで稼動し、HiT ODBCサーバ製品経由でDB2サーバとコミュニケーションを行います。

●HiT VBツールキット
高速VBアプリケーション開発に最適
HiT VBツールキットはすべてのHiT ODBC と OLE DB開発者版製品に含まれMicrosoft Visual Basicを使用する開発者をサポートします。HiT ODBC と OLE DBミドルウェア製品と組み合わせて使用することにより、Visual Basic開発環境でのDB2アプリケーション・インテグレーションに有益なスタートをもたらします。

HiT VBツールキットでADO, RDO, DAO, ODBCDirectインターフェイスを使用してDB2テーブル・データにアクセスするためのソース・コード・サンプルを開発者に提供することにより、アプリケーションの開発時間を削減することができます。サンプルはレコードセットを使用しての接続確立、ストアード・プロシージャの実行、DB2データのアップデートなどが含まれます。すべてのサンプルは各種のDB2サーバとプラットフォームで検証されています。HiT VBツールキットはWindowsフラットフォームで稼動し、HiT ODBCとOLE DB製品経由でDB2サーバとのコミュニケーションを行います。

Ritmo を使用してDB2 をアクセスC# や VB.NET のサンプル・コードはどこか にありますか?

Q:Ritmo を使用してDB2 をアクセスC# や VB.NET のサンプル・コードはどこか
にありますか?

A:基本的なSELECT/INSERT/UPDATE/DELETE を実行できるようにRitmo はC# と
VB.NET コード・サンプルを準備しています。さらにストアード・プロシージ
ャ・コール作成やパラメトリック・クエリもカバーします。Ritmo ToolBox Help
メニューの下にサンプル・コードがあります。Ritmo ToolBox のプルダウン・メ
ニューからHelp/Contents を選択してサンプルコードを選びます。

.NET経由でAS/400に接続する時にHiT OLEDB/400を選択するのかRitmo/iを選択するのか?

.NETアプリケーション開発者はAS/400サーバへアクセスするためにはマイクロソフトが提供するADO.NET-to-OLE DBまたは-ODBC 使用してODBC または OLEDBのどちらかを経由してそのリモートのデータベースに接続します。しかしこれらのブリッジ・ソリューションはパフォーマンスに影響し、CLR(Common Language Run-time)開発環境を利用する根本のプロバイダとドライバを阻害します。

Ritmo/i はこれらのブリッジ手法より優れた選択になります。それはブリッジを除外し、高いパフォーマンス、CLR機能、アプリケーションに対するオペレーティング。システムスケーラブルな管理を提供します

Q:Visual C++ を使用して AS/400への接続をどのようにイニシエイトしますか?

A: サンプルコードは:
///////////////////////////////////////////////////////////////////////////////
// OLE400 Test Sample – 07-07-2000
//
// Standard sample for testing HiT OLEDB400 Provider.
// Initialization phases can be used in any other connect exercise.
//
///////////////////////////////////////////////////////////////////////////////

#include
//You may derive a class from CComModule and use it if you want to override
//something, but do not change the name of _Module
extern CComModule _Module;
#include
#include
#include “atldb.h”
#include
#include

#include

#define SAFE_RELEASE(pv) if(pv) { (pv)->Release(); (pv) = NULL; }
#define TESTC(hr) { if(FAILED(hr)) goto CLEANUP; }

WCHAR* A2WSTR(LPCSTR lp, int nLen) {

USES_CONVERSION;
BSTR str = NULL;

int nConvertedLen = MultiByteToWideChar(_acp,
0,
lp,
nLen,
NULL,
NULL) – 1;

str = ::SysAllocStringLen(NULL, nConvertedLen);

if ( str != NULL ) {
MultiByteToWideChar(_acp,
0,
lp,
-1,
str,
nConvertedLen);
}
return str;
}

LPSTR WSTR2A(LPSTR cBuf, LPCWSTR lpw, LPCSTR lpDef) {

USES_CONVERSION;

int nConvertedLen = WideCharToMultiByte(_acp,
0,
lpw,
-1,
NULL,
0,
lpDef,
NULL) – 1;
if (nConvertedLen>0) {

if ( cBuf != NULL ) {
WideCharToMultiByte(_acp,
0,
lpw,
-1,
cBuf,
nConvertedLen,
lpDef,
NULL);
}
}

return cBuf;
}

CComPtr pMalloc;
MEMORYSTATUS lpBuffer;

// MAIN TEST FUNCTION
///////////////////////////////////////////////////////////////////////////////

void main ()
{

IDBInitialize* pIDBInitialize = NULL;
IDataInitialize* pIDataInitialize = NULL;
DWORD dwCLSCTX = CLSCTX_INPROC_SERVER;
DBPROPSET* prgPropSets = NULL;
ULONG cPropSets;
IUnknown* pDataSource = NULL;
IDBProperties* pIDBProperties = NULL;
WCHAR* pwszTemp;
WCHAR* pwszInitString;
HRESULT hr = S_OK;

hr = CoInitialize(NULL);
if (FAILED(hr))
return;

// retrieve pMalloc interface
hr = ::CoGetMalloc(1, (LPMALLOC *) &pMalloc);
if (FAILED(hr))
return;

hr = CoCreateInstance(CLSID_MSDAINITIALIZE,
NULL,
CLSCTX_INPROC_SERVER,
IID_IDataInitialize,
(void**)&pIDataInitialize);

///////////////////////////////////////////////////////
// Prompt data
char lpItemText [200];
char lpUDL [50];
char lpUserID [30];
char lpPassword [30];
int nLen = -1;

memset (lpItemText, 0, 200);
memset (lpUDL, 0, 50);
memset (lpUserID, 0, 30);
memset (lpPassword, 0, 30);

printf (“Open connection to HiT OLE DB Provider for DB2\r\n”);
printf (“==================================================\r\n”);

printf (“UDL File\t: “);
scanf (“%s”, lpUDL);
sprintf (lpItemText, “C:\\Program Files\\Common Files\\System\\OLE DB\\Data Links\\%s”, lpUDL);
printf (“\r\n”);

printf (“User ID \t: “);
scanf (“%s”, lpUserID);
printf (“\r\n”);

printf (“Password\t: “);
scanf (“%s”, lpPassword);
printf (“\r\n”);

///////////////////////////////////////////////////////
// Get connection string from Data Link file
nLen = strlen(lpItemText);
pwszTemp = A2WSTR(lpItemText, nLen + 1 );

hr = pIDataInitialize->LoadStringFromStorage(pwszTemp, &pwszInitString);

SysFreeString (pwszTemp);

///////////////////////////////////////////////////////
// Get Data Source object
hr = pIDataInitialize->GetDataSource(NULL,
dwCLSCTX,
pwszInitString,
IID_IDBInitialize,
(IUnknown**)&pDataSource);

hr = pDataSource->QueryInterface(IID_IDBInitialize, (void**)&pIDBInitialize);

if (pIDBProperties == NULL)
hr = pIDBInitialize->QueryInterface (IID_IDBProperties,
(void**)&pIDBProperties);

hr = pIDBProperties->GetProperties(0, NULL, &cPropSets, &prgPropSets);

// Set edit data link properties
DBPROP rgProps[3];
DBPROPSET PropSet;

rgProps[0].dwPropertyID = DBPROP_INIT_PROMPT;
rgProps[0].dwOptions = DBPROPOPTIONS_REQUIRED;
rgProps[0].vValue.vt = VT_I2;
rgProps[0].vValue.iVal = DBPROMPT_NOPROMPT;

rgProps[1].dwPropertyID = DBPROP_AUTH_USERID;
rgProps[1].dwOptions = DBPROPOPTIONS_REQUIRED;
rgProps[1].vValue.vt = VT_BSTR;
nLen = strlen(lpUserID);
pwszTemp = A2WSTR(lpUserID, nLen + 1 );
V_BSTR(&(rgProps[1].vValue))= SysAllocStringLen (pwszTemp, wcslen(pwszTemp));

rgProps[2].dwPropertyID = DBPROP_AUTH_PASSWORD;
rgProps[2].dwOptions = DBPROPOPTIONS_REQUIRED;
rgProps[2].vValue.vt = VT_BSTR;
nLen = strlen(lpPassword);
pwszTemp = A2WSTR(lpPassword, nLen + 1 );
rgProps[2].vValue.bstrVal = SysAllocStringLen (pwszTemp, wcslen(pwszTemp));

PropSet.cProperties = 3;
PropSet.rgProperties = rgProps;
PropSet.guidPropertySet = DBPROPSET_DBINIT;

hr = pIDBProperties->SetProperties (1, &PropSet);

// Free memory
SysFreeString (rgProps[1].vValue.bstrVal);
SysFreeString (rgProps[2].vValue.bstrVal);

// free all properties
pMalloc->Free (prgPropSets->rgProperties);

// now free the property set
pMalloc->Free (prgPropSets);

///////////////////////////////////////////////////////
// Initialize connection
printf (“Connecting…\r\n\r\n”);

hr = pIDBInitialize->Initialize();
if (FAILED(hr))
return;

printf (“CONNECTED\r\n\r\n”);

// to do: put any code here
// …

///////////////////////////////////////////////////////
// Disconnect
printf (“Disconnecting…\r\n”);

// Release any references and continue.
hr = pIDBInitialize->Uninitialize ();

SAFE_RELEASE(pIDBInitialize);

SAFE_RELEASE (pIDBProperties);
SAFE_RELEASE (pDataSource);

SAFE_RELEASE (pIDataInitialize);

CoUninitialize();

SAFE_RELEASE (pIDBInitialize);
}

Host Code Pageについて(KBFAQ 1024)

HiT ODBC/400, HiT OLEDB/400 and Ritmo for iSeries

IDS_CODEPAGE_037_1 “037 – US/Can./Australia/N.Z.”
IDS_CODEPAGE_037_2 “037 – Netherlands”
IDS_CODEPAGE_037_3 “037 – Portugal/Brazil”
IDS_CODEPAGE_273 “273 – German/Austrian”
IDS_CODEPAGE_277 “277 – Danish/Norwegian”
IDS_CODEPAGE_278 “278 – Finnish/Swedish”
IDS_CODEPAGE_280 “280 – Italian”
IDS_CODEPAGE_284 “284 – Spanish/Latin Amer. Sp.”
IDS_CODEPAGE_285 “285 – UK”
IDS_CODEPAGE_297 “297 – French”
IDS_CODEPAGE_424 “424 – Hebrew”
IDS_CODEPAGE_500 “500 – Belgian/Swiss/Can.”
IDS_CODEPAGE_870 “870 – Eastern Europe”
IDS_CODEPAGE_871 “871 – Icelandic”
IDS_CODEPAGE_875 “875 – Greek”
IDS_CODEPAGE_1026 “1026 – Turkey”
IDS_CODEPAGE_290 “290 – Jpn. Katakana Host SBCS”
IDS_CODEPAGE_1027 “1027 – Jpn. Latin Host SBCS”
IDS_CODEPAGE_933 “933 – Korean”
IDS_CODEPAGE_935 “935 – Simplified Chinese”
IDS_CODEPAGE_937 “937 – Traditional Chinese”
IDS_CODEPAGE_4396 “4396 – Jpn. Host DBCS”
IDS_CODEPAGE_5026 “5026 – Jpn. Katakana-Kanji Host Mix.”
IDS_CODEPAGE_5035 “5035 – Jpn. Latin-Kanji Host Mix.”
IDS_CODEPAGE_1140_1 “1140 – (Euro) US/Can./Australia”
IDS_CODEPAGE_1140_2 “1140 – (Euro) N.Z./Netherlands”
IDS_CODEPAGE_1140_3 “1140 – (Euro) Portugal/Brazil”
IDS_CODEPAGE_1141 “1141 – (Euro) German/Austrian”
IDS_CODEPAGE_1142 “1142 – (Euro) Danish/Norwegian”
IDS_CODEPAGE_1143 “1143 – (Euro) Finnish/Swedish”
IDS_CODEPAGE_1144 “1144 – (Euro) Italian”
IDS_CODEPAGE_1145 “1145 – (Euro) Spanish/Latin Amer. Sp.”
IDS_CODEPAGE_1146 “1146 – (Euro) UK”
IDS_CODEPAGE_1147 “1147 – (Euro) French”
IDS_CODEPAGE_1148 “1148 – (Euro) Belgian/Swiss/Can.”
IDS_CODEPAGE_1149 “1149 – (Euro) Icelandic”
IDS_CODEPAGE_420 “420 – Arabic”
IDS_CODEPAGE_838 “838 – Thai”

HiT ODBC/DB2, HiT OLEDB/DB2, and Ritmo for DB2

IDS_CODEPAGE_037_1 “037 – US/Canada/Australia/N.Z.”
IDS_CODEPAGE_037_2 “037 – Netherlands”
IDS_CODEPAGE_037_3 “037 – Portugal/Brazil”
IDS_CODEPAGE_273 “273 – German/Austrian”
IDS_CODEPAGE_277 “277 – Danish/Norwegian”
IDS_CODEPAGE_278 “278 – Finnish/Swedish”
IDS_CODEPAGE_280 “280 – Italian”
IDS_CODEPAGE_284 “284 – Spanish”
IDS_CODEPAGE_285 “285 – UK”
IDS_CODEPAGE_297 “297 – French”
IDS_CODEPAGE_420 “420 – Arabic”
IDS_CODEPAGE_424 “424 – Hebrew”
IDS_CODEPAGE_500 “500 – Belgian/Swiss”
IDS_CODEPAGE_819 “819 – Latin”
IDS_CODEPAGE_870 “870 – Eastern Europe”
IDS_CODEPAGE_871 “871 – Icelandic”
IDS_CODEPAGE_875 “875 – Greek”
IDS_CODEPAGE_290 “290 – Jpn. Katakana Host SBCS”
IDS_CODEPAGE_932 “932 – Jpn. PC Mixed incl. 1880 UDC”
IDS_CODEPAGE_933 “933 – Korean”
IDS_CODEPAGE_935 “935 – S. Chinese”
IDS_CODEPAGE_937 “937 – T. Chinese”
IDS_CODEPAGE_943 “943 – Jpn. PC Mixed for Open Env.”
IDS_CODEPAGE_954 “954 – Jpn. EUC”
IDS_CODEPAGE_1026 “1026 – Turkey”
IDS_CODEPAGE_1027 “1027 – Jpn. Latin Host SBCS”
IDS_CODEPAGE_1140_1 “1140 – (Euro) US/Can./Australia”
IDS_CODEPAGE_1140_2 “1140 – (Euro) N.Z./Netherlands”
IDS_CODEPAGE_1140_3 “1140 – (Euro) Portugal/Brazil”
IDS_CODEPAGE_1141 “1141 – (Euro) German/Austrian”
IDS_CODEPAGE_1142 “1142 – (Euro) Danish/Norwegian”
IDS_CODEPAGE_1143 “1143 – (Euro) Finnish/Swedish”
IDS_CODEPAGE_1144 “1144 – (Euro) Italian”
IDS_CODEPAGE_1145 “1145 – (Euro) Spanish/Latin Amer. Sp.”
IDS_CODEPAGE_1146 “1146 – (Euro) UK”
IDS_CODEPAGE_1147 “1147 – (Euro) French”
IDS_CODEPAGE_1148 “1148 – (Euro) Belgian/Swiss/Can.”
IDS_CODEPAGE_1149 “1149 – (Euro) Icelandic”
IDS_CODEPAGE_1252 “1252 – Windows ANSI”
IDS_CODEPAGE_4396 “4396 – Jpn. Host DBCS”
IDS_CODEPAGE_5026 “5026 – Jpn. Katakana-Kanji Host Mixed”
IDS_CODEPAGE_5035 “5035 – Jpn. Latin-Kanji Host Mixed”

HiT JDBC/400 API サポート

 

Methods: Return Types: Supported:

Interface Blob

getBinaryStream() InputStream Yes
getBytes(long pos, int length) byte[] Yes
length() long Yes
position(Blob pattern, long start) long No
position(byte[] pattern, long start) long No

 

 

Methods: Return Types: Supported:

Interface CallableStatement

getArray(int i) Array No
getBigDecimal(int parameterIndex) BigDecimal Yes
getBigDecimal(int parameterIndex, int scale) BigDecimal Yes
getBlob(int i) Blob No (soon)
getBoolean(int parameterIndex) boolean Yes
getByte(int parameterIndex) byte Yes
getBytes(int parameterIndex) byte[] Yes
getClob(int i) Clob No (soon)
getDate(int parameterIndex) Date Yes
getDate(int parameterIndex, Calendar cal) Date No (soon)
getDouble(int parameterIndex) double Yes
getFloat(int parameterIndex) float Yes
getInt(int parameterIndex) int Yes
getLong(int parameterIndex) long Yes
getObject(int parameterIndex) Object Yes
getObject(int i, Map map) Object No
getRef(int i) Ref No
getShort(int parameterIndex) short Yes
getString(int parameterIndex) String Yes
getTime(int parameterIndex) Time Yes
getTime(int parameterIndex, Calendar cal) Time Yes
getTimestamp(int parameterIndex) Timestamp Yes
getTimestamp(int parameterIndex, Calendar cal) Timestamp No
registerOutParameter(int parameterIndex, int sqlType) void Yes
registerOutParameter(int parameterIndex, int sqlType, int scale) void No
registerOutParameter(int paramIndex, int sqlType, String typeName) void No
wasNull() boolean Yes

 

 

Methods: Return Types: Supported:

Interface Clob

getAsciiStream() InputStream No
getCharacterStream() Reader Yes
getSubString(long pos, int length) String Yes
length() long Yes
position(Clob searchstr, long start) long No
position(String searchstr, long start) long No

 

 

Methods: Return Types: Supported:

Interface Connection

clearWarnings() void Yes
close() void Yes
commit() void Yes
createStatement() Statement Yes
createStatement(int resultSetType, int resultSetConcurrency) Statement Yes
getAutoCommit() boolean Yes
getCatalog() String Yes
getMetaData() DatabaseMetaData Yes
getTransactionIsolation() int Yes
getTypeMap() Map No
getWarnings() SQLWarning Yes
isClosed() boolean Yes
isReadOnly() boolean Yes
nativeSQL(String sql) String Yes
prepareCall(String sql) CallableStatement Yes
prepareCall(String sql, int resultSetType, int resultSetConcurrency) CallableStatement Yes
prepareStatement(String sql) PreparedStatement Yes
prepareStatement(String sql, int resultSetType, int resultSetConcurrency) PreparedStatement Yes
rollback() void Yes
setAutoCommit(boolean autoCommit) void Yes
setCatalog(String catalog) void Yes
setReadOnly(boolean readOnly) void Yes
setTransactionIsolation(int level) void Yes
setTypeMap(Map map) void No

 

 

Methods: Return Types: Supported:

Interface DatabaseMetaData

allProceduresAreCallable() boolean Yes
allTablesAreSelectable() boolean Yes
dataDefinitionCausesTransactionCommit() boolean Yes
dataDefinitionIgnoredInTransactions() boolean Yes
deletesAreDetected(int type) boolean Yes
doesMaxRowSizeIncludeBlobs() boolean Yes
getBestRowIdentifier(String catalog, String schema, String table, int scope, boolean nullable) ResultSet Yes
getCatalogs() ResultSet Yes
getCatalogSeparator() String Yes
getCatalogTerm() String Yes
getColumnPrivileges(String catalog, String schema, String table, String columnNamePattern) ResultSet Yes
getColumns(String catalog, String schemaPattern, String tableNamePattern, String columnNamePattern) ResultSet Yes
getConnection() Connection Yes
getCrossReference(String primaryCatalog, String primarySchema, String primaryTable, String foreignCatalog, String foreignSchema, String foreignTable) ResultSet Yes
getDatabaseProductName() String Yes
getDatabaseProductVersion() String Yes
getDefaultTransactionIsolation() int Yes
getDriverMajorVersion() int Yes
getDriverMinorVersion() int Yes
getDriverName() String Yes
getDriverVersion() String Yes
getExportedKeys(String catalog, String schema, String table) ResultSet Yes
getExtraNameCharacters() String Yes
getIdentifierQuoteString() String Yes
getImportedKeys(String catalog, String schema, String table) ResultSet Yes
getIndexInfo(String catalog, String schema, String table, boolean unique, boolean approximate) ResultSet Yes
getMaxBinaryLiteralLength() int Yes
getMaxCatalogNameLength() int Yes
getMaxCharLiteralLength() int Yes
getMaxColumnNameLength() int Yes
getMaxColumnsInGroupBy() int Yes
getMaxColumnsInIndex() int Yes
getMaxColumnsInOrderBy() int Yes
getMaxColumnsInSelect() int Yes
getMaxColumnsInTable() int Yes
getMaxConnections() int Yes
getMaxCursorNameLength() int Yes
getMaxIndexLength() int Yes
getMaxProcedureNameLength() int Yes
getMaxRowSize() int Yes
getMaxSchemaNameLength() int Yes
getMaxStatementLength() int Yes
getMaxStatements() int Yes
getMaxTableNameLength() int Yes
getMaxTablesInSelect() int Yes
getMaxUserNameLength() int Yes
getNumericFunctions() String Yes
getPrimaryKeys(String catalog, String schema, String table) ResultSet Yes
getProcedureColumns(String catalog, String schemaPattern, String procedureNamePattern, String columnNamePattern) ResultSet Yes
getProcedures(String catalog, String schemaPattern, String procedureNamePattern) ResultSet Yes
getProcedureTerm() String Yes
getSchemas() ResultSet Yes
getSchemaTerm() String Yes
getSearchStringEscape() String Yes
getSQLKeywords() String Yes
getStringFunctions() String Yes
getSystemFunctions() String Yes
getTablePrivileges(String catalog, String schemaPattern, String tableNamePattern) ResultSet Yes
getTables(String catalog, String schemaPattern, String tableNamePattern, String[] types) ResultSet Yes
getTableTypes() ResultSet Yes
getTimeDateFunctions() String Yes
getTypeInfo() ResultSet Yes
getUDTs(String catalog, String schemaPattern, String typeNamePattern, int[] types) ResultSet Yes
getURL() String Yes
getUserName() String Yes
getVersionColumns(String catalog, String schema, String table) ResultSet Yes
insertsAreDetected(int type) boolean Yes
isCatalogAtStart() boolean Yes
isReadOnly() boolean Yes
nullPlusNonNullIsNull() boolean Yes
nullsAreSortedAtEnd() boolean Yes
nullsAreSortedAtStart() boolean Yes
nullsAreSortedHigh() boolean Yes
nullsAreSortedLow() boolean Yes
othersDeletesAreVisible(int type) boolean Yes
othersInsertsAreVisible(int type) boolean Yes
othersUpdatesAreVisible(int type) boolean Yes
ownDeletesAreVisible(int type) boolean Yes
ownInsertsAreVisible(int type) boolean Yes
ownUpdatesAreVisible(int type) boolean Yes
storesLowerCaseIdentifiers() boolean Yes
storesLowerCaseQuotedIdentifiers() boolean Yes
storesMixedCaseIdentifiers() boolean Yes
storesMixedCaseQuotedIdentifiers() boolean Yes
storesUpperCaseIdentifiers() boolean Yes
storesUpperCaseQuotedIdentifiers() boolean Yes
supportsAlterTableWithAddColumn() boolean Yes
supportsAlterTableWithDropColumn() boolean Yes
supportsANSI92EntryLevelSQL() boolean Yes
supportsANSI92FullSQL() boolean Yes
supportsANSI92IntermediateSQL() boolean Yes
supportsBatchUpdates() boolean Yes
supportsCatalogsInDataManipulation() boolean Yes
supportsCatalogsInIndexDefinitions() boolean Yes
supportsCatalogsInPrivilegeDefinitions() boolean Yes
supportsCatalogsInProcedureCalls() boolean Yes
supportsCatalogsInTableDefinitions() boolean Yes
supportsColumnAliasing() boolean Yes
supportsConvert() boolean No
supportsConvert(int fromType, int toType) boolean No
supportsCoreSQLGrammar() boolean Yes
supportsCorrelatedSubqueries() boolean Yes
supportsDataDefinitionAndDataManipulationTransactions() boolean Yes
supportsDataManipulationTransactionsOnly() boolean Yes
supportsDifferentTableCorrelationNames() boolean Yes
supportsExpressionsInOrderBy() boolean Yes
supportsExtendedSQLGrammar() boolean Yes
supportsFullOuterJoins() boolean Yes
supportsGroupBy() boolean Yes
supportsGroupByBeyondSelect() boolean Yes
supportsGroupByUnrelated() boolean Yes
supportsIntegrityEnhancementFacility() boolean Yes
supportsLikeEscapeClause() boolean Yes
supportsLimitedOuterJoins() boolean Yes
supportsMinimumSQLGrammar() boolean Yes
supportsMixedCaseIdentifiers() boolean Yes
supportsMixedCaseQuotedIdentifiers() boolean Yes
supportsMultipleResultSets() boolean Yes
supportsMultipleTransactions() boolean Yes
supportsNonNullableColumns() boolean Yes
supportsOpenCursorsAcrossCommit() boolean Yes
supportsOpenCursorsAcrossRollback() boolean Yes
supportsOpenStatementsAcrossCommit() boolean Yes
supportsOpenStatementsAcrossRollback() boolean Yes
supportsOrderByUnrelated() boolean Yes
supportsOuterJoins() boolean Yes
supportsPositionedDelete() boolean Yes
supportsPositionedUpdate() boolean Yes
supportsResultSetConcurrency(int type, int concurrency) boolean Yes
supportsResultSetType(int type) boolean Yes
supportsSchemasInDataManipulation() boolean Yes
supportsSchemasInIndexDefinitions() boolean Yes
supportsSchemasInPrivilegeDefinitions() boolean Yes
supportsSchemasInProcedureCalls() boolean Yes
supportsSchemasInTableDefinitions() boolean Yes
supportsSelectForUpdate() boolean Yes
supportsStoredProcedures() boolean Yes
supportsSubqueriesInComparisons() boolean Yes
supportsSubqueriesInExists() boolean Yes
supportsSubqueriesInIns() boolean Yes
supportsSubqueriesInQuantifieds() boolean Yes
supportsTableCorrelationNames() boolean Yes
supportsTransactionIsolationLevel(int level) boolean Yes
supportsTransactions() boolean Yes
supportsUnion() boolean Yes
supportsUnionAll() boolean Yes
updatesAreDetected(int type) boolean Yes
usesLocalFilePerTable() boolean Yes
usesLocalFiles() boolean Yes

 

Methods: Return Types: Supported:

Interface PreparedStatement

addBatch() void Yes
clearParameters() void Yes
execute() boolean Yes
executeQuery() ResultSet Yes
executeUpdate() int Yes
getMetaData() ResultSetMetaData Yes
setArray(int i, Array x) void No
setAsciiStream(int parameterIndex, InputStream x, int length) void Yes
setBigDecimal(int parameterIndex, BigDecimal x) void Yes
setBinaryStream(int parameterIndex, InputStream x, int length) void Yes
setBlob(int i, Blob x) void Yes
setBoolean(int parameterIndex, boolean x) void Yes
setByte(int parameterIndex, byte x) void Yes
setBytes(int parameterIndex, byte[] x) void Yes
setCharacterStream(int parameterIndex, Reader reader, int length) void Yes
setClob(int i, Clob x) void Yes
setDate(int parameterIndex, Date x) void Yes
setDate(int parameterIndex, Date x, Calendar cal) void Yes
setDouble(int parameterIndex, double x) void Yes
setFloat(int parameterIndex, float x) void Yes
setInt(int parameterIndex, int x) void Yes
setLong(int parameterIndex, long x) void Yes
setNull(int parameterIndex, int sqlType) void yes
setNull(int paramIndex, int sqlType, String typeName) void no
setObject(int parameterIndex, Object x) void Yes
setObject(int parameterIndex, Object x, int targetSqlType) void Yes
setObject(int parameterIndex, Object x, int targetSqlType, int scale) void Yes
setRef(int i, Ref x) void No
setShort(int parameterIndex, short x) void Yes
setString(int parameterIndex, String x) void Yes
setTime(int parameterIndex, Time x) void Yes
setTime(int parameterIndex, Time x, Calendar cal) void Yes
setTimestamp(int parameterIndex, Timestamp x) void Yes
setTimestamp(int parameterIndex, Timestamp x, Calendar cal) void Yes
setUnicodeStream(int parameterIndex, InputStream x, int length) void Yes

 

Methods: Return Types: Supported:

Interface ResultSet

absolute(int row) boolean Yes
afterLast() void Yes
beforeFirst() void Yes
cancelRowUpdates() void Yes
clearWarnings() void Yes
close() void Yes
deleteRow() void Yes
findColumn(String columnName) int Yes
first() boolean Yes
getArray(int i) Array No
getArray(String colName) Array Yes
getAsciiStream(int columnIndex) InputStream Yes
getAsciiStream(String columnName) InputStream Yes
getBigDecimal(int columnIndex) BigDecimal Yes
getBigDecimal(int columnIndex, int scale) BigDecimal Yes
getBigDecimal(String columnName) BigDecimal Yes
getBigDecimal(String columnName, int scale) BigDecimal Yes
getBinaryStream(int columnIndex) InputStream Yes
getBinaryStream(String columnName) InputStream Yes
getBlob(int i) Blob Yes
getBlob(String colName) Blob Yes
getBoolean(int columnIndex) boolean Yes
getBoolean(String columnName) boolean Yes
getByte(int columnIndex) byte Yes
getByte(String columnName) byte Yes
getBytes(int columnIndex) byte[] Yes
getBytes(String columnName) byte[] Yes
getCharacterStream(int columnIndex) Reader Yes
getCharacterStream(String columnName) Reader Yes
getClob(int i) Clob Yes
getClob(String colName) Clob Yes
getConcurrency() int Yes
getCursorName() String Yes
getDate(int columnIndex) Date Yes
getDate(int columnIndex, Calendar cal) Date Yes
getDate(String columnName) Date Yes
getDate(String columnName, Calendar cal) Date Yes
getDouble(int columnIndex) double Yes
getDouble(String columnName) double Yes
getFetchDirection() int Yes
getFetchSize() int Yes
getFloat(int columnIndex) float Yes
getFloat(String columnName) float Yes
getInt(int columnIndex) int Yes
getInt(String columnName) int Yes
getLong(int columnIndex) long Yes
getLong(String columnName) long Yes
getMetaData() ResultSetMetaData Yes
getObject(int columnIndex) Object Yes
getObject(int i, Map map) Object No
getObject(String columnName) Object Yes
getObject(String colName, Map map) Object No
getRef(int i) Ref No
getRef(String colName) Ref No
getRow() int Yes
getShort(int columnIndex) short Yes
getShort(String columnName) short Yes
getStatement() Statement Yes
getString(int columnIndex) String Yes
getString(String columnName) String Yes
getTime(int columnIndex) Time Yes
getTime(int columnIndex, Calendar cal) Time Yes
getTime(String columnName) Time Yes
getTime(String columnName, Calendar cal) Time Yes
getTimestamp(int columnIndex) Timestamp Yes
getTimestamp(int columnIndex, Calendar cal) Timestamp Yes
getTimestamp(String columnName) Timestamp Yes
getTimestamp(String columnName, Calendar cal) Timestamp Yes
getType() int Yes
getUnicodeStream(int columnIndex) InputStream Yes
getUnicodeStream(String columnName) InputStream Yes
getWarnings() SQLWarning Yes
insertRow() void Yes
isAfterLast() boolean Yes
isBeforeFirst() boolean Yes
isFirst() boolean Yes
isLast() boolean Yes
last() boolean Yes
moveToCurrentRow() void Yes
moveToInsertRow() void Yes
next() boolean Yes
previous() boolean Yes
refreshRow() void Yes
relative(int rows) boolean Yes
rowDeleted() boolean Yes
rowInserted() boolean Yes
rowUpdated() boolean Yes
setFetchDirection(int direction) void Yes
setFetchSize(int rows) void Yes
updateAsciiStream(int columnIndex, InputStream x, int length) void Yes
updateAsciiStream(String columnName, InputStream x, int length) void Yes
updateBigDecimal(int columnIndex, BigDecimal x) void Yes
updateBigDecimal(String columnName, BigDecimal x) void Yes
updateBinaryStream(int columnIndex, InputStream x, int length) void Yes
updateBinaryStream(String columnName, InputStream x, int length) void Yes
updateBoolean(int columnIndex, boolean x) void Yes
updateBoolean(String columnName, boolean x) void Yes
updateByte(int columnIndex, byte x) void Yes
updateByte(String columnName, byte x) void Yes
updateBytes(int columnIndex, byte[] x) void Yes
updateBytes(String columnName, byte[] x) void Yes
updateCharacterStream(int columnIndex, Reader x, int length) void Yes
updateCharacterStream(String columnName, Reader reader, int length) void Yes
updateDate(int columnIndex, Date x) void Yes
updateDate(String columnName, Date x) void Yes
updateDouble(int columnIndex, double x) void Yes
updateDouble(String columnName, double x) void Yes
updateFloat(int columnIndex, float x) void Yes
updateFloat(String columnName, float x) void Yes
updateInt(int columnIndex, int x) void Yes
updateInt(String columnName, int x) void Yes
updateLong(int columnIndex, long x) void Yes
updateLong(String columnName, long x) void Yes
updateNull(int columnIndex) void Yes
updateNull(String columnName) void Yes
updateObject(int columnIndex, Object x) void Yes
updateObject(int columnIndex, Object x, int scale) void Yes
updateObject(String columnName, Object x) void Yes
updateObject(String columnName, Object x, int scale) void Yes
updateRow() void Yes
updateShort(int columnIndex, short x) void Yes
updateShort(String columnName, short x) void Yes
updateString(int columnIndex, String x) void Yes
updateString(String columnName, String x) void Yes
updateTime(int columnIndex, Time x) void Yes
updateTime(String columnName, Time x) void Yes
updateTimestamp(int columnIndex, Timestamp x) void Yes
updateTimestamp(String columnName, Timestamp x) void Yes
wasNull() boolean Yes

 

Methods: Return Types: Supported:

Interface ResultSetMetaData

getCatalogName(int column) String Yes
getColumnClassName(int column) String No
getColumnCount() int Yes
getColumnDisplaySize(int column) int Yes
getColumnLabel(int column) String Yes
getColumnName(int column) String Yes
getColumnType(int column) int Yes
getColumnTypeName(int column) String Yes
getPrecision(int column) int Yes
getScale(int column) int Yes
getSchemaName(int column) String Yes
getTableName(int column) String Yes
isAutoIncrement(int column) boolean Yes
isCaseSensitive(int column) boolean Yes
isCurrency(int column) boolean Yes
isDefinitelyWritable(int column) boolean Yes
isNullable(int column) int Yes
isReadOnly(int column) boolean Yes
isSearchable(int column) boolean Yes
isSigned(int column) boolean Yes
isWritable(int column) boolean Yes

 

Methods: Return Types: Supported:

Interface Statement

addBatch(String sql) void Yes
cancel() void No
clearBatch() void Yes
clearWarnings() void Yes
close() void Yes
execute(String sql) boolean Yes
executeBatch() int[] Yes
executeQuery(String sql) ResultSet Yes
executeUpdate(String sql) int Yes
getConnection() Connection Yes
getFetchDirection() int Yes
getFetchSize() int Yes
getMaxFieldSize() int Yes
getMaxRows() int Yes
getMoreResults() boolean Yes
getQueryTimeout() int Yes
getResultSet() ResultSet Yes
getResultSetConcurrency() int Yes
getResultSetType() int Yes
getUpdateCount() int Yes
getWarnings() SQLWarning Yes
setCursorName(String name) void no
setEscapeProcessing(boolean enable) void Yes
setFetchDirection(int direction) void no
setFetchSize(int rows) void no
setMaxFieldSize(int max) void Yes
setMaxRows(int max) void Yes
setQueryTimeout(int seconds) void Yes

 

 

 

Methods: Return Types: Supported:

Interface Array

No

Interface Struct

No

Interface SQLOutput

No

Interface SQLInput

No

Interface SQLData

No

Interface Ref

No

Interface Driver

Support but not to public

 

 

ライセンス体系はどのようになっていますか?

ワークステーション(クライアント)、またはサーバ・ベースでライセンスされます。クライアント・ライセンスは各PCごとにライセンスされます。クライント・ライセンスをWindowsサーバで稼動させることはできません。

サーバライセンスには次の2種類があります。
1) Open Connectionサーバ・ライセンスは 同時接続数には制限はありませんが、プロセッサ毎の価格になります。
2) Limited Connectionサーバライセンスは同時接続数です。 Processor数には依存しません。

HiT ODBC/400とIBM Client Accessを比較した時のパフォーマンスは?

Client AccessはClient Access機能(ODBC, Terminal Emulatorなど)を使用した最初の時のみ認証によって接続時間を最適化する一方、HiT ODBC/400は、結果セット検索時間を最適化します。

結果として小さなテーブル(検索時間が非常に短くなる。)を使用している場合は接続認証が一回のみ行われるので、Client Accessを使用した方がパホーマンスの向上が見れます。しかし3000レコード以上の大きなテーブルで結果セットを使用する場合は結果セット検索時間では HiT ODBC/400の方がClient Accessよりパフォーマンスは優れています。

またHiTのDB2ワイアー・プロトコール・ドライバはDB2クライント・ライブラリを必要としないため、直接DB2サーバに接続するためにコミュニケーション・オーバが無く、アプリケーション・パフォーマンスを非常に向上させます。

 

HiT OLEDB と HiT ODBCのパフォーマンスを向上させる方法は?

いくつかの手法があります。

1.ユニーク・インデックス
もし、AS/400のファイルがユニーク・インデックスであれば、パフォーマンスは改善されます。特に大きなテーブルからデータをselectしたり、同じクエリでいくつかのテーブルをJOINする場合です。その場合はファイルにプライマリ・キーを設定し、CREATE UNIQUE INDEXを1度だけ稼動させます。

2.ストアード・プロシージャ
AS/400に送るクエリがいつも同じで、アプリケーションが同じステートメントのクエリを何度も繰り返し、いくつかのパラメータを変更しているのみの場合はAS/400のストアード・プロシージャにそれらのステートメント・クエリをストアしていくつかのSELECT, INSERT, UPDATEなどの代わりに1つのCALLを発行します。

3.カーサ
ADOを使用してVisual BasicやASP/VBSのアプリケーションを開発しているときはConnection や Recordsetオブジェクト用にカーサ・ロケーション・プロパティ設定を選択することができます。

4.パラメトリック・クエリ
パフォーマンスでもっとも重要な要素はパラメトリック・クエリを使用することです。パラメトリック・クエリは「テンプレート・クエリ」として説明されることがあり、同じ規模の大きいテーブルで何度の実行できるクエリです。パラメトリック・クエリは一度準備をすることで、パラメータをパスすることで何度も実行することができます。これによりサーバにその都度送られるオーバーヘッドを削減し、「実行可能なフォーマット」でのクエリにコンパイルし、リクエストにてきせつに応じるためにデータをメモリ・スペースにアロケートし、アクセス・パスを準備します。

詳しくは:http://www.hitsw.com/support/kbase/optimization/Performance_OLEDBandODBC.htm

ODBCで日本語が文字化けします。

日本語文字化けが発生する場合、CCSIDに問題がある場合がほとんどです。
まずは、ODBC設定画面にて、Host Code Pageが「5026」または「5035」であるかどうかをご確認ください。
もしAS/400側で日本語文字を扱っているCCSIDが1027などの本来シングルバイト用のフィールドの場合は、ODBC設定画面にて、「Use Host Code Page to override column CCSIDs」にチェックを入れてください。これはフィールドのCCSIDを「Host Code Page」のものに変換する機能です。

ExcelやAccessから、設定したODBCを呼出す事ができません。

ODBCとExcel/Accessはともに32bitもしくは64bitかで一致されている必要があります。
例えば、ODBC64bit版をご利用いただく場合は、Excel/Accessも64bit版が必要です。ただし、Excel/Accessの64bit版はOffice2010からの対応になっておりますので、Office2007以前の場合はODBCの32bit版をご利用ください。OSが64bitの場合でも32bit版のODBCは問題なく動作いたします。

Veeam -導入・製品 (27)

アップデートや再インストール時にVeeamの設定情報を引き継げますか?

はい、引き継げます。
Veeam Backup & Replicationの設定情報はSQL Serverに保存されているため、既にあるVeeam Backup & Replicationのインスタンスを再利用することで設定情報等の引き継ぎが行えます。
しかしバージョンアップに伴い表の構造等が変更されますので、基本的には同一バージョンもしくは上位のバージョンでのみ再利用が可能です。古いバージョンを再インストールした際に、インスタンスの再利用が行えない場合もございますので、お気をつけください。

Veeam -ライセンス (8)

Veeam Universal License (VUL)はどんなライセンス体系ですか?

Veeam Universal License(VUL)は、サブスクリプション(年額前払)形態でご利用いただけます。インスタンス数(保護対象数)または保護容量で課金するライセンス体系で、以下が保護対象となります。
●仮想マシン(vSphere/Hyper-V/AHV)
●物理サーバ(Windows/Linuxなど)
●クラウドインスタンス(AWS/Azure/GCP)
●NASデータ

詳細は:

Veeam Universal License (VUL)について | クライム情報発信ブログ:ClimbMeUp

詳しくはお問合せください。
お問合せフォームはコチラ

インスタンスとはなんでしょうか?

保護対象の単位です。1インスタンスにつき10個まで、以下のバックアップ対象を割り当てることができます。
●1仮想マシン(vSphere/Hyper-V/AHV)
●1物理サーバ(Windows/Linuxなど)
●1クラウドインスタンス(AWS/Azure/GCP)
●500 GB分のNASデータ

 

詳しくはお問合せください。
お問合せフォームはコチラ

ライセンス体系はどのようになっていますか?

サブスクリプション(年額前払)形式となります。
1ライセンスにつき10個まで以下対象を保護できます。
●1仮想マシン(vSphere/Hyper-V/AHV)
●1物理サーバ(Windows/Linuxなど)
●1クラウドインスタンス(AWS/Azure/GCP)
●500 GB分のNASデータ

 

※Veeam Backup Essentials の場合
1ライセンスで5台(1環境につき50台の制限)

 

詳細はこちら

Veeam -評価 (4)

Veeam -購入サポート (8)

Contract No.とは何ですか?

Contract No.はユーザがVeeam/クライムとのサポート・保守に加入した最新(または最後)の追跡番号です。
この番号はユーザのライセンス・ポータルでも確認することができます。
サポート・保守更新時には必ず必要になりますので、Contract No.をお問合せください。
サポート・保守が更新されますと、暫くした後、新たなContract No.がアサインされます。
以前のContract No.では追跡ができなくなります。

サポートは最新バージョンのみですか? 古い(前の)バージョンもサポートしてもらえますか?

最新バージョン以外の古いバージョンのサポートも承っております。
しかし、開発元(Veeam 社)の正式サポートは最新バージョンとその1つ前のバージョンまでとなります。(例:2022年1月現在のVeeam Backup & ReplicationのバージョンはVer11.0、10.0、9.5、9.0、8.0、7.0、6.5…と存在していますが、このときの正式サポート対象はVer11.0、10.0 となります。)
そのため、古いバージョンの場合、いただいたご質問の内容によっては開発元からのサポートを受けられず、アップグレードをお願いすることになりますので、ご了承ください。

Veeam -機能 (113)

レプリケーションしたいVMのクローンVMを利用して初回のフルレプリケーションを行わず、差分レプリケーションを行えますか?

レプリケーションが”The operation is not allowed in the current state.”または”その操作は、現在の状態では実行できません。”で失敗します。

以下をご確認ください。
・レプリケーション元ESXiホスト
・レプリケーション先ESXiホスト
・レプリケーション対象VMのハードウェアバージョン

 

レプリケーション先のESXiホストがVMのハードウェアバージョンと互換性がない場合に、
このエラーによってレプリケーションが失敗します。

【参考】ハードウェアバージョンの互換性リスト

 

互換性のある状態にする必要があるため、
対処法としては、以下の2通りの方法があります。
・レプリケーション先ESXiホストをバージョンアップする。
・VMのハードウェアバージョンをダウングレードする。

【参考】ハードウェアバージョンのダウングレード方法

Enterprise ManagerでROLES設定を行いVMを選択するときに、一部ホストが表示されない。

以下に該当していないかご確認ください。
・vCenter経由とスタンドアロンホストの両方で同一ホストを登録している。
・どちらもホスト名で登録されている。

このとき、名前解決が行えず、Enterprise Managerが情報を正常に収集できません。

 

以下の対応を実施することで、全てのホストが表示されるようになります。
1.以下のいずれかを実施します。
・スタンドアロンホストをホスト名ではなく、IPアドレスで登録しなおす。
・Veeamサーバのhostsファイルにスタンドアロンホストのホスト名をIPアドレスを記載する。
2.Veeamコンソールで上記のホストをRescanします。
3.Enterprise ManagerでVeeamサーバの情報を収集します。

バックアップ対象(VM01, VM02)からVM02を除外した場合、VM02のリストアポイントは指定した世代数を保持しますか?

いいえ、保持しません。
例えば、リストアポイントを4世代とした場合、バックアップを取得するたびに世代数が減っていきます。
11/1, 11/2, 11/3, 11/4とバックアップを取得し、11/5にVM02が除外されたバックアップを取得した場合、VM02のリストアポイントは11/2, 11/3, 11/4となり、11/1のリストアポイントは消されます。
最終的には11/4のリストアポイントがフルバックアップファイル内に残り続けます。
これを消すにはフルバックアップの再作成や再構成(Compact full)が必要です。

Veeam V12新機能:オブジェクトストレージへの直接バックアップ

Object Storage

V12では、Direct-to-ObjectとDirect-to-Cloudの2つの主要な機能を提供しています。最初の機能は、バックアッププロキシやエージェントからオブジェクトストレージに直接バックアップを送信することで、中間ステップを回避することができます。さらに、このようなストレージへの直接接続が不可能な場合、トラフィックはゲートウェイサーバーの弾力的なプールを介してリダイレクトされることができます。さらに、ROBO(Remote Office Branch Office)環境を含め、より効率的なクラウドへの直接バックアップを実装しています。

また、新しいSmart Object Storage API(SOSAPI)ソフトウェア・インターフェースにより、オブジェクト・ストレージ・ベンダーがVeeam Backup & Replication v12と深く統合できるようになったことも特筆に値する(パフォーマンスの向上とユーザー・エクスペリエンスの改善に向けて)。

Veeam V12新機能:イミュータビリティ機能の強化

イミュータブル(Immutable)バックアップ機能は、ランサムウェアからバックアップを保護する手段を実装しています。この機能は、オンプレミスとクラウドネイティブの両方のワークロードで利用でき、ストレージのライフサイクルを通じてバックアップを保護し、管理者側の操作からも保護します。また、バックアップだけでなく、アラームにも不変性を持たせることができるため、より高度なインフラ保護が可能です。

Immutability Workloads

イメージレベルでのバックアップのサポートに加え、NASストレージ、スタンドアロンエージェント、AWSとMicrosoft Azureのバックアップ(Azure Blob Storageも)、HPE StoreOnceストレージでバックアップのイミュータビリティが利用可能です。また、トランザクションログやエンタープライズアプリケーションに対しても、プラグインを介して利用することができます。

Veeam V12新機能:多要素認証とベストプラクティスアナライザー

これらの高度なセキュリティ機能により、管理者は2つの新しいツールを手に入れることができます:

多要素認証は、RFC 6238に基づくTOTP(Time-Based One-Time Passwords)の仕組みに基づく2要素認証(2FA)機能を通じてコンソールへのアクセスを可能にします。個々のアカウントに対して有効にすることができます。

Multi-factor authentication

Best Practices Analyzerコンポーネントは、バックアップサーバーと製品の構成をチェックし、セキュリティと復旧成功の可能性を向上させるための重要な変更を管理者に提案します。

The Best Practices Analyzer component checks the backup server and product configuration

Veeam V12新機能:バックアップのインフラ整備

回転メディアに切り替えると、ディスクは自動的に既存の古いバックアップからクリアされます。さらに、ユーザは既存のバックアップチェーンを使い続けることもでき、現在のタスクにのみ属するバックアップを削除するか、メディア上のすべてのバックアップを削除するかの2つのオプションのうち1つを選択することができます。

Storage Compatibility Settings

v12では、SOBRリバランス機能が導入されました。Performance Tierエクステントのブロックおよびファイルストレージレベルでストレージ消費をリバランスし、エクステント間のデータ分散を均等にすることができるようになりました。この操作は、新しいエクステントを追加するときに実行する必要がありますが、常に実行する必要はありません。エクステント退避とSOBRリバランスの操作は、前述した新しいVeeaMoverエンジンを使用して、エクステント間でより効率的にバックアップを移動させます。

SOBR rebalance

また、ユーザーの要望により、マルチサイトやネットワーク環境でのトラフィックを管理するためのいくつかのインターネットルールが追加されました:

at the request of users, several internet rules have been added to manage traffic in multi-site and network environments

最後に、メール通知のOAuth 2.0対応です。SMTPによる認証に加え、Google GmailとMicrosoft 365のOAuthプロトコルによる認証をVBR V12がサポートするようになりました:

OAuth 2.0 support for email notifications

Veeam V12新機能:バックアップとリカバリー

新しいBackup Copyジョブは、新しいプラットフォームの機能との互換性を確保するために、個々のVMに基づく新しいフォーマットでチェーンを作成します(Per-machine backup chain)。既存のジョブはこのアップデートの影響を受けません。

Per-machine backup chains

アプリケーショングループについては、仮想テストラボで起動する前に、Windowsファイアウォールのネットワーク接続を自動的に無効化するオプションが追加されました。これは、リストアプロセスのテストが必要なバックアップで、ファイアウォールが外部接続をブロックするのを防ぐために必要です。

Windows Firewall network connection before launching them in a virtual test lab

そして最後の非常に便利な機能です。これからは、更新されたBackup Browserを使って、復元ポイントと本番機のファイルを比較することができ、選択したバックアップが取られた後にどのファイルが変更または削除されたかを表示します。

Compare a restore point with the files on the production machine using the updated Backup Browser

また、バックアップシステムと本番システムの間で、個々のファイルやフォルダの属性の違いを、新しいダイアログボックスを使って1画面で確認するオプションが追加されました:

Compare Attributes

もう一つの新機能は、ファイルやフォルダーのアクセスコントロールリスト(ACL)だけを復元する機能です。これは、管理者が誤ってフォルダやファイルのパーミッションを一括で変更してしまった場合に必要になることがあります。また、v12では、Windowsファイルを直接復元する際に、異なるターゲットマシンを選択できるようになりました(これまではLinuxのみ)。最後に、バックアップのエクスポートの機能が向上し、元のバックアップがあった同じリポジトリだけでなく、エクスポートしたポイントの保存先を任意に選択できるようになりました:

Export Backup

Veeam V12新機能:テープバックアップの改善

WindowsとLinuxの両サーバーに接続されたテープライブラリーやメディアをテープバックアップ用に登録することが可能に:

wp-image-21286

Backup-to-Tapeタスクは、ワークロードの種類に関係なく、即時モードまたは定期モードの新しいマルチプラットフォームBackup Copyジョブタイプによって作成されたすべてのバックアップコピーのエクスポートをサポートするようになりました。

すべてのテープ機能で、LTO-9テープの初期化プロセスをサポートし、初期化に時間がかかるとタイムアウトするのではなく、初期化が完了するまで正しく待機するようになりました。カセットテープを誤って消去しないように、InventoryとCatalogの操作後にテープメディアが自動的にテープライブラリードライブから排出されるようになりました。

Veeam V12新機能:CDP(Continuous Data Protection)の改善

CDPプロキシはLinuxサーバー上で動作するため、Windowsのライセンスを節約することができます。通常のバックアップ作業に加え、任意のクラウドホストサービスプロバイダを使用して、CDPポリシー内でレプリケーションを実行することができます。そして、VMやvAppモジュールのインスタントリカバリ機能を持つCloud Directorインスタンス内でレプリケーションを使用することができます。また、CDPはvVolスナップショットのネイティブサポートを提供するようになり、そこに保存されるオブジェクトの数を減らし、vVolボリュームのスケーリングに小さな制限があるデバイスでの信頼性を向上させます。

Veeam V12新機能:Veeam Agentの改良

Windows Serverに加え、保護グループウィザードに、Windows 10以降を実行しているワークステーションにVeeam changed block tracking (CBT) ドライバをインストールし、より高速な増分バックアップを行うオプションが追加されました。また、管理者はBare Metal Recoveryのリストアタスクのためにユーザーに与えることができる一時的なアクセスキーまたはリカバートークンを生成することができます。

 

v12のリリースに伴い、ゲストOS用の利用可能なすべてのエージェントがソリューション内で更新されたことに留意してください:

 

  • Veeam Agent for Microsoft Windows
  • Veeam Agent for Linux
  • Veeam Agent for Mac
  • Veeam Agent for AIX
  • Veeam Agent for Solaris

Veeam V12新機能:アプリケーションプラグイン

保護グループウィザードが改善され、グループに含まれるサーバーのアプリケーションプラグインのインストールとアップデートを制御するための設定が追加されました。アプリケーションのトポロジーに関する情報収集と、スキャンおよび再スキャン時のOracle RACおよびSAP HANAシステムの検出ができるようになりました。

wp-image-21278

アプリケーションのバックアップポリシーには、各サーバーのバックアップ処理をリアルタイムで監視し、データベースやREDOログのバックアップの統計やレポートを可視化するツールがあります。

 

また、Oracle RMAN、SAP HANA、SAP on Oracleのバックアップをバックアップコンソールからポリシーに基づいてオーケストレーションする機能があり、各データベースサーバーのプラグイン設定やバックアップシナリオを手動で整備する必要がなくなりました。また、Version12では、これらのプラグインによるバックアップと復旧の速度が最大で3倍に向上しています。

 

Microsoft SQL Server用の新しいプラグインは完全に刷新され、SQL Server(VDIプラグイン)との深い統合を実現し、Veeamリポジトリへの直接バックアップを可能にしました。VDIプラグインは、バックアップの一貫性を確保するためにネイティブな手段を使用し、スナップショットベースのバックアップとは異なり、Microsoft VSSに依存しないため、共有ボリュームを持つWindows Server Failover Clustersなど、異なるSQL Server構成のバックアップを可能にします。

 

Veeam V12新機能:PostgreSQLのサポート

 

マルチプラットフォームのPostgreSQLエンジンがサポートされ、Microsoft SQL Server Express Editionのデータベースサイズ(10GB)の制限を回避することができるようになりました。SQL Server Express Editionはまだサポートされていますが、Veeam Backup and Replication製品に含まれなくなりました。

 

PGAdminでPostgreSQLデータベースがどのように見えるかをご紹介します:

Here's a glimpse of what a PostgreSQL database looks like in PGAdmin

さらに、Linux上のPostgreSQLデータベースのポイントインタイムリカバリーのためのトランザクションログのアプリケーションアウェアバックアップがサポートされるようになりました。同じ機能は、Microsoft SQL ServerやOracleではすでに提供されていました。

 

また、PostgreSQLの経験を持つ管理者でなくてもインスタンスをリストアできる「Veeam Explorer for PostgreSQL」という製品も登場しました。インスタンスの任意のポイントインタイム状態をバックアップから指定されたDev/Testサーバに直接公開することができ、その後、公開されたデータベースに加えられた変更をエクスポートまたは元に戻すことができます。

Veeam V12新機能:新規VeeaMover エンジン

VeeaMoverを使用すれば、異なるタイプのリポジトリ間でデータを移動することができます。ソースとターゲットリポジトリのタイプを気にする必要はもうありません – VeeaMoverが自動的にデータ移動のすべての作業を処理します。

 

With VeeaMover, you can now move data between repositories of different types

 

さらに、バックアップはタスク間で簡単に移動できるようになり、関連するすべての操作が自動的に実行されます(例えば、包含リストや除外リストの操作など)。また、保持ポリシーを保持したまま(変更も可能)、数回のクリックでバックアップチェーン全体を別の場所に移動させることができます。

Veeam V12新機能:バックアップコンソールの改良

タスクセッションで対応するマシンをクリックすることで、タスク内のすべてのマシンに対してこの操作を開始することなく、個々のマシンに対して処理の再開やアクティブフルバックアップの実行ができるようになりました。また、誤ってタスクに追加された場合でも、処理から完全に除外したいマシンのマスターリストを指定することで、恒久的または一時的な除外の管理がより簡単になりました。Global Exclusionsダイアログはメインメニューから利用でき、これらのマシンはインベントリータブでDisable processingオプションが選択されています。

 

wp-image-21282

 

また、便利な機能として、既存のバックアップをタスクから切り離すことができ、次のフルバックアップ実行時に新しいバックアップチェーンが開始されます。切断されたバックアップは、「バックアップ」タブの「孤児」セクションに、最新の保持ポリシーとともに表示されます。

Veeam V12新機能:プライマリーとセカンダリーのストレージの改善

バックアップタスクは、既存のストレージレプリケーションリンクを使用して、追加のリカバリポイントとしてストレージベースのスナップショットに基づくレプリカを作成できるようになりました。これにより、プライマリストレージへの負荷を避けるために、セカンダリストレージアレイからバックアップを取ることができます。

 

さらに、Veeam のUniversal Storage APIのVer2が導入され、スナップショットレプリケーションとアーカイブのオーケストレーション機能、および同期レプリケーションのサポートが含まれています。Cisco HyperFlex、IBM Spectrum Virtualize、NetApp All SAN Array(ASA)、Dell Data Domain、Infinidat InfiniGuard、富士通 CS800、HPE StoreOnce、HPE Nimble、HPE Alletra 5000/6000ストレージアレイ向けに、バックアップの不変性など多くの重要機能が追加されています。ネイティブブロッククローニング機能の拡張サポートがExaGridストレージアレイに追加されました。

 

wp-image-21285

バックアップを取得している仮想マシンのデータストアを、ストレージvMotionで別のデータストアに移動した場合、差分バックアップを継続できますか?

差分リストアはできますか?

Veeam Backup & Replication Ver8からQuick Rollbackという機能が追加されました。
これは差分データ・リストア機能です。

Quick_Rollback

このQuick Rollback機能の使用制限:
1. Network または Virtual Appliance モードのみで使用可能。VMwareサイドの制限でDirect SAN Accessモードでは使用できません。

2.続けて2つの差分リストア・セッションを実行することは出来ません。VMまたはVMディスクに対して差分リストアを実行した後にそのVM上のCBTはリセットされます。差分リストアが再度実行できるように最低1回の差分バックアップを実行する必要があります。

レプリケーション先にはどの程度のディスクスペースがあれば良いですか?

仮想マシンのディスクタイプにはシンプロビジョニングとシックプロビジョニングがありますが、
それぞれに必要なディスクスペースに違いがあります。
これはシンとシックではストレージ領域の確保方法に違いがあるためです。

 

シンプロビジョニングで作成した仮想マシンの場合は
ストレージ領域が必要になるごとに領域を確保するため、
レプリケーション元の仮想マシンで使用済みのディスクサイズ分の
フリースペースがレプリケーション先に必要です。

 

シックプロビジョニングで作成した仮想マシンの場合は
仮想マシン作成時に指定したサイズ分の領域を確保するため、
レプリケーション元の仮想マシン全体のディスクサイズ分の
フリースペースがレプリケーション先に必要です。

“Commit Failback” と “Undo Failback” の処理の違いを詳しく知りたい。

■Commit Failback
レプリケーション先の VM をレプリケーションジョブを実行できる状態(“Failover” を実行する前の状態)にします。

■Undo Failback
レプリケーション先の VM を “Failback” を実行する前の状態(“Failover” を実行している状態)に戻します。

どちらもレプリケーション先の VM の状態を変更する機能です。
そのため、”Undo Failback” を実行した場合でも、
レプリケーション元の VM は変更が反映された状態(“Failback” 実行後の状態)のままになります。

ジョブ実行時にCBT(Change Block Tracking)が有効になっているか確認する方法はありますか?

既存のレプリカVMを利用して初回のフルレプリケーションを行わず、差分レプリケーションが行えますか?

オリジナルの仮想マシンとレプリカの仮想マシンをマッピングすることで、
差分レプリケーションからジョブを開始することができます。

参考: レプリカシーディング・レプリカマッピング機能について

 

関連トピック

レプリケーションしたいVMのクローンVMを利用して初回のフルレプリケーションを行わず、差分レプリケーションを行えますか?

リストア時の処理方法について教えてください。

Veeamには3つの処理モードが用意されております。

・ダイレクトストレージアクセスモード
・バーチャルアプライアンスモード
・ネットワークモード

 

参考

バックアップ、レプリケーション時の処理モードX 3
VMware環境での3つの転送モード方式と処理の流れ
処理モードの中では一番の高速バックアップ【Veeam Backup & Replication:Direct SANモード】
手間とコストをかけずに簡単に高速バックアップ【Veeam Backup & Replication:Virtual Applianceモード】
特別な条件の必要ない簡単・確実なバックアップ【Veeam Backup & Replication:Networkモード】

 

バックアップ時、リストア時にどの条件を満たしているかによって処理モードが変更されます。
しかし、リストアの場合は処理モードがVirtual ApplianceモードとNetworkモードのみ使用可能となっております。

 

関連トピック
VMwareのHot add機能を利用したバックアップは可能か?
SAN内の仮想マシンを別のSANにバックアップする際にモード選択でSANモードで処理可能か?

複数のジョブを同時に実行中、次のメッセージが表示され実行されないジョブがあります。「Waiting for backup infrastructure resources availability」

これは、複数ジョブを実行するためのリソースが不足しているため、処理中のジョブが終了し、リソースが解放されるまで待機状態になっていることを表しています。

 

そのため、複数のジョブを同時刻に実行したいということであれば、ジョブごとにプロキシサーバ(処理サーバ)を用意していただくか、プロキシサーバのスペックをあげていただく必要がございます。デフォルトではVeeamサーバがプロキシサーバとして動作します。

 

参考
プロキシサーバの同時実行タスク数について

インスタントVMリカバリ実行中に元の仮想マシンに対してバックアップを行えますか?

Veeamには2つのバックアップモード(増分・差分)があり、増分バックアップであれば実行中にもバックアップ可能ですが、差分バックアップの場合は行えません。

 

差分バックアップは毎回フルバックアップファイル(vbk)に差分をマージするのでvbkに書き込みを行います。しかし、インスタントVMリカバリではバックアップファイルから直接仮想マシンを作成するため、フルバックアップファイル(vbk)をロックします。そのため、vbkに書き込みが行えずエラーとなります。

 

増分バックアップでは増分ファイル(vib)の作成は行いますが、vbkに対して書き込みを行わないためバックアップ可能となります。しかし、バックアップファイルの変換オプション(Transform previous full backup chains into rollbacks)を有効にした場合は、増分バックアップは問題ありませんが、フルバックアップ時には増分ファイルを差分ファイルへ変換する処理が入りますので、ファイルがロックされるインスタントVMリカバリ中にフルバックアップは行えません。

 

 

 

vSphereのVMFS領域をバックアップ先として使用できますか?

バックアップ先ストレージとして利用可能なのはWindows、Linux、共有フォルダとなっています。
登録可能なデータ保存先(リポジトリ)

 

ESXにはLinuxをベースとした管理用OSが搭載されているため、Linuxのバックアップ先ストレージとして利用可能でした。

 

しかし、ESXi(vSphere5.1)はこの管理用OSを削除しており、直接バックアップ先ストレージとして利用できなくなっております。そのため、vSphere5.1上に仮想マシンを登録し、その仮想マシンをバックアップ先として利用する必要があります。

Veeam Backup & ReplicationサーバをVMware FT(Fault Tolerance)で構成したい。

VeeamサーバをVMware FT構成にすることは、基本的には問題ありません。

しかし、いくつか注意点がございます。

1.Veeamのコンソールとして使用するのは問題ないですが、プロキシとして使用するのは非推奨となります。もし、Virtual Applianceモードでバックアップを実行していた場合、処理途中で仮想マシンが切り替わるとVirtual Applianceモードが動作しなくなります。

2.バックアップ保存先への接続はNASかCIFSを使用する必要があります。Veeamサーバに直接接続されたディスクを使用すると、切り替わった際に機能しなくなります。

 

サポートしているテープの種類は何ですか?

テープ・ライブラリ・コンパチブル・リスト(Unofficial)

ADIC Scalar 100

Dell PowerVault 124T
Dell PowerVault 136T
Dell PowerVault TL2000

FalconStor (VTL) [VERIFIED]

Fujitsu Eternus LT40

HP ESL 712e
HP MSL G3 Series 4048
HP MSL G3 Series 8096
HP MSL 6030
HP MSL 6480
HP StorageWorks 1/8 G2 LTO-3 Ultrium 920
HP StorageWorks LTO-4 Ultrium 1840 SCSI
HP StoreOnce (VTL) [MSL series emulation]

IBM TS3100
IBM TS3200
IBM TS3310
IBM TS3500
IBM ProtectTier 7650 (VTL)
IBM ULTRIUM HH5 SCSI

Overland NEO 100s [VERIFIED]
Overland NEO 200s [VERIFIED]
Overland NEO 400s [VERIFIED]
Overland NEO 2000e [VERIFIED]
Overland NEO 4000e [VERIFIED]
Overland NEO 8000e [VERIFIED]

Quantum Scalar i40
Quantum Scalar i80
Quantum Scalar i500
Quantum Scalar i6000

QUADStor (VTL) [IBM TS3100/3580 emulation] [VERIFIED]

Qualstar RLS

Spectra Logic T50e [Quantum P7000 emulation]

Tandberg T24 [VERIFIED]
Tandberg T40+ [VERIFIED]
Tandberg T80+ [VERIFIED]
Tandberg T120+ [VERIFIED]
Tandberg T160+ [VERIFIED]
Tandberg RDX Quikstation (VTL) [T80+ emulation] [VERIFIED]

mhVTL (VTL) [64KB block size] [VERIFIED]

バックアップ対象の仮想マシンをStorage vMotionで移動した後、バックアップジョブを作り直す必要がありますか?

バックアップジョブにvCenter経由で仮想マシンを登録していれば、Veeamは仮想マシンに割り振られた参照IDを追跡しますので、ジョブの作り直しは必要ありません。
参考: vMotionやStorage vMotionに対応したジョブの作成

 

しかし、Storage vMotion実施後は仮想マシンのCBTがリセットされるため、実施後最初のバックアップはフルバックアップになります。
参考: Change Block Tracking is reset after a storage vMotion operation in vSphere 5.x

 

関連トピック
バックアップ対象の仮想マシンをStorage vMotionで移動する際にスナップショットエラーは発生しますか?
バックアップを取得している仮想マシンのデータストアを、ストレージvMotionで別のデータストアに移動した場合、差分バックアップを継続できますか?

Backup Job作成時のオプション “Retention policy” で設定した数以上のリストアポイントが作成されてしまいます。

Jobの終了時にバックアップ先のディスクの空き容量が不足していると警告が表示されます。

Veeam Backup & Replicationではバックアップ先のディスクの空き容量が設定した容量より少なくなった際に警告を表示します。
デフォルト設定では、空き容量が10%以下になった場合、警告を表示します。

 

また、バックアップ先のディスクの空き容量が設定したしきい値よりも下回った場合、VMのスナップショット取得の処理を行わずにジョブを終了させる設定もございます。
※デフォルト設定では、しきい値は5%となっております。

 

この設定はVeeamの管理コンソールから「Options」>「Notifications」タブで設定可能です。

レプリケーション後のレプリカVMの起動をvSphere Clientから行いたい。

はい、可能です。
任意の時点のスナップショットに戻してからレプリカVMを起動してください。

 

しかし、vSphere clientから起動することでVeeamから管理を行うことができなくなり、Failback(オリジナルへの切り戻し)が行えなくなります。プライマリサイト復旧後は、新規にレプリケーションジョブを作成してDRサイト⇒プライマリサイトの方向にレプリケーションを行う必要があります。レプリカVMを停止することでまたVeeamから管理することが可能になりますが、レプリカVMに対して行われた変更は反映されません。

 

バックアップ対象の仮想マシンをStorage vMotionで移動する際にスナップショットエラーは発生しますか?

Job作成時の “Advanced Settings” ボタンの “vSphere” タブの “Enable VMware Tools quiescence” にチェックを入れることでどのような動作をしますか?

Job作成時のオプション “Enable application-aware image processing” はどんな機能ですか?

オプション「Enable application-aware image processing」を有効にしてJobを実行するとVeeam独自にカスタマイズした方式でMicrosoftのVSSを利用してアプリケーションレベルでの静止点作成処理を行います。

 

しかし、Linuxや下記WindowsはMicrosft VSSをサポートしていません。
・Windows 95 ・Windows 98 ・Windows NT
そのため、静止点を取得する際にはカスタムスクリプトを使用していただく必要があります。

 

■技術ブログ
Windows OSのオンラインバックアップ手順【VMWare専用 バックアップ & レプリケーションソフト Veeam】
batと連携しての仮想マシンのバックアップ手順(MySQLの起動・停止)
オンラインダンプを使った仮想マシンのバックアップ方法【Veeam Backup & Replication】

 

関連トピック

Job作成時のオプション “Enable guest file system indexing” はどんな機能ですか?
Veeam静止点処理において必要な認証情報をVM個別に指定する方法はありますか?

EspressChart (3)

AS/400でのX-Serverを購入後の EspressChart のセットアップ方法:

[質問]
カード購入後、セットアップが必要となると思いますが、 PCサーバカードをAS/400に組み込んだ後どうすればよいのでしょうか?
AS/400上の設定は行ったとしてそれだけでよいのでしょうか?
PCサーバ上にWebsphereを入れて、その上にEspressChartを入れて、とかという作業が 必要になりませんか?

[回答]
IBM AIX機械については、X-Server起動後
(WebSphere起動後かもしれません)
管理者としてログインしてください。
その後
export DISPLAY=IP_address:0.0
のコマンドを打ってください。

ディスプレイ環境変数の設定が必要になります。

チャートビューアでSQL文書を可変に

[質問]

> 現在、弊社にてEspressChartApiを利用して2次元のコンビネーショングラフを
表示させております。
> しかし、メンテナンスを考えるとチャートビューアを利用したく考えております。
> 弊社で、チャートビューアを使用したテストが正常に作動しました。
> archive=”lib/EspressViewer.jar”>
> ←作成したチャートファイル
>

> このchtファイルにはデータ取得用のSQLがかかれておりますが、このSQLを可変にするこ
> とはできるのでしょうか?
> また、その場合にはどのようにすればよいのでしょうか?
—————————————————————-

[回答]


を以下のように変更願います

chtファイルは図表データを含んでいます。
しかし、tplはデータを含んでおらず、それがhtmlページに開かれるごとに、
データ・ベースから新しいデータを検索します。
espresschart¥ヘルプ¥マニュアル¥Chp_5.htmlでは、
それがさらにクエリーをそれ自身変更するためにコードを持っています。




開発環境と運用環境で文字(フォント)が変わってしまう場合どうすればいいですか?

グラフで使用しているフォントが両環境で使用できない場合、自動的にデフォルトのフォントが使用されます。
そのため両環境で共通のフォントを使用してください。

また環境によってDPIの設定が異なる場合、一部設定が反映されない場合があります。
その場合は両環境でDPIをあわせる、もしくはAPIからグラフを出力する際に以下のメソッドを実行しDPIをあわせる必要があります。(DPI_value:設定するDPIの値)
QbUtil.setPixelPerInchForExport(int DPI_value);

APIでTPLファイルからチャート作成時に”警告: Failed to load chart data, using backup data.”が表示される。

これはデザイナーで指定した場所にデータソースがない場合に警告が出力されることがあります。
この警告を出力しないようにするためには以下の3つの方法がございます。

①デザイナーで保存する際にCHTファイルを使用する。

②APIでからデータソースの場所を上書きした形で再度TPLファイルをエクスポートする。

③ダミーとなるデータをデザイナー指定の場所と同一の場所に作成する。

どのような形式のアプリケーションで利用できますか?

Javaのアプリケーションであれば、サーバーサイド、クライアントサイドのどちらでも利用できます。
サーバーサイドの場合には、サーブレット・JSP上でEspress ChartのAPIを使用し、チャートイメージをWebブラウザへ転送することが出来ます。
クライアントサイドの場合には、一般的なJavaのアプレットの他、Swingもサポートしております。

日本語対応していますか?

データソースに含まれる日本語等のマルチバイト文字に対応しています。GUIはデフォルトで英語ですが、日本語化マッピングファイルを適用いただくことで日本語UIに変更可能です。また、日本語の製品ドキュメントをご用意しております。

Y軸の最大値・最小値・表示間隔はどのような基準で決められるのでしょうか?

「自動」と「手動」の2種類の設定があります。
「自動」の場合はグラフ表示範囲内の実データの最大値・最小値から適切なY軸の最大値・最小値・表示間隔が自動設定されます。
「手動」の場合は実データに関係なく意図的にY軸の最大値・最小値・表示間隔を任意設定可能です。
ただし手動の場合にはY軸の最大値・最小値を実データが超過する場合にエラーが発生しますので、超過しないように調整が必要です。

EspressChart -導入・製品 (10)

どのような形式のアプリケーションで利用できますか?

Javaのアプリケーションであれば、サーバーサイド、クライアントサイドのどちらでも利用できます。
サーバーサイドの場合には、サーブレット・JSP上でEspress ChartのAPIを使用し、チャートイメージをWebブラウザへ転送することが出来ます。
クライアントサイドの場合には、一般的なJavaのアプレットの他、Swingもサポートしております。

EspressChart -機能 (22)

AS/400でのX-Serverを購入後の EspressChart のセットアップ方法:

[質問]
カード購入後、セットアップが必要となると思いますが、 PCサーバカードをAS/400に組み込んだ後どうすればよいのでしょうか?
AS/400上の設定は行ったとしてそれだけでよいのでしょうか?
PCサーバ上にWebsphereを入れて、その上にEspressChartを入れて、とかという作業が 必要になりませんか?

[回答]
IBM AIX機械については、X-Server起動後
(WebSphere起動後かもしれません)
管理者としてログインしてください。
その後
export DISPLAY=IP_address:0.0
のコマンドを打ってください。

ディスプレイ環境変数の設定が必要になります。

チャートビューアでSQL文書を可変に

[質問]

> 現在、弊社にてEspressChartApiを利用して2次元のコンビネーショングラフを
表示させております。
> しかし、メンテナンスを考えるとチャートビューアを利用したく考えております。
> 弊社で、チャートビューアを使用したテストが正常に作動しました。
> archive=”lib/EspressViewer.jar”>
> ←作成したチャートファイル
>

> このchtファイルにはデータ取得用のSQLがかかれておりますが、このSQLを可変にするこ
> とはできるのでしょうか?
> また、その場合にはどのようにすればよいのでしょうか?
—————————————————————-

[回答]


を以下のように変更願います

chtファイルは図表データを含んでいます。
しかし、tplはデータを含んでおらず、それがhtmlページに開かれるごとに、
データ・ベースから新しいデータを検索します。
espresschart¥ヘルプ¥マニュアル¥Chp_5.htmlでは、
それがさらにクエリーをそれ自身変更するためにコードを持っています。




Y軸の最大値・最小値・表示間隔はどのような基準で決められるのでしょうか?

「自動」と「手動」の2種類の設定があります。
「自動」の場合はグラフ表示範囲内の実データの最大値・最小値から適切なY軸の最大値・最小値・表示間隔が自動設定されます。
「手動」の場合は実データに関係なく意図的にY軸の最大値・最小値・表示間隔を任意設定可能です。
ただし手動の場合にはY軸の最大値・最小値を実データが超過する場合にエラーが発生しますので、超過しないように調整が必要です。

EspressChart -トラブル (6)

開発環境と運用環境で文字(フォント)が変わってしまう場合どうすればいいですか?

グラフで使用しているフォントが両環境で使用できない場合、自動的にデフォルトのフォントが使用されます。
そのため両環境で共通のフォントを使用してください。

また環境によってDPIの設定が異なる場合、一部設定が反映されない場合があります。
その場合は両環境でDPIをあわせる、もしくはAPIからグラフを出力する際に以下のメソッドを実行しDPIをあわせる必要があります。(DPI_value:設定するDPIの値)
QbUtil.setPixelPerInchForExport(int DPI_value);

APIでTPLファイルからチャート作成時に”警告: Failed to load chart data, using backup data.”が表示される。

これはデザイナーで指定した場所にデータソースがない場合に警告が出力されることがあります。
この警告を出力しないようにするためには以下の3つの方法がございます。

①デザイナーで保存する際にCHTファイルを使用する。

②APIでからデータソースの場所を上書きした形で再度TPLファイルをエクスポートする。

③ダミーとなるデータをデザイナー指定の場所と同一の場所に作成する。

EspressChart -ライセンス (4)

EspressChart -評価 (6)

EspressChart -購入サポート (6)

日本語対応していますか?

データソースに含まれる日本語等のマルチバイト文字に対応しています。GUIはデフォルトで英語ですが、日本語化マッピングファイルを適用いただくことで日本語UIに変更可能です。また、日本語の製品ドキュメントをご用意しております。

EspressReport -導入・製品 (10)

どのような形式のアプリケーションで利用できますか?

Javaのアプリケーションであれば、サーバーサイド、クライアントサイドのどちらでも利用できます。
サーバーサイドの場合には、サーブレット・JSP上でEspress ReportのAPIを使用し、チャートイメージをWebブラウザへ転送することが出来ます。
クライアントサイドの場合には、一般的なJavaのアプレットの他、Swingもサポートしております。

EspressReport -機能 (11)

EspressReport -トラブル (3)

web公開時にレポートは表示されるのにチャートが表示されません。

RPTImageGenerator.classが必要です。
ImageGeneratorディレクトリ内のRPTImageGenerator.classをサーバに配置してください。

EspressReport -ライセンス (4)

EspressReport -評価 (6)

EspressReport -購入サポート (6)

日本語対応していますか?

データソースに含まれる日本語等のマルチバイト文字に対応しています。GUIはデフォルトで英語ですが、日本語化マッピングファイルを適用いただくことで日本語UIに変更可能です。また、日本語の製品ドキュメントをご用意しております。

Syniti DR -トラブル (11)

AS/400のレプリケーションで「レプリケーション検証機能」を使用すると文字変換が正しくないとのエラーが出ます。

DBMotoの機能に、レプリケーションのソースとターゲット双方のテーブル間で差異が生じていないかを確認するレプリケーション検証機能があります。
AS/400のテーブルで、VARGRAPHIC型もしくはGRAPHIC型があるテーブルで検証を行うと、「CCSID 65535とCCSID 13488の間の文字変換は正しくない」とのエラーメッセージが出力されることがあります。
このエラーメッセージは通常のレプリケーション中には発生せず、データは問題なくレプリケーションできていることが多いです。

sort_sequence_table_error

これは、このレプリケーション検証機能使用時に限り、DBMotoの「検証のソート・シーケンステーブル」設定が有効であるため、GRAPHIC型が文字変換を行おうとして失敗しています。
対処法は、この設定個所の部分を空欄にすることです。(設定変更時はData Replicatorの停止が必要です。)

sort_sequence_table

なお、通常のレプリケーションは、前述の通りこの設定を使用していないので、問題なく変換され動作します。

レプリケーション検証機能で正常なレコードがソースのみ、ターゲットのみのレコードとして表示されます。

レプリケーションの検証をすることで、ソースのみのレコード、ターゲットのみのレコード、ソースとターゲットで差異のあるレコードを確認できます。

しかし、本来、ソースにもターゲットにも存在し、差異のないレコードがソースのみ、ターゲットのみに存在するレコードとして表示されることがあります。

 

これは、DBMotoはソースとターゲットのレコードを比較する前に主キーをベースにレコードのソートを行いますが、このときのソースDBとターゲットDBのソートの仕様の違いによるものです。

例えば、Oracleの場合、大文字、小文字を区別してソートするため、D→aの順番でソートされ、MySQLの場合、大文字、小文字を区別せずソートするため、a→Dの順番でソートされます。

このソートの順番が異なるため、このような結果が生じます。

 

この事象を回避するため、検証機能のオプション「ORDER BY句」の「ソーステーブル」「ターゲットテーブル」に「LOWER(主キー)」を入力してください。こうすることで、大文字、小文字の区別なくソートが行えるため、問題なく検証することが可能です。

validation

シンクロナイゼーションでレコードを更新してもレプリケーションされないことがあり、エラーも出力されません。

Syniti Data Workbench (ERP2) (0)

EspressDashboard (4)

ダッシュボード・レポーティンを成功させるには?

ダッシュボード・レポーティングを成功させるには、4つのステップに従うことが重要です。

 

1. 明確な目的を持ってダッシュボードを計画し、追跡すべき関連KPIを特定する。
2. データソースを評価するためにデータディスカバリーを実施する。
3. ユーザ・フレンドリーなビジュアル要素でデザインする。
4. ダッシュボードを実装し、その機能をテストする。

 

注:「データ・ディスカバリ」は、 昨今の目まぐるしく変わる市場環境や、予測困難な外部環境の変化に対応するためには、従来のBIシステムよりも迅速で手軽にデータを分析でき、かつ、ビジネス上の課題を発見できる仕組み。

ダッシュボードとウェブページの違いは何でしょうか?

どちらもコンピュータの画面上で開くことができますが、類似点はそこまでです。

 

ダッシュボードはデータを素早く処理するためのもので、組織や個人レベルのKPIの概要を簡単に把握できる重要な視覚化ツールです。チャート、グラフ、表、ゲージなどのインタラクティブな視覚的要素の助けを借りて、ダッシュボードは、ユーザーが分析し、情報に基づいたデータ駆動型の意思決定を行うのに役立つように設計されています。

 

また、ウェブページはウェブブラウザ上に表示される文書であり、重要な情報を提供するテキスト、画像、ビデオ、その他のマルチメディア要素を含んでいます。多くの場合、製品やサービスを宣伝します。他のウェブページへのリンクがある場合もあり、ユーザーはフォームに入力したり、オンラインで購入したり、その他のアクションを行うことでウェブページと相互作用することができます。

ダッシュボードUIキットとは何ですか?

ダッシュボードUIキットは、EspressDashboardのようにユーザーインターフェイス要素、テンプレート、コンポーネントの設計済みコレクションです。ダッシュボードの設計と構築のために特別に作成されています。これらのキットは、開発者やデザイナーが視覚的に魅力的で機能的なダッシュボードを迅速かつ簡単に作成するための基盤を提供します。

 

これらのキットには通常、ダッシュボードのデザインで一般的に使用されるさまざまなチャート、グラフ、テーブル、ボタン、アイコン、およびその他の UI 要素が含まれています。これらのキットは、ダッシュボードの目的に応じて高度にカスタマイズすることができます。これにより、ユーザは特定のデザインプロジェクトの要件に合わせてコンポーネントを変更し、適合させることができます。これらのキットは、デザインプロセスを合理化するために、ウェブやモバイルアプリの開発でよく使用されます。ダッシュボードの全体的なルック&フィールに一貫性を持たせるのに役立ちます。

 

ブログ:ダッシュボードUIデザイン:ステークホルダー向けのベストプラクティスを分析

ゲージ: (Gauge)とは

ゲージはプロット・バックグラウンド・イメージとプロット・フォアーグラウンド・イメージの両方、またはどちらかを含むダイアル・チャートの特別なタイプです。

ユーザが簡単にゲージが作成できるように前もって定義済のゲージ・テンプレート用のタブをいくつか準備しています。またテンプレートを作成して、ユーザ独自の作成し、フォルダに保存しておくこともできます。

例:/gauges/templates/Custom/ フォルダ

このテンプレートを[カスタム]タブに追加するには、<ERESインストール> / gauges / screenshots / selected / Customに配置されたテンプレートのスクリーンショットと、<ERESに配置されたテンプレートのディマーバージョン インストール> / gauges / screenshots / unselected / Custom /をクリックします。 スクリーンショットを作成する簡単な方法は、通常のスクリーンショット用にテンプレートをgifに書き出し、100ピクセル×100ピクセルにサイズ変更することです。 その後、背景を暗い色に変更し、調光版のために再度エクスポートしてサイズを変更します。

またダイアル・チャートへゲージ・テンプレートを適応させることも可能です。ダイアル・チャートを使用時に適応させるテンプレートを選択することにより、新しいチャートを作成するようにゲージ・タブを表示することができます。

どのような形式のアプリケーションで利用できますか?

Javaのアプリケーションであれば、サーバーサイド、クライアントサイドのどちらでも利用できます。
サーバーサイドの場合には、サーブレット・JSP上でEspress ChartのAPIを使用し、チャートイメージをWebブラウザへ転送することが出来ます。
クライアントサイドの場合には、一般的なJavaのアプレットの他、Swingもサポートしております。

日本語対応していますか?

データソースに含まれる日本語等のマルチバイト文字に対応しています。GUIはデフォルトで英語ですが、日本語化マッピングファイルを適用いただくことで日本語UIに変更可能です。また、日本語の製品ドキュメントをご用意しております。

EspressReport ES (4)

ダッシュボード・レポーティンを成功させるには?

ダッシュボード・レポーティングを成功させるには、4つのステップに従うことが重要です。

 

1. 明確な目的を持ってダッシュボードを計画し、追跡すべき関連KPIを特定する。
2. データソースを評価するためにデータディスカバリーを実施する。
3. ユーザ・フレンドリーなビジュアル要素でデザインする。
4. ダッシュボードを実装し、その機能をテストする。

 

注:「データ・ディスカバリ」は、 昨今の目まぐるしく変わる市場環境や、予測困難な外部環境の変化に対応するためには、従来のBIシステムよりも迅速で手軽にデータを分析でき、かつ、ビジネス上の課題を発見できる仕組み。

ダッシュボードとウェブページの違いは何でしょうか?

どちらもコンピュータの画面上で開くことができますが、類似点はそこまでです。

 

ダッシュボードはデータを素早く処理するためのもので、組織や個人レベルのKPIの概要を簡単に把握できる重要な視覚化ツールです。チャート、グラフ、表、ゲージなどのインタラクティブな視覚的要素の助けを借りて、ダッシュボードは、ユーザーが分析し、情報に基づいたデータ駆動型の意思決定を行うのに役立つように設計されています。

 

また、ウェブページはウェブブラウザ上に表示される文書であり、重要な情報を提供するテキスト、画像、ビデオ、その他のマルチメディア要素を含んでいます。多くの場合、製品やサービスを宣伝します。他のウェブページへのリンクがある場合もあり、ユーザーはフォームに入力したり、オンラインで購入したり、その他のアクションを行うことでウェブページと相互作用することができます。

ダッシュボードUIキットとは何ですか?

ダッシュボードUIキットは、EspressDashboardのようにユーザーインターフェイス要素、テンプレート、コンポーネントの設計済みコレクションです。ダッシュボードの設計と構築のために特別に作成されています。これらのキットは、開発者やデザイナーが視覚的に魅力的で機能的なダッシュボードを迅速かつ簡単に作成するための基盤を提供します。

 

これらのキットには通常、ダッシュボードのデザインで一般的に使用されるさまざまなチャート、グラフ、テーブル、ボタン、アイコン、およびその他の UI 要素が含まれています。これらのキットは、ダッシュボードの目的に応じて高度にカスタマイズすることができます。これにより、ユーザは特定のデザインプロジェクトの要件に合わせてコンポーネントを変更し、適合させることができます。これらのキットは、デザインプロセスを合理化するために、ウェブやモバイルアプリの開発でよく使用されます。ダッシュボードの全体的なルック&フィールに一貫性を持たせるのに役立ちます。

 

ブログ:ダッシュボードUIデザイン:ステークホルダー向けのベストプラクティスを分析

ゲージ: (Gauge)とは

ゲージはプロット・バックグラウンド・イメージとプロット・フォアーグラウンド・イメージの両方、またはどちらかを含むダイアル・チャートの特別なタイプです。

ユーザが簡単にゲージが作成できるように前もって定義済のゲージ・テンプレート用のタブをいくつか準備しています。またテンプレートを作成して、ユーザ独自の作成し、フォルダに保存しておくこともできます。

例:/gauges/templates/Custom/ フォルダ

このテンプレートを[カスタム]タブに追加するには、<ERESインストール> / gauges / screenshots / selected / Customに配置されたテンプレートのスクリーンショットと、<ERESに配置されたテンプレートのディマーバージョン インストール> / gauges / screenshots / unselected / Custom /をクリックします。 スクリーンショットを作成する簡単な方法は、通常のスクリーンショット用にテンプレートをgifに書き出し、100ピクセル×100ピクセルにサイズ変更することです。 その後、背景を暗い色に変更し、調光版のために再度エクスポートしてサイズを変更します。

またダイアル・チャートへゲージ・テンプレートを適応させることも可能です。ダイアル・チャートを使用時に適応させるテンプレートを選択することにより、新しいチャートを作成するようにゲージ・タブを表示することができます。

どのような形式のアプリケーションで利用できますか?

Javaのアプリケーションであれば、サーバーサイド、クライアントサイドのどちらでも利用できます。
サーバーサイドの場合には、サーブレット・JSP上でEspress ChartのAPIを使用し、チャートイメージをWebブラウザへ転送することが出来ます。
クライアントサイドの場合には、一般的なJavaのアプレットの他、Swingもサポートしております。

日本語対応していますか?

データソースに含まれる日本語等のマルチバイト文字に対応しています。GUIはデフォルトで英語ですが、日本語化マッピングファイルを適用いただくことで日本語UIに変更可能です。また、日本語の製品ドキュメントをご用意しております。

EspressDashboard -導入・製品 (10)

どのような形式のアプリケーションで利用できますか?

Javaのアプリケーションであれば、サーバーサイド、クライアントサイドのどちらでも利用できます。
サーバーサイドの場合には、サーブレット・JSP上でEspress ChartのAPIを使用し、チャートイメージをWebブラウザへ転送することが出来ます。
クライアントサイドの場合には、一般的なJavaのアプレットの他、Swingもサポートしております。

EspressDashboard -ライセンス (4)

EspressDashboard -購入サポート (6)

日本語対応していますか?

データソースに含まれる日本語等のマルチバイト文字に対応しています。GUIはデフォルトで英語ですが、日本語化マッピングファイルを適用いただくことで日本語UIに変更可能です。また、日本語の製品ドキュメントをご用意しております。

EspressDashboard -評価 (5)

EspressDashboard -機能 (8)

ダッシュボード・レポーティンを成功させるには?

ダッシュボード・レポーティングを成功させるには、4つのステップに従うことが重要です。

 

1. 明確な目的を持ってダッシュボードを計画し、追跡すべき関連KPIを特定する。
2. データソースを評価するためにデータディスカバリーを実施する。
3. ユーザ・フレンドリーなビジュアル要素でデザインする。
4. ダッシュボードを実装し、その機能をテストする。

 

注:「データ・ディスカバリ」は、 昨今の目まぐるしく変わる市場環境や、予測困難な外部環境の変化に対応するためには、従来のBIシステムよりも迅速で手軽にデータを分析でき、かつ、ビジネス上の課題を発見できる仕組み。

ゲージ: (Gauge)とは

ゲージはプロット・バックグラウンド・イメージとプロット・フォアーグラウンド・イメージの両方、またはどちらかを含むダイアル・チャートの特別なタイプです。

ユーザが簡単にゲージが作成できるように前もって定義済のゲージ・テンプレート用のタブをいくつか準備しています。またテンプレートを作成して、ユーザ独自の作成し、フォルダに保存しておくこともできます。

例:/gauges/templates/Custom/ フォルダ

このテンプレートを[カスタム]タブに追加するには、<ERESインストール> / gauges / screenshots / selected / Customに配置されたテンプレートのスクリーンショットと、<ERESに配置されたテンプレートのディマーバージョン インストール> / gauges / screenshots / unselected / Custom /をクリックします。 スクリーンショットを作成する簡単な方法は、通常のスクリーンショット用にテンプレートをgifに書き出し、100ピクセル×100ピクセルにサイズ変更することです。 その後、背景を暗い色に変更し、調光版のために再度エクスポートしてサイズを変更します。

またダイアル・チャートへゲージ・テンプレートを適応させることも可能です。ダイアル・チャートを使用時に適応させるテンプレートを選択することにより、新しいチャートを作成するようにゲージ・タブを表示することができます。

ダッシュボードとウェブページの違いは何でしょうか?

どちらもコンピュータの画面上で開くことができますが、類似点はそこまでです。

 

ダッシュボードはデータを素早く処理するためのもので、組織や個人レベルのKPIの概要を簡単に把握できる重要な視覚化ツールです。チャート、グラフ、表、ゲージなどのインタラクティブな視覚的要素の助けを借りて、ダッシュボードは、ユーザーが分析し、情報に基づいたデータ駆動型の意思決定を行うのに役立つように設計されています。

 

また、ウェブページはウェブブラウザ上に表示される文書であり、重要な情報を提供するテキスト、画像、ビデオ、その他のマルチメディア要素を含んでいます。多くの場合、製品やサービスを宣伝します。他のウェブページへのリンクがある場合もあり、ユーザーはフォームに入力したり、オンラインで購入したり、その他のアクションを行うことでウェブページと相互作用することができます。

ダッシュボードUIキットとは何ですか?

ダッシュボードUIキットは、EspressDashboardのようにユーザーインターフェイス要素、テンプレート、コンポーネントの設計済みコレクションです。ダッシュボードの設計と構築のために特別に作成されています。これらのキットは、開発者やデザイナーが視覚的に魅力的で機能的なダッシュボードを迅速かつ簡単に作成するための基盤を提供します。

 

これらのキットには通常、ダッシュボードのデザインで一般的に使用されるさまざまなチャート、グラフ、テーブル、ボタン、アイコン、およびその他の UI 要素が含まれています。これらのキットは、ダッシュボードの目的に応じて高度にカスタマイズすることができます。これにより、ユーザは特定のデザインプロジェクトの要件に合わせてコンポーネントを変更し、適合させることができます。これらのキットは、デザインプロセスを合理化するために、ウェブやモバイルアプリの開発でよく使用されます。ダッシュボードの全体的なルック&フィールに一貫性を持たせるのに役立ちます。

 

ブログ:ダッシュボードUIデザイン:ステークホルダー向けのベストプラクティスを分析

EspressReport ES -導入・製品 (10)

どのような形式のアプリケーションで利用できますか?

Javaのアプリケーションであれば、サーバーサイド、クライアントサイドのどちらでも利用できます。
サーバーサイドの場合には、サーブレット・JSP上でEspress ChartのAPIを使用し、チャートイメージをWebブラウザへ転送することが出来ます。
クライアントサイドの場合には、一般的なJavaのアプレットの他、Swingもサポートしております。

EspressReport ES -ライセンス (4)

EspressReport ES -購入サポート (6)

日本語対応していますか?

データソースに含まれる日本語等のマルチバイト文字に対応しています。GUIはデフォルトで英語ですが、日本語化マッピングファイルを適用いただくことで日本語UIに変更可能です。また、日本語の製品ドキュメントをご用意しております。

EspressReport ES -評価 (5)

EspressReport ES -機能 (8)

ゲージ: (Gauge)とは

ゲージはプロット・バックグラウンド・イメージとプロット・フォアーグラウンド・イメージの両方、またはどちらかを含むダイアル・チャートの特別なタイプです。

ユーザが簡単にゲージが作成できるように前もって定義済のゲージ・テンプレート用のタブをいくつか準備しています。またテンプレートを作成して、ユーザ独自の作成し、フォルダに保存しておくこともできます。

例:/gauges/templates/Custom/ フォルダ

このテンプレートを[カスタム]タブに追加するには、<ERESインストール> / gauges / screenshots / selected / Customに配置されたテンプレートのスクリーンショットと、<ERESに配置されたテンプレートのディマーバージョン インストール> / gauges / screenshots / unselected / Custom /をクリックします。 スクリーンショットを作成する簡単な方法は、通常のスクリーンショット用にテンプレートをgifに書き出し、100ピクセル×100ピクセルにサイズ変更することです。 その後、背景を暗い色に変更し、調光版のために再度エクスポートしてサイズを変更します。

またダイアル・チャートへゲージ・テンプレートを適応させることも可能です。ダイアル・チャートを使用時に適応させるテンプレートを選択することにより、新しいチャートを作成するようにゲージ・タブを表示することができます。

ダッシュボード・レポーティンを成功させるには?

ダッシュボード・レポーティングを成功させるには、4つのステップに従うことが重要です。

 

1. 明確な目的を持ってダッシュボードを計画し、追跡すべき関連KPIを特定する。
2. データソースを評価するためにデータディスカバリーを実施する。
3. ユーザ・フレンドリーなビジュアル要素でデザインする。
4. ダッシュボードを実装し、その機能をテストする。

 

注:「データ・ディスカバリ」は、 昨今の目まぐるしく変わる市場環境や、予測困難な外部環境の変化に対応するためには、従来のBIシステムよりも迅速で手軽にデータを分析でき、かつ、ビジネス上の課題を発見できる仕組み。

ダッシュボードUIキットとは何ですか?

ダッシュボードUIキットは、EspressDashboardのようにユーザーインターフェイス要素、テンプレート、コンポーネントの設計済みコレクションです。ダッシュボードの設計と構築のために特別に作成されています。これらのキットは、開発者やデザイナーが視覚的に魅力的で機能的なダッシュボードを迅速かつ簡単に作成するための基盤を提供します。

 

これらのキットには通常、ダッシュボードのデザインで一般的に使用されるさまざまなチャート、グラフ、テーブル、ボタン、アイコン、およびその他の UI 要素が含まれています。これらのキットは、ダッシュボードの目的に応じて高度にカスタマイズすることができます。これにより、ユーザは特定のデザインプロジェクトの要件に合わせてコンポーネントを変更し、適合させることができます。これらのキットは、デザインプロセスを合理化するために、ウェブやモバイルアプリの開発でよく使用されます。ダッシュボードの全体的なルック&フィールに一貫性を持たせるのに役立ちます。

 

ブログ:ダッシュボードUIデザイン:ステークホルダー向けのベストプラクティスを分析

ダッシュボードとウェブページの違いは何でしょうか?

どちらもコンピュータの画面上で開くことができますが、類似点はそこまでです。

 

ダッシュボードはデータを素早く処理するためのもので、組織や個人レベルのKPIの概要を簡単に把握できる重要な視覚化ツールです。チャート、グラフ、表、ゲージなどのインタラクティブな視覚的要素の助けを借りて、ダッシュボードは、ユーザーが分析し、情報に基づいたデータ駆動型の意思決定を行うのに役立つように設計されています。

 

また、ウェブページはウェブブラウザ上に表示される文書であり、重要な情報を提供するテキスト、画像、ビデオ、その他のマルチメディア要素を含んでいます。多くの場合、製品やサービスを宣伝します。他のウェブページへのリンクがある場合もあり、ユーザーはフォームに入力したり、オンラインで購入したり、その他のアクションを行うことでウェブページと相互作用することができます。

ERP2 -購入サポート (6)

DB2Connectivity -導入・製品 (3)

HiT DB2 Connectivity Developer Edition (DE: 開発者版)について

IBMのi5, System i, iSeries, AS/400上で稼動するDB2データをWindowsでのActive Server Page(ASP)に利用したり、Visual Basicアプリケーションに利用したりすることは通常は簡単ではありません。HiT ODBC Server/400 Developer EditionとHiT OLEDB Server/400 Developer Editionに含まれるHiT ASPと HiT VBツールキットを利用することにより、それらの開発時間を大幅に短縮できます。

○ HiT ODBC Server/400 Developer Edition (DE: 開発者版)はi5, System i, iSeries, AS/400上で稼動するIBM DB2をアクセスするためのSQLミドルウェアで、Windowsプラットフォーム上で稼動し、ユーザまたはサードパーティのアプリケーションで利用されます。HiT ODBC Server/400 DEはDB2データのアクセス、リトリーブ、アップデートにWindows Open Database Connectivity (ODBC)をサポートします。またActive Server Page(ASP)と Visual Basic のツールキットを含みADO経由でDB2データを接続、クエリー、リトリーブ、アップデートが可能なソースコードを含むサンプル・アプリケーションが含まれます。
またIBM Optimized Database Server (ODBS)プロトコール標準を利用しているので、HiT ODBC Server/400 DEはネイティブなIBM OS/400サーバ・プログラムを使用し、i5, System i, iSeries, AS/400プラットフォームに特別なソフトウェアは必要ありません。

○ HiT OLEDB Server/400 Developer Edition (DE)は同様にi5, System i, iSeries, AS/400上で稼動するIBM DB2をアクセスするためのSQLミドルウェアで、Windowsプラットフォーム上で稼動し、ユーザまたはサードパーティのアプリケーションで利用されます。HiT OLEDB Server/400 DEはADO v2.x経由、またはOEL DBオブジェクト・プロパティ経由での直接にアプリケーションSQLステートメントが可能で、そしてDB2データのアクセス、リトリーブ、アップデートが可能です。また同様にHiT ASPと HiT VBツールキットを含みます。

●HiT ASP ツールキット
Webアプリケーションの開発の高速化に最適
Microsoft IIS Web開発用のHiT Active Server Page (ASP) ツールキットはHiT ODBC Serverミドルウェアとの組合せでIIS ASP開発環境でのDB2のWeb統合に有益なスタートをもたらします。

HiT ASPツールキットに含まれるWebアプリケーションからDB2テーブルに対するクエリー、アップデートの検証済ASPサンプルを開発者が利用することでWebアプリケーション・開発時間を大幅に削減できます。サンプルにはADOレコードセットを使用しての接続確立方法、ストアード・プロシージャ実行、テーブル・データのリトリーブとインサート、HTML経由での結果表示などがあります。すべてのサンプルは各種のDB2サーバとプラットフォームで検証されています。HiT ASPツールキットはWindowsフラットフォームで稼動し、HiT ODBCサーバ製品経由でDB2サーバとコミュニケーションを行います。

●HiT VBツールキット
高速VBアプリケーション開発に最適
HiT VBツールキットはすべてのHiT ODBC と OLE DB開発者版製品に含まれMicrosoft Visual Basicを使用する開発者をサポートします。HiT ODBC と OLE DBミドルウェア製品と組み合わせて使用することにより、Visual Basic開発環境でのDB2アプリケーション・インテグレーションに有益なスタートをもたらします。

HiT VBツールキットでADO, RDO, DAO, ODBCDirectインターフェイスを使用してDB2テーブル・データにアクセスするためのソース・コード・サンプルを開発者に提供することにより、アプリケーションの開発時間を削減することができます。サンプルはレコードセットを使用しての接続確立、ストアード・プロシージャの実行、DB2データのアップデートなどが含まれます。すべてのサンプルは各種のDB2サーバとプラットフォームで検証されています。HiT VBツールキットはWindowsフラットフォームで稼動し、HiT ODBCとOLE DB製品経由でDB2サーバとのコミュニケーションを行います。

HiT Db2 Connectivity製品の選択方法 ( ID:1635)

○もしアプリケーションがADO.NET または Visual Studioで構築されたいれば、Ritmo (.NET)を選択

○もしアプリケーションがJavaで構築されていればHiT JDBCを選択

○もしアプリケーションが Powerbuilder等の他で構築されていればHiT ODBC か HiT OLEDBを選択

ただしHiT ODBCはリレーショナル・データベース形式のみをサポートし、HiT OLEDBはリレーショナル+他のすべてのデータ形式にサポートします。

ODBC/400 と ODBC/Db2の異差

●HiT ODBC/DB2およびHiT ODBC Server/DB2はIBM Db2 on z/OS, Linux, Unix, Windowsサーバとの通信でDRDAプロトコールを使用します。 HiT ODBC/DB2およびHiT ODBC Server/DB2は、以下のIBM Db2環境で動作します。

· IBM Db2 LUW

· IBM Db2 for z/OS (OS/390)

· IBM Db2 for i – supporting IBM OS/400 Operating Systems V4R2 or higher

●HiT ODBC / 400およびHiT ODBC Server / 400は、ODBSプロトコルを使用し、IBM iオペレーティング・システムV3R1以上を必要とします。

DB2Connectivity -ライセンス (6)

ライセンス体系はどのようになっていますか?

ワークステーション(クライアント)、またはサーバ・ベースでライセンスされます。クライアント・ライセンスは各PCごとにライセンスされます。クライント・ライセンスをWindowsサーバで稼動させることはできません。

サーバライセンスには次の2種類があります。
1) Open Connectionサーバ・ライセンスは 同時接続数には制限はありませんが、プロセッサ毎の価格になります。
2) Limited Connectionサーバライセンスは同時接続数です。 Processor数には依存しません。

DB2Connectivity -購入サポート (6)

DB2Connectivity -機能 (2)

Host Code Pageについて(KBFAQ 1024)

HiT ODBC/400, HiT OLEDB/400 and Ritmo for iSeries

IDS_CODEPAGE_037_1 “037 – US/Can./Australia/N.Z.”
IDS_CODEPAGE_037_2 “037 – Netherlands”
IDS_CODEPAGE_037_3 “037 – Portugal/Brazil”
IDS_CODEPAGE_273 “273 – German/Austrian”
IDS_CODEPAGE_277 “277 – Danish/Norwegian”
IDS_CODEPAGE_278 “278 – Finnish/Swedish”
IDS_CODEPAGE_280 “280 – Italian”
IDS_CODEPAGE_284 “284 – Spanish/Latin Amer. Sp.”
IDS_CODEPAGE_285 “285 – UK”
IDS_CODEPAGE_297 “297 – French”
IDS_CODEPAGE_424 “424 – Hebrew”
IDS_CODEPAGE_500 “500 – Belgian/Swiss/Can.”
IDS_CODEPAGE_870 “870 – Eastern Europe”
IDS_CODEPAGE_871 “871 – Icelandic”
IDS_CODEPAGE_875 “875 – Greek”
IDS_CODEPAGE_1026 “1026 – Turkey”
IDS_CODEPAGE_290 “290 – Jpn. Katakana Host SBCS”
IDS_CODEPAGE_1027 “1027 – Jpn. Latin Host SBCS”
IDS_CODEPAGE_933 “933 – Korean”
IDS_CODEPAGE_935 “935 – Simplified Chinese”
IDS_CODEPAGE_937 “937 – Traditional Chinese”
IDS_CODEPAGE_4396 “4396 – Jpn. Host DBCS”
IDS_CODEPAGE_5026 “5026 – Jpn. Katakana-Kanji Host Mix.”
IDS_CODEPAGE_5035 “5035 – Jpn. Latin-Kanji Host Mix.”
IDS_CODEPAGE_1140_1 “1140 – (Euro) US/Can./Australia”
IDS_CODEPAGE_1140_2 “1140 – (Euro) N.Z./Netherlands”
IDS_CODEPAGE_1140_3 “1140 – (Euro) Portugal/Brazil”
IDS_CODEPAGE_1141 “1141 – (Euro) German/Austrian”
IDS_CODEPAGE_1142 “1142 – (Euro) Danish/Norwegian”
IDS_CODEPAGE_1143 “1143 – (Euro) Finnish/Swedish”
IDS_CODEPAGE_1144 “1144 – (Euro) Italian”
IDS_CODEPAGE_1145 “1145 – (Euro) Spanish/Latin Amer. Sp.”
IDS_CODEPAGE_1146 “1146 – (Euro) UK”
IDS_CODEPAGE_1147 “1147 – (Euro) French”
IDS_CODEPAGE_1148 “1148 – (Euro) Belgian/Swiss/Can.”
IDS_CODEPAGE_1149 “1149 – (Euro) Icelandic”
IDS_CODEPAGE_420 “420 – Arabic”
IDS_CODEPAGE_838 “838 – Thai”

HiT ODBC/DB2, HiT OLEDB/DB2, and Ritmo for DB2

IDS_CODEPAGE_037_1 “037 – US/Canada/Australia/N.Z.”
IDS_CODEPAGE_037_2 “037 – Netherlands”
IDS_CODEPAGE_037_3 “037 – Portugal/Brazil”
IDS_CODEPAGE_273 “273 – German/Austrian”
IDS_CODEPAGE_277 “277 – Danish/Norwegian”
IDS_CODEPAGE_278 “278 – Finnish/Swedish”
IDS_CODEPAGE_280 “280 – Italian”
IDS_CODEPAGE_284 “284 – Spanish”
IDS_CODEPAGE_285 “285 – UK”
IDS_CODEPAGE_297 “297 – French”
IDS_CODEPAGE_420 “420 – Arabic”
IDS_CODEPAGE_424 “424 – Hebrew”
IDS_CODEPAGE_500 “500 – Belgian/Swiss”
IDS_CODEPAGE_819 “819 – Latin”
IDS_CODEPAGE_870 “870 – Eastern Europe”
IDS_CODEPAGE_871 “871 – Icelandic”
IDS_CODEPAGE_875 “875 – Greek”
IDS_CODEPAGE_290 “290 – Jpn. Katakana Host SBCS”
IDS_CODEPAGE_932 “932 – Jpn. PC Mixed incl. 1880 UDC”
IDS_CODEPAGE_933 “933 – Korean”
IDS_CODEPAGE_935 “935 – S. Chinese”
IDS_CODEPAGE_937 “937 – T. Chinese”
IDS_CODEPAGE_943 “943 – Jpn. PC Mixed for Open Env.”
IDS_CODEPAGE_954 “954 – Jpn. EUC”
IDS_CODEPAGE_1026 “1026 – Turkey”
IDS_CODEPAGE_1027 “1027 – Jpn. Latin Host SBCS”
IDS_CODEPAGE_1140_1 “1140 – (Euro) US/Can./Australia”
IDS_CODEPAGE_1140_2 “1140 – (Euro) N.Z./Netherlands”
IDS_CODEPAGE_1140_3 “1140 – (Euro) Portugal/Brazil”
IDS_CODEPAGE_1141 “1141 – (Euro) German/Austrian”
IDS_CODEPAGE_1142 “1142 – (Euro) Danish/Norwegian”
IDS_CODEPAGE_1143 “1143 – (Euro) Finnish/Swedish”
IDS_CODEPAGE_1144 “1144 – (Euro) Italian”
IDS_CODEPAGE_1145 “1145 – (Euro) Spanish/Latin Amer. Sp.”
IDS_CODEPAGE_1146 “1146 – (Euro) UK”
IDS_CODEPAGE_1147 “1147 – (Euro) French”
IDS_CODEPAGE_1148 “1148 – (Euro) Belgian/Swiss/Can.”
IDS_CODEPAGE_1149 “1149 – (Euro) Icelandic”
IDS_CODEPAGE_1252 “1252 – Windows ANSI”
IDS_CODEPAGE_4396 “4396 – Jpn. Host DBCS”
IDS_CODEPAGE_5026 “5026 – Jpn. Katakana-Kanji Host Mixed”
IDS_CODEPAGE_5035 “5035 – Jpn. Latin-Kanji Host Mixed”

DB2Connectivity -ODBC (2)

ODBCで日本語が文字化けします。

日本語文字化けが発生する場合、CCSIDに問題がある場合がほとんどです。
まずは、ODBC設定画面にて、Host Code Pageが「5026」または「5035」であるかどうかをご確認ください。
もしAS/400側で日本語文字を扱っているCCSIDが1027などの本来シングルバイト用のフィールドの場合は、ODBC設定画面にて、「Use Host Code Page to override column CCSIDs」にチェックを入れてください。これはフィールドのCCSIDを「Host Code Page」のものに変換する機能です。

ExcelやAccessから、設定したODBCを呼出す事ができません。

ODBCとExcel/Accessはともに32bitもしくは64bitかで一致されている必要があります。
例えば、ODBC64bit版をご利用いただく場合は、Excel/Accessも64bit版が必要です。ただし、Excel/Accessの64bit版はOffice2010からの対応になっておりますので、Office2007以前の場合はODBCの32bit版をご利用ください。OSが64bitの場合でも32bit版のODBCは問題なく動作いたします。

DB2Connectivity -OLE DB (1)

Q:Visual C++ を使用して AS/400への接続をどのようにイニシエイトしますか?

A: サンプルコードは:
///////////////////////////////////////////////////////////////////////////////
// OLE400 Test Sample – 07-07-2000
//
// Standard sample for testing HiT OLEDB400 Provider.
// Initialization phases can be used in any other connect exercise.
//
///////////////////////////////////////////////////////////////////////////////

#include
//You may derive a class from CComModule and use it if you want to override
//something, but do not change the name of _Module
extern CComModule _Module;
#include
#include
#include “atldb.h”
#include
#include

#include

#define SAFE_RELEASE(pv) if(pv) { (pv)->Release(); (pv) = NULL; }
#define TESTC(hr) { if(FAILED(hr)) goto CLEANUP; }

WCHAR* A2WSTR(LPCSTR lp, int nLen) {

USES_CONVERSION;
BSTR str = NULL;

int nConvertedLen = MultiByteToWideChar(_acp,
0,
lp,
nLen,
NULL,
NULL) – 1;

str = ::SysAllocStringLen(NULL, nConvertedLen);

if ( str != NULL ) {
MultiByteToWideChar(_acp,
0,
lp,
-1,
str,
nConvertedLen);
}
return str;
}

LPSTR WSTR2A(LPSTR cBuf, LPCWSTR lpw, LPCSTR lpDef) {

USES_CONVERSION;

int nConvertedLen = WideCharToMultiByte(_acp,
0,
lpw,
-1,
NULL,
0,
lpDef,
NULL) – 1;
if (nConvertedLen>0) {

if ( cBuf != NULL ) {
WideCharToMultiByte(_acp,
0,
lpw,
-1,
cBuf,
nConvertedLen,
lpDef,
NULL);
}
}

return cBuf;
}

CComPtr pMalloc;
MEMORYSTATUS lpBuffer;

// MAIN TEST FUNCTION
///////////////////////////////////////////////////////////////////////////////

void main ()
{

IDBInitialize* pIDBInitialize = NULL;
IDataInitialize* pIDataInitialize = NULL;
DWORD dwCLSCTX = CLSCTX_INPROC_SERVER;
DBPROPSET* prgPropSets = NULL;
ULONG cPropSets;
IUnknown* pDataSource = NULL;
IDBProperties* pIDBProperties = NULL;
WCHAR* pwszTemp;
WCHAR* pwszInitString;
HRESULT hr = S_OK;

hr = CoInitialize(NULL);
if (FAILED(hr))
return;

// retrieve pMalloc interface
hr = ::CoGetMalloc(1, (LPMALLOC *) &pMalloc);
if (FAILED(hr))
return;

hr = CoCreateInstance(CLSID_MSDAINITIALIZE,
NULL,
CLSCTX_INPROC_SERVER,
IID_IDataInitialize,
(void**)&pIDataInitialize);

///////////////////////////////////////////////////////
// Prompt data
char lpItemText [200];
char lpUDL [50];
char lpUserID [30];
char lpPassword [30];
int nLen = -1;

memset (lpItemText, 0, 200);
memset (lpUDL, 0, 50);
memset (lpUserID, 0, 30);
memset (lpPassword, 0, 30);

printf (“Open connection to HiT OLE DB Provider for DB2\r\n”);
printf (“==================================================\r\n”);

printf (“UDL File\t: “);
scanf (“%s”, lpUDL);
sprintf (lpItemText, “C:\\Program Files\\Common Files\\System\\OLE DB\\Data Links\\%s”, lpUDL);
printf (“\r\n”);

printf (“User ID \t: “);
scanf (“%s”, lpUserID);
printf (“\r\n”);

printf (“Password\t: “);
scanf (“%s”, lpPassword);
printf (“\r\n”);

///////////////////////////////////////////////////////
// Get connection string from Data Link file
nLen = strlen(lpItemText);
pwszTemp = A2WSTR(lpItemText, nLen + 1 );

hr = pIDataInitialize->LoadStringFromStorage(pwszTemp, &pwszInitString);

SysFreeString (pwszTemp);

///////////////////////////////////////////////////////
// Get Data Source object
hr = pIDataInitialize->GetDataSource(NULL,
dwCLSCTX,
pwszInitString,
IID_IDBInitialize,
(IUnknown**)&pDataSource);

hr = pDataSource->QueryInterface(IID_IDBInitialize, (void**)&pIDBInitialize);

if (pIDBProperties == NULL)
hr = pIDBInitialize->QueryInterface (IID_IDBProperties,
(void**)&pIDBProperties);

hr = pIDBProperties->GetProperties(0, NULL, &cPropSets, &prgPropSets);

// Set edit data link properties
DBPROP rgProps[3];
DBPROPSET PropSet;

rgProps[0].dwPropertyID = DBPROP_INIT_PROMPT;
rgProps[0].dwOptions = DBPROPOPTIONS_REQUIRED;
rgProps[0].vValue.vt = VT_I2;
rgProps[0].vValue.iVal = DBPROMPT_NOPROMPT;

rgProps[1].dwPropertyID = DBPROP_AUTH_USERID;
rgProps[1].dwOptions = DBPROPOPTIONS_REQUIRED;
rgProps[1].vValue.vt = VT_BSTR;
nLen = strlen(lpUserID);
pwszTemp = A2WSTR(lpUserID, nLen + 1 );
V_BSTR(&(rgProps[1].vValue))= SysAllocStringLen (pwszTemp, wcslen(pwszTemp));

rgProps[2].dwPropertyID = DBPROP_AUTH_PASSWORD;
rgProps[2].dwOptions = DBPROPOPTIONS_REQUIRED;
rgProps[2].vValue.vt = VT_BSTR;
nLen = strlen(lpPassword);
pwszTemp = A2WSTR(lpPassword, nLen + 1 );
rgProps[2].vValue.bstrVal = SysAllocStringLen (pwszTemp, wcslen(pwszTemp));

PropSet.cProperties = 3;
PropSet.rgProperties = rgProps;
PropSet.guidPropertySet = DBPROPSET_DBINIT;

hr = pIDBProperties->SetProperties (1, &PropSet);

// Free memory
SysFreeString (rgProps[1].vValue.bstrVal);
SysFreeString (rgProps[2].vValue.bstrVal);

// free all properties
pMalloc->Free (prgPropSets->rgProperties);

// now free the property set
pMalloc->Free (prgPropSets);

///////////////////////////////////////////////////////
// Initialize connection
printf (“Connecting…\r\n\r\n”);

hr = pIDBInitialize->Initialize();
if (FAILED(hr))
return;

printf (“CONNECTED\r\n\r\n”);

// to do: put any code here
// …

///////////////////////////////////////////////////////
// Disconnect
printf (“Disconnecting…\r\n”);

// Release any references and continue.
hr = pIDBInitialize->Uninitialize ();

SAFE_RELEASE(pIDBInitialize);

SAFE_RELEASE (pIDBProperties);
SAFE_RELEASE (pDataSource);

SAFE_RELEASE (pIDataInitialize);

CoUninitialize();

SAFE_RELEASE (pIDBInitialize);
}

DB2Connectivity -.NET(Ritmo) (2)

Ritmo を使用してDB2 をアクセスC# や VB.NET のサンプル・コードはどこか にありますか?

Q:Ritmo を使用してDB2 をアクセスC# や VB.NET のサンプル・コードはどこか
にありますか?

A:基本的なSELECT/INSERT/UPDATE/DELETE を実行できるようにRitmo はC# と
VB.NET コード・サンプルを準備しています。さらにストアード・プロシージ
ャ・コール作成やパラメトリック・クエリもカバーします。Ritmo ToolBox Help
メニューの下にサンプル・コードがあります。Ritmo ToolBox のプルダウン・メ
ニューからHelp/Contents を選択してサンプルコードを選びます。

.NET経由でAS/400に接続する時にHiT OLEDB/400を選択するのかRitmo/iを選択するのか?

.NETアプリケーション開発者はAS/400サーバへアクセスするためにはマイクロソフトが提供するADO.NET-to-OLE DBまたは-ODBC 使用してODBC または OLEDBのどちらかを経由してそのリモートのデータベースに接続します。しかしこれらのブリッジ・ソリューションはパフォーマンスに影響し、CLR(Common Language Run-time)開発環境を利用する根本のプロバイダとドライバを阻害します。

Ritmo/i はこれらのブリッジ手法より優れた選択になります。それはブリッジを除外し、高いパフォーマンス、CLR機能、アプリケーションに対するオペレーティング。システムスケーラブルな管理を提供します

DB2Connectivity -JDBC (1)

HiT JDBC/400 API サポート

 

Methods: Return Types: Supported:

Interface Blob

getBinaryStream() InputStream Yes
getBytes(long pos, int length) byte[] Yes
length() long Yes
position(Blob pattern, long start) long No
position(byte[] pattern, long start) long No

 

 

Methods: Return Types: Supported:

Interface CallableStatement

getArray(int i) Array No
getBigDecimal(int parameterIndex) BigDecimal Yes
getBigDecimal(int parameterIndex, int scale) BigDecimal Yes
getBlob(int i) Blob No (soon)
getBoolean(int parameterIndex) boolean Yes
getByte(int parameterIndex) byte Yes
getBytes(int parameterIndex) byte[] Yes
getClob(int i) Clob No (soon)
getDate(int parameterIndex) Date Yes
getDate(int parameterIndex, Calendar cal) Date No (soon)
getDouble(int parameterIndex) double Yes
getFloat(int parameterIndex) float Yes
getInt(int parameterIndex) int Yes
getLong(int parameterIndex) long Yes
getObject(int parameterIndex) Object Yes
getObject(int i, Map map) Object No
getRef(int i) Ref No
getShort(int parameterIndex) short Yes
getString(int parameterIndex) String Yes
getTime(int parameterIndex) Time Yes
getTime(int parameterIndex, Calendar cal) Time Yes
getTimestamp(int parameterIndex) Timestamp Yes
getTimestamp(int parameterIndex, Calendar cal) Timestamp No
registerOutParameter(int parameterIndex, int sqlType) void Yes
registerOutParameter(int parameterIndex, int sqlType, int scale) void No
registerOutParameter(int paramIndex, int sqlType, String typeName) void No
wasNull() boolean Yes

 

 

Methods: Return Types: Supported:

Interface Clob

getAsciiStream() InputStream No
getCharacterStream() Reader Yes
getSubString(long pos, int length) String Yes
length() long Yes
position(Clob searchstr, long start) long No
position(String searchstr, long start) long No

 

 

Methods: Return Types: Supported:

Interface Connection

clearWarnings() void Yes
close() void Yes
commit() void Yes
createStatement() Statement Yes
createStatement(int resultSetType, int resultSetConcurrency) Statement Yes
getAutoCommit() boolean Yes
getCatalog() String Yes
getMetaData() DatabaseMetaData Yes
getTransactionIsolation() int Yes
getTypeMap() Map No
getWarnings() SQLWarning Yes
isClosed() boolean Yes
isReadOnly() boolean Yes
nativeSQL(String sql) String Yes
prepareCall(String sql) CallableStatement Yes
prepareCall(String sql, int resultSetType, int resultSetConcurrency) CallableStatement Yes
prepareStatement(String sql) PreparedStatement Yes
prepareStatement(String sql, int resultSetType, int resultSetConcurrency) PreparedStatement Yes
rollback() void Yes
setAutoCommit(boolean autoCommit) void Yes
setCatalog(String catalog) void Yes
setReadOnly(boolean readOnly) void Yes
setTransactionIsolation(int level) void Yes
setTypeMap(Map map) void No

 

 

Methods: Return Types: Supported:

Interface DatabaseMetaData

allProceduresAreCallable() boolean Yes
allTablesAreSelectable() boolean Yes
dataDefinitionCausesTransactionCommit() boolean Yes
dataDefinitionIgnoredInTransactions() boolean Yes
deletesAreDetected(int type) boolean Yes
doesMaxRowSizeIncludeBlobs() boolean Yes
getBestRowIdentifier(String catalog, String schema, String table, int scope, boolean nullable) ResultSet Yes
getCatalogs() ResultSet Yes
getCatalogSeparator() String Yes
getCatalogTerm() String Yes
getColumnPrivileges(String catalog, String schema, String table, String columnNamePattern) ResultSet Yes
getColumns(String catalog, String schemaPattern, String tableNamePattern, String columnNamePattern) ResultSet Yes
getConnection() Connection Yes
getCrossReference(String primaryCatalog, String primarySchema, String primaryTable, String foreignCatalog, String foreignSchema, String foreignTable) ResultSet Yes
getDatabaseProductName() String Yes
getDatabaseProductVersion() String Yes
getDefaultTransactionIsolation() int Yes
getDriverMajorVersion() int Yes
getDriverMinorVersion() int Yes
getDriverName() String Yes
getDriverVersion() String Yes
getExportedKeys(String catalog, String schema, String table) ResultSet Yes
getExtraNameCharacters() String Yes
getIdentifierQuoteString() String Yes
getImportedKeys(String catalog, String schema, String table) ResultSet Yes
getIndexInfo(String catalog, String schema, String table, boolean unique, boolean approximate) ResultSet Yes
getMaxBinaryLiteralLength() int Yes
getMaxCatalogNameLength() int Yes
getMaxCharLiteralLength() int Yes
getMaxColumnNameLength() int Yes
getMaxColumnsInGroupBy() int Yes
getMaxColumnsInIndex() int Yes
getMaxColumnsInOrderBy() int Yes
getMaxColumnsInSelect() int Yes
getMaxColumnsInTable() int Yes
getMaxConnections() int Yes
getMaxCursorNameLength() int Yes
getMaxIndexLength() int Yes
getMaxProcedureNameLength() int Yes
getMaxRowSize() int Yes
getMaxSchemaNameLength() int Yes
getMaxStatementLength() int Yes
getMaxStatements() int Yes
getMaxTableNameLength() int Yes
getMaxTablesInSelect() int Yes
getMaxUserNameLength() int Yes
getNumericFunctions() String Yes
getPrimaryKeys(String catalog, String schema, String table) ResultSet Yes
getProcedureColumns(String catalog, String schemaPattern, String procedureNamePattern, String columnNamePattern) ResultSet Yes
getProcedures(String catalog, String schemaPattern, String procedureNamePattern) ResultSet Yes
getProcedureTerm() String Yes
getSchemas() ResultSet Yes
getSchemaTerm() String Yes
getSearchStringEscape() String Yes
getSQLKeywords() String Yes
getStringFunctions() String Yes
getSystemFunctions() String Yes
getTablePrivileges(String catalog, String schemaPattern, String tableNamePattern) ResultSet Yes
getTables(String catalog, String schemaPattern, String tableNamePattern, String[] types) ResultSet Yes
getTableTypes() ResultSet Yes
getTimeDateFunctions() String Yes
getTypeInfo() ResultSet Yes
getUDTs(String catalog, String schemaPattern, String typeNamePattern, int[] types) ResultSet Yes
getURL() String Yes
getUserName() String Yes
getVersionColumns(String catalog, String schema, String table) ResultSet Yes
insertsAreDetected(int type) boolean Yes
isCatalogAtStart() boolean Yes
isReadOnly() boolean Yes
nullPlusNonNullIsNull() boolean Yes
nullsAreSortedAtEnd() boolean Yes
nullsAreSortedAtStart() boolean Yes
nullsAreSortedHigh() boolean Yes
nullsAreSortedLow() boolean Yes
othersDeletesAreVisible(int type) boolean Yes
othersInsertsAreVisible(int type) boolean Yes
othersUpdatesAreVisible(int type) boolean Yes
ownDeletesAreVisible(int type) boolean Yes
ownInsertsAreVisible(int type) boolean Yes
ownUpdatesAreVisible(int type) boolean Yes
storesLowerCaseIdentifiers() boolean Yes
storesLowerCaseQuotedIdentifiers() boolean Yes
storesMixedCaseIdentifiers() boolean Yes
storesMixedCaseQuotedIdentifiers() boolean Yes
storesUpperCaseIdentifiers() boolean Yes
storesUpperCaseQuotedIdentifiers() boolean Yes
supportsAlterTableWithAddColumn() boolean Yes
supportsAlterTableWithDropColumn() boolean Yes
supportsANSI92EntryLevelSQL() boolean Yes
supportsANSI92FullSQL() boolean Yes
supportsANSI92IntermediateSQL() boolean Yes
supportsBatchUpdates() boolean Yes
supportsCatalogsInDataManipulation() boolean Yes
supportsCatalogsInIndexDefinitions() boolean Yes
supportsCatalogsInPrivilegeDefinitions() boolean Yes
supportsCatalogsInProcedureCalls() boolean Yes
supportsCatalogsInTableDefinitions() boolean Yes
supportsColumnAliasing() boolean Yes
supportsConvert() boolean No
supportsConvert(int fromType, int toType) boolean No
supportsCoreSQLGrammar() boolean Yes
supportsCorrelatedSubqueries() boolean Yes
supportsDataDefinitionAndDataManipulationTransactions() boolean Yes
supportsDataManipulationTransactionsOnly() boolean Yes
supportsDifferentTableCorrelationNames() boolean Yes
supportsExpressionsInOrderBy() boolean Yes
supportsExtendedSQLGrammar() boolean Yes
supportsFullOuterJoins() boolean Yes
supportsGroupBy() boolean Yes
supportsGroupByBeyondSelect() boolean Yes
supportsGroupByUnrelated() boolean Yes
supportsIntegrityEnhancementFacility() boolean Yes
supportsLikeEscapeClause() boolean Yes
supportsLimitedOuterJoins() boolean Yes
supportsMinimumSQLGrammar() boolean Yes
supportsMixedCaseIdentifiers() boolean Yes
supportsMixedCaseQuotedIdentifiers() boolean Yes
supportsMultipleResultSets() boolean Yes
supportsMultipleTransactions() boolean Yes
supportsNonNullableColumns() boolean Yes
supportsOpenCursorsAcrossCommit() boolean Yes
supportsOpenCursorsAcrossRollback() boolean Yes
supportsOpenStatementsAcrossCommit() boolean Yes
supportsOpenStatementsAcrossRollback() boolean Yes
supportsOrderByUnrelated() boolean Yes
supportsOuterJoins() boolean Yes
supportsPositionedDelete() boolean Yes
supportsPositionedUpdate() boolean Yes
supportsResultSetConcurrency(int type, int concurrency) boolean Yes
supportsResultSetType(int type) boolean Yes
supportsSchemasInDataManipulation() boolean Yes
supportsSchemasInIndexDefinitions() boolean Yes
supportsSchemasInPrivilegeDefinitions() boolean Yes
supportsSchemasInProcedureCalls() boolean Yes
supportsSchemasInTableDefinitions() boolean Yes
supportsSelectForUpdate() boolean Yes
supportsStoredProcedures() boolean Yes
supportsSubqueriesInComparisons() boolean Yes
supportsSubqueriesInExists() boolean Yes
supportsSubqueriesInIns() boolean Yes
supportsSubqueriesInQuantifieds() boolean Yes
supportsTableCorrelationNames() boolean Yes
supportsTransactionIsolationLevel(int level) boolean Yes
supportsTransactions() boolean Yes
supportsUnion() boolean Yes
supportsUnionAll() boolean Yes
updatesAreDetected(int type) boolean Yes
usesLocalFilePerTable() boolean Yes
usesLocalFiles() boolean Yes

 

Methods: Return Types: Supported:

Interface PreparedStatement

addBatch() void Yes
clearParameters() void Yes
execute() boolean Yes
executeQuery() ResultSet Yes
executeUpdate() int Yes
getMetaData() ResultSetMetaData Yes
setArray(int i, Array x) void No
setAsciiStream(int parameterIndex, InputStream x, int length) void Yes
setBigDecimal(int parameterIndex, BigDecimal x) void Yes
setBinaryStream(int parameterIndex, InputStream x, int length) void Yes
setBlob(int i, Blob x) void Yes
setBoolean(int parameterIndex, boolean x) void Yes
setByte(int parameterIndex, byte x) void Yes
setBytes(int parameterIndex, byte[] x) void Yes
setCharacterStream(int parameterIndex, Reader reader, int length) void Yes
setClob(int i, Clob x) void Yes
setDate(int parameterIndex, Date x) void Yes
setDate(int parameterIndex, Date x, Calendar cal) void Yes
setDouble(int parameterIndex, double x) void Yes
setFloat(int parameterIndex, float x) void Yes
setInt(int parameterIndex, int x) void Yes
setLong(int parameterIndex, long x) void Yes
setNull(int parameterIndex, int sqlType) void yes
setNull(int paramIndex, int sqlType, String typeName) void no
setObject(int parameterIndex, Object x) void Yes
setObject(int parameterIndex, Object x, int targetSqlType) void Yes
setObject(int parameterIndex, Object x, int targetSqlType, int scale) void Yes
setRef(int i, Ref x) void No
setShort(int parameterIndex, short x) void Yes
setString(int parameterIndex, String x) void Yes
setTime(int parameterIndex, Time x) void Yes
setTime(int parameterIndex, Time x, Calendar cal) void Yes
setTimestamp(int parameterIndex, Timestamp x) void Yes
setTimestamp(int parameterIndex, Timestamp x, Calendar cal) void Yes
setUnicodeStream(int parameterIndex, InputStream x, int length) void Yes

 

Methods: Return Types: Supported:

Interface ResultSet

absolute(int row) boolean Yes
afterLast() void Yes
beforeFirst() void Yes
cancelRowUpdates() void Yes
clearWarnings() void Yes
close() void Yes
deleteRow() void Yes
findColumn(String columnName) int Yes
first() boolean Yes
getArray(int i) Array No
getArray(String colName) Array Yes
getAsciiStream(int columnIndex) InputStream Yes
getAsciiStream(String columnName) InputStream Yes
getBigDecimal(int columnIndex) BigDecimal Yes
getBigDecimal(int columnIndex, int scale) BigDecimal Yes
getBigDecimal(String columnName) BigDecimal Yes
getBigDecimal(String columnName, int scale) BigDecimal Yes
getBinaryStream(int columnIndex) InputStream Yes
getBinaryStream(String columnName) InputStream Yes
getBlob(int i) Blob Yes
getBlob(String colName) Blob Yes
getBoolean(int columnIndex) boolean Yes
getBoolean(String columnName) boolean Yes
getByte(int columnIndex) byte Yes
getByte(String columnName) byte Yes
getBytes(int columnIndex) byte[] Yes
getBytes(String columnName) byte[] Yes
getCharacterStream(int columnIndex) Reader Yes
getCharacterStream(String columnName) Reader Yes
getClob(int i) Clob Yes
getClob(String colName) Clob Yes
getConcurrency() int Yes
getCursorName() String Yes
getDate(int columnIndex) Date Yes
getDate(int columnIndex, Calendar cal) Date Yes
getDate(String columnName) Date Yes
getDate(String columnName, Calendar cal) Date Yes
getDouble(int columnIndex) double Yes
getDouble(String columnName) double Yes
getFetchDirection() int Yes
getFetchSize() int Yes
getFloat(int columnIndex) float Yes
getFloat(String columnName) float Yes
getInt(int columnIndex) int Yes
getInt(String columnName) int Yes
getLong(int columnIndex) long Yes
getLong(String columnName) long Yes
getMetaData() ResultSetMetaData Yes
getObject(int columnIndex) Object Yes
getObject(int i, Map map) Object No
getObject(String columnName) Object Yes
getObject(String colName, Map map) Object No
getRef(int i) Ref No
getRef(String colName) Ref No
getRow() int Yes
getShort(int columnIndex) short Yes
getShort(String columnName) short Yes
getStatement() Statement Yes
getString(int columnIndex) String Yes
getString(String columnName) String Yes
getTime(int columnIndex) Time Yes
getTime(int columnIndex, Calendar cal) Time Yes
getTime(String columnName) Time Yes
getTime(String columnName, Calendar cal) Time Yes
getTimestamp(int columnIndex) Timestamp Yes
getTimestamp(int columnIndex, Calendar cal) Timestamp Yes
getTimestamp(String columnName) Timestamp Yes
getTimestamp(String columnName, Calendar cal) Timestamp Yes
getType() int Yes
getUnicodeStream(int columnIndex) InputStream Yes
getUnicodeStream(String columnName) InputStream Yes
getWarnings() SQLWarning Yes
insertRow() void Yes
isAfterLast() boolean Yes
isBeforeFirst() boolean Yes
isFirst() boolean Yes
isLast() boolean Yes
last() boolean Yes
moveToCurrentRow() void Yes
moveToInsertRow() void Yes
next() boolean Yes
previous() boolean Yes
refreshRow() void Yes
relative(int rows) boolean Yes
rowDeleted() boolean Yes
rowInserted() boolean Yes
rowUpdated() boolean Yes
setFetchDirection(int direction) void Yes
setFetchSize(int rows) void Yes
updateAsciiStream(int columnIndex, InputStream x, int length) void Yes
updateAsciiStream(String columnName, InputStream x, int length) void Yes
updateBigDecimal(int columnIndex, BigDecimal x) void Yes
updateBigDecimal(String columnName, BigDecimal x) void Yes
updateBinaryStream(int columnIndex, InputStream x, int length) void Yes
updateBinaryStream(String columnName, InputStream x, int length) void Yes
updateBoolean(int columnIndex, boolean x) void Yes
updateBoolean(String columnName, boolean x) void Yes
updateByte(int columnIndex, byte x) void Yes
updateByte(String columnName, byte x) void Yes
updateBytes(int columnIndex, byte[] x) void Yes
updateBytes(String columnName, byte[] x) void Yes
updateCharacterStream(int columnIndex, Reader x, int length) void Yes
updateCharacterStream(String columnName, Reader reader, int length) void Yes
updateDate(int columnIndex, Date x) void Yes
updateDate(String columnName, Date x) void Yes
updateDouble(int columnIndex, double x) void Yes
updateDouble(String columnName, double x) void Yes
updateFloat(int columnIndex, float x) void Yes
updateFloat(String columnName, float x) void Yes
updateInt(int columnIndex, int x) void Yes
updateInt(String columnName, int x) void Yes
updateLong(int columnIndex, long x) void Yes
updateLong(String columnName, long x) void Yes
updateNull(int columnIndex) void Yes
updateNull(String columnName) void Yes
updateObject(int columnIndex, Object x) void Yes
updateObject(int columnIndex, Object x, int scale) void Yes
updateObject(String columnName, Object x) void Yes
updateObject(String columnName, Object x, int scale) void Yes
updateRow() void Yes
updateShort(int columnIndex, short x) void Yes
updateShort(String columnName, short x) void Yes
updateString(int columnIndex, String x) void Yes
updateString(String columnName, String x) void Yes
updateTime(int columnIndex, Time x) void Yes
updateTime(String columnName, Time x) void Yes
updateTimestamp(int columnIndex, Timestamp x) void Yes
updateTimestamp(String columnName, Timestamp x) void Yes
wasNull() boolean Yes

 

Methods: Return Types: Supported:

Interface ResultSetMetaData

getCatalogName(int column) String Yes
getColumnClassName(int column) String No
getColumnCount() int Yes
getColumnDisplaySize(int column) int Yes
getColumnLabel(int column) String Yes
getColumnName(int column) String Yes
getColumnType(int column) int Yes
getColumnTypeName(int column) String Yes
getPrecision(int column) int Yes
getScale(int column) int Yes
getSchemaName(int column) String Yes
getTableName(int column) String Yes
isAutoIncrement(int column) boolean Yes
isCaseSensitive(int column) boolean Yes
isCurrency(int column) boolean Yes
isDefinitelyWritable(int column) boolean Yes
isNullable(int column) int Yes
isReadOnly(int column) boolean Yes
isSearchable(int column) boolean Yes
isSigned(int column) boolean Yes
isWritable(int column) boolean Yes

 

Methods: Return Types: Supported:

Interface Statement

addBatch(String sql) void Yes
cancel() void No
clearBatch() void Yes
clearWarnings() void Yes
close() void Yes
execute(String sql) boolean Yes
executeBatch() int[] Yes
executeQuery(String sql) ResultSet Yes
executeUpdate(String sql) int Yes
getConnection() Connection Yes
getFetchDirection() int Yes
getFetchSize() int Yes
getMaxFieldSize() int Yes
getMaxRows() int Yes
getMoreResults() boolean Yes
getQueryTimeout() int Yes
getResultSet() ResultSet Yes
getResultSetConcurrency() int Yes
getResultSetType() int Yes
getUpdateCount() int Yes
getWarnings() SQLWarning Yes
setCursorName(String name) void no
setEscapeProcessing(boolean enable) void Yes
setFetchDirection(int direction) void no
setFetchSize(int rows) void no
setMaxFieldSize(int max) void Yes
setMaxRows(int max) void Yes
setQueryTimeout(int seconds) void Yes

 

 

 

Methods: Return Types: Supported:

Interface Array

No

Interface Struct

No

Interface SQLOutput

No

Interface SQLInput

No

Interface SQLData

No

Interface Ref

No

Interface Driver

Support but not to public

 

 

Veeam ONE (24)

Veeam ONEについての一般的な質問

Q: Veeam ONEでvSphere とHyper-Vのフリー版はモニターできますか?
はい。

Q: モニターできるホストとVM数は?
Veeam ONEは管理できるホストとVM数の制限はありません。

Q: Veeam ONEはエージェントを必要としますか?
いいえ、Veeam ONEはエージェントを必要としない最新のAPI技術を使用しています。

Q: Veeam ONEのインストールには専用の物理サーバが必要ですか?
いいえ、Veeam ONEは物理でも仮想サーバでもディプロイが可能です。

Q:Veeam ONは仮想環境だけでなく、Veeam Backup & Replicationの監視もできますか?
はい、仮想環境だけでなくバックアップ環境も監視できます。

Veeam ONE をどの PC にインストールすればいいですか?

Windows PC を用意していただき、そこに Veeam ONE をインストールします。

Veeam ONE をインストールした PC から VMware vsphere ESX(i)、VMware vSphere Hypervisor(ESXi フリー版)、Microsoft Hyper-V に接続して仮想マシンのモニタリングを行います。

ESX(i) や Hyper-V 上の仮想マシン(Windows)にもインストールできます。

評価するには何が必要になりますか?

下記の環境をご用意ください。

 

VMware 環境の場合

1. Veeam ONE インストール用の Windows 系サーバ(仮想マシンでも可)

2. VMware vSphere ESX(i) または VMware vSphere Hypervisor(ESXi フリー版)

 

Hyper-V 環境の場合

1. Microsoft Windows Server または Microsoft Hyper-V Server

 

※インストールするサーバについては、システム要件をご確認ください。

※インストールや設定方法については、インストールマニュアルをご確認ください。

日本語対応していますか?

ソフトのメニュー類は日本語には未対応です。

 

しかし、製品の操作マニュアルや、Veeam ONEによって提供されているレポートの説明などのマニュアルが日本語で用意されておりますので、問題なく使用可能です。

 

また、Veeam ONEによって提供されているアラートに付随するナレッジベースはシンプルな英語で作成されておりますし、コピー&ペーストすることもできますので、翻訳ソフトを使用していただくことで十分、内容は理解できるかと思います。

Veeam ONE -導入・製品 (7)

Veeam ONE をどの PC にインストールすればいいですか?

Windows PC を用意していただき、そこに Veeam ONE をインストールします。

Veeam ONE をインストールした PC から VMware vsphere ESX(i)、VMware vSphere Hypervisor(ESXi フリー版)、Microsoft Hyper-V に接続して仮想マシンのモニタリングを行います。

ESX(i) や Hyper-V 上の仮想マシン(Windows)にもインストールできます。

Veeam ONE -ライセンス (3)

Veeam ONE -評価 (4)

評価するには何が必要になりますか?

下記の環境をご用意ください。

 

VMware 環境の場合

1. Veeam ONE インストール用の Windows 系サーバ(仮想マシンでも可)

2. VMware vSphere ESX(i) または VMware vSphere Hypervisor(ESXi フリー版)

 

Hyper-V 環境の場合

1. Microsoft Windows Server または Microsoft Hyper-V Server

 

※インストールするサーバについては、システム要件をご確認ください。

※インストールや設定方法については、インストールマニュアルをご確認ください。

Veeam ONE -購入サポート (8)

日本語対応していますか?

ソフトのメニュー類は日本語には未対応です。

 

しかし、製品の操作マニュアルや、Veeam ONEによって提供されているレポートの説明などのマニュアルが日本語で用意されておりますので、問題なく使用可能です。

 

また、Veeam ONEによって提供されているアラートに付随するナレッジベースはシンプルな英語で作成されておりますし、コピー&ペーストすることもできますので、翻訳ソフトを使用していただくことで十分、内容は理解できるかと思います。

Veeam ONE -機能 (4)

Veeam ONEについての一般的な質問

Q: Veeam ONEでvSphere とHyper-Vのフリー版はモニターできますか?
はい。

Q: モニターできるホストとVM数は?
Veeam ONEは管理できるホストとVM数の制限はありません。

Q: Veeam ONEはエージェントを必要としますか?
いいえ、Veeam ONEはエージェントを必要としない最新のAPI技術を使用しています。

Q: Veeam ONEのインストールには専用の物理サーバが必要ですか?
いいえ、Veeam ONEは物理でも仮想サーバでもディプロイが可能です。

Q:Veeam ONは仮想環境だけでなく、Veeam Backup & Replicationの監視もできますか?
はい、仮想環境だけでなくバックアップ環境も監視できます。

Database Performance Analyzer (40)

スパイクを超えた、異常ベースのデータベース監視の深化化

データベース管理者は、データベースのパフォーマンスにおけるスパイクに注目しがちです。これは問題のある動作を特定する良い方法ですが、動作のスパイクを分析することだけがパフォーマンスの変化を示す指標ではありません。実際、ほとんどの実稼働データベースでは、パフォーマンスの変動は正常であり、予期されるべきものです。データベース管理者は、予想される変動を考慮し、予期しないものを呼び出す方法を必要としています。

Database Performance Analyzer(DPA)のスマートなSQLデータベース異常検知は、スパイクを越えて、予想される変動を考慮し、何か予期せぬことが起きたときに指摘することができます。この異常検知ツールは、そのような事象をハイライト表示し、標準から逸脱した事態を知るための複数の方法を提供します。

異常検知ツールでデータベースの待ち時間動作パターンを自動学習

狭い知識に頼っていると、新しい人がそれを習得するのは難しいです。また、大規模な環境では、深く広く理解することができない場合もあります。狭い知識の必要性を排除し、Database Performance Analyzer(DPA)の機械学習アルゴリズムに正常な動作パターンの「理解」の自動化を任せましょう。重要なリソースが異動したときに知識が流出しないように、知識を自動化して保持し、チーム全員の利益につなげます。

DPAの機械学習アルゴリズムは、時間の経過とともに賢くなるように設計されており、より多くのデータを収集することで予測精度を向上させます。

Database Performance Analyzer (DPA)の各種あるある機能

●Database Performance Analyzer (DPA) は、最も複雑なデータベース・パフォーマンスの問題を発見し解決するために設計されています。

画像

 

●Database Performance Analyzer (DPA)データベースのパフォーマンスに問題がある箇所を一目で確認でき、さらに詳細な情報を得るために簡単に移動することができます。DPAは、単一のインストールで、すべての主要なデータベース・システムでこれを実現できます。

画像

●Database Performance Analyzer (DPA) を使用して、最もリソースを消費し、最も問題を引き起こしているSQLに焦点を当てれば、SQL文のチューニングは容易になります。グラフの各色は、個別のSQLステートメントを表します。

画像

●Database Performance Analyzer (DPA)は、SQL文のテキストをドリルダウンして詳細を確認することも可能です。

画像

●Database Performance Analyzer (DPA)のダイナミックベースラインでは、詳細なメトリクスと数年にわたる履歴を表示し、長期にわたる完全なパフォーマンスストーリーを物語るトレンドとパターンを確認することができます。

画像

 

Database Performance Analyzerの総合満足度(ユーザ3の声)

使用例と導入範囲

当社では、Database Performance Analyzerを使用して、データベース全体の健全性におけるプロアクティブなパフォーマンス監視と異常検出を行っています。この製品によって、データベースパフォーマンスの全体像を初めて見ることができます。また、アラートとメール通知を設定することで、時間を大幅に節約しています。私たちが最もよく使うケースは、実行プランの変更に対応し、システムのエンドユーザーがパフォーマンスの問題や応答時間について不満を持ち始める前に適切な措置を取ることです。

 

長所と短所

(+)機械学習による異常検知 – バージョン12の新機能で、統計的分析が非常に便利です。
(+)日次と年次で作業量を比較することで、成長の全体像を把握し、キャパシティを考慮することができます。
(+)直感的なパフォーマンス分析 – 問題点を簡単に調べ、根本的な原因を見つけることができます。
(-)過去2回のバージョン12.0と12.1では、ソーラーウインドは素晴らしい機能拡張を行いました。現在、変更してほしいところはありません。ユーザー・インターフェースに多少の美観はありますが、問題だとは思っていません。

 

投資対効果

●定量的なデータは提供できませんが、実際にプラスの影響を与えた例をいくつか挙げることができます。
●インターネットバンキングのアプリケーションで、思うように動作しない点がいくつかありました。DPAを使用して、最も重いSQLクエリを特定し、ベンダーに変更依頼を開始しました。変更後、レスポンスタイムを1桁短縮することができました。

Database Performance Monitorのチューニング
私たちの組織では、テーブル・チューニング・アドバイザーを使って、ある MS SQL サーバーの統計情報を追加で作成しました。

 

ベストバリュー

環境のアップグレードの支援(該当する場合) – 私たちは、製品のバージョンからバージョンへのアップグレードを何度も行いました。一度だけ問題が発生しましたが、非常に迅速に修正されました。実は、その問題に対して私が推薦したのですが、彼らは最初に回避策を与えてくれました。全体的にとても満足しています。

Database Performance Analyzerの総合満足度(ユーザ1の声)

使用例と導入範囲

アラートを利用して問題を未然に防いでいます。パフォーマンスデータを使って問題を診断し、解決しています。ダッシュボードとドリルダウンを使って、現在の状況を把握し、うまくいっているかどうかを確認します。全体的なレスポンスタイムの急上昇や急降下を監視し、ユーザが体験しているUXの原因を理解しようとしています。

 

長所と短所

(+)この製品は、管理やパフォーマンスチューニングに必要なデータを、数秒で理解できるように可視化することに優れています。OracleのようなデータベースにはAWRレポートがあり、何ページもあり、すべてテキストで、読みにくいです。SQL Serverには動的な管理ビューがありますが、良いものですが簡単にアクセスできません。 Database Performance Analyzer (DPA)は、このようなレポートをすばやく理解し、実行できるようにレイアウトします。

 

(+)DPAは、実際に何が起こっているのかを教えてくれます。

例:開発者は、このストアドプロシージャはこのRDBMSでは非常に遅く実行されるが、別のRDBMSでは電光石火のように実行されると述べています。チューニングを試みたが効果がなかった。
そこで、DPAで数分かけて状況を調査したところ、ストアドプロシージャは正常に動作していることがわかりました。その代わり、アプリケーションがプロックに関するメタデータにアクセスしようとする際に、速度が低下していることがわかりました。その結果、メタデータをキャッシュするようになり、今では「遅い」プロックが快調に動作しています。DPAがなければ、微調整すべき正しいコードを探すのに長い時間がかかっていたでしょう。

 

(+)内蔵のアラート機能を使って、カスタムアラートを作成できるのは素晴らしいことです。カスタムアラートは、監視しているデータベースや、DPAが収集したデータから、OS、ストレージ、ネットワークなど、関連する部分まで情報を収集することができます。

 

(-)素晴らしい製品で、ほとんどのことがうまくいっています。必要な情報に少ないクリックでアクセスできるように、UIを改善し続けて欲しいと思います。

 

(-)DPAの競合他社が持っている機能で便利そうなのは、ジョブの実行時間をマッピングして、問題が発生したときに時間単位でマッピングできるようにすることです。

 

 

投資対効果

●問題発生時に対応するのではなく、問題を未然に防ぐことができるのは貴重なことです。顧客サービスのレベルも格段に上がりました。

●私が別の機会を求めて退職することを聞いた開発部の不機嫌な部長は、「今までいた最高のDBAをどうして手放すんだ」と上司を叱咤激励しました。 Database Performance Analyzerを使って提供できるサービスのレベルが、私が優れたDBAになるのに役立ちました。

 

Database Performance Analyzerの貴重な洞察

あるデータベースサーバーで、サードパーティの製品を使用していました。DPAのバーチャートは、1つのSQL文による多くの待ち時間を表していました。その文は実行に数ミリ秒しかかかりませんが、1日に数百万回実行されていました。どうしてその文がそんなに頻繁に実行されなければならないのか?私の上司の上司が、そのデータベースを作成している会社のオーナと知り合いで、私が見つけたものを送ってくれたのです。そして修正してもらったのです。

 

Database Performance Monitor のチューニング

[Table Tuning Advisors]は、全体的なガイダンスを与えてくれます。しかし、Query Advisorsは、しばしば特定の提案インデックスを持ち、それをコードウィンドウにコピー&ペーストするだけで、多くのことができます。私はしばしば、実行する前にそれらを微調整し、一部は役立ちませんでしたが、全体として、それらはパフォーマンスにとって非常に有用でした。大きなテーブルで適切なインデックスを使用すると、パフォーマンスが文字通り何百倍も、時には3,000%も向上することがあるのです。

 

仮想化データベース

そのためには、問題があなたのVMにあるのか、それともホストにあるのかを理解する必要があります。サーバ管理者とオーバープロビジョニングについて議論する必要があるのか、それともデータベースサーバーのVM内でよりコントロールできる問題なのかを?

 

DPAの1週間あたりの時間節約額

一人当たり週0-4時間の時間節約 :アラートがないと、反応モードで時間を浪費し、顧客のエクスペリエンスが損なわれます。分析と棒グラフがなければ、問題を診断して修正するために時間を浪費することになります。何度もクエリーを実行する必要がある場合、全体像を一目で把握することができず、時間を浪費してしまいます。

 

推薦する可能性

管理するインスタンスが何十台もある場合、ダッシュボードはとても便利です。履歴が残るので、昨日や週末に起こった問題を診断したり、毎日同じ時間に起こるのか、毎週同じ曜日に起こるのか、などのパターンを確認することができます。

DPAの待ち時間(Wait-based)を利用した分析

従来のデータベース監視ツールは、データベースの健全性指標に着目して、パフォーマンス問題のトラブルシューティングを行います。DBA(DB管理者) は、これらの指標を改善するために何時間もかけてデータベースをチューニングしますが、その変更がパフォーマンスにほとんど影響を与えないことに気付くことがあります。

 

DPA(Database Performance Analyzer)は、データベースの健全性指標の代わりに、アプリケーションとエンドユーザーの待ち時間に注目します。DPAは、待ち時間が最も長い場所をグラフィカルに表示し、待ち時間が予想より長い時間帯(異常)も特定します。パフォーマンス問題の根本原因を掘り下げることができ、その修正方法に関するアドバイスを得ることができます。DPAを使用して、長い待ち時間の直接の原因となっている問題を発見し修正すれば、注目されるパフォーマンス改善を実現することができます。

 

DPAのホームページを使用して、待ち時間の長いデータベースインスタンスや異常なインスタンスを素早く特定し、ドリルダウンして詳細を確認することができます。

 

DPAのクエリー・パフォーマンス解析

クエリのパフォーマンス問題の根本原因を調査するために、DPAはクエリに関する最も関連性の高いデータをインテリジェントに収集し、「クエリの詳細」ページに表示します。この情報を使用して、次のことを行います。

 

●パフォーマンスに影響を及ぼしている待機の種類を確認し、各待機の種類に関する詳細情報および推奨事項を表示します。
●クエリおよびテーブルのチューニングアドバイザーを確認する
●統計およびメトリックスチャートで、クエリ待ち時間と他のイベントとの関連性を調べることができます。

 

DPAは、主な待ちの種類やその他の情報をもとに、最も関連性の高い統計、ブロッキング、プラン、メトリクスチャートを自動的に選択します。これらのチャートを表示するためにスクロールダウンしても、「トップウェイト」チャートは表示されたままなので、同じ時間帯の他のイベントとクエリ待ち時間を関連付けることができます。この情報は、複雑なパフォーマンス問題の根本原因を特定するために必要なコンテキストを提供します。

DPAのテーブル・チューニング・アドバイザー

非効率なクエリ、つまり、多くの行を読み取るが、返す行数は比較的少ないクエリのパフォーマンスを改善する方法を決定する際には、多くの要因を考慮する必要があります。DPAのテーブルチューニングアドバイザーは、十分な情報に基づいた意思決定を支援します。DPAは毎日、非効率的なクエリが実行されたテーブルを特定します。各テーブルについて、テーブル チューニング アドバイザー ページには、非効率的なクエリ、テーブル構造、および既存のインデックスに関する集約された情報が表示されます。こ の情報は、 次の よ う な質問に答 え る のに役立ち ます。

 

●クエリの計画をレビューする際に、どのステップに焦点を当てるべきか?
●このテーブルには現在いくつのインデックスが存在し、それらはどのようなものか?
●パフォーマンスを向上させるためにインデックスを追加することは可能か?
●統計は古くないか?
●テーブルのチャーン(挿入、更新、削除)はどの程度行われているか?

DPAの異常検知

DPAでは、異常検知アルゴリズムを用いて、予期せぬ待ち時間の増加を検知しています。ある期間では、待ち時間が多くても正常である場合があります。DPAは、過去のデータを使って正常な状態を「学習」し、そのデータに基づいて予測を行います。ある時間帯の待ち時間が予想より大幅に長い場合、DPAは異常を報告します。

クラウドからオンプレミスへのPostgreSQLの適用範囲

PostgreSQLデータベースインスタンスは、Linux、Windows Server、VMware仮想マシン、クラウドプラットフォームのどこで実行しても、Database Performance Analyzer(DPA)でカバーすることができます。

PostgreSQLプラットフォームの広範なサポートは以下のとおりです。

 

  • PostgreSQL
  • EDB Postgres
  • Azure Database for PostgreSQL
  • Amazon RDS for PostgreSQL
  • Amazon Aurora for PostgreSQL
  • Google Cloud SQL for PostgreSQL

 

DPAのPostgreSQLデータベース管理へのハイブリッドアプローチは、エージェントレスアーキテクチャと1%未満のオーバーヘッドで、データベースパフォーマンスのチューニングと最適化への一面的なビューを提供します。

 

PostgreSQLの重要なメトリクスを可視化する

DPAは、24時間365日、秒単位のデータ収集により、ディスク、メモリ、ネットワークなどの主要なシステムメトリクスを含むPostgreSQL環境の広範なメトリクスを測定します。さらに、PostgreSQL固有の主要なメトリクスを簡単に利用できます。

 

キャッシュエビション
チェックポイント
レプリケーション
バキューム
行の操作
ライセンスコンプライアンス

 

これらの指標と、リアルタイムおよび履歴ビューを組み合わせることで、DBAはPostgreSQLのチューニング指標に簡単にアクセスすることができます。

機械学習+クエリアドバイザ=PostgreSQLの最適化

DPAの異常検知は、時間の経過とともに賢くなる機械学習をベースに、季節性を利用して何が正常で何が正常でないかを判断しています。この強力な機能により、DBAは意識していなかったものも含め、パフォーマンスの問題を通常数秒で発見することができます。

 

機械学習と高度な待ち時間解析の組み合わせにより、クエリが影響を受けている理由と場所を示し、従来の監視ソリューションでは実現できなかったPostgreSQLの最適化の可視性を提供します。

 

DPAは、パフォーマンス低下の原因を指摘するクエリアドバイザによる専門的なアドバイスによって、PostgreSQLのチューニングをさらに一歩推し進めます。

PostgreSQL Azure、AWS、Googleの徹底チューニング

クラウドコンピューティングプラットフォーム上でPostgreSQLを実行する場合、パフォーマンスの最適化とチューニングが重要です。なぜなら、計算リソースの対価として、非効率的で不適切なクエリは、フロントエンドアプリケーションのパフォーマンスへの影響は言うまでもなく、コストにつながる可能性があるからです。

 

DPAは、PostgreSQLのパフォーマンス管理に対して、以下のような全体的なアプローチを提供します。

 

●リアルタイムおよびヒストリカルビュー
●24時間365日、秒単位のデータ収集が可能
●シンプルでエージェントレスな実装により、オーバーヘッドを1%未満に抑えることができます。
●ポストグレスに特化したレポート(アドホックまたはスケジュール型)
●機械学習による異常検知
●多角的なクエリ待ち時間分析
●問題箇所をピンポイントで特定するクエリアドバイザ
●システムおよびPostgreSQLの両方のメトリクス
●SQLテキストへのドリルダウンとライブプランの実行
●ドラッグ&ドロップでカスタマイズできるメールアラートテンプレート
●自動化統合のためのRESTful API
●DPAは、物理サーバーやVM、Azure、AWSのサービスとして実装することが可能

仮想化されたPostgreSQLの統合監視

DBAは、PostgreSQLのパフォーマンスチューニングと分析に関して、しばしば指南役となります。誰かがアプリケーションのパフォーマンス低下について不満を漏らすと、データベースのバックエンドが最初に非難されることがよくあります。

 

しかし、PostgreSQLインスタンスがVMware仮想マシンで動作している場合はどうでしょうか。多くの場合、DBAはPostgreSQLインスタンスをサポートする仮想インフ ラの影響(もしあれば)を全く見ることができません。DPA VMオプションによる統合仮想化監視は、VMがPostgresの性能問題を引き起こしているかどうかを判断するために必要なデータをDBAに提供します。VMのメトリクスとデータベースのメトリクスを重ねた独自の「タイムスライス」ビューから、詳細なESXiホストのメトリクスまで、DBAはPostgreSQLインスタンスへの影響を判断するのに必要なデータを手に入れることができます。

Database Performance Analyzer vs. Database Performance Monitor

Database Performance Analyzer

 

 

DBAは、複数のデータベースプラットフォームでより多くのデータベースインスタンスを管理する必要に迫られています。Database Performance Analyzer(DPA)を使用すれば、機械学習による異常検知や履歴およびリアルタイム分析などの機能により、数分でパフォーマンス問題をピンポイントで特定できる、データベースパフォーマンス管理への一貫したアプローチを手に入れることができます。

 

DPAの主な機能は以下のとおりです。

 

●専門家によるクエリーのアドバイス、ブロッキング、リソース利用による多次元クエリー分析
●カスタムアラート、メトリクス、レポーティング
●VMwareの監視と分析を統合
●シンプルでエージェントレスなインストールにより、オーバーヘッドを1%未満に抑えることが可能
●オンプレミス、Azure、Amazon(RDSおよびAurora)インスタンスを含む幅広いデータベースプラットフォームが対象

 

Database Performance Monitor

 

 

アプリケーションを所有する開発者、データベースのリアルタイムおよび過去の統計情報を必要とするSREやDBAは、すべて Database Performance Monitor(DPM)の恩恵を受けることができます。直感的なインターフェイスは、コードの展開とデータベースのパフォーマンス監視を行う部門横断的なチームの作業をサポートします。

 

DPMの主な機能は次のとおりです。

 

●パフォーマンスの前後を測定するための時間比較
●カスタムアラートとダッシュボード
●システムとデータベースの両方のメトリックスにより、全体的な健全性を洞察
●部門横断的なチーム向けに拡張性のあるSaaSプラットフォーム
●MySQL、MongoDB、Redis、Auroraなど、幅広いオープンソースデータベースプラットフォームをカバー

データベーススキーマの定義

データベーススキーマとは、リレーショナルデータベース全体の論理的、視覚的な構成のことである。データベースのオブジェクトは、テーブル、関数、リレーションとしてグループ化され表示されることが多い。スキーマは、データベース内のデータの構成と格納を記述し、さまざまなテーブル間の関係を定義します。データベーススキーマは、スキーマ図を通して描くことができるデータベースの記述的な詳細を含んでいます。

データベースのスキーマはどのように設計されているのですか?

データベース設計者は、プログラマーが効率的にデータベースを操作できるように、データベーススキーマを作成します。データベースを作成するプロセスは、データモデリングとして知られています。データベーススキーマを設計するためには、情報を収集し、それらをテーブル、行、列に並べる必要があります。情報を整理することで、理解しやすく、関連付けやすく、使いやすくする必要があります。

データベース・スキーマ設計とは?

データベーススキーマ設計は、データベースのアーキテクチャを開発するための設計図を提供することで、膨大な情報を体系的に格納することができる。また、データベースの構築に関わる戦略やベストプラクティスを指します。データベーススキーマ設計は、データを個別のエンティティに整理し、整理されたエンティティ間の関係を決定することによって、データの消費、解釈、取得をはるかに容易にします。

データベーススキーマの設計方法

データベーススキーマの設計は、データの書式が一貫していること、すべての項目が主キーを持つこと、重要なデータが除外されていないことを保証します。データベーススキーマは、視覚的なものと論理的なものがあり、データベースを管理するための公式のセットを含んでいます。開発者は、これらの公式とデータ定義を使用して、データベーススキーマを作成します。

 

最も一般的なデータベーススキーマの種類を以下に概説します。

 

階層的モデル: 階層型:ルートノードに子ノードが付随するツリー状の構造を持つデータベーススキーマを階層型という。このデータベーススキーマモデルは、家系図などのネストされたデータを格納することができる。

 

フラットモデル:フラットモデル: データを単次元または二次元の配列に整理したもので、行と列を持つスプレッドシートのようなモデル。このモデルは、複雑な関係を持たない単純なデータを表形式で整理するのに適している。

 

リレーショナルモデル:リレーショナルモデルは、データが表、行、列に整理されるフラットモデルに似ている。ただし、このモデルでは、異なるエンティティ間の関係を定義することができる。

 

スタースキーマ: スターデータベーススキーマは、データを「ディメンション」と「ファクト」に整理します。ディメンジョンには説明的なデータが含まれ、ファクトには数値が含まれる。

 

スノーフレークスキーマ: スノーフレーク(雪片)型データベーススキーマは、データベース内のデータを論理的に表現したものである。このタイプのスキーマの表現はスノーフレークに似ており、複数のディメンジョンが1つの集中ファクトテーブルにくっ付いている。

 

ネットワークモデル: ネットワークデータベーススキーマは、データを接続された複数のノードとして含みます。このモデルは、多対多の関係などの複雑な接続を可能にするため、特定のタスクを達成するために使用されます。

データベーススキーマ設計のベストプラクティス

データベーススキーマを最大限に活用するためのベストプラクティスを以下に紹介します。

 

セキュリティ: 効果的なデータベーススキーマの設計は、データセキュリティに重点を置く必要があります。また、ログイン情報、個人を特定できる情報(PII)、パスワードなどの機密データを保護するために、高度な暗号化を使用します。
名前の規則: スキーマ設計をより効果的にするために、データベースで適切な命名規則を定義することができます。テーブル、カラム、フィールド名には、複雑な名前、特殊文字、予約語を使用しないようにします。
正規化: 正規化とは、独立したエンティティやリレーションシップが、同じテーブルやカラムにまとめられないようにすることで、冗長性を排除するものです。これにより、データの整合性が向上し、開発者が情報を取得しやすくなります。また、正規化により、データベースのパフォーマンスを最適化することもできます。
ドキュメンテーション: データベーススキーマは、開発者とドキュメンテーションの作成にとって非常に重要です。データベーススキーマの設計は、説明書、コメント、スクリプトなどとともに文書化する必要があります。

データベースのスキーマには、大きく分けてどのような種類があるのでしょうか。

物理データベーススキーマ: 物理データベーススキーマは、データの物理的な配置と、ファイル、インデックス、キーと値のペアなどのストレージのブロックへの格納方法を表します。

 

論理データベーススキーマ:論理データベーススキーマはデータの論理的な表現を記述し、論理的な制約を伝達する。データはある種のデータレコードとして記述することができ、異なるデータ構造として格納される。ただし、データの実装などの内部的な詳細はこのレベルでは隠されている。

データベーススキーマは何に使うのですか?

データベーススキーマは、情報を体系的に整理するために設計された認知的な枠組みや概念です。スキーマがあれば、膨大な量の情報を素早く解釈することができる。未整理のデータベースは混乱しやすく、維持・管理も困難です。きれいで、効率的で、一貫性のあるデータベーススキーマの設計により、組織のデータを最大限に活用することができます。リレーショナルデータベースは、データの冗長性を排除し、データの不整合を防ぎ、データの検索と分析を容易にし、データの整合性を確保し、不正なアクセスからデータを保護するために、データベーススキーマ設計に大きく依存します。強力なテスト環境でデータをテーブルとカラムに整理することが極めて重要です。データの整合性を管理し、データベースとソースコードを更新する計画が必要です。

PostgreSQL パフォーマンス・チューニング

PostgreSQLは、新世代のエンタープライズアプリケーションのためのデータベースです。あなたのデータベースのパフォーマンス監視とチューニングのツールもエンタープライズクラスですか?

 

クライムとSolarWindsは、Confioからの10年以上に渡ってOracleとSQL Serverのユーザにソリューションを提供してきたため、データベースのパフォーマンス管理について多くのノウハウを持っています。ユーザの声に耳を傾けてユーザから学んでいます。そのため、現在ではオープンソースのデータベースを数多くサポートし、その数は増え続けています。

 

私たちは、性能監視、PostgreSQLクエリチューニング、I/Oチューニングなどに対応する2つのソリューションで、私たちの専門知識をPostgreSQLに提供します。

 

どちらもユーザをエンタープライズクラスとして大きく手助けします。

 

Database Performance Analyzer (DPA)は、Oracle、SQL Server、MySQL、その他を含む広範なデータベースプラットフォームをサポートします。PostgreSQLの深いクエリチューニングと分析に機械学習を組み合わせてエンドツーエンドのITパフォーマンス管理を実現します。

 

Database Performance Monitor (DPM)はPostgreSQL監視ソリューションで、開発者、SRE、DBAのいずれにも有用なSaaSベースのインターフェイスを提供します。DPMは、MySQL、MongoDB、Redisなどの主要なオープンソースデータベースのシステムおよびデータベースの監視と分析の両方を提供します。

DPAは2種類のアドバイザーを提供

●Query advisors [クエリアドバイザ]は、待ち時間の原因となっている待ちの種類、ステートメントが他のセッションによってブロックされていないか、実行プランにフルテーブルスキャンなどのコストのかかるステップが含まれていないかなど、特定のクエリのパフォーマンスを改善するのに役立つ情報を提供します。

 

●Table tuning advisors [テーブルチューニングアドバイザー]は、あるテーブルに対して非効率的なクエリが大量に実行された場合に生成されます。これらのアドバイザーは、テーブル、実行された非効率的なクエリ、および既存のインデックスに関する集約された情報を提供します。

 

DPA ホームページの [チューニング] 列には、データベース インスタンスで警告またはクリティカル ステータスのアドバイザが利用可能な場合、警告またはクリティカル アイコンが表示されます。この列の緑のチェックマークは、アドバイザーが存在しないか、すべてのアドバイザーが情報提供であることを示します。

 

データベースインスタンスのすべてのアドバイザーを表示する

データベースインスタンスのすべてのアドバイザーを表示するには、次のいずれかの操作を行い、[Tuning Advisors] ページを開きます。

●DPA ホームページから、[Tuning] 列のアイコンをクリックします。
●データベース インスタンスの情報を表示するためにドリルインした場合は、インスタンスの詳細ページの右上隅にある[Tuning]タブをクリックします。

 

Tuningタブの赤または黄色のバーは、CriticalまたはWarningアドバイザーが利用可能であることを示します。

 

Tuning Advisors ページには、最新のクエリおよびテーブル・チューニング・アドバイザーが表示されます。ページの上部にあるドロップダウン・メニューを使用して、以前の日付に生成されたアドバイザーを表示します。

DPAリソースメトリクスのベースラインについて

DPA の [Resources] タブでリソース メトリクスを表示しているとき、ベースラインを表示して、特定の期間の値を過去の基準値と比較することができます。ベースラインは、現在の値に対するコンテキストを提供します。ベースラインを大幅に上回ったり下回ったりするメトリック値は、チューニングや再設定が必要な領域を示している可能性があります。

 

ベースラインを計算する前に、少なくとも1日間モニタリングが有効でなければなりません。ベースラインは、モニタリングの日数が増えるほど、より代表的なものになります。

 

(注)ベースラインは、VMオプションで収集されたメトリクスでは利用できません。

 

ベースラインの表示/非表示

 

ベースラインは、選択した期間が1週間以下の場合に利用できます。デフォルトでは、ベースラインは表示されません。[Resource]タブの右上にある[Baselines]トグルスイッチをクリックすると、ベースラインの表示/非表示が切り替わります。

ベースラインを表示する場合(かつ期間が1週間以内の場合)、10%から90%の間の履歴値を網掛けで表示します。

 


ベースラインはどのように計算されるのですか?

ベースラインは、1時間ごとに計算されます。デフォルトでは、ベースラインは平日(月~金)のデータのみを使用して計算されます。各ベースラインは、平日すべての対応する時間のデータを使用して計算されるため、特定の時間の値はすべての日にわたって同じになります。(例えば、午後1時から2時までは月曜日から金曜日まで同じ値です)。

ベースラインは、チャートに表示されている最も古い時間以前の履歴データを使用して計算されます。例えば、5月10日から始まる1週間のチャートの場合、すべてのベースラインは5月9日以前のデータを使って計算されます。このため、1週間チャートは日毎にパターンが繰り返されます。

 

ベースライン計算に含まれる日数を変更する

ベースライン計算に含まれる日数を変更するには、詳細オプションの 「METRICS_BASELINE_TYPICAL_HOUR_CALCULATION」 を編集します。このオプションは、グローバルまたは特定の監視対象データベースインスタンスに対して設定することができます。

 

以下の値のいずれかを選択してください。

Weekday Only (M-F):平日(月~金)の対応する時間のデータを用いて、1時間ごとにベースラインを計算します。これはデフォルトです。
All Days of the Week:ベースラインは、すべての日の対応する時間のデータを使用して、各1時間の期間について計算されます。
Same Day of Week:各1時間の期間について、該当する日の該当する時間のデータを使用して計算されます。(例えば、月曜日の午後1-2時の値は、月曜日の対応する時間のデータを使用しており、したがって金曜日の午後1-2時の値とは異なります)。このオプションを選択すると、メトリックごとのベースラインの数が24から168に増えることに注意してください。

よりスマートなハードウェア投資とより良いビジネス上の意思決定

SSDドライブを買うべきか、より大きなサーバーを買うべきか?

 

Database Performance Analyzer(DPA)は、アプリケーションがディスクの読み書き、ネットワークの待ち時間、CPUの待ち時間、サスペンド状態や処理の妨げとなるアクティビティの待ち時間を正確に把握できるため、推測する必要がありません。これにより、アプリケーションのパフォーマンスを向上させるために投資する必要がある箇所や、新しいハードウェアが必要ない場合、コードやデータベース/システム構成の修正または改善によってボトルネックを解消できる箇所を把握することができます。

Database Performance Analyzerの総合満足度(ユーザ2の声)

使用例と導入範囲

データベースチームが、SQL ServerとAzure Databasesの両方で、データベースのパフォーマンスを監視し、チューニングするために使用しています。データベースの遅さ、Webサイトやサービス、アプリケーションでのタイムアウトは、データレイヤーが原因であることが多く、そのトラブルシューティングに最適なツールです。

 

長所と短所

(+)どのストアドプロシージャーのどのステートメントに作業が必要か、または致命的であるかを教えてくれる(該当する場合)。
(+)本当に作業が必要なものに注意を集中させることができ、非常に効率的です。
(-)監視するサーバーが多い場合、UIが不便になる。
(-)複数のサーバーにまたがる問題の順位付けができない。

 

投資に対するリターン

現在の勤務先ではなく、以前の勤務先での話です。データベースの変更を含む、大量のコードをデプロイしたことがありました。その翌日、そのデータベースサーバーに依存していたすべてのものがダウンし、サーバーはCPU、RAM、I/Oが100%になるまで叩かれました。何が問題なのかを正確に特定するのは非常に困難でしたが、Database Performance Analyzerを立ち上げて正確な問題を見つけるのにわずか数秒、そして問題のあった正確なprocにパッチを当てるのに1分もかかりませんでした。会社全体がビジネスに不可欠なサイトやツールからロックアウトされ、トレースやDMVなどの手段で問題を分析するのに何時間もかかったかもしれません。その代わり、ほとんど時間がかからなかった。

重大な動作の変化を警告するように設計された異常検出ツールを使用して、効果的なトラブルシューティングを行うことができます。

データベースの異常を検出することも重要ですが、24時間365日ダッシュボードを見続ける人はいないため、Database Performance Analyzer(DPA)は動作の変化を検出した際にアラートを送信することが可能です。感度を快適なレベルにカスタマイズしてノイズを減らし、DPAに監視を任せてください。

 

 

DPAはデータベースを常時監視し、動作の変化が検出されるとアラートを送信します。この異常検知ツールは、ワークロードのシフト、メンテナンスジョブの営業時間内実行、その他調査したい予期せぬ変化が発生したときに知らせることができます。

SQLデータベースの異常検知に利用可能な最新データを活用する


データベースの異常検知ツールは、そこに入力されるデータによってのみ、その性能が発揮されます。Database Performance Analyzer(DPA)は、24時間365日、異常ベースの監視を行い、機械学習アルゴリズムにより最新の洞察を提供します。30日以上監視が停止した場合、DPAのアルゴリズムは古いデータに基づいて予測を行うことはありません。代わりに、DPAは新しいデータから学習を開始し、3日後に最新のデータに基づいて再び予測を開始します。この機能により、異常検知の取り組みが最新の関連データのみによって裏付けられていることを確認することができます。

複数のデータベースタイプに対応した堅牢な異常検知ツールを利用する


環境の大規模化・複雑化に伴い、データベース管理者は、様々な種類のデータベースを監視できる異常検知ツールを必要としています。Database Performance Analyzer(DPA)は、WindowsおよびLinuxサーバー上の仮想化、物理、クラウドベースのデータベースインスタンス、Azure、またはAWSサブスクリプションとして、1回のインストールで使用できる異常ベースのデータベース監視ツールを提供します。DPAの異常検知ツールは、Oracle、MySQL、Azure SQL Database、Microsoft SQL Serverなどをサポートするよう構築されています。また、DPAはVMオプションでVMware ESXiの可視化機能を統合しています。

1.データベース・パフォーマンスチューニングとは?

データベース・パフォーマンスチューニングは、データベース管理者がデータベースを可能な限り効率的に実行する方法を指す広義用語です。DBMSチューニングは、通常、MySQLやOracleなどの一般的なデータベース管理システムのクエリをチューニングすることを指します。

 

データベースのチューニングは、全体的なパフォーマンスを向上させるために、データベースシステムを上から下まで、ソフトウェアからハードウェアまで、再最適化することを支援します。このチューニングには、最適な使用方法に応じたオペレーティングシステムの再構成、クラスタの展開、システム機能とエンドユーザー体験をサポートする最適なデータベース性能への取り組みが含まれます。

2.SQLパフォーマンスチューニングとは何ですか?

SQLパフォーマンス・チューニングは、データベース・パフォーマンス・チューニングと似ていますが、より狭い範囲に限定されます。SQLパフォーマンス・チューニングは、リレーショナル・データベースが可能な限り効率的に動作するように設計されたベストプラクティスや手順のことを指します。これには主に、SQLクエリーとインデックスのチューニング、管理、および最適化が含まれます。

 

定期的な SQL パフォーマンス・チューニングは、SQL パフォーマンス問題の一般的な原因である非効率的なインデックスと SQL クエリに取り組む費用対効果の高い方法であり、リソースを再割り当てしてシステムを自助努力で使用することによって実現できます

3. データベースのパフォーマンスを向上させるにはどうすればよいですか?

ここでは、データベース全体のパフォーマンスを向上させるために役立つヒントをいくつか紹介します。

 

●インデックスが論理的なデータ構造を実装していることを確認し、データ検索プロセスをより効率的にする。
●コンピューティングシステムのメモリーの予備を再割り当てする。十分なメモリがない場合、データベースはしばしば最も大きな打撃を受けます。
●MySQLやOracleの最新版を使用していますか? データベースを最新に保つだけで、データベースのパフォーマンスが向上することがあります。
●ループのコーディングや相関性のあるSQLサブクエリのような一般的なSQLインデックスの落とし穴を避ける。
●データをデフラグすることで、データベースのスピードアップにつながるかもしれません。十分なディスク容量があることを確認する。
●効果的なデータベースチューニングとパフォーマンス監視は、洞察とピンポイントでのパフォーマンス最適化の推奨事項を提供するのに役立ちます。

4. データベースのチューニングはどのように行われるのでしょうか。

データベースのパフォーマンスチューニングのベストプラクティスに関して、ここでは簡単なチュートリアルを紹介します。

 

1)過去のデータを使って「正常」であることを確認し、データベースのベースラインに関する情報を収集します。ベースラインの指標を収集することで、データベースに何か異常があるかどうかを簡単に(そしてはるかに速く)確認することができます。

 

2)実行プランに目を通す。MySQL では、データベース管理者がクエリおよびデータベースのパフォーマンスを調査するためのさまざまな方法を提供しています。実行プランに目を通し、可能な限り効率的であることを確認します。

 

3)すべてのテーブル、インデックス、クエリに非効率性がないかを確認します。待ち時間の増加やインデックスのカラムアライメントを確認します。

 

4)ボトルネックを特定し、解消する。問題のあるSQLクエリとその原因を特定し、ボトルネックを解決する。

 

5)効果的な監視を実施する。非効率的なクエリは、データベースのパフォーマンス問題の主な原因であるため、データベースのチューニングの大部分はクエリパフォーマンスの監視に費やされます。たとえば、SolarWinds Database Performance Analyzerは待機ベースの分析機能を備えています。これは、時間関連の問題がデータベースパフォーマンスチューニングの最も顕著な問題点の1つであるためです。この方法は、データベースパフォーマンスチューニングの問題をより正確に切り分け、特定し、調査するのに役立ちます。

5. なぜデータベースのチューニングが重要なのか?

 

データベースクエリーの数ミリ秒の遅れは、あっという間に大きなボトルネックとなり、修正するのに長い時間がかかることがあります。データベースのチューニングが重要なのは、クエリの応答時間を数秒単位で短縮できるため、必要な情報を必要な場所にすばやく届けることができるからです。定期的なチューニングは、データベースパフォーマンスのベストプラクティスの重要な部分であり、アプリケーションのパフォーマンスを加速させる手っ取り早い方法となります。

6. データベースチューニングツールはどのように機能するのですか?

データベースチューニングツールは、通常データベースチューニングに時間がかかる手動プロセスの多くを自動化することによって、チューニングプロセスを容易にするように設計されています。

 

また、データベース・チューニング・ソフトウェアは、問題のある箇所を正確に把握できるため、クエリーやアプリケーションの中を探し回る必要がなく、効果的なトラブルシューティングの手段にもなります。見えない問題を解決することはできません。これらのツールは、データベースがどのように動作しているかを概観することができます

7. Database Performance Analyzer (DPA)でデータベースのチューニングはどのように行われるのですか?

Database Performance Analyzer (DPA)は、ユーザーがデータベースパフォーマンスの問題を監視、発見、解決できるように構築された、俊敏でスケーラブルなデータベースチューニングツールです。

 

DPAは、データベースアクティビティ、待機時間、SQLステートメント、アプリケーションリクエスト、およびその他のディメンションを相関させ、データベース速度低下の原因を正確に突き止めることができるように設計されています。 DPAでは、IBM DB2、SQL Server、SAP Adaptive Server Enterprise(SAP ASE)などの主要な商用データベースについて、SQLステートメントの迅速な分析、パフォーマンス問題の根本原因の特定、専門家のチューニングアドバイスを受けることも可能です。

Database Performance Analyzer (DPA):2024.3

Database Performance Analyzer (DPA)と の最新統合機能として、ServiceNow®とPagerDuty®を発表できることを嬉しく思います。この機能強化は、多くの要望に応えるもので、アラート通知を拡張し、IT運用をこれまで以上に効率的かつ迅速に行うことを可能にします。
DPAは、ServiceNow®とPagerDuty®に直接アラートを送信できるようになり、より効率的なワークフローが可能になりました。これにより、インシデントとイベントをより効果的に管理できるようになり、ITイベントの適切な通知、追跡、論理的なワークフローを確保できます。

動作方法
この統合により、SolarWinds Platform Connect 経由で SQL Sentry と DPA が貴社の ServiceNow® および PagerDuty® アカウントに接続されます。 設定が完了すると、DPA によって生成されたアラートは自動的にこれらのチャネルに送信され、IT チームはリアルタイム通知を受け取ることができ、問題が発生するとすぐに適切な優先順位付けと対処が行われるようになります。

統合のメリット
対応の迅速化:ServiceNow®とPagerDuty®にリアルタイムのアラートが送信されるため、チームはインシデントに迅速に対応でき、ダウンタイムを削減し、システムの信頼性を向上させることができます。

●インシデント管理の一元化:この統合により、すべてのITイベントを一元的に管理できるようになります。一元化によりワークフローが簡素化され、問題の追跡と解決が容易になります。
●業務の合理化:新しい統合により、適切なタイミングで適切な担当者にアラートが送信されることが保証されます。これにより、ITイベントやインシデントの優先順位付けと管理がより効果的に行われ、リソースが最適に利用されることが保証されます。
●すべてのサブスクリプション顧客が利用可能
この機能は、追加費用なしで、すべてのサブスクリプション顧客が利用可能です。これは、お客様のITインフラストラクチャを効率的に管理するための最高のツールと統合を提供するという、当社の継続的な取り組みの一環です。

Database Performance Analyzer (DPA): 2024.4

Database Performance Analyzer (DPA) 2024.4 ソフトウェアの提供のお知らせです。

  • 柔軟なデータベースライセンス: セルフホスト型データベース製品に対するライセンスの付与方法を変更しました。 セルフホスト型ライセンスを1つ取得するだけで、ニーズに合わせてDPAを使用できます。 Azure SQL Databaseを監視している場合は、DBaaS環境専用の分割コストライセンスも導入しました。これにより、クラウドデータベースを簡単にコスト効率よく組み込むことができます。詳細については、担当のアカウントマネージャーまでお問い合わせください。
  • MySQL/Percona MySQLワークロード分析は、SQL Server、Oracle、PostgreSQL(実行計画収集)用の強力なDPA機能、インデックスアドバイザ、テーブルチューニングアドバイザなど、人気の高い機能が含まれています。
  • また、MySQL に関するセキュリティ対策も改善し、caching_sha2_password 認証をサポートするようになりました。チューニングアドバイザと併用することで、MySQL ユーザーの大幅な増加が見込まれます。
  • セキュリティを念頭に置き、お客様からご要望のあった Windows のグループ管理サービスアカウント(gMSA)認証もサポートするようになりました。
  • Oracle 関連では、Oracle のマルチテナント・アーキテクチャ上のターゲットとしてCDB をサポートするようになりました。これにより、より広範なアラート機能と可視性機能を備えた PDB を活用するインスタンスの全体像が完成しました。

 

Veeam -システム要件 (8)

Veeam Backup & Replication と vCenter Serverを同じマシンに導入してもいいですか?

技術的にはVeeam Backup & Replication(Veeam B&R)とvCenter Serverを同じWindowsマシンに導入することは問題ありません。
しかし、この2つのソフトウェアを同居させることは推奨しておりません。
理由として以下の3点があげられます。

  • 双方ともにリソースを消費しやすいソフトウェアであり、リソースの適切なプロヴィジョニングが難しいこと
  • 片方に障害が発生しマシンの再起動が必要となった場合、もう片方の動作に影響をおよぼすこと
  • 双方ともにデフォルトのインストールではSQL Server Express Editionをインストールし使用しますが、Express Editionは使用可能なリソースに制限が加えられており、VeeamとvCenter双方からの激しいアクセスに耐え切れず双方の挙動に影響を及ぼすことがあること

これらの理由のため、可能であれば別々のマシンにインストールしていただくことを推奨しております。

Windows Storage Server をVeeamサーバとして利用可能ですか?

Windows Storage ServerとWindows Serverは同じコードを元に構築されているため、基本的には全てのVeeamのコンポーネントをStorage Server OS上にインストール可能です。
Veeam Server console
Veeam Backup Proxy
Vpower NFS server
WAN accelerator
Backup repository

しかし、Windows Storage Serverはベンダーによってカスタマイズされていることが多く、.NETの機能が有効化されていない場合や.NET Frameworkのインストールに問題がある場合があります。このような場合にはVeeam ServerのGUIは.NETコンポーネントに依存しているため、インストールすることができません。

.NETコンポーネントについてWindows Storage Serverのエンドユーザライセンス(EULA)のご確認やベンダーへのお問い合わせをお願いいたします。
EULAのパス C:\windows\system32\license.rtf
開発元KB http://www.veeam.com/kb1923

サポートするバックアップ保存先

リポジトリサーバのローカル(内部)ストレージ

リポジトリサーバに直接接続されたストレージ(DAS)
※外部のUSB/eSATAドライブ、USBパススルー、RAWデバイスマッピング(RDM)ボリュームなどを含みます。

ストレージエリアネットワーク(SAN)
※バックアップリポジトリにハードウェアまたは仮想HBA、ソフトウェアiSCSIイニシエータを介してSANファブリックに接続する必要があります。

ネットワーク接続ストレージ(NAS)
-SMB(CIFS)共有:リポジトリとして直接登録することが可能です。
-NFS共有:Linuxのリポジトリサーバにマウントする必要があります。

高度な連携が可能な重複排除ストレージアプラインス
-Dell EMC Data Domain(DD OSバージョン5.6、5.7、6.0、6.1)
-ExaGrid(ファームウェアバージョン5.0.0以降)
-HPE StoreOnce(ファームウェアバージョン3.15.1以降)
-Quantum DXi(ファームウェアバージョン3.4.0以降)

 

関連トピック
バックアップ先はどこが選択できますか?

Veeam Backup & Replication Enterprise Managerに推奨される環境

※Veeam Backup & Replication Enterprise ManagerはWebブラウザからVeeam Backup & Replicationのバックアップ・レプリケーションジョブ等を管理するためのソフトウェアです。またEnterprise版の機能であるU-Airや1 Click File Restoreでも使用いたします。

ハードウェア
・CPU: x86-x64 プロセッサ

・メモリ: 4 GB RAM (推奨する最小構成)

・ディスク容量: システムディスク上に 2 GB

・ネットワーク: 1Gbit/sec

 

対応OS(下記のの64bit OSにインストール可能です)
●Mictosoft Windows Server 2022(Veeam Backup Enterprise Manager 11a以降で対応)
●Microsoft Windows Server 2019
●Microsoft Windows Server 2016
●Microsoft Windows Server 2012 R2
●Microsoft Windows Server 2012
●Microsoft Windows 2008 R2 SP1
●Microsoft Windows 2008 SP2
●Microsoft Windows 10
●Microsoft Windows 8.x
●Microsoft Windows 7 SP1

 

SQL Server(有償版もしくはExpressエディション)
●Microsoft SQL Server 2019
●Microsoft SQL Server 2017
●Microsoft SQL Server 2016
●Microsoft SQL Server 2014
●Microsoft SQL Server 2012
●Microsoft SQL Server 2008 R2
●Microsoft SQL Server 2008

※インストーラにはMicrosoft SQL Server 2012のExpressが含まれています。

 

ソフトウェア
Microsoft .NET Framework 4.7.2 ※インストーラに含まれます。

Microsoft Internet Information Services 7.5 以降
※IIS 8.0の場合、ASP.NET 4.5、.NET 4.5拡張機能を含みます。
※IIS8.5の場合、Veeam Self-Service Backup PortalとvSphere Self-Service Backup Portalを使用する際には、URL書き換えモジュールが必要です。
※これらのコンポーネントがインストールされていない場合、セットアップ中に自動的に構成することも可能です。

 

ブラウザ
Internet Explorer 11.0以上
Microsoft Edge
Mozilla Firefox、Google Chromeの最新版
※JavaScriptとWebSocketを有効にする必要があります。
※Enterprise Managerからエクスポートしたレポートを表示するためにMicrosoft Excel 2003以上が必要です。

CloudBerry (MSP360) Backup (12)

「パス’~’の一部が見つかりませんでした。」「ファイル’~’が見つかりませんでした。」エラーに関して

このエラーはフォルダ名の末尾にスペース文字(全角スペースも含む)が含まれている場合に発生します。対象のフォルダの最後にスペースが存在するか確認し、存在する場合にはそのスペースを削除したフォルダ名に変更することでエラーは解消します。
※スペースを削除した名前に直接変更すると、「送り側と受け側のファイル名が同じです。」のエラーで失敗する場合があります。一度別名に変更すると、スペースを除去した名前に変更できます。

日本リージョンに対応したクラウドにバックアップ出来ますか。

CloudBerryで使用可能なクラウドストレージは日本リージョン含めほとんどのリージョンに対応しています。

日本リージョン対応クラウド例:

Amazon S3

Asia Pacific(Tokyo)

Asia Pacific(Osaka-Local)

Azure

Japan East(Tokyo)

Japan West(Osaka)

Wasabi

Ap-northeast-1(東京リージョン)

Google Cloud

Asia-northeast1(東京)

Asia-northeast2(大阪)

CloudBerryの販売について

当社はMSP360社と正式販売契約を結び、CloudBerry Backupを国内で販売、日本語技術サポート、日本語マニュアルを提供しております。当社以外で購入されたCloudBerry Backupについてのサポートは一切いたしません。海外ソフトウェア・ハードウェアの調達のみを行う企業とは一切関係ありません。

5TB storage limitとはどういう意味ですか?

5TBの制限とは、CloudBerry Backupが管理するクラウドアカウントにいつでも最大5TBのデータを保存できることを意味します。例えば、800GBをアップロードし、さらに200GBをアップロードし、300GBを削除することができますが、この制限を超えることはできません。

より多くのデータをバックアップしたい場合は、CloudBerry Backup Ultimateが必要になります。

【重要】CludBerry Backup 永久ライセンスのEOLとサブスクリプション販売開始について

2021/11/30付でCloudBerry Backupの永久ライセンスはEOLとなりました。

2021/12/01以上はCloudBerry Backupのライセンスは1年間毎のサブスクリプションに変更となりました。

当社からすでにCloudBerry Backupの永久ライセンスと年間メンテナンスを同時に購入されたユーザは引き続き年間メンテナンスを規定に従って更新することができます。

CloudBerry Backupはどのようにユーザのデータを保護しますか?

CloudBerry Backupはユーザのデータを保護するために、いくつかの業界標準の強力な暗号化アルゴリズムを提供しています。また、オプションでマスターパスワードを用いてCloudBerry Backupへのアクセスを保護することができます。さらに、この機能を実装しているストレージクラスに対しては、Server-Side Encryptionをサポートしています。

Smart Delete(スマート・デリート)とは

Ver 1.6から、ローカルで削除されたファイルをデフォルトで30日間バックアップストレージ上に保持し、それ以降のみバックアップストレージ上のファイルを削除するスマートデリートオプションを導入しています。以下は、バックアップウィザードの新しいオプションです。

削除が予定されているファイルがある場合、Welcome Screenに通知が表示されます。

Warning(警告)のリンクをクリックすると、削除されるファイルのリストが表示され、そのファイルをどうするか(削除するか保存するか)を決定できるウィンドウが開きます。

また、削除が予定されているオブジェクトについては、通知メールに追加のアラートが表示されます。

Amazon S3互換ストレージでバックアップに失敗する。

一部のS3互換のオブジェクトストレージを利用する際に、通常S3互換ストレージであれば利用できる分割でのファイルアップロードにクラウドプロバイダ側が対応しておらず、エラーで失敗することがあります。

※CloudBerryではファイルサイズが大きい場合、下記のオプションで指定したサイズで分割してアップロードします。
 左上メニュー>オプション>上級設定>ファイル群のサイズ
この値以下のファイルサイズであれば分割アップロード機能は使用されないため、値を大きく(最大5GB)することである程度の回避は可能です。

別のコンピュータでファイルを復元しています。S3アカウントとバケットに接続しましたが、ファイルが表示されません。

同じAmazon S3アカウントを登録し、詳細設定で同じバケットとプレフィックスを選択してください。デフォルトでは、プレフィックスは以前のコンピュータ名になっています。暗号化パスワードは、ファイルをバックアップしたときと同じものを指定してください。ファイルが表示されない場合は、「ツール」→「オプション」→「詳細設定」で「リポジトリの同期」をクリックして、データベースを同期させてみてください。

CloudBerryの保守購入と更新について

(1)初年度のCloudBerryの保守購入は任意ですが、購入される場合はライセンス購入との同時購入が必修です。またライセンス数と同数の保守更新が必要です。
(2)CloudBerryの保守更新は自動更新が原則になっています。
(3)次年度のCloudBerryの保守更新時の約2ヶ月前前後にメールで更新時期のお知らせを登録エンドユーザ様にお送りします。
(4)更新日までに当社に保守更新のご発注が無いときは、更新の意向が無いとします。
それに従い開発元に対して更新キャンセルの手続きをします。
(5)この更新キャンセル処理を行ったものは再度保守に加入することは出来ません
但しライセンス自体は永久ライセンスなので、使用できなくなることはありません。

CloudBery Backup型番は何ですか?

<<新規型番(2021/12/01から)>>

SUA-CBBM:CloudBerry Backup Bare Metal版の年間サブスクリプション・ライセンス

・1年間のサポート付き

●SUA-CBBU:CloudBerry Backup Ultimate版の年間サブスクリプション・ライセンス

・1年間のサポート付き

SUM-CBBM:CloudBerry Backup Bare Metal版の2年目以降年間サブスクリプション更新・ライセンス

・1年間のサポート付き

●SUM-CBBU:CloudBerry Backup Ultimate版の2年目以降年間サブスクリプション更新・ライセンス

・1年間のサポート付き

 

—-旧型番——————————————————–

EOL => CloudBerry Backup Bare Metal版永久ライセンス(S-CBB)
EOL => Bare Metal版 メディア(K-CBB)
Bare Metal版 年間サポートメンテナンス(M-CBB):旧ユーザのみ使用可

EOL =>CloudBerry Ultimate版永久ライセンス(S-CBU)
EOL =>Ultimate版 メディア(K-CBU)
Ultimate版 年間サポートメンテナンス(M-CBU):旧ユーザのみ使用可

日本語メニューに対応していますか?

現時点ではメニュー等の大部分に対応しております。今後日本語化の範囲はさらに増える見込みです。(日本語化は当社が行っております。
当社から購入いただいたユーザ様用に製品の操作マニュアルは日本語版を用意しております。

導入支援は行っていますか?

インストール、設定ともに簡単に行えるソフトですので、当社では行っておりません。
操作方法等でご質問がある場合にはご連絡ください。

保守費用について教えてください。

保守についてはオプションで別途購入いただく形になります。価格については販売代理店までご確認ください。

CloudBerry Backup -導入・ライセンスについて (20)

CloudBerryの販売について

当社はMSP360社と正式販売契約を結び、CloudBerry Backupを国内で販売、日本語技術サポート、日本語マニュアルを提供しております。当社以外で購入されたCloudBerry Backupについてのサポートは一切いたしません。海外ソフトウェア・ハードウェアの調達のみを行う企業とは一切関係ありません。

5TB storage limitとはどういう意味ですか?

5TBの制限とは、CloudBerry Backupが管理するクラウドアカウントにいつでも最大5TBのデータを保存できることを意味します。例えば、800GBをアップロードし、さらに200GBをアップロードし、300GBを削除することができますが、この制限を超えることはできません。

より多くのデータをバックアップしたい場合は、CloudBerry Backup Ultimateが必要になります。

【重要】CludBerry Backup 永久ライセンスのEOLとサブスクリプション販売開始について

2021/11/30付でCloudBerry Backupの永久ライセンスはEOLとなりました。

2021/12/01以上はCloudBerry Backupのライセンスは1年間毎のサブスクリプションに変更となりました。

当社からすでにCloudBerry Backupの永久ライセンスと年間メンテナンスを同時に購入されたユーザは引き続き年間メンテナンスを規定に従って更新することができます。

CloudBerryの保守購入と更新について

(1)初年度のCloudBerryの保守購入は任意ですが、購入される場合はライセンス購入との同時購入が必修です。またライセンス数と同数の保守更新が必要です。
(2)CloudBerryの保守更新は自動更新が原則になっています。
(3)次年度のCloudBerryの保守更新時の約2ヶ月前前後にメールで更新時期のお知らせを登録エンドユーザ様にお送りします。
(4)更新日までに当社に保守更新のご発注が無いときは、更新の意向が無いとします。
それに従い開発元に対して更新キャンセルの手続きをします。
(5)この更新キャンセル処理を行ったものは再度保守に加入することは出来ません
但しライセンス自体は永久ライセンスなので、使用できなくなることはありません。

CloudBery Backup型番は何ですか?

<<新規型番(2021/12/01から)>>

SUA-CBBM:CloudBerry Backup Bare Metal版の年間サブスクリプション・ライセンス

・1年間のサポート付き

●SUA-CBBU:CloudBerry Backup Ultimate版の年間サブスクリプション・ライセンス

・1年間のサポート付き

SUM-CBBM:CloudBerry Backup Bare Metal版の2年目以降年間サブスクリプション更新・ライセンス

・1年間のサポート付き

●SUM-CBBU:CloudBerry Backup Ultimate版の2年目以降年間サブスクリプション更新・ライセンス

・1年間のサポート付き

 

—-旧型番——————————————————–

EOL => CloudBerry Backup Bare Metal版永久ライセンス(S-CBB)
EOL => Bare Metal版 メディア(K-CBB)
Bare Metal版 年間サポートメンテナンス(M-CBB):旧ユーザのみ使用可

EOL =>CloudBerry Ultimate版永久ライセンス(S-CBU)
EOL =>Ultimate版 メディア(K-CBU)
Ultimate版 年間サポートメンテナンス(M-CBU):旧ユーザのみ使用可

CloudBerry Backup -購入サポート (5)

日本語メニューに対応していますか?

現時点ではメニュー等の大部分に対応しております。今後日本語化の範囲はさらに増える見込みです。(日本語化は当社が行っております。
当社から購入いただいたユーザ様用に製品の操作マニュアルは日本語版を用意しております。

導入支援は行っていますか?

インストール、設定ともに簡単に行えるソフトですので、当社では行っておりません。
操作方法等でご質問がある場合にはご連絡ください。

保守費用について教えてください。

保守についてはオプションで別途購入いただく形になります。価格については販売代理店までご確認ください。

CloudBerry Backup -評価 (6)

CloudBerry Backupはどのようにユーザのデータを保護しますか?

CloudBerry Backupはユーザのデータを保護するために、いくつかの業界標準の強力な暗号化アルゴリズムを提供しています。また、オプションでマスターパスワードを用いてCloudBerry Backupへのアクセスを保護することができます。さらに、この機能を実装しているストレージクラスに対しては、Server-Side Encryptionをサポートしています。

CloudBerry Backup -機能 (26)

Smart Delete(スマート・デリート)とは

Ver 1.6から、ローカルで削除されたファイルをデフォルトで30日間バックアップストレージ上に保持し、それ以降のみバックアップストレージ上のファイルを削除するスマートデリートオプションを導入しています。以下は、バックアップウィザードの新しいオプションです。

削除が予定されているファイルがある場合、Welcome Screenに通知が表示されます。

Warning(警告)のリンクをクリックすると、削除されるファイルのリストが表示され、そのファイルをどうするか(削除するか保存するか)を決定できるウィンドウが開きます。

また、削除が予定されているオブジェクトについては、通知メールに追加のアラートが表示されます。

日本リージョンに対応したクラウドにバックアップ出来ますか。

CloudBerryで使用可能なクラウドストレージは日本リージョン含めほとんどのリージョンに対応しています。

日本リージョン対応クラウド例:

Amazon S3

Asia Pacific(Tokyo)

Asia Pacific(Osaka-Local)

Azure

Japan East(Tokyo)

Japan West(Osaka)

Wasabi

Ap-northeast-1(東京リージョン)

Google Cloud

Asia-northeast1(東京)

Asia-northeast2(大阪)

CloudBerry Backup -トラブル (8)

「パス’~’の一部が見つかりませんでした。」「ファイル’~’が見つかりませんでした。」エラーに関して

このエラーはフォルダ名の末尾にスペース文字(全角スペースも含む)が含まれている場合に発生します。対象のフォルダの最後にスペースが存在するか確認し、存在する場合にはそのスペースを削除したフォルダ名に変更することでエラーは解消します。
※スペースを削除した名前に直接変更すると、「送り側と受け側のファイル名が同じです。」のエラーで失敗する場合があります。一度別名に変更すると、スペースを除去した名前に変更できます。

Amazon S3互換ストレージでバックアップに失敗する。

一部のS3互換のオブジェクトストレージを利用する際に、通常S3互換ストレージであれば利用できる分割でのファイルアップロードにクラウドプロバイダ側が対応しておらず、エラーで失敗することがあります。

※CloudBerryではファイルサイズが大きい場合、下記のオプションで指定したサイズで分割してアップロードします。
 左上メニュー>オプション>上級設定>ファイル群のサイズ
この値以下のファイルサイズであれば分割アップロード機能は使用されないため、値を大きく(最大5GB)することである程度の回避は可能です。

別のコンピュータでファイルを復元しています。S3アカウントとバケットに接続しましたが、ファイルが表示されません。

同じAmazon S3アカウントを登録し、詳細設定で同じバケットとプレフィックスを選択してください。デフォルトでは、プレフィックスは以前のコンピュータ名になっています。暗号化パスワードは、ファイルをバックアップしたときと同じものを指定してください。ファイルが表示されない場合は、「ツール」→「オプション」→「詳細設定」で「リポジトリの同期」をクリックして、データベースを同期させてみてください。

Syniti DR - AWS (4)

RDSのAurora/MySQLでバイナリログ(binlog)を使用してミラーリングするためには?

【RDS Auroraの場合】
パラメータグループのDB Cluster Parameter Groupにてbinlog_formatを「ROW」に変更することでバイナリログを記録するようになり、ミラーリング可能となります。

【RDS MySQLの場合】
パラメータグループのDB Parameter Groupにてbinlog_formatを「ROW」に変更することでバイナリログを記録するようになり、ミラーリング可能となります。

【DBMotoでの設定】
「DBMySqlUtil.dll」をDBMotoインストールディレクトリに配置する必要があります。
お手元にない場合はお問合せください。

RDSのAurora/MySQLでトリガーを使用してミラーリングするためには?

【RDS Auroraの場合】
パラメータグループのDB Cluster Parameter Groupにてbinlog_formatが「OFF」になってる場合はそのままトリガーを使用可能です。
binlog_formatが有効化されている場合は、DB Parameter Groupにてlog_bin_trust_function_creatorsを「1」へ変更することでトリガーを使用することが可能となります。

【RDS MySQLの場合】
パラメータグループのDB Parameter Groupにてlog_bin_trust_function_creatorsを「1」へ変更することでトリガーを使用することが可能となります。

CHARの代わりにVARCHARを使用してRedshiftにレプリケートすることで、より多くの文字をサポートし、予期しない文字の混在を防ぐことができます。

Amazon EC2上のDBMotoからAmazon Redshiftへの接続ができません。

EC2上のWindowsに用意したDBMotoからRedshiftに接続しようとするとフリーズすることがあります。
これは、EC2上のインスタンスのNIC設定に由来する問題です。レジストリ上からMTU値を設定します。
次の場所にあるレジストリ内にMTU値を示すレジストリエントリーを追加します。
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\(アダプタのID)
追加するレジストリは、DWORD型で、値の名前は MTU 、データの値は 1500 に設定します。設定後コンピュータを再起動して、新しい値を適用します。
詳細は下記Amazon様ページをご覧いただきますよう、お願いいたします。
データベースへの接続が中断された – Amazon Redshift

Syniti DR -機能(レプリケーション) (21)

シンクロナイゼーション時に双方の同じレコードを更新した場合にはどうなりますか?

マルチシンクロナイゼーションにおいて、ソースとターゲットの複数で同じタイミングで同一レコードの更新をかけた場合、どのサーバのレコードが優先されますか?

Syniti DR -機能(オプション) (2)

メタデータは複数作成できますか?同時に使用できますか?

DBMotoのメタデータは、複数作成することは可能です。
これにより運用環境とテスト環境それぞれのメタデータを用意できます。
しかし、複数のメタデータを同時に使用することはできません。それぞれのメタデータ内にあるレプリケーションは、それぞれのメタデータを有効化していない限り動作しません。
メタデータの切り替えは、メタデータ上で右クリックして表示されるメニューの、「既定のメタデータにする」で可能です。
metadata_switch

Syniti DR -機能(関数・スクリプト・API) (1)

スクリプトで、.Net Frameworkの○○という関数が動きません。

スクリプトに記述した、.Net Frameworkの関数が動作しないことがあります。

これは、その関数の動作に必要な.Net FrameworkのライブラリがDBMotoに読み込まれていないのが原因です。

DBMotoでは本体の動作に不要な.Net Frameworkのライブラリは読み込まないようになっております。
適宜リファレンスで必要な.Net Frameworkのライブラリを読み込んでください。

■例
SHA256CryptoServiceProvider関数を利用する場合、System.Core.dllというライブラリを呼び出す必要があります。
Microsoft公式のSHA256CryptoServiceProvider解説ページ
このDLLファイルは、C:\Windows\Microsoft.NET\Framework64\vX.X.XXXX(Xは任意のバージョン数値)にありますので、ここへのリファレンスを追加してください。(64bit版の場合)

Syniti DR -Sybase ASE (1)

Sybase ASEから差分レプリケーションは可能ですか?

トリガーを使用することで可能です。

ただし、Sybase ASEでは1つのテーブルにおいて1つのトリガーのみしか使用できない仕様のため、既存でテーブルにトリガーを設定している場合は、DBMotoから差分レプリケーションを実施することはできません。

ディザスタ・リカバリ (78)

セルフサービス型DRaaS

それは何か? セルフサービス方式で提供される場合、DRaaSプロバイダーは、災害時に必要なツールやサポート文書とともに、対象となるインフラを用意します。セルフサービスとは、初期設定と継続的な保守・監視をお客様の組織で行うことを意味します。つまり、DRaaSプロバイダーは、インフラとツールが正しく動作することを保証しますが、それだけで、ソリューション全体に対する全責任を負うわけではありません。DRaaSプロバイダーは、インフラとツールが正しく動作することを保証しますが、ソリューション全体に対する完全な責任は負いません。

 

このような場合に最適です。このモデルは、DR戦略を実行するためのスキルと能力を備えた大規模なITチームをすでに持っている組織に適しています。このような企業では、セルフサービス型DRaaSが、地域分散戦略、消費型モデルへの移行、OPEX支出への移行に役立ちます。

災害復旧とは?

災害復旧は、ITインフラストラクチャを復活させ、サイバー攻撃、ハードウェア障害、偶発的なデータ削除などの自然または人為的な災害の後に重要なビジネス機能を再開することを総称して意図されている手順、ツール、ポリシー、およびリソースのセットです。

これは、サービスの中断後にすべての重要なプロセスを復旧させようとするものであり、事業継続のサブセットと考えることができます。

DRaaS(Disaster Recovery as a Service)とは

DRaaS(Disaster Recovery as a Service)といえば、かつては大きなトラックの荷台にデータセンターを運んできて、そこにデータをアップロードするものでした。しかし、この面倒で時間のかかるプロセスは、かつてはディザスターリカバリーサービスのゴールドスタンダードでした。

 

クラウドコンピューティングの台頭により、DRaaSは新たな進化を遂げました。クラウド・ディーザスター・リカバリー・サービスの騒音は、オフィスの外でアイドリングしている大きなトラックの代わりに、利用可能なサービスの多さへの混乱から生じているのです。

 

DRaaSプロバイダーは、明確に定義されたカテゴリーではなく、さまざまな領域に分類される。この記事では、この領域におけるDRaaSの3つの主要な選択肢を探っていきます。しかし、ディザスターリカバリーサービスのキーワードは柔軟性である。多くのDRaaSプロバイダーが存在する中で、あなたの組織に最適なDRaaSは、次に示す選択肢の外にあるかもしれないです。

災害復旧におけるRTOとRPOとは?

災害復旧計画を作成するためには、まず、ダウンタイムが発生した場合にビジネスが引き受ける時間目標と許容可能なデータ損失を見積もる必要があります。これらの目的は、回復時間と回復ポイントの目標と呼ばれています。

RTOは、完全に、回復時間目標を指します。この測定量は事業継続のための災害の後で、ユーザのITの下部組織およびサービスを元通りにするべきである時間の量を確立します。

次に、RPO(Recovery Point Objective)は、組織が災害時に失われたデータの最大許容量を定義します。さらに、最終的なデータバックアップインスタンスから災害発生までの最大許容時間についての洞察を提供します。つまり、適切なバックアップスケジュールと頻度を決定するために使用することができます。

ディザスターリカバリーは通常のバックアップとどう違うのか?

バックアップとは、データのコピーを作成し、プライマリおよびセカンダリの場所に保存するプロセスです。あなたは、ローカルドライブ、NASデバイス、オフサイトのデータセンター、クラウドストレージ、および他の手段でファイルをバックアップすることができます。これはデータ損失を経験することが起こればあなたのデータを元通りにすることを可能にします。

一方、ディザスターリカバリーは、データとITリソースを問題から保護することを目的とした、より総合的なプロセスであり、大規模な中断後の基幹業務システムの迅速な再構築を促進します。

したがって、バックアップは災害復旧の1つのサブコンポーネントにすぎないと結論づけることができます。

災害復旧(ディザスタ・リカバリ)を管理するには?

災害復旧を管理するには、堅牢な災害復旧計画とそれに対応する事業継続計画の起草、実装、およびテストが必要です。

ビジネスインパクト分析を行う際には、理想的なリカバリーインフラ(オンプレミスかクラウドか)と、災害復旧アプローチ(マルチサイト、ウォームスタンバイ、パイロットライト、またはバックアップとリカバリーのいずれか)を考慮する必要があります。

IT災害復旧計画とは?

ITの災害復旧の計画は効果的にサイバー攻撃、停電および自然な災害のような自然な、人為的な災害によって引き起こされるサービス中断にいかに対応するかの詳しい指導を提供する構造化された文書です。

計画自体は、すべての中核となるビジネスプロセスに加えて、その過程で発生する可能性のある災害を考慮しています。その上で、各災害の影響を最小限に抑えるための戦略と、重要な業務を迅速かつシームレスに復旧するための利用可能な二次リソースの活用方法を提示します。

災害復旧計画には何が含まれるか?

IT災害復旧計画の主要な要素には、以下のものが含まれます。

●災害対応のためのすべての責任の割り当て
●災害対応の実施フレームワーク
●バックアップから新しいシステムにデータを復元するプロセス
●処理を反転させて通常の動作を再開する手順を説明

災害復旧計画を作成するには?

災害復旧計画を作成するためには、以下のことを行う必要があります。

●ビジネスリーダーと災害復旧計画の必要性について話し合う
●復旧が必要なビジネスプロセスとデータを重要度別にグループ化
●想定される災害事例を特定する
●災害復旧の目標を定義する
●目標に応じて回復できるツールや方法を定義する
●災害復旧計画とワークフローの実施
●エンドユーザーへの教育

災害復旧計画と事業継続計画の違いは?

事業継続の計画が破壊的なでき事の後で動いている事業活動を保つために必要なすべてのプロシージャおよび議定書を定義するのに使用されています。従って、一言で言えば、事業継続の計画は「いかに私達は災害が起これば私達のビジネスプロセスを維持していくか」に答えるものです。

災害復旧計画は、一方では、災害に続く重要なITインフラストラクチャおよびサービスを復元するために必要なステップおよびリソースを具体的に扱うものです。それは「いかに私達は災害の後で再開してもいいか」の質問に答えることを意味します。

しかし、災害復旧は事業継続の重要な要素の一つです。

災害復旧計画をどのようにテストするか?

災害復旧計画は、ウォークスルー・テスト、卓上テスト、および技術テストによって評価することができます。

ウォークスルー・テストは基本的に災害復旧計画のステップバイステップのレビューであり、卓上テストは各チームメンバーがどのように答えるか決定するために「what-if」のシナリオを起動させます。その後、並行テストやライブ/フル中断テストのような技術テストで補足することができます。

オンプレムよりもクラウド・オブジェクトストレージを使う理由

1. S3 Object Lockに対応したサイバー脅威対策。これにより、不変のバックアップが可能になり、ランサムウェアやハッカーだけでなく、誤って削除されたり、悪意のあるインサイダーからも防弾性のある保護を提供します。どんなオンプレミスのストレージでも、十分な大きさのハンマーを持った(またはガソリンの入ったキャニスターを持った)動揺した従業員が、最も洗練されたアクセス制御やWORM技術でさえも簡単に回避することができるため、単純にそうはいきません。

 

2. オフサイトバックアップ。クラウド・オブジェクト・ストレージは定義上オフサイトに位置しているため、これは「無料」で含まれており、3-2-1 バックアップ・ルールの「1」を達成することは完全に容易である。これは非常に重要なコスト要因であり、オンプレミスのオブジェクトストレージを使用する場合、オフサイトバックアップを行う方法を見つける必要があるからです。そして、どのようにアプローチするにしても、そのためだけにいくつかの余分な$$を費やす必要があります。

 

3. パフォーマンスとスケーラビリティ。成熟したクラウドオブジェクトストレージは、一般的に実行し、はるかに優れたスケーラビリティを持っています。実際、Amazon S3は来月で15歳になりますが、これはVeeamと同じくらい古いです。しかし、言うまでもなく、この弾丸は、最近キノコのように飛び出している新しいベンダーには適用されないかもしれません。あなたがコミットする前にデューデリジェンスを行い、広範囲にテストを行ったとしても、彼らは常に後で登録をオーバーする可能性があります…心に留めておいてください – いつものように、あなたはあなたが得たものを支払します!

クラウドよりもオンプレミスのオブジェクトストレージを利用する理由

1. コストが安くなる。ほとんどの場合、長期的にはオンプレミスのオブジェクトストレージの方が安くなります。ストレージの価格だけでなく、電気代、冷却費、その他のデータセンターのコストも考慮する必要があります。また、あまり成熟していないオブジェクト・ストレージ・ソリューションを子守するための人的資源コストも考慮に入れてください。

2. データの主権。もしあなたのデータの一部またはすべてをオンプレミスで保管することを必要とする州、業界、企業のポリシーや規制に縛られている場合、選択肢はありません!もしあなたがこれらのソリューションを利用することを決めたならば、現在は豊富にあります。

オンプレミスのオブジェクトストレージを使用してはいけない理由

1. 成熟度の低いオブジェクトストレージソリューションの信頼性とパフォーマンスの問題に対処しなければならないため、TCOが高くなる可能性があります。過去2年間、ほとんどのオブジェクトストレージベンダーが次々とHotfixを発行しているのを見てきましたが、誰がこれらの問題を発見していると思いますか?そう、あなたの仲間です。

 

2. バケットで100TB(場合によっては数十TB)に近づくにつれ、スケーラビリティの問題が発生する可能性があります。これは、残念ながら、多くのオンプレミスのオブジェクトストレージは、通常のファイルシステムの上に「ボルトオン」のソリューションであり、何十億ものオブジェクトに対応できるように最初から設計されているのとは対照的だからです。そのため、Veeamがバニラファイルシステムを使用するのと比較して、パフォーマンスや信頼性の面で良いことはありません。

パーシャルマネージドDRaaS

それは何か? パーシャルマネージドDRaaSは、次のステップとなる責任共有モデルです。DRaaSプロバイダーは、初期設定と継続的なメンテナンスと監視を行い、お客様はサービスにアクセスし、一部の機能にアクセスすることができます。なぜ多くの企業がこのモデルを好むのでしょうか?それは、DR戦略に対してよりカスタマイズされたアプローチと安心感を与えるからです。

 

最適な方法:  サービスプロバイダーは、大規模なITチームやディザスターリカバリーを成功させるための社内スキルが不足している組織にこのモデルを推奨することが多いようです。また、ITチームを他のビジネスプロフェッショナルや目標に集中させたいと考えている企業も、このモデルを利用するとよいでしょう。なお、このモデルにおけるツールは通常DRaaSプロバイダーによって選択されますが、組織は復旧目標に応じて必要なツールを選択することができます。

フルマネージドDRaaS

それは何か? セルフサービスとは反対に、DRaaSプロバイダがサービスの全結果に責任を持つのがフルマネージドDRaaSソリューションである。このモデルでは、リカバリポイント目標(RPO)やリカバリ時間目標(RTO)など、財務的なSLAがリカバリの指標となる場合があります。このモデルでは、DRaaSプロバイダーは、設計、実装、保守監視、テスト、起動のすべてを行います。

 

以下のような場合に最適です。このモデルは、ITリソースやディザスターリカバリーのスキルが限られている、または全くない組織に最適です。また、ディザスターリカバリーの拠点となる2次、3次拠点がない場合や、ディザスターリカバリーのSLA保証の安全性を求める場合にも最適なモデルです。

バックアップとレプリケーションの違いは?

この2つの用語は大まかに言うと以下のようなものです。

 

バックアップとは、データのコピーを作成し、オリジナルの紛失や破損に備えてオフサイトに保管することです。

 

レプリケーションとは、データをコピーし、データセンター、コロケーション施設、パブリッククラウド、プライベートクラウドなど、企業のサイト間でデータを移動させることです。

バックアップとリカバリの違いは?

バックアップはデータ管理に欠かせないものです。バックアップを作成することで、データの損失、破損、マルウェアの攻撃からデータを保護することができます。バックアップコピーを作成することで、紛失や破損、マルウェアの攻撃からデータを守ることができます。

 

リカバリは、バックアップにアクセスし、破損または紛失したファイルを復元するプロセスです。リカバリーを効果的に行うには、バックアップ・コピーに簡単にアクセスでき、最新の状態である必要があります。最高の状態で、リカバリはシームレスかつ迅速に行われます。

なぜバックアップが重要なのか?

バックアップがなければ、デジタルデータは1台のハードディスクやクラウドなど、1つの場所にしか存在しないため、データは非常に脆弱なままです。スケッチブックを水たまりに落としたり、間違った書類をシュレッダーにかけてしまうように、たった一度の誤操作、マルウェアの攻撃、機器の故障がすべてを消し去る可能性があるのです。また、特にソフトウェアのアップグレードやデータ移行時には、データが破損する危険性があります。

なぜリカバリーがさらに重要なのか?

データのコピーを複数持つことは重要ですが、ビジネスの観点からは、障害からできるだけ早く回復する能力の方がより重要です。アプリケーション全体、アプリケーションのセット、サイト全体、あるいは単一のファイルなど、どのような場合でも迅速なリカバリが不可欠です。

 

必要な復旧の種類によって、復旧時点目標(RPO)と復旧時間目標(RTO)の指標にかかる性能要件が決まります。RPOは、組織が許容できるデータ損失に影響されますが、RTOは、特にデータとアプリケーションを特定の時点まで一貫して復旧する場合、復旧プロセスがどれだけ自動化されているか(手動ではなく)、復旧計画がどれだけ効果的に実施されテストされているかに依存します。

3-2-1-1-0 バックアップ・ルールとは

サイバー攻撃の数は絶えず増加しており、その頻度はますます高くなり、ハッカーは企業の機密データから利益を得るために、より多くの方法を考案しています。ガートナーの専門家は、2025年までに最大75%のIT企業が1つ以上のランサムウェア攻撃の標的になると予測しています。侵入者は、身代金を支払わないとデータを復元できないようにすることを好むため、こうした攻撃はバックアップに影響する可能性が高い。

 

つまり、データ保護の今までのゴールドスタンダードでさえ、実際にデータを保護するには十分でない可能性があるということです。デ