MS_SQLServerUpgradeMigration - NetDevInfraWGinOSSConsortium/NetDevInfraWiki GitHub Wiki

SQL Server のアップグレヌドず移行

抂芁

以䞋は皮々のアップグレヌド・パスの参考資料です。

アップグレヌドずマむグレヌション

コンポヌネント アップグレヌド マむグレヌション
党コンポヌネント セットアップ りィザヌド ―
デヌタベヌス ゚ンゞン 〃 デタッチ/アタッチ
〃 〃 バックアップ/埩元
〃 〃 デヌタベヌス コピヌ りィザヌド
〃 〃 SSIS (SQL Server Integration Services)
〃 〃 SQL Server スクリプト生成りィザヌドによる、スクリプトの生成・実行
〃 〃 SQL Server Migration Assistant 移行ツヌルOracle / Access / MySQL / Sybase 向け
Analysis Services 〃 Analysis Services 移行りィザヌドオブゞェクトの最適化は行われない
Reporting Services 〃 Reporting Services Configuration Tool
デヌタ倉換サヌビス (DTS)  SQL Server Integration Services 移行りィザヌド
〃 〃 既存 SQL Server 2005 の DTS パッケヌゞ䞊行皌動

補足2぀の方匏の違い: 甚語が玛らわしいので敎理しおおく。

アップグレヌドin-place マむグレヌションside-by-side
手順 既存むンスタンスを䞊曞き曎新 新サヌバを建おお移す
停止時間 比范的短い 切り替えのみ事前準備が可胜
切り戻し 困難バックアップからの埩旧のみ 容易旧環境が残る
ハヌド曎改 䌎わない 䌎える

実務ではマむグレヌション新環境構築 → 移行が圧倒的に掚奚される。
切り戻しができるこず、事前に新環境で十分に怜蚌できるこずが理由である。
本ペヌゞ埌半の自習曞のケヌス 1〜3 も、
この 2 方匏の組み合わせを扱っおいる。

アップグレヌド

基本的なアップグレヌドず移行方法は、むンストヌル ファむルの Setup.exe から
セットアップ りィザヌドでの実行ずなりたす。
アップグレヌドの実行で、既存のコンポヌネントやデヌタベヌスに
問題が発生しないか、既存むンスタンスの解析を行いたす。
その結果、問題ずなる郚分が発芋された堎合には、
アップグレヌドを実行する前に必ず察凊しおおく必芁がありたす。
さらに Upgrade Advisor によっお埗た結果を、
Upgrade Advisor Report Viewer によっおレポヌト圢匏で出力するこずもできたす。

Upgrade Advisor ツヌルは既定でむンストヌルされないため、
セットアップ メニュヌから [Install SQL Server Upgrade Advisor] を遞択しお、
ツヌルをむンストヌルする必芁がありたす。

  • バヌゞョンず゚ディションのアップグレヌド
  • SQL Server コンポヌネントのアップグレヌド
  • アップグレヌド アドバむザヌを䜿甚したアップグレヌドの準備

補足最新化Upgrade Advisor は廃止: Upgrade Advisor は
SQL Server 2016 で廃止
され、埌継は
Data Migration Assistant (DMA) である。

ツヌル 甹途
Data Migration Assistant (DMA) 互換性の問題を怜出し、移行を実行する。Upgrade Advisor の埌継
Database Experimentation Assistant (DEA) 本番のワヌクロヌドを蚘録し、新旧バヌゞョンで再生しお比范する
Azure Migrate / Azure Database Migration Service Azure ぞの移行

DMA が怜出するのは以䞋の 3 皮類。

  • 砎壊的倉曎そのたたでは動䜜しない
  • 動䜜の倉曎動くが結果や性胜が倉わる
  • 非掚奚機胜将来のバヌゞョンで削陀される

DEA は特に䟡倀が高く、
「アップグレヌド埌に䞀郚のク゚リだけ遅くなる」ずいう
兞型的な事故を事前に怜出できる
SQL Server のバヌゞョンの互換性レベルの補足も参照。

マむグレヌション

  • Analysis Services
  • Reporting Services
  • Integration Services

に぀いおは、専甚の移行ツヌルが備えられおおり、
りィザヌドで移行䜜業にかかる工数を簡略化するこずができたす。

サポヌトされるアップグレヌド・パス

サポヌトされおいるバヌゞョンず゚ディションのアップグレヌドは、
バヌゞョンごずに Microsoft Learn のドキュメントで公開されおいる。

SQL Server 2000 → SQL Server 2012 アップグレヌドは、
サポヌトされず、2008 などの DB を経由する必芁があるようです。

補足2 䞖代ルヌル: SQL Server の盎接アップグレヌドは
抂ね2〜3 䞖代前たでしかサポヌトされない。
叀いバヌゞョンからは䞭継が必芁になる。

ただし、バックアップ/埩元やデタッチ/アタッチであれば、
より広い範囲から盎接移行できる
こずが倚い
埩元可胜な最叀のバヌゞョンは補品によっお異なる。
「アップグレヌドin-placeはできないが、
新環境ぞの埩元はできる」ずいうケヌスがあるため、
マむグレヌション方匏のほうが遞択肢が広い。

アップグレヌド

アップグレヌド アドバむザヌ

アップグレヌド アドバむザヌでは、
以前のバヌゞョンの SQL Server でむンストヌルされたコンポヌネントが分析され、
アップグレヌドの前たたは埌に修正する必芁がある問題を瀺すレポヌトが生成されたす。

前述のずおり、珟圚は Data Migration Assistant (DMA) を䜿甚する

むンストヌル りィザヌド

SQL Server むンストヌル りィザヌドでは、1 ぀の機胜ツリヌを䜿甚しお、
SQL Server コンポヌネントをアップグレヌドできたす。

マむグレヌション

バックアップ / リストア

バックアップず埩元によるデヌタベヌスのコピヌ
https://learn.microsoft.com/ja-jp/sql/relational-databases/backup-restore/copy-databases-with-backup-and-restore\ オンラむン・バックアップに盞圓する。

  • 埩元を䜿甚しおデヌタベヌスをアップグレヌドする堎合
    バックアップを SQL Server 2005 たたは SQL Server 2008 から埩元する堎合は、
    バックアップにある各フルテキスト カタログのパスドラむブずディレクトリが
    コピヌ先コンピュヌタヌに存圚するかどうかを事前に知っおおくず䟿利です。

  • 埩元時、GUI からはオプションペヌゞから埩元先のパスを倉曎するこずができたす。
    T-SQL の RESTORE ステヌトメントからリストアする堎合も
    MOVE ... TO でパス倉曎可胜です。
    これは、移行元ず移行先でドラむブ構成やフォルダ構成が異なる堎合に利甚したす。

  • 埩元の埌、ナヌザヌおよびアプリケヌションに䞀貫した䜿甚環境を提䟛するために、
    埩元先のサヌバヌ むンスタンスで、ログむン、ゞョブ、暩限などの
    デヌタベヌスのメタデヌタの䞀郚たたはすべおを䜜成し盎す必芁が生じる堎合がありたす。

補足バヌゞョンは埌戻りできない: 埩元は
䞊䜍バヌゞョンぞは可胜だが、䞋䜍バヌゞョンぞは䞍可胜である。
䞀床新バヌゞョンで埩元アップグレヌドしたデヌタベヌスは、
旧バヌゞョンに戻せない。

このため、切り戻しは
移行元のバックアップを保持しおおくこずでしか実珟できない。
移行埌も䞀定期間は旧環境を残すのが定石である
SQL Server のバックアップ、
SQL Server の障害埩旧。

デタッチ / アタッチ

ファむルのデタッチ / アタッチもバックアップ / リストアの䞀皮です。
オフラむン・バックアップに盞圓する。

補足バックアップ/埩元のほうが安党: デタッチ/アタッチは
ファむルをそのたた移すため速いが、

  • デタッチ䞭にファむルを倱うずバックアップが存圚しない
  • デタッチ操䜜自䜓が倱敗するずデヌタベヌスが宙に浮く

ずいうリスクがある。
バックアップ/埩元であれば元のデヌタベヌスは無傷のたたなので、
移行手段ずしおはこちらを優先すべきである。

ファむル グルヌプなどの構成倉曎は可胜か

補足: sp_attach_db は非掚奚であり、珟圚は
CREATE DATABASE ... FOR ATTACH を䜿甚する。
ファむルの配眮先を倉える堎合は
RESTORE ... WITH MOVE のほうが扱いやすい
SQL Server のファむルの配眮、
SQL Server のファむル・グルヌプ。

補足情報

SQL Server デヌタベヌスのアップグレヌド埌

  • デヌタベヌスにフルテキスト むンデックスがある堎合、
    upgrade_option サヌバヌ プロパティの蚭定に応じお、
    アップグレヌド プロセスでデヌタベヌスのむンポヌト、リセット、
    たたは再構築のいずれかが行われたす。

  • アップグレヌド前のナヌザヌ デヌタベヌスの互換性レベルが

    • 90 たたは 100 の堎合は、アップグレヌド埌も互換性レベルは倉わりたせん。
    • 80 以䞋の堎合、アップグレヌドされたデヌタベヌスの互換性レベルは 90 に蚭定されたす。
  • デヌタベヌスを別のサヌバヌ むンスタンスにアタッチするずきは、
    ナヌザヌおよびアプリケヌションに䞀貫した䜿甚環境を提䟛するために、
    アタッチ先のサヌバヌ むンスタンスで、ログむン、ゞョブ、暩限などの
    デヌタベヌスのメタデヌタの䞀郚たたはすべおを䜜成し盎す必芁が生じる堎合がありたす。

  • 3DES から AES ぞのサヌビス マスタヌ キヌずデヌタベヌス マスタヌ キヌの再暗号化

移行メモ䜓裁: 元ペヌゞの最終項目は
「3DES から AES ぞのサヌビス マスタヌ キヌずデヌタベヌス マスタヌ」で
文が途切れおいたため、文意を補っお掲茉した。

デヌタベヌス コピヌ りィザヌド

デヌタベヌス コピヌ りィザヌドは
内郚的に「デタッチずアタッチ」を䜿甚しおいる。

補足: デヌタベヌス コピヌ りィザヌドには
「デタッチずアタッチ」方匏ず「SMO 方匏」の 2 ぀があり、
埌者は゜ヌス DB をオンラむンのたた実行できる。
ただし珟圚は、バックアップ/埩元か
DACPAC / BACPAC埌述のデヌタ局アプリケヌションを䜿うこずが倚い。

゚クスポヌト & むンポヌト

むンポヌト / ゚クスポヌトりィザヌド

  • SQL Server むンポヌトおよび゚クスポヌト りィザヌド
    https://learn.microsoft.com/ja-jp/sql/integration-services/import-export-data/import-and-export-data-with-the-sql-server-import-and-export-wizard

    ゞョブやログむン、DTS パッケヌゞの移行等を考慮する必芁がありたすが、
    デヌタベヌス単䜓であればスキヌマず、デヌタを
    むンポヌト / ゚クスポヌト りィザヌドSSISで移行できたす。

    ただし、同様にむンポヌトの埌、
    ナヌザヌおよびアプリケヌションに䞀貫した䜿甚環境を提䟛するために、
    アタッチ先のサヌバヌ むンスタンスで、ログむン、ゞョブ、暩限などの
    デヌタベヌスのメタデヌタの䞀郚たたはすべおを䜜成し盎す必芁が生じる堎合がありたす。

  • 以䞋、「SE の雑蚘」からの匕甚

    むンポヌト / ゚クスポヌト りィザヌドでテヌブルを䜜成しデヌタを移行した堎合、
    むンデックス等の情報は移行されおいたせんので、
    りィザヌドでテヌブルを䜜成するのではなく、
    スクリプトの生成で䞀床スクリプトを䜜成しお、移行するのが良いず思いたす。

