OracleWindows Server

Windows 2008R2 に Oracle Database 11g を SJIS でセットアップ および Data Pump(データポンプ)使用可にする

2 Mins read

日本企業の金融系で使用されているOracleはまだまだSJISが多く使われている。
テストや開発環境構築時にSJISで立ち上げるための覚書

まとまってなくきたなくて。。。ごめん

●Oracle XEのデータベースをSJISで再構築
再作成後はデータポンプが使用できないので使用可能に設定する

/*========================================
■環境
========================================*/

Windows 2008R2 Standard SP1 (x64)
Oracle Database 11g Express Edition Release2 (11.2.0.2.0 – 64bit Production)

標準セットアップが正常に完了している前提(標準ではUTF-8になる)
SJISも「JA16SJIS」、「JA16SJISTILDETILDE」などあるから環境にあわせてください。今回は「JA16SJISTILDE」です。
文字コードについて

/*========================================
■データベースの再構築
========================================*/
前提、1インスタンス、1データベースとなるOracle
文字コード変更を行う場合、再作成が必要となる
XEでは複数インスタンスを作成できないので、
SIDを増やす方法ではなくインストール時のデータベースを削除し新しく再作成する
余談だが上位エディッションであれば複数インスタンス、複数データベースの運用が可能となる
その際はSIDを決め環境変数など設定が必要

・Dosプロンプトを管理者権限でオープンする

・データベースを削除するためのCleanUp.batが用意されている
CleanUp.batを走らせる

/*
C:\oraclexe\app\oracle\product\11.2.0\server\bin\CleanUp.bat
*/

・手作業で残ったファイルを削除
/*
cd C:\oraclexe\app\oracle\product\11.2.0\server\dbs
*/

/*
del *
*/

・新規データベースを作成する
データベースを作成するためのCreateDB.batが用意されている
文字コードを指定し、再作成する

この処理にはマシンスペックによるが30分から1時間はかかる

/*
cd C:\oraclexe\app\oracle\product\11.2.0\server\bin

CreateDB.bat -dbchar JA16SJISTILDE
*/

・システムのプロパティから環境変数を設定する
(存在しなければ設定する)
/*
ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server
ORACLE_SID = XE
PATH = C:\oraclexe\app\oracle\product\11.2.0\server\bin
NLS_LANG = JAPANESE_JAPAN.JA16SJISTILDE
*/

・DosプロンプトをCloseし管理者権限で再度オープンする
(環境変数を反映させるため)

・Oracleが起動しているかチェックする
/*
tasklist | find “oracle”
*/

・TNS Listnerの起動と確認
/*
lsnrctl.exe start
tasklist | find “TNSLSNR.EXE”
*/

・管理者アカウントのパスワードが設定されていないので再設定を行う
/*
sqlplus /nolog
connect sys as sysdba
*/

・パスワード[hogehoge]で設定 ※環境で変えてくださいね
/*
ALTER USER SYS IDENTIFIED BY “hogehoge”;
ALTER USER SYSTEM IDENTIFIED BY “hogehoge”;
*/

・登録ユーザーの確認とキャラクターセットの確認
/*
select username from dba_users;

select value from nls_database_parameters where parameter=’NLS_CHARACTERSET’;
*/

・パスワードの有効期限が180日になっているので無期限にする
(突然ロックされるので。。。環境によって変更してください)
/*
確認
select * from dba_profiles where resource_name = ‘PASSWORD_LIFE_TIME’;

select username,profile from dba_users;

無期限に変更
alter profile default limit password_life_time unlimited;
*/

・外部からの接続のためにWindows2008R2のファイアーウォール受信「TCP 1521」ポートを開けてあげること!

/*========================================
■Data Pump(データポンプ)
※他にもっと良い方法があれば教えて!
========================================*/

再作成後は「expdb, impdp」が使用不可能になっている
(メタデータ処理が出来ないエラーが出る)

正規版(お試し版で可)の11gR2のOracleを別マシンにインストールし以下のフォルダからファイルコピーする
「$ORACEL_HOME\rdbms\xml\xsl」フォルダごと
XEの「C:\oraclexe\app\oracle\product\11.2.0\server\rdbms\xml」の直下にコピー

「kupostdt.xsl」ファイルを作成し同じフォルダへコピー
参照先(https://forums.oracle.com/forums/thread.jspa?messageID=9958876)
xslフォルダ内のファイルは全部で180ファイルになる

・sysユーザでログインし以下のコマンドを実行すると使用可能となる
SQL>execute dbms_metadata_util.load_stylesheets

/*========================================
■個別スキーマ(ユーザー)作成
========================================*/

/*
[Oracle 11g XE re2]
ユーザー名は大文字で登録される’ADMINUSER’ ※環境で変えてくださいね
*/

create user ADMINUSER
identified by hogehoge
default tablespace USERS
temporary tablespace TEMP;
/* 指定の表領域を無制限に使用できるように設定します。 */
ALTER USER ADMINUSER QUOTA UNLIMITED ON USERS;

col USERNAME for a10
col ACCOUNT_STATUS for a20
col DEFAULT_TABLESPACE for a20
col TEMPORARY_TABLESPACE for a20
select USERNAME,ACCOUNT_STATUS,DEFAULT_TABLESPACE,TEMPORARY_TABLESPACE from dba_users where USERNAME=’ADMINUSER’;

/* 権限付与・確認 */
GRANT CONNECT,RESOURCE TO ADMINUSER;
GRANT UNLIMITED TABLESPACE TO ADMINUSER;
GRANT CREATE SESSION TO ADMINUSER;
GRANT CREATE TABLE TO ADMINUSER;
GRANT CREATE PROCEDURE TO ADMINUSER;
GRANT SELECT ANY TABLE TO ADMINUSER;

col GRANTEE for a30
col GRANTED_ROLE for a30
select GRANTEE,GRANTED_ROLE from dba_role_privs where GRANTEE=’ADMINUSER’;

/* データポンプ処理 */
sqlplus /nolog
connect sys as sysdba;

sqlplus /nolog
connect system as sysdba;

/* エクスポートDir作成・権限付与 */
CREATE DIRECTORY expdp as ‘C:\oraclexe\expdir’;

GRANT READ, WRITE ON DIRECTORY expdp TO ADMINUSER;
GRANT EXP_FULL_DATABASE TO ADMINUSER;

/* インポートDir作成・権限付与 */
CREATE DIRECTORY impdp as ‘C:\oraclexe\impdir’;

GRANT READ, WRITE ON DIRECTORY impdp TO ADMINUSER;
GRANT IMP_FULL_DATABASE TO ADMINUSER;

/* インポートサンプル */
impdp ADMINUSER/hogehoge DIRECTORY=impdp DUMPFILE=DEMO.dmp LOGFILE=DEMO_20171017.log SCHEMAS=DEMO REMAP_SCHEMA=DEMO:ADMINUSER

/*========================================
■クライアント設定
========================================*/

Windows7 Pro Sp1(x64)

ファイアーウォール「TCP 1521」ポートを開放すること!
受信、ローカルポート:任意、リモートポート:1521

Oracle Database 11g Release 2 for Microsoft Windows (32-bit)をダウンロード
(64bit版もある)

解答したファイルからセットアップを開始する。
インストールするオプションは
「SQL*Plus」
「Oracle Net」
のみでよい(最小構成でOKなら)

テキストエディッタで「tnsnames.ora」を作成し内容はこんな感じ
IPやSIDが違う場合など状況により変更してください
=================================================
XE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.XX)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = XE)
)
)

EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)

ORACLR_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
)
(CONNECT_DATA =
(SID = CLRExtProc)
(PRESENTATION = RO)
)
)
=================================================

作成したファイルを以下のフォルダに入れてあげる
「C:\app\iagsqap\product\11.2.0\client_1\network\admin」フォルダ内に

