月別アーカイブ: 2015年12月

SQL Serverの照合順序を変更する

SQL Serverでは文字列比較の基準となる照合順序が設定できる。
例えば「大文字小文字を区別する」等である。

これはデータベース毎に設定可能で、特に指定していない場合はSQL Serverセットアップ時に設定したサーバーデフォルト値が適用される。

デフォルトと異なる照合順序をデータベースに設定した場合、トラブルが発生しやすい。
例えば、一時テーブルと作成し、それとデータベース内のテーブルをJOINするようなクエリはエラーになる。
これは、一時テーブルの照合順序はサーバーのデフォルト値になっており、
異なる照合順序でのon Table.col1=temptable.col1という比較が行えないためである。
on Table.col1=temptable.col1 collate Japanese_CI_ASのように、クエリの中で照合順序を指定すればエラーは発生しない。)

仕事の都合で照合順序の変更を余儀なくされたことがあったので、その手順をメモする。
なお、実際に行ったのはSQL Server 2012だが、2008 R2や2014でも同じだと思う。

・データベース単体の照合順序変更方法

以下のクエリを実行すれば良い。
対象のデータベース名をSampleDataBase、照合順序をJapanese_CI_AS_KS_WSとする。

・SQL Server(=システムデータベース)の照合順序変更方法

データベースが存在すると実行できないため、システムデータベースを除く全てのデータベースを削除する。
(復元が必要な場合はバックアップをとっておく。)

SQLのインストールディレクトリ内にSetup.exeがあるので、そこに移動する。
規定ではC:\Program Files\Microsoft SQL Server\110\Setup Bootstrap\Releaseである。
コマンドプロンプトからSetup.exeを以下のコマンドで実行する。

例えば、インスタンス名は規定のMSSQLSERVER、Windows認証でAdministratorがSQL Serverにログイン可能で、
照合順序をJapanese_CI_AS_KS_WSに変更したい場合は以下のようなコマンドを実行する。


なお、実行できない場合、インストールメディアのSetup.exeで試すとうまくいく場合がある。
理由は不明で、偶然かもしれないが、そういう場合もあった。


参考
データベースの照合順序の設定または変更
システム データベースの再構築

ExpressWebからCoreServerへのサーバー移転 3(ドメイン編)

前回で一通りサイトコンテンツを移動させ、一応アクセスまではできるようになった。
しかし、このままではドメイン名がCORESERVERのデフォルトのもののままになっている。
今まで使っていたドメインでCORESERVERに飛べるようにドメインの設定等を行う。

・CORESERVER側の設定

  1. ネームサーバーを作成する
    ここで「他社登録しているドメインを登録」をクリックする。
    現在利用しているドメイン名を入力し、「登録」をクリックする。
    CORESERVER4
  2. DNS設定を行う
    ここで「ドメインのDNS情報の設定」をクリックする。
    先ほど登録したドメインが表示されているので、それをクリックする。
    「当サービス内サーバーの自動DNS設定」で、CORESERVERで利用しているサーバーを選択し、画面下の「保存」をクリックする。
    CORESERVER5
  3. ドメイン情報を設定する
    再度CORESERVERのコントロールパネルを開き、「マイドメインを利用」をクリックする。
    Sub1にドメイン名を入れ、Mainは空欄にする。
    設定方法は色々だが、Mainにドメイン設定すると管理がめんどくさいような気がするし、
    以後別サイトを開設した場合も、Sub2,3…に追加するだけなのでわかりやすい。
    なお、「転送先URL」は空欄にする。転送してもどうしようもない。
    最後に「ドメイン追加」をクリックする。
    CORESERVER6
  4. ドメインとコンテンツディレクトリを同期させる
    「ドメインウェブ」配下の「同期設定」をクリックする。
    ディレクトリの部分にWORDPRESSをインストールしたディレクトリを入力し、
    「ドメイン設定(同期先)」で用いるドメインを選択し、「同期させる」をクリックする。
    こうしないと、ドメイン名でCORESERVERの自分のサーバーまでたどり着いても、そこから路頭に迷ってしまう。