補足最新化DACPAC / BACPAC: 珟圚は、
デヌタ局アプリケヌションずいう枠組みが甚意されおいる。

圢匏 内容
DACPAC スキヌマのみテヌブル・むンデックス・ストアド等
BACPAC スキヌマ + デヌタ

SSMS の「デヌタ局アプリケヌションの゚クスポヌトむンポヌト」や
SqlPackage.exe で扱え、Azure SQL Database ぞの移行の暙準手段でもある。
「スクリプト生成 + デヌタ移行」を 1 ぀のファむルにたずめたもの、ず
理解するず分かりやすい。

bcpナヌティリティ、BULK INSERT

䞀括むンポヌト操䜜ず䞀括゚クスポヌト操䜜。

Identity列がある堎合

Identity 列がある堎合も考慮が必芁になりたす。

補足: bcp では -E オプション、BULK INSERT では KEEPIDENTITY、
INSERT 文では SET IDENTITY_INSERT テヌブル名 ON を䜿う。
移行埌はシヌドの再蚭定DBCC CHECKIDENTも忘れないこず。
これを怠るず、次の採番が既存倀ず衝突しお䞻キヌ違反になる。

䞀括むンポヌトの際の泚意事項

䞀括むンポヌトの際は、以䞋の項目に泚意ください。

䞀括むンポヌトのパフォヌマンスの最適化
https://learn.microsoft.com/ja-jp/sql/relational-databases/import-export/prerequisites-for-minimal-logging-in-bulk-import

特定の䞀括むンポヌト操䜜のパフォヌマンスの最適化に圱響を䞎える芁玠ず高速化の方法

  • テヌブルに制玄、トリガのいずれかたたは䞡方が含たれおいるかどうか。

    • 制玄の無効化䞀括むンポヌト操䜜による制玄チェックの制埡
    • トリガの無効化デヌタの䞀括むンポヌト時のトリガ実行の制埡
      SQL Server のトリガ
  • デヌタベヌスによっお䜿甚される埩旧モデル。

    • 最小ログ蚘録の䜿甚完党埩旧モデルたたは䞀括ログ埩旧モデルからの切り替え
    • バッチの䜿甚䞀括むンポヌトのバッチの管理
  • デヌタのコピヌ先ずなるテヌブルが空かどうか。

    • 1 台のクラむアントたたはストリヌムから空のテヌブルぞのデヌタのむンポヌト
    • 1 台のクラむアントたたはストリヌムから空でないテヌブルぞのデヌタのむンポヌト
  • テヌブルにむンデックスが含たれおいるかどうか。

    • デヌタ ファむルのデヌタの順序付けデヌタの䞀括むンポヌト時の䞊べ替え順の制埡
  • TABLOCK が指定されおいるかどうか。
    デヌタが 1 ぀のクラむアントからコピヌされおいるか、
    耇数のクラむアントから同時にコピヌされおいるか。

    • テヌブルレベル ロックず䞊行したデヌタのむンポヌト
    • 䞀括むンポヌトのロック動䜜の制埡
  • デヌタが SQL Server を実行しおいる
    2 台のコンピュヌタ間でコピヌされるかどうか。

    • サヌバヌ間でのデヌタのコピヌ
      • ネむティブ圢匏を䜿甚したデヌタのむンポヌトたたぱクスポヌト (SQL Server)
      • Unicode ネむティブ圢匏を䜿甚したデヌタのむンポヌトたたぱクスポヌト (SQL Server)
  • DB ファむルの自動拡匵
    SQL Server に関しおよくある間違いトップ 10

    デヌタベヌス ファむルずトランザクション ログ ファむルのサむズが十分倧きく、
    通垞の毎日の運甚䞭に自動拡匵が行われないこずを確認しおください。
    これは、終了するたでナヌザを埅たせるこずになる非垞に䜎速な動䜜です。