Dosプロンプトで

tnsping XE

と叩き通信の疎通を確認する

Read more
AipoApacheLinux日記

CentOS Aipo 7から8へバージョンアップ Apache と Tomcat連動

1 Mins read

Aipoさん使わせていただいております。
ありがとうございます。

バージョンアップにともないURLも「url/aipo」から「url/」にアクセス先が変わりました。

Apacheとの連動且つSSL強制アクセスとしたいので、以下の部分を修正しました。

■Tomcat側設定「/usr/local/aipo/tomcat/conf/server.xml」
Port80はApache配下でコントロールする為にこの部分をコメントアウト
<!-- A "Connector" represents an endpoint by which requests are received
  and responses are returned. Documentation at :
  Java HTTP Connector: /docs/config/http.html (blocking & non-blocking)
  Java AJP Connector: /docs/config/ajp.html
  APR (HTTP/AJP) Connector: /docs/apr.html
  Define a non-SSL HTTP/1.1 Connector on port 8080
<Connector port="80" maxThreads="1000" protocol="org.apache.coyote.http11.Http11NioProtocol"
    connectionTimeout="20000"
    redirectPort="8443" />
-->

■Tomcat側設定「/usr/local/aipo/tomcat/conf/server.xml」
AJPを通じて443Portでアクセスさせたいので、8443から443へ変更
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="443" />

■Apache側設定「/opt/lampp/etc/extra/hoge.conf」※apache系のconfファイルね
<IfModule ssl_module>
<VirtualHost *:443>
  #アクセスさせたいURL
  ServerName aipo.hoge.com
  ServerAdmin aipo@hoge.com
 
  #これはダミー
  DocumentRoot "/opt/lampp/htaipo"
  <Directory "/opt/lampp/htaipo">
  </Directory>
 
  #Aipo Tomcatへ連結
  <Location "/">
    ProxyPass "ajp://localhost:8009/"
  </Location>
 
  #オレオレ証明書
  #######################################################
  #  SSL Engine Switch:
  SSLEngine on
 
  #  Server Certificate:
  SSLCertificateFile /opt/lampp/etc/ssl.crt/server.crt
  SSLCertificateKeyFile /opt/lampp/etc/ssl.key/server.key
 
  #必要であればSSL Optionを記載する
  #######################################################
 
</VirtualHost>
</IfModule>

Read more
LinuxMySQL日記

mysqldumpでバックアップ mysqlで復元

1 Mins read

MySqlのバックアップと復元について

CentOS 6.9 x64
MariaDB 10.1.25(xampp linux x64 5.6.31内)

最近xampp内にあるのはMariaDBとなっていますが。。。オープンソースが分かれた感じね。これ昔のSybaseとSQLServerと同じやつだ(汗)MySqlがOracleに買収されて相変わらずオープンソースだけどライセンス系でめんどくさいから分けちゃえってやつ。そういえばUnixとLinuxもそんな感じだよね。アメリカ人(Linuxは欧米かぁ)は昔からライセンスの緩いVS固いで戦ってるけど、こちらは使ってて名前違うのに、中身はほぼ一緒なの、なんで?って疑問、若い人に教えるの大変なんだよなぁ。そういえばOpenSSLも確かオープンソース団体の脆弱性修正が遅すぎるってGoogleが別プロジェクト作っちゃったのこの前見た。。。

まえがきはさておき、xamppや複数のMySqlを1台で運用(あまりやらんが使用ポートを分ければ複数インスト可能)するときに「sock」指定(プロセス指定)が必要なのでその部分も含めてコマンド書いときます。

yum使ってMySqlを標準インストールした場合、Pathが普通に切られているから、他のネット情報のように「sock」部分はカットして使ってください。

■バックアップ(使い勝手がよいのでバイナリでアウトプット)
# ./mysqldump --default-character-set=binary --socket=/opt/lampp/var/mysql/mysql.sock -u root -p dbname > /opt/dump.sql

