ソフトウェア開発者の日常

こだわりなく書きたいことを書いていきます。

Oracle 11g環境構築で悩んだこと3点

先日こちらの記事を書きました。
ajya.hatenablog.jp

この記事では触れませんでしたが、Oracle 11g環境構築で3点悩みました。

1点目:キャラクタセットを変更すべきかわからない

2.データベースの作成
先ほどと同じPDFの14~32ページを参考にして作成しました。
リスナーの構成は、画面で行ってファイルを作成してから、過不足ないかテキストエディタで開いて確認して、修正の必要があればバックアップをとったうえでテキストエディタで直した方が手っ取り早いと思います。
23ページのデータベース識別情報は、グローバル・データベース名とSIDは、同じにしました。入力例ではドメイン名を付けていますが、付けなくても大丈夫です。
28ページのセキュリティ設定は、エディションが違うからなのか、表示されませんでした。

Oracle 11gの環境構築 - ソフトウェア開発者の日常

参考にしたPDFの27ページの初期化パラメータに、キャラクタ・セットがあります。
既存環境がどのように設定されたかわからなかったので、キャラクタセット名/文字コードの確認方法を調べたら、以下のクエリでわかりました。

SELECT PARAMETER, VALUE
  FROM NLS_DATABASE_PARAMETERS
 WHERE PARAMETER IN ('NLS_CHARACTERSET', 'NLS_NCHAR_CHARACTERSET'); 

NLS_CHARACTERSETがJA16SJISTILDE、NLS_NCHAR_CHARACTERSETがAL16UTF16でした。
この値は初期値と同じだったので、変更をしないでインストールを続けました。

2点目:データベースに接続できない

3.クライアントからの接続の設定
こちらのページの「クライアントの接続情報の設定を行おう」を参考にして設定しました。
テストでは、ログインするユーザーをsystemに変更して試しました。

Oracle 11gの環境構築 - ソフトウェア開発者の日常

データベースができたので、データベース名と同一のユーザー名、途中で入力したパスワードを用いてユーザーができているのかな?と思っていました。
当然接続できません。
Enterprise Managerにログインして、ユーザーを見たところ、データベース名と同一のユーザー名のユーザーが存在しないので、改めて作成が必要だと理解しました。

f:id:AJYA:20161124151549j:plain
photo credit: stevegarfield Oracle Plane via photopin (license)

3点目:文字化けが解消されない

当初は、

6.システム環境変数の設定
システム環境変数に、変数名 NLS_LANG、変数値 Japanese_Japan.AL32UTF8を追加して、サーバー毎再起動しました。

Oracle 11gの環境構築 - ソフトウェア開発者の日常

を行っていませんでした。

こちらを先に行って、Webシステムからデータを参照すると、文字化けしていました。

7.データベースのエクスポート/インポート
expでデータベースをダンプして、impでデータベースをインポートしました。

Oracle 11gの環境構築 - ソフトウェア開発者の日常

システム環境変数の設定を行って、コマンドプロンプトを開きなおして、データベースのインポートを行っても、文字化けは解消しませんでした。

一度再起動してみようと、OS毎再起動をしたら文字化けは解消されました。
Oracleが起動済みの状態で、システム環境変数の設定を行っても、動的には反映されないということを理解しました。
このような設定をしないで済むように、初期の構築時にいろいろ試せばいのかもしれません。
今回は既存環境の移行なので、既存と同じとしています。