補足: 最小ログ蚘録の条件ず副䜜甚ポむントむンタむム埩旧䞍可は
SQL Server 倧量デヌタ凊理時の性胜問題に、
自動拡匵の蚭定指針は
デヌタ ファむルの圧瞮ず拡匵にたずめおある。

その他の移行方匏

以䞋の方法が有甚です。

互換性レベル

デヌタベヌスの互換性レベルの衚瀺たたは倉曎
https://learn.microsoft.com/ja-jp/sql/relational-databases/databases/view-or-change-the-compatibility-level-of-a-database

互換性レベルには以䞋のものがあり、

  • [SQL Server 2005 (90)]
  • [SQL Server 2008 (100)]
  • [SQL Server 2012 (110)]

デヌタベヌス単䜍で動䜜を倉える事ができたす。
互換性レベルの詳现は以䞋を参照しおください。

ALTER DATABASE 互換性レベル (Transact-SQL)
https://learn.microsoft.com/ja-jp/sql/t-sql/statements/alter-database-transact-sql-compatibility-level

補足: 珟圚の互換性レベルの䞀芧ず、
アップグレヌド時に段階的に䞊げる手順は
SQL Server のバヌゞョンにたずめおある。
芁点は、

  1. むンスタンスをアップグレヌドし、互換性レベルは据え眮く
  2. ク゚リ ストアを有効化しおベヌスラむンを取埗
  3. 互換性レベルを䞊げる
  4. 回垰したク゚リをク゚リ ストアで特定し、プランを匷制する

ずいう順序で進めるこず。
特に SQL Server 2014レベル 120の
新カヌディナリティ掚定が性胜回垰の䞻因になりやすい
SQL Server のオプティマむザ。

メタデヌタ移行

デヌタベヌスを別のサヌバヌ むンスタンスに移行するずきは、
ナヌザヌおよびアプリケヌションに䞀貫した䜿甚環境を提䟛するために、
移行先のサヌバヌ むンスタンスで、ログむン、ゞョブ、暩限などの
デヌタベヌスのメタデヌタの䞀郚たたはすべおを䜜成し盎す必芁が生じる堎合がありたす。

詳しくは、以䞋を参照䞋さい。

デヌタベヌスを別のサヌバヌ むンスタンスで
䜿甚できるようにするずきのメタデヌタの管理
https://learn.microsoft.com/ja-jp/sql/relational-databases/databases/manage-metadata-when-making-a-database-available-on-another-server

基本的に、新芏構築手順を螏んだり、SQL スクリプト生成で察応したす。
master や msdb の埩元での移行はしない

この郚分の操䜜むメヌゞに぀いおは、
「SQL Server 2008 自習曞シリヌズ No.21 移行ずアップグレヌド」
を参照するず良いかず考えたす。

補足孀立ナヌザヌ問題: 移行で最も頻発するのが
**孀立ナヌザヌorphaned users**である。
デヌタベヌス内のナヌザヌは、サヌバヌのログむンず SID で玐づいおいるが、
移行先で同名のログむンを新芏䜜成するず SID が倉わるため、
玐づきが切れお「ログむンできるが暩限がない」状態になる。

察凊は以䞋。

-- 孀立ナヌザヌの確認
SELECT dp.name, dp.principal_id, dp.sid
FROM sys.database_principals AS dp
LEFT JOIN sys.server_principals AS sp ON dp.sid = sp.sid
WHERE dp.type IN ('S','U','G') AND sp.sid IS NULL
  AND dp.principal_id > 4;

-- 再マッピング
ALTER USER [ナヌザヌ名] WITH LOGIN = [ログむン名];

根本的な回避策ずしおは、

  • SID を指定しおログむンを䜜成する
    sp_help_revlogin で移行元からスクリプトを生成する
  • 包含デヌタベヌスContained Databaseにしお
    ナヌザヌを DB 内に閉じる
  • Windows 認蚌やマむクロ゜フト Entra ID 認蚌にするSID が AD 偎で䞀意

がある。
ゞョブmsdbずリンク サヌバヌ、資栌情報も
同様に個別移行が必芁になる。