■復元
# ./mysql --socket=/opt/lampp/var/mysql/mysql.sock -u root -p dbname < /opt/dump.sql

Read more
Linuxパソコンのこと

SSLサーバー証明書 openssl 秘密鍵のパスフレーズを削除

1 Mins read

さてサーバー証明書の秘密鍵が暗号化されたままだとApache起動時にパスワード入力を求められて、再起動後とか起動が止まってしまうことを防ぎたい。

また一台のApacheで複数のURLをVirtualHostにて運用している且つ複数のSSL設定している場合、パスフレーズファイル読み込み指示「SSLPassPhraseDialog 」が出来ない。

なのでパスフレーズカットが気持ちいいね♪

元ファイルのバックアップ
# cp sslhoge.key sslhoge.key.org
パスフレーズの解除
# openssl rsa -in sslhoge.key -out sslhoge.key.none

新しく生成するファイル名を「none」などと別ファイル名とし名前変更することが大切!
エラーにならないけど同じファイル名だと上書きされないで、生成できていないから注意すること!
# openssl rsa -in sslhoge.key -out sslhoge.key.none

エディッタで開くとちゃんとパスフレーズが取れたか分かる

■暗号化されているとこんな感じ
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,35GBFG546FC042B7
 
bLpCb3csi5WDZpaUYhJ5IT2eB6lnuojsPxqS2r0ee+8Gzfu9KyO7/AVmN95XD6Go
n/0d1L341hsJZLPoATzGXLslRSKeSeakI22yZF0Fl6hYrs8rs/aToyUCgYEA3cq1
e/a4VfdRDqLV4ZDfxyP0+yLS+E4WpFi5V83RObfzer1cQs6Z+DV5RRwy8b1VIJjM
XqWr5TplNc/pcFfrEPegw86t1xw6qIh0rDapZd6oxlXkeWJyWOrCMEfXsCEBFz/v
j0RXKPHVndOyP1RBXR0ZgdiFUqOKchRfh/O8r4RzGPkb32+/umqPPU1McXOjkvVO
・・・

■パスフレーズが取れた場合はこんな感じ
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIPURFCAQEA0q0ObXRi1L5mRYWNFGBFJsasTOdTlU0IK9I+S8OWnYJyBU/a
n/0d1L641hsJZLPoATzGXLslRSKeSeakI22yZF0Fl6hYrs8rs/aToyUCgYEA3cq1
yLXgRIJ5oBFkSaK35/qn8lc6pmPZ/dHrJxl3WfPDn3VgIH/m2uhJca1N9oFNPLoz
j3RXKPHVndOyP1RBXR0ZgdiFUqOKchRfh/O8r4RzGPkb32+/umqPPU1McXOjkvVO
yLXgRIJ5oBFkSaK35/qn8lc6pmPZ/dHrJxl3WfPDn3VgIH/m2uhJca1N9oFNPLoz
・・・

しっかりと確認すること♪

Read more
Linux日記

CentOS 6.9 (64bit) に xampp linux x64 5.6.31 をインストール

3 Mins read

久しぶりに環境設定で少しハマったので書き込み

CentOS 6.9 (64bit) にxampp linux x64 5.6.31 をインストールしたら以下のエラーで起動できない。

# ./lampp start
egrep: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
egrep: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
/bin/bash: error while loading shared libraries: libdl.so.2: cannot open shared object file: No such file or directory
egrep: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
/opt/lampp/bin/gettext: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
 
id: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
/opt/lampp/share/xampp/xampplib: line 11: test: -ne: unary operator expected
/opt/lampp/bin/gettext: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
XAMPP: egrep: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
netstat: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
egrep: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
netstat: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
/opt/lampp/bin/gettext: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
/opt/lampp/bin/httpd: error while loading shared libraries: librt.so.1: cannot open shared object file: No such file or directory
/opt/lampp/bin/gettext: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
XAMPP: hostname: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
egrep: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
netstat: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
/opt/lampp/bin/gettext: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
/bin/sh: error while loading shared libraries: libdl.so.2: cannot open shared object file: No such file or directory
/opt/lampp/bin/gettext: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
XAMPP: egrep: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
netstat: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
/opt/lampp/bin/gettext: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
/opt/lampp/bin/gettext: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory

