2012-02-09 19 views

答えて

0

一つの解決策は、同じサイズのデータ​​ベースにダンプを入れ、小さなデータベースにスキーマとデータを渡すことです。

その後、最初のデータベース(最大のデータベース)を削除できます。


Sybase Centralを使用すると、データベースからスキーマを迅速に取得し、後でデータをbcpするだけで済みます。

+0

スキーマとデータはどのように渡しますか? –

+0

@Brian Sybase Centralを使用していますか? –

+0

いいえ、一見価値がありますか? Sybase Centralはデータベースをどのように転送しますか?スクリプトを介して?私はRapidSQLと別のツールを使ってスキーマをスクリプト化しようとしました。私が見つけた最大のハードルは、ストアドプロシージャ間の依存関係を理解できないということです。それをトリッキーにするために、いくつかの格納されたprocsは、他の格納されたprocsによって作成された一時テーブルに依存します。その他の問題:これらのツールでは、ユーザー定義型を正しく使用して列のデフォルトをスクリプト化しませんし、FK制約に違反するデータもあります。それはすべて、スクリプトを介してデータベースを転送することに苦労しています。 –

1

私はちょうど同様の問題を抱えていて、Sybaseがデータベースを "縮小"する機能をサポートしていないことを認識していませんでした。だから私はされて思い付いただけのオプション...

ダンプは、フルdump and loadを行う

をロードします。しかし、ターゲットサーバに十分なディスク容量がない場合、あなたは運が悪いです!私の状況のような本当の痛みは、ソースデータベースが5%しか使用されていないが、ダンプ+ロードは依然として完全に100%割り当てられたデータベースを必要とする。

抽出DDLとBCPデータ

DDLGenまたはエンバカデロのDBArtisanのようなツールを使用してソース・データベースからDDLを抽出します。次に、BCPを使用してソースデータベースからデータを抽出し、ターゲットデータベースにインポートします

+0

ダンプと読み込み:元のデータベースよりも小さなデータベースに読み込めませんでした。たぶん私はオプションを逃した? –

+0

あなたは正しいですブライアン、あなたは小さなデータベースに読み込むことはできません。私の答えは、「ダンプとロード」は私にとっては役に立たないということです。なぜなら、同じ割り当てサイズのデータ​​ベースにロードする必要があるからです – Brad

関連する問題