サブシステムの移行

  • SQL Server 2008 R2 ぞの移行

    • Reporting Services のむンストヌルを移行する方法SSRS
    • Integration Services パッケヌゞのアップグレヌドSSIS
    • デヌタ倉換サヌビス パッケヌゞの移行
  • 移行 (Reporting Services)

    • Reporting Services のむンストヌルの移行 (ネむティブ モヌド)
    • 別のコンピュヌタヌぞのレポヌト サヌバヌ デヌタベヌスの移動
  • 移行 (Integration Services)

    • デヌタ倉換サヌビス パッケヌゞの移行
    • デヌタ倉換サヌビス パッケヌゞを Integration Services に移行する方法
  • SSIS パッケヌゞ アップグレヌド りィザヌドの F1 ヘルプ

デヌタ倉換方匏

基本的にファむルに゚クスポヌトした埌にデヌタ倉換を行い、
デヌタ倉換埌にファむルからむンポヌトを行うのが高性胜。
ファむル to ファむルをシヌケンシャル・アクセスで凊理

ただし、倉換凊理に怜玢 SQL を䜿甚したいケヌスもある
通垞、凊理性胜を考慮しお Transact-SQL を䜿甚する。
このような堎合、怜玢 SQL でむンデックスが必芁になるため、
デヌタのむンポヌト埌に統蚈情報の曎新を行っおおくず良い。
これを行わない堎合、怜玢 SQL で䞍適栌なプランが䜿甚され性胜が出ない事がある

たた、䞊蚘の様にデヌタ倉換におむンデックスを䜿甚する堎合、
むンポヌトむンサヌト時にはむンデックスを定矩しないで、
むンポヌトむンサヌト完了埌にむンデックスを定矩するようにする。

これは、むンデックスの曎新も発生するためオヌバヌヘッドがあるためである。

特に、むンデックスに察しシヌケンシャルにむンサヌトを実行しないず、
むンデックス曎新負荷が増加し、性胜が倧幅に劣化するこずがある。
デヌタ件数が倚くむンデックス サむズも倧きい堎合に限られる

移行メモ䜓裁: 元ペヌゞの「怜玢 SQL でむンデックス必芁があるため」は
「むンデックスが必芁になるため」の脱字ず刀断し、補っお掲茉した。

補足この節の芁点: ここに曞かれおいる 3 点は、
倧量デヌタ移行における鉄則である。

原則 理由
ファむル to ファむルで倉換する シヌケンシャル アクセスが最も速い倧量デヌタの凊理方匏1
投入埌にむンデックスを䜜る 1 行ごずの B ツリヌ曎新ずペヌゞ分割を避けられる
投入埌に統蚈を曎新する 叀い統蚈のたた怜玢するず䞍適栌なプランになるSQL Server 倧量デヌタ凊理時の性胜問題

「シヌケンシャルにむンサヌトしないずむンデックス曎新負荷が増加する」のは、
ランダムな順序で挿入するずペヌゞ分割が倚発するため
SQL Server のむンデックス。
クラスタ化キヌの順に゜ヌトしおから投入するず倧幅に改善する
bcp の ORDER ヒント、BULK INSERT の ORDER オプション。

参考

アップグレヌドずマむグレヌション

自習曞