「libc.so.6」ライブラリが無いか?環境変数のPathがおかしいんだろうと決め込んで確認コマンド投げる

yumで確認
#yum provides */libc.so.6
 
読み込んだプラグイン:fastestmirror, security
Loading mirror speeds from cached hostfile
* base: ftp.iij.ad.jp
* extras: ftp.iij.ad.jp
* updates: ftp.iij.ad.jp
base/filelists_db | 6.4 MB 00:00
extras/filelists_db | 25 kB 00:00
updates/filelists_db | 2.9 MB 00:00
glibc-2.12-1.209.el6.x86_64 : The GNU libc libraries
リポジトリー : base
一致 :
ファイル名 : /lib64/libc.so.6
 
glibc-2.12-1.209.el6.i686 : The GNU libc libraries
リポジトリー : base
一致 :
ファイル名 : /lib/i686/nosegneg/libc.so.6
ファイル名 : /lib/libc.so.6
 
glibc-2.12-1.209.el6_9.1.i686 : The GNU libc libraries
リポジトリー : updates
一致 :
ファイル名 : /lib/i686/nosegneg/libc.so.6
ファイル名 : /lib/libc.so.6
 
glibc-2.12-1.209.el6_9.2.i686 : The GNU libc libraries
リポジトリー : updates
一致 :
ファイル名 : /lib/i686/nosegneg/libc.so.6
ファイル名 : /lib/libc.so.6
 
glibc-2.12-1.209.el6_9.2.x86_64 : The GNU libc libraries
リポジトリー : updates
一致 :
ファイル名 : /lib64/libc.so.6
 
glibc-2.12-1.209.el6_9.1.x86_64 : The GNU libc libraries
リポジトリー : updates
一致 :
ファイル名 : /lib64/libc.so.6
 
glibc-2.12-1.209.el6_9.2.x86_64 : The GNU libc libraries
リポジトリー : installed
一致 :
ファイル名 : /lib64/libc.so.6
 
glibc-2.12-1.209.el6_9.2.i686 : The GNU libc libraries
リポジトリー : installed
一致 :
ファイル名 : /lib/i686/nosegneg/libc.so.6
ファイル名 : /lib/libc.so.6

いるね~

なんじゃ?リンク切れか?。。。リンクあるし???
はて?

起動時にエラー?

起動ファイルlampp=xamppファイルなのでviでオープンし中身確認

どうやら起動時のOSバージョンチェックで読み込み先共通ライブラリが違っていることが原因見たいだけど、このエラーメッセージからはそんなこと読み取れん!Cのデバッグと同じで落ちている箇所やエラーメッセージに騙されてはいかんやつやな(笑)本質の問題を見分ける所は。。。人生と同じか(苦笑)

CentOSのバージョン確認「2.6.32」部分がキーとなっておりこれを超えているか?のチェックっぽい
#more /proc/version
Linux version 2.6.32-696.13.2.el6.x86_64 (mockbuild@c1bl.rdu2.centos.org) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-18) (GCC) ) #1 SMP Thu O
ct 5 21:22:16 UTC 2017

viでxamppを開き436行目の
「export LD_ASSUME_KERNEL=2.2.5」

「export LD_ASSUME_KERNEL=2.8.0」
へ変更してあげる

こんな感じ
# do we have that new red hat linux 9 with posix native threads?
if test $(osguess) = "rh9"
then
# for now disable PNTL. if PNTL gets more popular we will support it. - oswald [8apr3]
export LD_ASSUME_KERNEL=2.8.0
#echo "XAMPP: DISABLE PNTL..."
fi

これで無事起動♪
#./lampp start

Read more