
クライアントからハードドライブのイメージファイルを受け取り、このファイルからデータベースを抽出したいと思います。クライアントは、イメージが生成されたサーバーにデータベースがインストールされていること以外に、どのような詳細も知りません。
Informix DBSがインストールされているUNIXシステムであることがわかりましたが、データベースファイルが見つかりませんでした。 Informixのバージョンが何であるかはわかりませんが、インストールされてから15年ほどかかったようです。
イメージから起動できません。ファイルだけ見ています。
informixデータベースファイルに拡張子がありますか?何ができたのか?データベースファイルを識別する方法に関する他のヒントはありますか?
答え1
ここには多くの質問があります。お客様の状況に応じて、重要な順番でご回答いたします。
ハードドライブイメージからデータベースを抽出する私はあなたが実際のデータ、つまりさまざまなテーブル、その行と列などに興味があると思います。
informix
最新のデータベースシステムは、データをフラットファイルやASCII形式で保存しないため、実際にソフトウェア自体がなければほとんど不可能です。単一informix
のインスタンスには多数のデータベースがあり、各データベースにはデータを含む多数のテーブルがあり、すべて独自のバイナリ形式で保存されます。単一のテーブルを分割して複数の「ファイル」に保存することも珍しくありません。そのため、データを含む関連ファイルを見つけても、すべてのデータを取得できない可能性があります。あなたが尋ねるべき質問は、この運動の究極の目標が何であるかです。ファイル名と拡張子のデータベースは、
informix
「空白」という用語で知られているストレージブロックファイル内にバイナリ形式で保存されますinformix
。これらのファイルには拡張子が必要なく、ファイル名はユーザー(データベース管理者)によって指定されます。したがって、ユーザーが拡張子を指定した場合や指定しなかった可能性があります。ファイルの検索のヒント ファイルを検索する方法はいくつかあります。
informix
ソフトウェアバイナリ/実行ファイルと設定ファイルの場所を決定することから始めます。インストールinformix
ディレクトリは技術的に$ INFORMIXDIRと呼ばれますinformix
。ドライブからoninit
またはというバイナリファイルを検索しますonstat
。このファイルはユーザーのルートまたはに所有する必要がありますinformix
。$INFORMIXDIR/bin
今私たちは場所を知っています$INFORMIXDIR
。行く$INFORMIXDIR/etc
。ここにインスタンス設定ファイルがあります。設定ファイルは特定の名前や拡張子を持つ必要はありませんが、ファイル名をまたはonconfig
同様にしておくのが一般的ですoncfg
。また、forROOTNAME
および inside を介してROOTPATH
設定$INFORMIXDIR/etc
ファイルとルートを見つけることもできます。dbspace: grep -rn 'ROOTNAME\|ROOTPATH' *
ルートdbspace
は、システムデータベースが生成されるブロックファイルであり、ユーザーデータベースが生成されるデフォルトファイルでもあります(明示的に別のものに設定されていない場合)dbspace
。プロフィールを確認したら、さらに深く掘り下げることができます。
答え2
Pradeepの答えを完成させるには、$INFORMIXDIR/etcが何であるかを見つけたら、onconfigファイルとoncfgファイルの2つのファイルが必要です。両方を混同しないでください。
onconfig は Informix データベース構成ファイルです。残念ながら、このファイルは何でも呼び出すことができます。通常、onconfig.DBSERVERNAMEと呼ばれます。このファイルには、DBSERVERNAME(インスタンスの識別名)とSERVERNUM(インスタンスの識別番号)の2つの構成があります。
oncfg_*.* ファイルには、インスタンスで使用される dbspace、ブロック、および論理ログに関する情報が含まれています。このファイルは、データベース内のdbspace、ブロック、およびログが変更されたときにデータベースインスタンスが初期化および更新されたときに生成されます。このファイルの命名規則はoncfg_DBSERVERNAME.SERVERNUMであり、従ってください。すべてのoncfg_ *に対してlsを実行すると、サーバー上のすべてのインスタンスの潜在的なリストが表示されます。
oncfg_*ファイルを含む特定のインスタンスのデータファイル(チャンク)を取得するには、次のコマンドを実行します。
grep "^Chunk " $INFORMIXDIR/etc/oncfg_DBSERVERNAME.SERVERNUM | awk '{ print $12 }'
このリストの最初のファイルは、上でPradeepが述べたROOTDBSです。
サーバーで実行されているインスタンスの構成ファイル(onconfigファイル)をインポートするには、次のようにします。
grep ^DBSERVERNAME * | grep DBSERVERNAME
これが役に立つことを願っています。 ^_^
PS DBSERVERNAME または SERVERNUM は環境変数ではないため、前に「$」を入れませんでした。これはonconfigファイルの構成パラメーターです。ファイルの実際の値に置き換えます。乾杯!