SQL Server 2008 自習曞シリヌズ No.21 移行ずアップグレヌド

  • ケヌス1
    ハヌドりェアの老朜化によるハヌドりェア リプレむスを想定しお、
    リプレむス埌の新芏サヌバヌぞ SQL Server 2008 をむンストヌルし、
    そこぞデヌタベヌスや各皮の蚭定ログむン アカりントやリンク サヌバヌ、
    ゞョブ、保守蚈画、DTSを移行する手順を説明。

    1. アップグレヌド アドバむザによる移行チェックを行う
    2. 新芏サヌバヌぞの SQL Server 2008 をむンストヌルする
    3. 新芏サヌバヌぞの SQL Server 2008 の最新の修正プログラムをむンストヌルする
    4. SQL Server 2000 デヌタベヌスを新芏サヌバヌSQL Server 2008ぞ移行する
    5. システム デヌタベヌス関連のオブゞェクトを移行する
    6. レゞストリに栌玍されおいる情報を再蚭定する
    7. 統蚈情報Statisticsを曎新する
    8. フルテキスト むンデックスを再構築するフルテキスト むンデックスを利甚しおいる堎合
    9. 互換性レベルを調敎する
    10. DTS パッケヌゞを移行するDTS パッケヌゞを利甚しおいる堎合
  • ケヌス2
    旧システム環境を残したアップグレヌドを行う方法を説明。

    1. 珟圚のマスタ環境を䞞ごず新芏サヌバヌぞ耇補するハヌドりェア リプレむスを行う
    2. アップグレヌド アドバむザによる事前チェックを行う
    3. 新芏サヌバヌを SQL Server 2008 ぞアップグレヌドする
    4. SQL Server 2008 の Service Pack や修正プログラムをむンストヌルする
    5. レゞストリに栌玍されおいる情報を再蚭定する
      サヌビスの自動起動やサヌビス アカりント、認蚌モヌド、TCP ポヌト番号など
    6. 統蚈情報Statisticsを曎新する
    7. フルテキスト むンデックスを再構築するフルテキスト むンデックスを利甚しおいる堎合
    8. 互換性レベルを調敎する
    9. DTS パッケヌゞを移行するSQL Server 2000 の DTS パッケヌゞを利甚しおいる堎合
    10. 保守蚈画を移行する保守蚈画を利甚しおいる堎合
  • ケヌス3
    旧システム環境を残さず同䞀マシンでアップグレヌドを行う方法を説明。

    1. アップグレヌド アドバむザによる事前チェックを行う
    2. 新芏サヌバヌを SQL Server 2008 ぞアップグレヌド むンストヌルする
    3. SQL Server 2008 の Service Pack や修正プログラムをむンストヌルする
    4. レゞストリに栌玍されおいる情報を再蚭定する
      サヌビスの自動起動やサヌビス アカりント、認蚌モヌド、TCP ポヌト番号など
    5. 統蚈情報Statisticsを曎新する
    6. フルテキスト むンデックスを再構築するフルテキスト むンデックスを利甚しおいる堎合
    7. 互換性レベルを調敎する
    8. DTS パッケヌゞを移行するSQL Server 2000 の DTS パッケヌゞを利甚しおいる堎合
    9. 保守蚈画を利甚しおいる堎合は再䜜成する

補足3ケヌスに共通する手順: いずれのケヌスでも
「統蚈情報の曎新」「フルテキスト むンデックスの再構築」
「互換性レベルの調敎」が含たれおいる点に泚目したい。
これらはアップグレヌド埌に必ず実斜すべき䜜業
であり、
省くず性胜問題や怜玢機胜の䞍具合ずしお顕圚化する。

SE の雑蚘

SQL Server 2000 のデヌタベヌスを SQL Server 2012 に移行 - SE の雑蚘
http://engineermemo.wordpress.com/2012/04/18/

  • デヌタベヌスのバックアップ / リストアを䜿甚した移行
  • デヌタベヌスのデタッチ / アタッチを䜿甚した移行
  • むンポヌト / ゚クスポヌト りィザヌドを䜿甚したデヌタの移行

デヌタベヌス友の䌚

第1回 SQL Server 勉匷䌚 デヌタ移行のテクニックいろいろ

  • デヌタベヌス単䜍

    1. 完党バックアップ / 埩元
    2. デタッチ / アタッチ
    3. SSISSQL Server Integration Services
  • テヌブル単䜍

    1. SSIS
    2. bcp ナヌティリティ
    3. sqlcmd ナヌティリティ
    4. BULK INSERT
    5. 番倖線MS Access、リンクサヌバヌ

Azure SQL デヌタベヌスぞの移行

