SQL Serverバージョンアップ時の問題と解決方法について pptx

Shared by: uzd19483
-
Stats
views:
409
posted:
2/1/2010
language:
Japanese
pages:
10
Document Sample
scope of work template
							SQL Serverバージョンアップ時の問題
        と解決方法について
      稲垣 智浩(CatTail)




                         1
                  はじめに
• 弊社は生産管理パッケージを開発/販売してします。
• 元々はメインフレームやオフコンで開発していたシステムをWindows
  に移植し、その際、データベースとしてはSQL Serverを選択しました。
• その当時のバージョンはSQL Server 6.0/6.5で、以降、SQL Serverが
  バージョンアップする度に対応を行ってきました。
• 今回は、その経験を元に対策した方法を発表したいと思います。




                                                  2
    SQL Server 6.0/6.5から7.0以降へ
• 項目名に記号類が使えなくなった。
  項目名の先頭が全角の数字でもエラーになる。(漢数字はOK)
  – 項目名を変更して対応。
    例)図# → 図番
• ソート順が不定になった。
  – ORDER BYを必ず指定するようにプログラムを変更。
• インストール時のデフォルトの照合順序がバイナリ順から
  JAPANESE_CI_ASに変更された。
  – インストール時に「バイナリ順」を指定して対応。




                                  3
                    SQL Server 2005
• DB-Libraryがサポート外になった。
  – 一時的な対応として、NTWDBLIB.DLLを%WINDIR%\SYSTEM32フォルダにコピー。
    これにより、DB-LibraryでSQL Server 2005にアクセスできるようになる。
  – 根本的な対応としては、ADOやADO.NETを使ってSQL Serverにアクセスする。
• 外部結合で *= や =* がサポートされなくなった。
  – プログラムをLEFT OUTER JOIN/RIGHT OUTER JOINに変更。
  – プログラムが変更できない場合、データベース互換レベルをSQL
    Server 2000(80)に変更することで対応可能。
    ※この場合、DMV等SQL Server 2005の機能が使えなくなるので注意。
• DTSがサポート外になった。
  – MSのダウンロードセンターから、Microsoft SQL Server 2005 用 Feature Packの中
    にあるMicrosoft SQL Server 2000 DTS デザイナ コンポーネントをダウンロードして
    インストールする。
    http://www.microsoft.com/downloads/details.aspx?FamilyID=50b97994-8453-
    4998-8226-fa42ec403d17&DisplayLang=ja



                                                                              4
            SQL Server 2005 Tips
• Windows Vistaでコンピュータ名に小文字が含まれる場合。
  – 照合順序がバイナリ順だとインストール時にエラーが発生する。
    対策としては、コンピュータ名を全て大文字に変更する。
    http://support.microsoft.com/kb/929105/ja
• ミラーリングについて
  – ADOでも対応可能。
    その場合、OLE DBプロバイダとしてSQLOLEDBではなくSQLNCLIを使う。
  – 障害時にフェイルオーバーしない。(タイムアウトが発生する)
    → ConnectionTimeout、CommandTimeoutの値を増やす。




                                                 5
                 その他Tips
• SQL Serverの権限について。
  – あくまでもSQL Serverのサービスアカウントの権限で動作します。
  – 例えばサービスアカウントとしてローカルシステムアカウントを指定した場合、別コ
    ンピュータへのアクセスはできません。
                   その他Tips
• SQL Serverインストール後にコンピュータ名を変更した場合。
  – select @@servername
  – @@servernameの内容が実際のコンピュータ名と違う場合、sp_dropserver
    @@servername を実行してサーバー情報を削除。
    その後、sp_addserver ‘実際のコンピュータ名’, local で実際のコンピュータ名を登
    録します。
  – その後、SQL Serverのサービスを再起動してください。
                       その他Tips
• BCPでインポートするテキストファイルに項目の途中に改行コードが含
  まれている場合の対応。
  – フォーマットファイルを作成することで正常にインポートできます。

項目名    データ型
郵便番号   VARCHAR(8)
住所     NVARCHAR(255)


                                      改行コード
                   その他Tips
• フォーマットファイルを指定しない場合
  bcp データベース名.dbo.住所一覧 in 住所一覧.txt -S . -t , -c
   – 列の間に改行コードが含まれていると、その行はスキップされる。


• フォーマットファイルを指定した場合
  bcp データベース名.dbo.住所一覧 in 住所一覧.txt -S . -f 住所一覧.fmt
   – 列の間に改行コードが含まれていても、正常にインポートされる。




              改行コード



                                                      9
                最後に
• PassJのメーリングリストやMSDNフォーラムで質問があった場合、
  (自分が回答できる内容であればですが)積極的に回答していますの
  で、 PassJのメーリングリストやMSDNフォーラムを活用してください。
  (あと、某匿名掲示板のデータベース板でも回答してたりしますw)




          以上、ご清聴ありがとうございました。