.bak
SQL Server 2005ダンプの大きなファイルがいくつかあります。
SQL Serverを使用せずに、PostgreSQL、MySQL、またはフラットテキストファイルにこれらを復元できますか?
オープンソースのソリューションが最も役立ちます。
.bak
SQL Server 2005ダンプの大きなファイルがいくつかあります。
SQL Serverを使用せずに、PostgreSQL、MySQL、またはフラットテキストファイルにこれらを復元できますか?
オープンソースのソリューションが最も役立ちます。
回答:
ここに私が提案するものがあります:
VMにバックアップを保持するのに十分なスペースがあるが、それをリストアするのに十分なスペースがない場合、同じ名前のRed-Gateの製品の試用版を使用して「仮想リストア」を実行できます。まるで復元されたかのようなバックアップファイル)。それ以外の場合は、通常の方法でデータベースを復元します。
データベースが使用可能になったら(通常の復元または仮想復元を介して)、次の方法でスキーマとデータのスクリプトを生成できます。
または、bcpユーティリティを使用してデータをCSVファイルなどに抽出することもできますが、このテーブルごとに実行するか、巧妙なスクリプト(PowerShell、T-SQL、C#/ SMOなど)を使用する必要があります。 )すべてのbcpコマンドを生成します。CSVファイルを作成したら、Postgresにデータを一括ロードするのは簡単です(ただし、テーブルを生成するための作業はまだあります)。
最後の提案として、.bakファイルがひどくなく、データが機密でない場合、必要な形式でファイルを生成してみます。空き容量のあるWindows VMがたくさんあります。特に、ファイル共有サービスがサポートするほとんどのサイズよりも大きい場合は、.BAKファイルを取得できる場所に移動することが課題になります。
残念ながら、ファイル自体の内部についての深い知識がなくても、.bakファイルのコンテンツにアクセスする方法はありません。私はこの情報を知っている可能性のある人をここで考えることができますが、その人があなたにそれを行う方法を教えてくれるかどうかについて話すことはできません
そのため、SQL Serverインスタンスをインストールする必要があります。また、このインスタンスがPostgresサーバーと通信できることを確認する必要があります(pg_hba.confにフリギング)。そこで、データを移行するための適切なパスがいくつかあります。
最初の方法は、Postgres Windows ODBCドライバーをインストールし、pgサーバーへの接続をセットアップすることです。その後、SSISを使用してデータ移行のスクリプトを作成できます。このルートを使用する場合は、データベースサーバーをインストールするときにSSISをインストールすることをお勧めします。
もう1つのオプションにはODBCドライバー接続も含まれますが、SQL Serverでリンクサーバーを作成し、SQL Serverを介してpgインスタンスで挿入を実行できます。私は以前にこの正確な質問に答えたことがありますので、見つけるのは難しくありません。
編集
Aaronのコメントを組み込むには、SQL Serverを起動して実行したら、さまざまな方法でデータをフラットファイルにエクスポートすることもできます。この方法を選択した場合はお知らせください。そのための方法をいくつかご紹介します
編集(2):
事前に構造を作成しない限り、リンクサーバープロセスは最適なアプローチではない場合があります。これは私の好みの方法ですが、通常はすでに両側に構造があります。
アーロンバートランドの答えがベストアンサーとして残されています。データ型に加えて(IDENTITY
vs. SEQUENCE
ではNVARCHAR
、データベース自体にエンコーディングを設定しているため、postgresは何も知らないことに注意してください)。Postgresは何も知りませんCREATE CLUSTERED INDEX
(CLUSTER
あなたに役立つかもしれません)。最後に、コメントで空間データを使用することになるので、postgresqlはCREATE SPATIAL INDEX
構文について何も知りません。INDEXTYPE
空間インデックスを作成するには、postgisをインストールし、キーワードを使用する必要があります。最後に、スキーマを適切に処理するようにしてください。
短い話: