HomeTravel ReportLocal FoodRail&BusAirportMileagemiscAbout Me
TechWiki
Updated : January 2011

OracleXEでJA16SJISの利用 Ubuntu環境編

Oracle Express Edition をインストールした場合、データベースのキャラクタセットが「AL32UTF8」となっており、従来の「JA16SJIS」などを使用したい場合にデータベースの変更が「alter database」ではできない。

データベースのキャラクタセットとして「JA16SJISorJA16SJISTILDE」などを使用したい場合は、インスタンスの再作成を行うこととなる。

Express Editionではライセンス上の制約から複数インスタンスを同一のホストで稼動させることができない(複数のインスタンスを起動すると「USER: terminating instance due to error 44410ORA-44410 XE edition single instance violation error.となり起動できない。)ため、以下のような対応を取ることとなる。

(1)初期データベース(XE)を削除して再作成する。

(2)別のインスタンスを作成して、交互に切り替えて利用する。

     

デフォルト(初期)データベースの削除手順

デフォルトのデータベースとして1GB程度のディスク領域を使用しているので、不要な場合は以下の手順で削除する。

データベースの削除

Oracleインスタンスを停止して、drop databaseを行う。

sqlplus /nolog

connect / as sysdba

shutdown abort

startup restrict mount

drop database;



 

不要なファイルの削除

 drop databaseにより以下のファイルが削除される

(1)デフォルトのインスタンスのspfile

$ORACLE_HOME/dbs/spfileXE.ora

(2)デフォルトのインスタンスの制御ファイル、データファイル、undoなど

/usr/lib/oracle/xe/oradata/XE/*

/usr/lib/oracle/xe/app/oracle/admin/XEの下のダンプ用ディレクトリ中のファイルは削除されないので不要であれば、削除する。



 

新規Oracleインスタンスの作成

新規に以下のようなデータベース環境を作成する

SID                            ORCL

キャラクタセット    JA16SJISTILD

ディレクトリ体系        /oradata/orcl

CONF    構成情報(initORCL.ora

DBF    データベースファイル(*.dbf

DUMP    ダンプ類

     

データベース格納用ディレクトリの作成

必要なディレクトリを作成する。

sudo mkdir /oradata

sudo chown dbadmin.dbadmin /oradata

mkdir /oradata/orcl

mkdir /oradata/orcl/conf

mkdir /oradata/orcl/dbf

mkdir /oradata/orcl/dump

mkdir /oradata/orcl/dump/adump

mkdir /oradata/orcl/dump/bdump

mkdir /oradata/orcl/dump/cdump

mkdir /oradata/orcl/dump/udump

chmod ?R 775 /oradata

pfileの作成

テキスエディタなどでpfileを作成して格納する

例)/oradata/orcl/conf/initORCL.ora

db_name='ORCL'

control_files=/oradata/orcl/dbf/control.dbf'

user_dump_dest=/oradata/orcl/dump/udump

audit_file_dest=/oradata/orcl/dump/adump

background_dump_dest=/oradata/orcl/dump/bdump

core_dump_dest=/oradata/orcl/dump/cdump

shared_pool_size=128M

undo_management='AUTO'

undo_tablespace='UNDO'

インスタンスの起動

ORACLE_SID=ORCL

sqlplus / as sysdba

startup nomount ?pfile=/oradata/orcl/conf/initORCL.ora

データベース作成

create database ORCL

logfile group 1 (‘/oradata/orcl/dbf/redo1.dbf') size 32M,

group 2 (‘/oradata/orcl/dbf/redo2.dbf') size 32M,

group 3 (‘/oradata/orcl/dbf/redo3.dbf') size 32M

character set JA16SJISTILDE

national character set utf8

datafile ‘/oradata/orcl/dbf/system.dbf'

size 240M autoextend on

next 16M maxsize unlimited

extent management local

sysaux datafile ‘/oradata/orcl/dbf/sysaux.dbf'

size 48M autoextend on

next 8M maxsize unlimited

undo tablespace undo

datafile ‘/oradata/orcl/dbf/undo.dbf'

size 48M autoextend on

default temporary tablespace temp

tempfile ‘/oradata/orcl/dbf/temp.dbf'

size 8M autoextend on;

必要なスクリプトを実行

ユーザsys, systemで必要なスクリプト(カタログの作成など)を実行する。

@?/rdbms/admin/catalog.sql

@?/rdbms/admin/catproc.sql

connect system/manager

@?/sqlplus/admin/pupbld.sq

l

ユーザ用環境構築

ユーザ用のテーブルスペース(users)、ユーザ(dbadmin)を作成する。

create tablespace users

datafile /oradata/orcl/dbf/user.dbf'

size 300M autoextend on maxsize 1024M

extent management local

segment space management auto;

create user dbadmin identified by dbadmin

default tablespace users

temporary tablespace temp

quota unlimited on users;

grant connect, resource, dba to dbadmin;

インスタンスの切り替え

listener.oraの編集

XE, ORCLの2つのインスタンスとの接続ができるようリスナーの設定を行う。

/usr/lib/oracle/xe/app/oracle/product/10.2.0/server /network/adminにあるlistener.ora」ファイルのSID_LIST_LISTENER SID_LIST中に以下のようにXE, ORCLSIDを追加する。

(SID_DESC =

(SID_NAME = XE)

(ORACLE_HOME = /usr/lib/oracle/xe/app/oracle/product/10.2.0/server)

(SERVICE_NAME = XE)

)

(SID_DESC =

(SID_NAME = ORCL)

(ORACLE_HOME = /usr/lib/oracle/xe/app/oracle/product/10.2.0/server)

(SERVICE_NAME = ORCL)

)

データベースの開始のシェルの作成

XEのインスタンスの起動用のシェルと同様に、ORCL用の起動バッチを作成し、スタートメニューに追加する。

$ORACLE_HOME/config/scripts/startdb.sh16行目のORACLE_SIDを修正する。

ORACLE_HOME=・・・

ORACLE_SID=ORCL

LSNR=・・・

データベースの停止シェルの編集

メニュー「データベースの停止」から起動されるバッチファイルを編集する。インスタンスORCLを停止するため、サービスの停止を追加する。

$ORACLE_HOME/config/scripts/stopdb.sh 17行目のORACLE_SIDを修正する。

ORACLE_HOME=・・・

ORACLE_SID=ORCL

SQLPLUS=・・・

SQL*Plus実行用のシェルの作成

$ORACLE_HOME/config/scripts/runsqlplus.shから呼び出されているsqlplus.sh 8行目のORACLE_SID10行目のNLS_LANGを修正する。

export ORACLE_HOME

ORACLE_SID=ORCL

export ORACLE_SID

NLS_LANG=JAPANESE_JAPAN.AL32UTF8

  



Copyright(c) 2012-2013 T.F.T. All rights reserved.