以上で、CORESERVER側でドメインを受け入れる作業は完了した。


最後にドメインの設定を変更して作業は完了する。
結論から言えば、ドメインのネームサーバーを

プライマリネームサーバー
NS1.VALUE-DOMAIN.COM

セカンダリネームサーバー
NS2.VALUE-DOMAIN.COM
NS3.VALUE-DOMAIN.COM
NS4.VALUE-DOMAIN.COM
NS5.VALUE-DOMAIN.COM

に変更するだけで良い。
(参考: ネームサーバーの設定)

この辺は書くサービスごとに方法は異なると思うので割愛する。


以上で、ExpressWebからCORESERVERへの移行は完了である。
今のところは全く問題なく動作している。
少し気になっていたRSSの取得も、何も設定変更せず今までどおり記事取得できている。

いつかは自宅サーバーにしたいな。
でも、そうすると管理コストが面倒で、結局レンタルサーバーに戻るんだろうな。
インフラって本当に面倒だからね。仕方ないね。

ExpressWebからCoreServerへのサーバー移転 2(サーバー、WordPress編)

サーバー移転をするにあたって、まずWordPressの移動方法を調べた。
どうやらduplicatorというプラグインを使えばかなり簡単に移行できるようだ。
(参考: 「Duplicator」プラグインを使えばWordPressのサイトを丸ごと移行できる!)

ただ、このプラグインでこのサイトをパッケージ化しようとしたところ、エラーになって出来なかった。
どうもフォルダの権限問題のようで、ExpressWebのコントロールパネルから権限フルにしても無理だったので、
仕方なく諦め、手動での移行を行うことを決めた。

テスト環境で試行錯誤を繰り返し、ようやくできた。
どうも一部通常とは異なるやり方をしている箇所もあるが、こうやらないとできなかったので仕方が無い。
原因調査は置いておいて、実際に行った手順を記録する。

なお、俺がやったのは「現行のドメイン名をそのまま用いる」移行であるので、ご了承いただきたい。


・現行サーバー(ExpressWeb)のWordPressデータをローカルに保存する

  1. FTPでWordPressで用いていたファイルを全てローカルにダウンロードする
    通常ならホーム\サイト名\wwwroot内の全ファイル、フォルダになると思う。
  2. MySQLデータをエクスポートする
    ExpressWebなら、コントロールパネルから「データベース」→「MySQL 5.1」で、
    WordPressに用いているデータベースの「データベースを参照」をクリックする。
    ExpressWeb
  3. phpMyAdminのページに移るので、DBログイン情報を入力し、ログインする
  4. WordPressで用いているDBを選択し、エクスポートを行う
    ExpressWeb2
    .sqlファイルがローカルにダウンロードされる

以上でWordPress関連データは全てローカルに保存できた。
後はこれを新サーバーに持って行き、設定を行えば良い。


