mysqlから夢のデータベースへのデータベース移行

1 背景の紹介

ビジネス要件によりデータベースのローカライズが必要となるため、データは mysql データベースから国内の Dameng データベースに移行されます。mysql の各ライブラリを Dameng の異なるモードに移行する詳細なプロセスは次のとおりです。

2つの具体的なステップ

(1) Damengクライアントツールをインストールする

(2) クリックしてDM管理ツールを選択します

dm管理ツール

(3) スキーマとユーザーの作成

ユーザーメニューで、新しいテストモードと対応するユーザーを作成します。
スキーマとユーザーを作成する

(4) DM移行ツールを開く

DM移行ツール

(5) プロジェクトを作成する

DM 移行ツールの空白スペースを右クリックし、mysql という名前のプロジェクトを作成します。
プロジェクトを作成する

(6) 移行タスクの作成

新しく作成したmysqlプロジェクトをクリックし、右クリックして移行し、新しい移行タスクmysqltransferを作成します。
移行タスクの作成

(7) mysqlソースの設定

mysql の IP、ポート、ユーザー名、パスワードを順番に追加します。
mysqlソースを設定する

(8) Damenデータベース情報の設定

Dameng データの IP、ポート、ユーザー名、パスワードを順番に追加し、今回は TEST ユーザーを選択します。
Damenデータベースの構成
ターゲット モードとして TEST モードを選択し、[次へ] をクリックします
選択モード
。すべてのデータベース テーブルを選択し、[次へ] をクリックします。

(9) 移行タスクの実行

[完了]ボタンをクリックしてデータベースの移行を開始します。mysql と Dameng データのデータ型が完全に一致していないため、移行が失敗する可能性があり、ログが生成され、ログに従って対応する問題を修正できます。

(10) 移行時によくある問題

mysqlの TIMESTAMP の時間タイプを
ON​​ UPDATE CURRENT_TIMESTAMP に設定できる場合、データの更新時にフィールドを自動的に更新できます。Dameng
データベースには ON UPDATE CURRENT_TIMESTAMP タイプがありませんが、同様の操作を完了するトリガーを作成できます。 mysql の基礎となる層も、取得されたトリガーがこのイベント タイプを実装する必要があります。
ジオメトリタイプに関連する

  1. Dameng データベースで初めてジオメトリ タイプを使用する場合、ジオメトリ タイプを初期化する必要があります。初期化しないと、ジオメトリ タイプの設定フィールドに無効なデータ タイプとしてエラーが報告されます。
    ジオメトリの初期化手順:
  • SQL クライアントにデータベース管理者としてログインし、次のコマンドを使用してジオメトリ タイプを初期化します。
  • SP_INIT_GEO_SYS(1);
  • 次の SQL コマンドを発行して、ジオメトリ タイプが初期化されていることを確認します。 SELECT SF_CHECK_GEO_SYS;
  • ジオメトリ タイプが初期化されている場合、コマンドは次を返します。
ライン SF_CHECK_GEO_SYS
1 1
  1. Dameng データのジオメトリ タイプは st_geometry であり、テーブルを作成してタイプを入力するときに st_geometry を入力する必要があります。
  2. mysql からエクスポートされたテーブル データにジオメトリ タイプが含まれている場合、システムはその形式を ST_GeomFromText (フィールド) としてエクスポートします。これを Dream データベースにインポートするときは、DMGEO.ST_GEOMFROMTEXT (フィールド、0) に変更する必要があります。

中国語の文字に関する質問
LENGTH_IN_CHAR=0 varchar はバイト単位、gb18030 の中国語文字は 2 バイト、utf-8 の中国語文字は通常 3 バイト
LENGTH_IN_CHAR=1 varchar に格納されるバイト数は、次の特定の割合に従います。拡張時に、gb18030の場合はvarcharのバイト数が定義長2となり、文字セットがutf-8の場合は*varcharのバイト数が定義長*4となります。
範囲、フィールド長は適切に変更できます

テーブルフィールドの型変更
Damengにはロングテキスト型とJSON型が存在しないため、ストレージフィールドのデータ型をロングテキスト型をLONGVARCHAR、JSON型をvarchar、varchar2、char、clobなどに変更する必要があります。

データベースでロックタイムアウトが発生し、
ロックのあるセッションが検出されました

select a.*,b.NAME,c.SESS_ID from v$lock a
left join sysobjects b on b.ID=a.TABLE_ID
left join v$sessions c on a.TRX_ID=c.TRX_ID;

session_id に従って対応するロックを閉じます。

sp_close_session(sess_id);

おすすめ

転載: blog.csdn.net/weixin_43975316/article/details/128371614