mysql|サーバー
MySQL から Microsoft SQL Server 2000 への移行
概要
このホワイト ペーパーでは、Microsoft SQL Server 2000 の移行機能について説明し、開発者が MySQL データベースを SQL Server 2000 に移行するのに役立つ具体的な情報を提供します。
はじめに
このガイドでは、いくつかの組み込み SQL Server ツールとユーティリティを使用して MySQL を Microsoft® SQL Server® 2000 に移行する方法について説明します。また、SQL Server 2000 で動作するように MySQL アプリケーションを変更する方法についても説明します。 MySQL アプリケーションを購入すると、SQL Server 2000 の高度な機能をアプリケーション アーキテクチャに提供しながら、その投資を引き続き活用できます。
対象読者
このホワイト ペーパーの読者は、SQL Server とその操作に慣れていない人ですが、MySQL DBMS と通常のデータベースの概念には精通している必要があります。対象読者は以下を持っている必要があります:
- 一般的なデータベース管理の知識。
- MySQL DBMS に関する十分な基礎知識。
- MySQL 言語に精通している。
- sysadmin固定サーバーロールのメンバーシップ。 sysadmin ロールはサーバーを完全に制御します。 SQL Server へのログインの詳細については、SQL Server 2000 Books Online の「ログイン」セクションを参照してください。
手順を明確かつ理解しやすくするために、使用されるベースライン開発およびアプリケーション プラットフォームは Microsoft Windows® 2000 オペレーティング システムと SQL Server 2000 です。 MySQL ODBC ドライバーは MySQL で使用され、MySQL プラットフォームは MySQL 3.23.37 を使用する Red Hat Linux 7.1 です。
概要
MySQL は、オープンソースのデータベース管理システム (DBMS) です。クライアント/サーバー構造を採用しており、マルチスレッド、マルチユーザーのデータベース サーバーです。 MySQL は高速アプリケーション向けに設計されているため、サブクエリ、外部キー、参照整合性、ストアド プロシージャ、トリガー、ビューなど、リレーショナル データベース システムが提供する機能の多くは提供されていません。さらに、ロック メカニズムも備えていますが、異なるユーザーが同時に多数の書き込み操作を行うデータ テーブルには不十分です。また、ソフトウェア アプリケーションやツールのサポートもありません。
SQL Server 2000 は、OLAP とデータ マイニングのための統合分析機能も備えた完全なリレーショナル データベース管理システム (RDBMS) です。 SQL Server 2000 は、大規模なデータ処理システムや商用 Web サイトのデータおよび分析ストレージ要件を満たしながら、個人や中小企業に使いやすいデータ ストレージ サービスを提供します。
Microsoft SQL Server は、行レベルのロック、高度なクエリ最適化、データ レプリケーション、分散データベース管理、分析サービスなどの高度なサーバー機能をサポートするように設計されています。 Transact-SQL (T-SQL) は、SQL Server 2000 でサポートされる SQL 言語です。
この章で説明する構造上の機能は、SQL Server 2000 が提供する多くの機能の一部にすぎません。 SQL Server 2000 Books Online は、アプリケーションをインストールするときに活用できる便利なリソースです。 Books Online を使用するには、Microsoft SQL Server プログラム グループを開き、[Books Online] をクリックします。
移行プロセス
この章では、MySQL と Microsoft SQL Server 2000 の構造をリストすることで移行プロセスを紹介します。この章には次の内容が含まれます:
移行の準備 - データ型、予約語、および演算子
- MySQL 用のデータ移行ツール
- Microsoft SQL Server 用のデータ移行ツール
- 直接移行: データ変換サービス (DTS)
- データ読み込み機能の使用: クエリ分析手順
- アプリケーションのスケーリング
- トラブルシューティング
-
移行の準備
最終的な成功を確実にするためには、適切な移行計画を立てることが非常に重要です。移行を開始する前に、移行する MySQL データベースのスキーマを確認してください。 MySQL と SQL Server 2000 のデータ型を比較して、違いを理解してください。このホワイトペーパーの「MySQL と Microsoft SQL Server の比較」セクションでは、比較可能なデータ型のフレームワークを提供します。一部の MySQL データベース オブジェクトは SQL Server 2000 の予約語と競合する可能性があることに注意してください。これらの予約語については、次のセクションで説明します。 DTS を使用して SQL Server 2000 に移行する前に、MySQL データベース ファイルをバックアップしてコピーする必要があります。
データ型、予約語、および演算子
このセクションでは、SQL Server 2000 で使用されるデータ型を紹介します。スムーズな移行のために、MySQL と SQL Server 2000 のデータ型の比較表がここに提供されています。 Microsoft SQL Server で使用される予約語のリストも提供されます。これには次の情報が含まれます。
サポートされる SQL Server データ型 - MySQL と SQL Server 2000 の比較
- SQL Server の予約語
-
サポートされる SQL Server データ型
データ型
説明
BIGINT
From -2^63 (-9223372036854775808 ) 2^63-1 (9223372036854775807) の整数データ (整数) に変換します。
INT
-2^31 (-2,147,483,648) から 2^31-1 (2,147,483,647) までの整数データ (整数)。
SMALLINT
2^15 (-32,768) から 2^15 - 1 (32,767) までの整数データ。
TINYINT
0 から 255 までの整数データ。
BIT
1 または 0 の整数データ。
DECIMAL
固定精度と位取りが -10^38 +1 ~ 10^38 -1 の数値データ。
NUMERIC
は機能的には
10 進数と同等です。
お金
-2^63 (-922,337,203,685,477.5808) から 2^63 - 1 (+922,337,203,685,477.5807) までの通貨データ。通貨単位の 10,000 分の 1 まで正確です。
SMALLMONEY
-214,748.3648 から +214,748.3647 までの通貨データ。通貨単位の 10,000 分の 1 まで正確です。
FLOAT
-1.79E + 308 ~ 1.79E + 308 の浮動小数点精度の数値データ。
REAL
-3.40E+38 から 3.40E+38 までの浮動小数点精度の数値データ。
DATETIME
1753 年 1 月 1 日から 9999 年 12 月 31 日までの日付と時刻のデータ (100 分の 3 秒 (3.33 ミリ秒) の精度)。
SMALLDATETIME
1900 年 1 月 1 日から 2079 年 6 月 6 日までの日付と時刻のデータ。最も近い分まで正確です。
CHAR
最大長 8000 文字の固定長の非 Unicode 文字データ。
VARCHAR
最大長 8000 文字の可変長の非 Unicode 文字データ。
TEXT
可変長非 Unicode データの最大長 2^31 - 1 (2,147,483,647) 文字。
NCHAR
最大長 4,000 文字の固定長 Unicode データ。
NVARCHAR
最大長 4000 文字の可変長 Unicode データ。
sysname は、システムによって提供されるユーザー定義のデータ型で、機能的には
nvarchar(128) と同等であり、データベース オブジェクト名を参照するために使用されます。
NTEXT
可変長 Unicode データの最大長 2^31 - 1 (1,073,741,823) 文字。
BINARY
最大長 8,000 バイトの固定長バイナリ データ。
VARBINARY
最大長8,000バイトの可変長バイナリデータ。
IMAGE
最大長 2^31 - 1 (2,147,483,647) バイトの可変長バイナリ データ。
CURSOR
カーソルへの参照。
SQL_VARIANT
SQL Server でサポートされるデータ型の値を格納するデータ型 (
text、
ntext、
timestamp、
sql_variantを除く)。
TABLE
後の処理のために結果セットを保存するために使用される特別なデータ型。
TIMESTAMP
データベース全体で一意の数値。行が更新されるたびに更新されます。
UNIQUEIDENTIFIER
グローバル一意識別子 (GUID)。
詳細については、SQL Server 2000 Books Online の「データ型」のトピックを参照してください。
MySQL と SQL Server 2000 の比較
次の表は、MySQL と SQL Server 2000 の間のデータ型マッピング関係を示しています。一部の MySQL データ型については、SQL Server に対応するデータ型が複数あります。このテーブルには次の情報が含まれます:
注 D: 浮動小数点型に使用され、小数点以下の桁数を示します。最大値は 30 ですが、少なくとも M-2 より大きくなければなりません。
L: 列値の実際の長さ
M: 最大表示サイズを示します。有効な最大表示サイズは 255 です。
数値型
MySQL
サイズ
SQL Server 2000
TINYINT
1バイト
TINYINT
SMALLINT
2バイト
SMALLINT
MEDIUMINT
3バイト
INT
4バイト
INT
INTEGER
4バイト
INT
BIGINT
8 バイト
BIGINT
FLOAT(X4バイト
FLOAT(0)
FLOAT(258バイト
FLOAT(25)
DOUBLE
8ワードセクション
FLOAT(25)
DOUBLE PRECISION
8バイト
FLOAT (53)
REAL
8バイト
REAL
DECIMAL
Mバイト(M
DECIMAL
NUMERIC
Mバイト(M<Dの場合はD+2)
数値
日付と時刻の型
Mysql
SQL Server 2000
Date
date
3 バイト
SmallDateTime
dateTime
8 バイト
TateTime
timestamp
4 バイト
Timestamp
TIME
3 バイトSMALLDATETIME
YEAR
1バイト
SMALLDATETIME
文字列型MySQL
サイズ
SQL Server 2000
CHAR(m)
Mバイト、1<=M<=255
CHAR
VARCHAR (m)
L+1バイト、L<=Mおよび1<=M< ;=255
VARCHAR
TINYBLOB
L + 1バイト、LBINARY
BLOB
L + 2バイト、LVARBINARY
TEXT
L + 2バイト、LTEXT
MEDIUMBLOB
L + 3 バイト、LIMAGE
MEDIUMTEXT
L + 3 バイト、L使用可能なデータ型はありませんが、CHECK 制約* 機能は提供されています。
SET (VALUE1, VALUE2, ...)
セットメンバーの最大数に応じて、1、2、3、4、または 8 バイト
* チェック制約は、受け入れ可能な値を制限することでデータの整合性を強制しますフィールドセックスで。詳細については、Books Online のトピック「CHECK 制約」を参照してください。
Microsoft SQL Server 2000 の予約語
ADD
EXCEPT
PERCENT
ALL
EXEC
PLAN
ALTER
EXECUTE
PRECISIONAND
EXISTS
PRIMARY
ANY
EXIT
PRINT
AS
PROC
ASC
ファイル
手順
承認
フィルファクター
パブリック
バックアップ
レイザー
BEGIN
外国語
読む
間
フリーテキスト
リードテキスト
ブレイク
無料テキスト可能
再構成
参照から
参照
一括
完全
レプリケーション
機能別
復元
カスケード
GOTO
制限
ケース
許可
返品
チェック
グループ
取り消し
チェックポイント
正しい
閉じる
ホールドロック
ROLLBACK
CLUSTERED
IDENTITY
ROWCOUNT
COALESCE
IDENTITY_INSERT
ROWGUIDCOL
COLLATE
IDENTITYCOL
RULE
COLUMN
IF
SAVE
COMMIT
IN
SCHEMA
COMPUTE
INDEX
SELECT
CONSTRAINT
INNER
SESSION_USER
CONTAINS
INSERT
SET
汚染可能
INTERSECT
SETUSER
継続
シャットダウン
変換
ある
作成
結合
統計
クロス
キー
SYSTEM_USER
現在の
KILL
テーブル
CURRENT_DATE
LEFT
TEXTSIZE
CURRENT_TIME
LIKE
THEN
CURRENT_TIMESTAMP
LINENO
TO
CURRENT_USER
LOAD
TOP
CURSOR
NATIONAL
TRAN
DATABASE
NOCHECK
TRANSACTION
DBCC
非クラスター化
トリガー
DEALLOCATE
NOT
TRUNCATE
DECLARE
NULL
SEQUAL
デフォルト
NULLIF
UNION
DELETE
OF
固有
拒否
オフ
更新
記述
オフセット
更新テキスト
ディスク
使用中
区別
オープン
ユーザー
分散
オープンデータソース
値
ダブル
OPENQUERY
VARY ING
DROP
OPENROWSET
VIEW
DUMMY
OPENXML
WAITFOR
ダンプ
オプション
いつ
他の場合
または
どこで
終了
注文
ながら
エラーLVL
外側
エスケープ
上書き
テキストを書きます