・移行先サーバー(CORESERVER)にWordPressサイトコンテンツを移動させる。

  1. CORESERVERのコントロールパネルにログインする
    (正直、コントロールパネルわかりにくい。ExpressWebのがいかに使いやすかったか痛感)
  2. 「データベース」をクリックし、WordPress用のNySQLデータベースを作成する
    名前とパスワードは任意のもので良いが、文字コードは「UNICODE」にする。
    CORESERVER1
    一応、データベースが作成されるまでには1〜3分かかるそう。気長に待つ。
  3. WordPressをインストールする
    「CGIインストール」をクリックし、「WordPress 4.2 (ブログ/CMS)」の欄に任意のディレクトリ名を入力し、
    「インストール」をクリックする。
    CORESERVER2
    これも1〜3分かかるそう。気長に待つ。
  4. WordPressの初期設定を行う
    インストールが完了したら、再度「WordPress 4.2 (ブログ/CMS)」に先程入力したディレクトリ名を入力し、
    「開く」をクリックする
    初期設定画面が開かれるので、先ほど作成したDBを用いるようにWordPressを設定する
  5. ローカルに保存していた現行サイトのファイルを全て(wp-config.phpを除く)アップロードする
    具体的には、root/public_html/ディレクトリ名wp-admin等をFTPで移動させる
    ただし、注意点としてwp-config.phpだけは移動させない。
    wp-config.phpを書き換えればよいのだが、そのそもわざわざ移動させなければ良い、と思う。
  6. PhpMyAdminをインストールする
    コントロールパネルの「データベース」をクリックし、
    「■PhpMyAdmin自動インストール(MySQL管理)」の「インストール」をクリックする
    CORESERVEER3
    例によって1〜3分かかるそう。気長に待つ。
  7. 「■PhpMyAdmin自動インストール(MySQL管理)」の「自動」をクリックし、PhpMyAdminにアクセスする
    DB情報を入力し、ログインする
  8. DBデータをインポートする
    WordPressに用いたデータベースを選択し、全てのテーブルを選択、削除してください。
    削除が完了したら、「インポート」をクリックし、事前にエクスポートしていたsqlファイルを選択し、
    「実行」をクリックする。
    CORESERVER3

以上で、移行自体は完了だが、まだ不完全な部分がある。

CORESERVERのデフォルトのドメインを使ったままになっているため、
現行のドメインを用いれていない。

このあたりのことは次回まとめます。
もう眠いのです。

続き→ExpressWebからCoreServerへのサーバー移転 3(ドメイン編)

ExpressWebからCoreServerへのサーバー移転 1

今までこのブログはExpressWebで運用してきたんだけど、
この度ExpressWebがサービス終了という衝撃なニュースが入った。
安い上に素人の俺でも使えるわかりやすいレンタルサーバーだっただけに残念だ。
サポートもめちゃくちゃ丁寧で結構お世話になっていた。

まぁ、嘆いても仕方が無いので、サーバー移行を決意した。
ExpressWebはWindows Serverということが売りだったが、
結局WordPressとFTPでのファイル共有ぐらいでしか使っていない状態だったので、
Windows Serverというくくりは無くして移行先を探した。

条件は「月額500円程度」ぐらい。
そんなわけで吟味して、CORESERVER.JPのCORE-Aプランに決めた。
理由は4つ。
・安い(初期費用無し、12ヶ月契約で月397円)
・大容量(120GB)
・MySQLデータベース数無制限
・マルチドメイン無制限

負荷等を気にしなければかなりの複数サイトの運用も可能である。
要するに、コスパが非常に良い、と思う。

まぁ、サーバー移行という作業が初めてなので、四苦八苦した。
実際に移行した方法を次回まとめておこうと思う。
(特にDNSはどうすればいいのか???だった)

KB3114399でKB3055034の不具合が修正された

Windows UpdateによりOfficeファイルがWebDAVで開けなくなる問題だが、
ようやくMicrosoftが修正アップデートをしたようだ。

https://support.microsoft.com/en-us/kb/3114399

一応、直ったという報告もある。
https://www.reddit.com/r/sysadmin/comments/3vzmia/kb3114399_fixes_sharepoint_office_web_integration/

自分の環境ではまだ試せてないので、試してから追記する。


検証した。
どうやら問題なくWebDAVでのファイルオープンや保存ができるようになった模様。
[解決] KB3055034 適用後、Office 2010 アプリケーションがクラッシュする問題について


追記(2015/12/14)

自分の環境では再現できていないが、一部環境では「名前をつけて保存」時にまだ不具合がある模様。
HOME-BOX2
(「【HOME-BOX2】Office 2010 WebDAV接続不具合に関するご案内(12/10)」の項)

う~ん。これは困った。


追記(2016/02/24)

上記現象もKB3114750でようやく解消した模様。
https://support.microsoft.com/ja-jp/kb/3114750
よかったね。おめでとう。