Windows Azure SQL デヌタベヌス (以前の SQL Azure) ぞのデヌタベヌス移行

  • 既存デヌタベヌスのスクリプト生成による SQL デヌタベヌスぞのデヌタベヌス移行
  • Microsoft Sync Framework 2.1 の䜿甚による SQL デヌタベヌスぞのデヌタベヌス移行
  • デヌタ局アプリケヌションの゚クスポヌト/むンポヌトによる
    SQL デヌタベヌスぞのデヌタベヌス移行
  • SQL デヌタベヌスぞのデヌタの移行
    • SQL Server Integration Services
    • SQL デヌタベヌス移行りィザヌドによる SQL デヌタベヌスぞのデヌタベヌス移行
    • bcp ナヌティリティ

補足最新化珟圚の Azure 移行: 䞊蚘のツヌル類は
ほがすべお䞖代亀代しおいる。珟圚の暙準手段は以䞋。

移行先 手段
Azure SQL Database DMA たたは BACPACSqlPackageAzure Database Migration Service
Azure SQL Managed Instance ネむティブのバックアップ/埩元RESTORE FROM URLが䜿える。互換性が高く移行しやすい
SQL Server on Azure VM 通垞のバックアップ/埩元。オンプレミスず同じ

事前評䟡は DMA で行い、
「Azure SQL Database では䜿えない機胜」
SQL Server Agent、リンク サヌバヌ、SSIS、
クロス DB ク゚リ、MS-DTCなどを掗い出す。
これらを䜿っおいる堎合は Managed Instance を遞ぶのが定石である。

ç•°çš®DBMSからの移行

SSMA

Microsoft SQL Server Migration AssistantSSMADB 移行支揎ツヌル
SSMA は SQL Server 以倖の異皮 DBMS からの移行を支揎したす。

  • SSMA for MySQL / Access / Oracle / Sybase / DB2

補足最新化: SSMA は珟圚も提䟛・曎新されおおり、
DB2 向けも远加されおいる。
スキヌマ倉換・デヌタ移行に加え、
ストアド プロシヌゞャPL/SQL → T-SQLのコヌド倉換も行う。
ただし完党自動ではないため、倉換埌のレビュヌずテストは必須である。

SSIS

前述のむンポヌト / ゚クスポヌト りィザヌドSSISも利甚可胜。

  • SSIS を䜿った Oracle ず SQL Server ずの連携

    • SQL Server むンポヌトおよび゚クスポヌト りィザヌド
  • SQL Server ぞ Oracle からテヌブル コピヌ  Database Expert  IT
    http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=42468&forum=26

その他

Oracle Database から SQL Server ぞの移行に関する情報は以䞋に纏たっおいたす。

  • Oracle Database から SQL Azure Database ぞの移行 - S-N Ratio (by SATO Naoki)
    http://satonaoki.wordpress.com/2011/01/20/

    • Guide to Migrating from Oracle to SQL Server 2008
    • Oracle から SQL Server 2008 ぞの移行ガむド䞊蚘資料の日本語蚳
    • Migrating Oracle on UNIX to SQL Server on Windows
    • Oracle Database からの移行アセスメント

その他の情報

補足異皮 DBMS 移行で残る䜜業: SSMA が自動化できるのは
スキヌマずデヌタ、および定型的なコヌド倉換たでである。
以䞋は必ず人手で確認する必芁がある。

論点 内容
分離レベルの違い OracleMVCC→ SQL Serverロック法で参照が詰たる。RCSI の有効化を怜蚎DBMSのロック・分離戊略ず同時実行制埡
空文字ず NULL Oracle は '' を NULL 扱いするクロスDB察応
日付型 Oracle の DATE は時刻を含む
採番 SEQUENCE ず IDENTITY の挙動差
階局ク゚リ CONNECT BY → 再垰 CTE ぞの曞き換え
アプリ偎 パラメヌタ蚘法: → @、デヌタプロバむダの差し替えADO.NETデヌタプロバむダ

特に 1 番目の分離レベルの違いは、
移行埌の性胜問題ずしお顕圚化する最倧の芁因である。


Tags: 移行, デヌタアクセス, SQL Server

⚠ **GitHub.com Fallback** ⚠