Linuxの最近のブログ記事

必要なパッケージは以下のサイトからダウンロードする。
http://yum.pgrpms.org/9.0/redhat/rhel-6.2-x86_64/repoview/

ダウンロードしなければならないパッケージファイルは以下の3つ。
(いずれも上記サイトからダウンロードできる)
postgresql90-9.0.8-1PGDG.rhel6.x86_64.rpm
postgresql90-libs-9.0.8-1PGDG.rhel6.x86_64.rpm
postgresql90-server-9.0.8-1PGDG.rhel6.x86_64.rpm

ダウンロードした3つのrpmファイルを/tmp配下に配置して、当該ディレクトリへcdし、下記コマンドを実行する。
# rpm -ihv postgresql90-*
warning: postgresql90-9.0.8-1PGDG.rhel6.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID 442df0f8: NOKEY
Preparing... ########################################### [100%]
1:postgresql90-libs ########################################### [ 33%]
2:postgresql90 ########################################### [ 67%]
3:postgresql90-server ########################################### [100%]

これでインストールは完了。
特にその他パッケージの依存関係に困ることはなかったが、もし何か前提モジュールがなくて、それがどのパッケージに含まれているか分からない場合は、以下のサイトで検索可能。
http://rpm.pbone.net/
(まぁ、yumを使えば一発だが。。。)

# rpm -ihv perl-Module-Pluggable-3.90-119.el6_1.1.x86_64.rpm perl-Pod-Escapes-1.04-119.el6_1.1.x86_64.rpm perl-Pod-Simple-3.13-119.el6_1.1.x86_64.rpm perl-libs-5.10.1-119.el6_1.1.x86_64.rpm perl-version-0.77-119.el6_1.1.x86_64.rpm perl-5.10.1-119.el6_1.1.x86_64.rpm
warning: perl-Module-Pluggable-3.90-119.el6_1.1.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing... ########################################### [100%]
1:perl-Pod-Escapes ########################################### [ 17%]
2:perl-Pod-Simple ########################################### [ 33%]
3:perl-libs ########################################### [ 50%]
4:perl-version ########################################### [ 67%]
5:perl-Module-Pluggable ########################################### [ 83%]
6:perl ########################################### [100%]

プロキシサーバとしては、Squidがデフォルトのポート番号3128/tcpでリッスンしている前提

■HTTPプロトコルの場合
# export http_proxy="http://プロキシサーバのIPアドレス:3128"
# wget http://目的サーバのIPアドレス:ポート番号/ファイル名

■HTTPSプロトコルの場合
# export https_proxy="http://プロキシサーバのIPアドレス:3128"
# wget https://目的サーバのIPアドレス:ポート番号/ファイル名

なお、相手先のWebサーバが自己証明書を利用している場合は、警告が出て通信できないため、以下のようにオプションを付けてwgetを実行する。

# wget --no-check-certificate https://目的サーバのIPアドレス:ポート番号/ファイル名

# openssl ciphers -v ALL
ADH-AES256-SHA SSLv3 Kx=DH Au=None Enc=AES(256) Mac=SHA1
DHE-RSA-AES256-SHA SSLv3 Kx=DH Au=RSA Enc=AES(256) Mac=SHA1
DHE-DSS-AES256-SHA SSLv3 Kx=DH Au=DSS Enc=AES(256) Mac=SHA1
AES256-SHA SSLv3 Kx=RSA Au=RSA Enc=AES(256) Mac=SHA1
ADH-AES128-SHA SSLv3 Kx=DH Au=None Enc=AES(128) Mac=SHA1
DHE-RSA-AES128-SHA SSLv3 Kx=DH Au=RSA Enc=AES(128) Mac=SHA1
DHE-DSS-AES128-SHA SSLv3 Kx=DH Au=DSS Enc=AES(128) Mac=SHA1
AES128-SHA SSLv3 Kx=RSA Au=RSA Enc=AES(128) Mac=SHA1
EXP-KRB5-RC4-MD5 SSLv3 Kx=KRB5 Au=KRB5 Enc=RC4(40) Mac=MD5 export
EXP-KRB5-RC2-CBC-MD5 SSLv3 Kx=KRB5 Au=KRB5 Enc=RC2(40) Mac=MD5 export
EXP-KRB5-DES-CBC-MD5 SSLv3 Kx=KRB5 Au=KRB5 Enc=DES(40) Mac=MD5 export
EXP-KRB5-RC4-SHA SSLv3 Kx=KRB5 Au=KRB5 Enc=RC4(40) Mac=SHA1 export
EXP-KRB5-RC2-CBC-SHA SSLv3 Kx=KRB5 Au=KRB5 Enc=RC2(40) Mac=SHA1 export
EXP-KRB5-DES-CBC-SHA SSLv3 Kx=KRB5 Au=KRB5 Enc=DES(40) Mac=SHA1 export
KRB5-RC4-MD5 SSLv3 Kx=KRB5 Au=KRB5 Enc=RC4(128) Mac=MD5
KRB5-DES-CBC3-MD5 SSLv3 Kx=KRB5 Au=KRB5 Enc=3DES(168) Mac=MD5
KRB5-DES-CBC-MD5 SSLv3 Kx=KRB5 Au=KRB5 Enc=DES(56) Mac=MD5
KRB5-RC4-SHA SSLv3 Kx=KRB5 Au=KRB5 Enc=RC4(128) Mac=SHA1
KRB5-DES-CBC3-SHA SSLv3 Kx=KRB5 Au=KRB5 Enc=3DES(168) Mac=SHA1
KRB5-DES-CBC-SHA SSLv3 Kx=KRB5 Au=KRB5 Enc=DES(56) Mac=SHA1
ADH-DES-CBC3-SHA SSLv3 Kx=DH Au=None Enc=3DES(168) Mac=SHA1
ADH-DES-CBC-SHA SSLv3 Kx=DH Au=None Enc=DES(56) Mac=SHA1
EXP-ADH-DES-CBC-SHA SSLv3 Kx=DH(512) Au=None Enc=DES(40) Mac=SHA1 export
ADH-RC4-MD5 SSLv3 Kx=DH Au=None Enc=RC4(128) Mac=MD5
EXP-ADH-RC4-MD5 SSLv3 Kx=DH(512) Au=None Enc=RC4(40) Mac=MD5 export
EDH-RSA-DES-CBC3-SHA SSLv3 Kx=DH Au=RSA Enc=3DES(168) Mac=SHA1
EDH-RSA-DES-CBC-SHA SSLv3 Kx=DH Au=RSA Enc=DES(56) Mac=SHA1
EXP-EDH-RSA-DES-CBC-SHA SSLv3 Kx=DH(512) Au=RSA Enc=DES(40) Mac=SHA1 export
EDH-DSS-DES-CBC3-SHA SSLv3 Kx=DH Au=DSS Enc=3DES(168) Mac=SHA1
EDH-DSS-DES-CBC-SHA SSLv3 Kx=DH Au=DSS Enc=DES(56) Mac=SHA1
EXP-EDH-DSS-DES-CBC-SHA SSLv3 Kx=DH(512) Au=DSS Enc=DES(40) Mac=SHA1 export
DES-CBC3-SHA SSLv3 Kx=RSA Au=RSA Enc=3DES(168) Mac=SHA1
DES-CBC-SHA SSLv3 Kx=RSA Au=RSA Enc=DES(56) Mac=SHA1
EXP-DES-CBC-SHA SSLv3 Kx=RSA(512) Au=RSA Enc=DES(40) Mac=SHA1 export
EXP-RC2-CBC-MD5 SSLv3 Kx=RSA(512) Au=RSA Enc=RC2(40) Mac=MD5 export
RC4-SHA SSLv3 Kx=RSA Au=RSA Enc=RC4(128) Mac=SHA1
RC4-MD5 SSLv3 Kx=RSA Au=RSA Enc=RC4(128) Mac=MD5
EXP-RC4-MD5 SSLv3 Kx=RSA(512) Au=RSA Enc=RC4(40) Mac=MD5 export
DES-CBC3-MD5 SSLv2 Kx=RSA Au=RSA Enc=3DES(168) Mac=MD5
DES-CBC-MD5 SSLv2 Kx=RSA Au=RSA Enc=DES(56) Mac=MD5
EXP-RC2-CBC-MD5 SSLv2 Kx=RSA(512) Au=RSA Enc=RC2(40) Mac=MD5 export
RC2-CBC-MD5 SSLv2 Kx=RSA Au=RSA Enc=RC2(128) Mac=MD5
EXP-RC4-MD5 SSLv2 Kx=RSA(512) Au=RSA Enc=RC4(40) Mac=MD5 export
RC4-MD5 SSLv2 Kx=RSA Au=RSA Enc=RC4(128) Mac=MD5

# openssl ciphers -v HIGH
ADH-AES256-SHA SSLv3 Kx=DH Au=None Enc=AES(256) Mac=SHA1
DHE-RSA-AES256-SHA SSLv3 Kx=DH Au=RSA Enc=AES(256) Mac=SHA1
DHE-DSS-AES256-SHA SSLv3 Kx=DH Au=DSS Enc=AES(256) Mac=SHA1
AES256-SHA SSLv3 Kx=RSA Au=RSA Enc=AES(256) Mac=SHA1
ADH-AES128-SHA SSLv3 Kx=DH Au=None Enc=AES(128) Mac=SHA1
DHE-RSA-AES128-SHA SSLv3 Kx=DH Au=RSA Enc=AES(128) Mac=SHA1
DHE-DSS-AES128-SHA SSLv3 Kx=DH Au=DSS Enc=AES(128) Mac=SHA1
AES128-SHA SSLv3 Kx=RSA Au=RSA Enc=AES(128) Mac=SHA1
KRB5-DES-CBC3-MD5 SSLv3 Kx=KRB5 Au=KRB5 Enc=3DES(168) Mac=MD5
KRB5-DES-CBC3-SHA SSLv3 Kx=KRB5 Au=KRB5 Enc=3DES(168) Mac=SHA1
ADH-DES-CBC3-SHA SSLv3 Kx=DH Au=None Enc=3DES(168) Mac=SHA1
EDH-RSA-DES-CBC3-SHA SSLv3 Kx=DH Au=RSA Enc=3DES(168) Mac=SHA1
EDH-DSS-DES-CBC3-SHA SSLv3 Kx=DH Au=DSS Enc=3DES(168) Mac=SHA1
DES-CBC3-SHA SSLv3 Kx=RSA Au=RSA Enc=3DES(168) Mac=SHA1
DES-CBC3-MD5 SSLv2 Kx=RSA Au=RSA Enc=3DES(168) Mac=MD5

# openssl ciphers -v MEDIUM
KRB5-RC4-MD5 SSLv3 Kx=KRB5 Au=KRB5 Enc=RC4(128) Mac=MD5
KRB5-RC4-SHA SSLv3 Kx=KRB5 Au=KRB5 Enc=RC4(128) Mac=SHA1
ADH-RC4-MD5 SSLv3 Kx=DH Au=None Enc=RC4(128) Mac=MD5
RC4-SHA SSLv3 Kx=RSA Au=RSA Enc=RC4(128) Mac=SHA1
RC4-MD5 SSLv3 Kx=RSA Au=RSA Enc=RC4(128) Mac=MD5
RC2-CBC-MD5 SSLv2 Kx=RSA Au=RSA Enc=RC2(128) Mac=MD5
RC4-MD5 SSLv2 Kx=RSA Au=RSA Enc=RC4(128) Mac=MD5

# openssl ciphers -v LOW
KRB5-DES-CBC-MD5 SSLv3 Kx=KRB5 Au=KRB5 Enc=DES(56) Mac=MD5
KRB5-DES-CBC-SHA SSLv3 Kx=KRB5 Au=KRB5 Enc=DES(56) Mac=SHA1
ADH-DES-CBC-SHA SSLv3 Kx=DH Au=None Enc=DES(56) Mac=SHA1
EDH-RSA-DES-CBC-SHA SSLv3 Kx=DH Au=RSA Enc=DES(56) Mac=SHA1
EDH-DSS-DES-CBC-SHA SSLv3 Kx=DH Au=DSS Enc=DES(56) Mac=SHA1
DES-CBC-SHA SSLv3 Kx=RSA Au=RSA Enc=DES(56) Mac=SHA1
DES-CBC-MD5 SSLv2 Kx=RSA Au=RSA Enc=DES(56) Mac=MD5

PostfixがLDAPを利用できるようにコンパイルされているかどうかは、以下のコマンドで確認する。
実行結果に『ldap』の文字が表示されれば利用できる。

# postconf -m
btree
cidr
environ
hash
ldap ←これがあるかを確認。あれば利用できる。
nis
pcre
proxy
regexp
static
unix

上記はRed Hat Enterprise Linux 5.5 64bitでの実行結果。

例えばOracleの停止シェルを作成する場合など、シェルスクリプト内でSQL*Plusを実行する場合は以下のように書きます。
oracleユーザで実行します。

--------------------ここから--------------------
#!/bin/bash

export ORACLE_SID=hoge

sqlplus /nolog < connect / as sysdba
shutdown immediate
exit
EOF
--------------------ここまで--------------------

『<

『EOF』という文字列自体にはあまり意味はなく、以下のように『AAA』などに変えても問題ありません。

--------------------ここから--------------------
#!/bin/bash

export ORACLE_SID=hoge

sqlplus /nolog < connect / as sysdba
shutdown immediate
exit
AAA
--------------------ここまで--------------------

ただし、終わりの方の『EOF(AAAの場合も)』は行の先頭から書かれていないといけません(スペースなどでインデントしてはいけない)。

■Oracleバージョン
 11.2.0.3.0

■OSバージョン
 Red Hat Enterprise Linux 5.5

■変更前の初期化パラメータ
 sec_case_sensitive_logon = true
 ※パスワードの大文字・小文字を区別する

■変更後の初期化パラメータ
 sec_case_sensitive_logon = false
 ※パスワードの大文字・小文字を区別しない

■目的
 Oracle 11gのデフォルトではパスワードの大文字・小文字を区別するように設定されている。
 これを区別しないように変更する。

■手順
# su - oracle
$ export ORACLE_SID=hoge
$ sqlplus /nolog

SQL*Plus: Release 11.2.0.2.0 Production on 金 4月 6 10:42:01 2012

Copyright (c) 1982, 2010, Oracle. All rights reserved.

SQL > connect / as sysdba
接続されました。
SQL hoge > show parameter sec_case_sensitive_logon

NAME TYPE
------------------------------------ ---------------------------------
VALUE
------------------------------
sec_case_sensitive_logon boolean
TRUE
SQL hoge > alter system set sec_case_sensitive_logon = false scope = both;

システムが変更されました。

SQL hoge > show parameter sec_case_sensitive_logon;

NAME TYPE
------------------------------------ ---------------------------------
VALUE
------------------------------
sec_case_sensitive_logon boolean
FALSE
SQL hoge > exit
Oracle Database 11g Release 11.2.0.2.0 - 64bit Productionとの接続が切断されました。
$ exit

■Oracleバージョン
 11.2.0.3.0

■OSバージョン
 Red Hat Enterprise Linux 5.5

■既存のREDOログメンバ
 /data/oracle/hoge/red00/redo00_00.log
 /data/oracle/hoge/red00/redo01_00.log
 /data/oracle/hoge/red00/redo02_00.log

■追加するREDOログメンバ
 /data/oracle/hoge/red01/redo00_01.log
 /data/oracle/hoge/red01/redo01_01.log
 /data/oracle/hoge/red01/redo02_01.log
 ※REDOロググループ1~3に1ファイルずつ追加する

■目的
 オンラインREDOログのグループ1~3にメンバを1つずつ追加する。

■手順
1)SQL*PlusでOracleに接続する
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
# su - oracle
$ export ORACLE_SID=hoge ←インスタンス名
$ sqlplus /nolog

SQL*Plus: Release 11.2.0.2.0 Production on 木 4月 5 16:56:18 2012

Copyright (c) 1982, 2010, Oracle. All rights reserved.

SQL > connect / as sysdba
接続されました。


2)変更前の状態を確認する
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
SQL hoge > select * from v$log;

GROUP# THREAD# SEQUENCE# BYTES BLOCKSIZE MEMBERS ARCHIVED STATUS FIRST_CHANGE# FIRST_TI NEXT_CHANGE# NEXT_TIM
---------- ---------- ---------- ---------- ---------- ---------- --------- ------------------------------------------------ ------------- -------- ------------ --------
1 1 0 536870912 512 1 YES UNUSED 0 0
2 1 29 536870912 512 1 NO CURRENT 306210 12-04-05 2.8147E+14
3 1 0 536870912 512 1 YES UNUSED 0 0

SQL hoge > select * from v$logfile;

GROUP# STATUS TYPE
---------- --------------------- ---------------------
MEMBER
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
IS_RECOVE
---------
1 ONLINE
/data/oracle/hoge/red00/redo00_00.log
NO

2 ONLINE
/data/oracle/hoge/red00/redo01_00.log
NO

3 ONLINE
/data/oracle/hoge/red00/redo02_00.log
NO

SQL hoge > host ls -l /data/oracle/hoge/red01/
合計 1591504
-rw-r----- 1 oracle oinstall 17448960 4月 5 19:58 control_01.ctl
drwx------ 2 root root 16384 10月 19 19:04 lost+found


3)REDOログメンバを追加する
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
SQL hoge > alter database add logfile member '/data/oracle/hoge/red01/redo00_01.log' to group 1;

データベースが変更されました。

SQL hoge > alter database add logfile member '/data/oracle/hoge/red01/redo01_01.log' to group 2;

データベースが変更されました。

SQL hoge > alter database add logfile member '/data/oracle/hoge/red01/redo02_01.log' to group 3;

データベースが変更されました。


4)変更後の状態を確認する
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
SQL hoge > select * from v$log;

GROUP# THREAD# SEQUENCE# BYTES BLOCKSIZE MEMBERS ARCHIVED STATUS FIRST_CHANGE# FIRST_TI NEXT_CHANGE# NEXT_TIM
---------- ---------- ---------- ---------- ---------- ---------- --------- ------------------------------------------------ ------------- -------- ------------ --------
1 1 0 536870912 512 2 YES UNUSED 0 0
2 1 29 536870912 512 2 NO CURRENT 306210 12-04-05 2.8147E+14
3 1 0 536870912 512 2 YES UNUSED 0 0

SQL hoge > select * from v$logfile;

GROUP# STATUS TYPE
---------- --------------------- ---------------------
MEMBER
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
IS_RECOVE
---------
1 ONLINE
/data/oracle/hoge/red00/redo00_00.log
NO

2 ONLINE
/data/oracle/hoge/red00/redo01_00.log
NO

3 ONLINE
/data/oracle/hoge/red00/redo02_00.log
NO

1 INVALID ONLINE
/data/oracle/hoge/red01/redo00_01.log
NO

2 INVALID ONLINE
/data/oracle/hoge/red01/redo01_01.log
NO

3 INVALID ONLINE
/data/oracle/hoge/red01/redo02_01.log
NO


6行が選択されました。

SQL hoge > host ls -l /data/oracle/hoge/red01/
合計 1591504
-rw-r----- 1 oracle oinstall 17448960 4月 5 19:58 control_01.ctl
drwx------ 2 root root 16384 10月 19 19:04 lost+found
-rw-r----- 1 oracle oinstall 536871424 4月 5 19:57 redo00_01.log
-rw-r----- 1 oracle oinstall 536871424 4月 5 19:57 redo01_01.log
-rw-r----- 1 oracle oinstall 536871424 4月 5 19:57 redo02_01.log

SQL hoge > exit
Oracle Database 11g Release 11.2.0.2.0 - 64bit Productionとの接続が切断されました。

■Oracleバージョン
 11.2.0.3.0

■OSバージョン
 Red Hat Enterprise Linux 5.5

■変更前のオンラインREDOログファイルパス
 /data/oracle/hoge/red00/redo01.log ・・・50MB
 /data/oracle/hoge/red00/redo02.log ・・・50MB
 /data/oracle/hoge/red00/redo03.log ・・・50MB

■変更後のオンラインREDOログファイルパス
 /data/oracle/hoge/red00/redo01.log ・・・512MB
 /data/oracle/hoge/red00/redo02.log ・・・512MB
 /data/oracle/hoge/red00/redo03.log ・・・512MB

■目的
 オンラインREDOログファイルのサイズを1メンバ当たり50MBから512MBへ変更する。

■手順
1)SQL*PlusでOracleに接続する
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
# su - oracle
$ export ORACLE_SID=hoge ←インスタンス名
$ sqlplus /nolog

SQL*Plus: Release 11.2.0.2.0 Production on 木 4月 5 16:56:18 2012

Copyright (c) 1982, 2010, Oracle. All rights reserved.

SQL > connect / as sysdba
接続されました。


2)変更前のサイズを確認する
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
SQL hoge > select * from v$log;

GROUP# THREAD# SEQUENCE# BYTES BLOCKSIZE MEMBERS ARCHIVED STATUS FIRST_CHANGE# FIRST_TI NEXT_CHANGE# NEXT_TIM
---------- ---------- ---------- ---------- ---------- ---------- --------- ------------------------------------------------ ------------- -------- ------------ --------
1 1 28 52428800 512 1 NO CURRENT 295065 12-04-05 2.8147E+14
2 1 26 52428800 512 1 NO INACTIVE 278975 12-04-05 287768 12-04-05
3 1 27 52428800 512 1 NO INACTIVE 287768 12-04-05 295065 12-04-05


3)グループ2のサイズを変更する
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
SQL hoge > alter database drop logfile group 2;

データベースが変更されました。

SQL hoge > select * from v$log;

GROUP# THREAD# SEQUENCE# BYTES BLOCKSIZE MEMBERS ARCHIVED STATUS FIRST_CHANGE# FIRST_TI NEXT_CHANGE# NEXT_TIM
---------- ---------- ---------- ---------- ---------- ---------- --------- ------------------------------------------------ ------------- -------- ------------ --------
1 1 28 52428800 512 1 NO CURRENT 295065 12-04-05 2.8147E+14
3 1 27 52428800 512 1 NO INACTIVE 287768 12-04-05 295065 12-04-05

SQL hoge > host rm /data/oracle/hoge/red00/redo02.log

SQL hoge > host ls -l /data/oracle/hoge/red00/
合計 68340
-rw-r----- 1 oracle oinstall 17448960 4月 5 18:42 control_00.ctl
drwx------ 2 root root 16384 10月 19 19:04 lost+found
-rw-r----- 1 oracle oinstall 52429312 4月 5 18:21 redo01.log
-rw-r----- 1 oracle oinstall 52429312 4月 5 18:21 redo03.log

SQL hoge > alter database add logfile group 2 '/data/oracle/hoge/red00/redo02.log' size 512m;

データベースが変更されました。

SQL hoge > select * from v$log;

GROUP# THREAD# SEQUENCE# BYTES BLOCKSIZE MEMBERS ARCHIVED STATUS FIRST_CHANGE# FIRST_TI NEXT_CHANGE# NEXT_TIM
---------- ---------- ---------- ---------- ---------- ---------- --------- ------------------------------------------------ ------------- -------- ------------ --------
1 1 28 52428800 512 1 NO CURRENT 295065 12-04-05 2.8147E+14
2 1 0 536870912 512 1 YES UNUSED 0 0
3 1 27 52428800 512 1 NO INACTIVE 287768 12-04-05 295065 12-04-05


4)グループ3のサイズを変更する
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
SQL hoge > alter database drop logfile group 3;

データベースが変更されました。

SQL hoge > select * from v$log;

GROUP# THREAD# SEQUENCE# BYTES BLOCKSIZE MEMBERS ARCHIVED STATUS FIRST_CHANGE# FIRST_TI NEXT_CHANGE# NEXT_TIM
---------- ---------- ---------- ---------- ---------- ---------- --------- ------------------------------------------------ ------------- -------- ------------ --------
1 1 28 52428800 512 1 NO CURRENT 295065 12-04-05 2.8147E+14
2 1 0 536870912 512 1 YES UNUSED 0 0

SQL hoge > host rm /data/oracle/hoge/red00/redo03.log

SQL hoge > host ls -l /data/oracle/hoge/red00/
合計 541888
-rw-r----- 1 oracle oinstall 17448960 4月 5 18:45 control_00.ctl
drwx------ 2 root root 16384 10月 19 19:04 lost+found
-rw-r----- 1 oracle oinstall 536871424 4月 5 18:43 redo01.log
-rw-r----- 1 oracle oinstall 536871424 4月 5 18:43 redo02.log

SQL hoge > alter database add logfile group 3 '/data/oracle/hoge/red00/redo03.log' size 512m;

データベースが変更されました。

SQL hoge > select * from v$log;

GROUP# THREAD# SEQUENCE# BYTES BLOCKSIZE MEMBERS ARCHIVED STATUS FIRST_CHANGE# FIRST_TI NEXT_CHANGE# NEXT_TIM
---------- ---------- ---------- ---------- ---------- ---------- --------- ------------------------------------------------ ------------- -------- ------------ --------
1 1 28 52428800 512 1 NO CURRENT 295065 12-04-05 2.8147E+14
2 1 0 536870912 512 1 YES UNUSED 0 0
3 1 0 536870912 512 1 YES UNUSED 0 0


5)強制ログスイッチする
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
SQL hoge > alter system switch logfile;

システムが変更されました。

SQL hoge > select * from v$log;

GROUP# THREAD# SEQUENCE# BYTES BLOCKSIZE MEMBERS ARCHIVED STATUS FIRST_CHANGE# FIRST_TI NEXT_CHANGE# NEXT_TIM
---------- ---------- ---------- ---------- ---------- ---------- --------- ------------------------------------------------ ------------- -------- ------------ --------
1 1 28 52428800 512 1 NO ACTIVE 295065 12-04-05 306210 12-04-05
2 1 29 536870912 512 1 NO CURRENT 306210 12-04-05 2.8147E+14
3 1 0 536870912 512 1 YES UNUSED 0 0


6)グループ1のサイズを変更する
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
SQL hoge > alter database drop logfile group 1;

データベースが変更されました。

SQL hoge > select * from v$log;

GROUP# THREAD# SEQUENCE# BYTES BLOCKSIZE MEMBERS ARCHIVED STATUS FIRST_CHANGE# FIRST_TI NEXT_CHANGE# NEXT_TIM
---------- ---------- ---------- ---------- ---------- ---------- --------- ------------------------------------------------ ------------- -------- ------------ --------
2 1 29 536870912 512 1 NO CURRENT 306210 12-04-05 2.8147E+14
3 1 0 536870912 512 1 YES UNUSED 0 0

SQL hoge > host rm /data/oracle/hoge/red00/redo01.log

SQL hoge > host ls -l /data/oracle/hoge/red00/
合計 1066700
-rw-r----- 1 oracle oinstall 17448960 4月 5 19:07 control_00.ctl
drwx------ 2 root root 16384 10月 19 19:04 lost+found
-rw-r----- 1 oracle oinstall 536871424 4月 5 19:07 redo02.log
-rw-r----- 1 oracle oinstall 536871424 4月 5 19:05 redo03.log

SQL hoge > alter database add logfile group 1 '/data/oracle/hoge/red00/redo01.log' size 512m;

データベースが変更されました。

SQL hoge > select * from v$log;

GROUP# THREAD# SEQUENCE# BYTES BLOCKSIZE MEMBERS ARCHIVED STATUS FIRST_CHANGE# FIRST_TI NEXT_CHANGE# NEXT_TIM
---------- ---------- ---------- ---------- ---------- ---------- --------- ------------------------------------------------ ------------- -------- ------------ --------
1 1 0 536870912 512 1 YES UNUSED 0 0
2 1 29 536870912 512 1 NO CURRENT 306210 12-04-05 2.8147E+14
3 1 0 536870912 512 1 YES UNUSED 0 0


7)変更後のファイルサイズを確認する
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
SQL hoge > host ls -l /data/oracle/hoge/red00/
合計 1591508
-rw-r----- 1 oracle oinstall 17448960 4月 5 19:22 control_00.ctl
drwx------ 2 root root 16384 10月 19 19:04 lost+found
-rw-r----- 1 oracle oinstall 536871424 4月 5 19:08 redo01.log
-rw-r----- 1 oracle oinstall 536871424 4月 5 19:22 redo02.log
-rw-r----- 1 oracle oinstall 536871424 4月 5 19:05 redo03.log

SQL hoge > exit

■Oracleバージョン
 11.2.0.3.0

■OSバージョン
 Red Hat Enterprise Linux 5.5

■変更前のオンラインREDOログファイルパス
 /data/oracle/hoge/redo01.log
 /data/oracle/hoge/redo02.log
 /data/oracle/hoge/redo03.log

■変更後のオンラインREDOログファイルパス
 /data/oracle/hoge/red00/redo01.log
 /data/oracle/hoge/red00/redo02.log
 /data/oracle/hoge/red00/redo03.log

■目的
 オンラインREDOログの格納場所を変更する。

■手順
1)SQL*PlusでOracleに接続する
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
# su - oracle
$ export ORACLE_SID=hoge ←インスタンス名
$ sqlplus /nolog

SQL*Plus: Release 11.2.0.2.0 Production on 木 4月 5 16:56:18 2012

Copyright (c) 1982, 2010, Oracle. All rights reserved.

SQL > connect / as sysdba
接続されました。


2)Oracleを停止する
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
SQL hoge > shutdown immediate
データベースがクローズされました。
データベースがディスマウントされました。
ORACLEインスタンスがシャットダウンされました。
SQL hoge > exit
Oracle Database 11g Release 11.2.0.2.0 - 64bit Productionとの接続が切断されました。


3)オンラインREDOログファイルを新しい場所へコピーする
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
$ cd /data/oracle/hoge/
$ cp -piv redo0* /data/oracle/hoge/red00/.


4)OracleをMOUNT状態で起動する
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
$ sqlplus /nolog

SQL*Plus: Release 11.2.0.2.0 Production on 木 4月 5 17:03:02 2012

Copyright (c) 1982, 2010, Oracle. All rights reserved.

SQL > connect / as sysdba
接続されました。
SQL hoge > startup mount
ORACLEインスタンスが起動しました。

Total System Global Area 3423965184 bytes
Fixed Size 2231288 bytes
Variable Size 704644104 bytes
Database Buffers 2701131776 bytes
Redo Buffers 15958016 bytes
データベースがマウントされました。


5)オンラインREDOログファイル名を変更する
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
SQL hoge > alter database rename file '/data/oracle/hoge/redo01.log',
2 '/data/oracle/hoge/redo02.log', '/data/oracle/hoge/redo03.log'
3 to '/data/oracle/hoge/red00/redo01.log',
4 '/data/oracle/hoge/red00/redo02.log', '/data/oracle/hoge/red00/redo03.log';

データベースが変更されました。


6)データベースをオープンする
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
SQL hoge > alter database open;

データベースが変更されました。

SQL hoge > exit

■Oracleバージョン
 11.2.0.3.0

■OSバージョン
 Red Hat Enterprise Linux 5.5

■変更前の制御ファイルパス
 /data/oracle/hoge/und00/control_00.ctl
 /data/oracle/hoge/und01/control_01.ctl

■変更後の制御ファイルパス
 /data/oracle/hoge/red00/control_00.ctl
 /data/oracle/hoge/red01/control_01.ctl

■目的
 インストール時に制御ファイルのパスを間違ったので、インストール後に変更する。

■手順
1)SQL*PlusでOracleに接続する
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
# su - oracle
$ export ORACLE_SID=hoge ←インスタンス名
$ sqlplus /nolog

SQL*Plus: Release 11.2.0.2.0 Production on 木 4月 5 16:56:18 2012

Copyright (c) 1982, 2010, Oracle. All rights reserved.

SQL > connect / as sysdba
接続されました。


2)変更前の設定を確認する
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
SQL hoge > show parameter control_files

NAME TYPE
------------------------------------ ---------------------------------
VALUE
------------------------------
control_files string
/data/oracle/hoge/und00/con
trol_00.ctl, /data/oracle/hoge
/und01/control_01.ctl


3)SPFILEの内容を書き換える
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
SQL hoge > alter system set control_files='/data/oracle/hoge/red00/control_00.ctl',
2 '/data/oracle/hoge/red01/control_01.ctl' scope=spfile;

システムが変更されました。


4)Oracleを停止する
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
SQL hoge > shutdown immediate
データベースがクローズされました。
データベースがディスマウントされました。
ORACLEインスタンスがシャットダウンされました。
SQL hoge > exit
Oracle Database 11g Release 11.2.0.2.0 - 64bit Productionとの接続が切断されました。


5)制御ファイルを新しい場所へ移動する
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
$ cd /data/oracle/hoge/und00/
$ mv control_00.ctl /data/oracle/hoge/red00/.
$ cd /data/oracle/hoge/und01
$ mv control_01.ctl /data/oracle/hoge/red01/.


6)Oracleを起動する
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
$ sqlplus /nolog

SQL*Plus: Release 11.2.0.2.0 Production on 木 4月 5 17:03:02 2012

Copyright (c) 1982, 2010, Oracle. All rights reserved.

SQL > connect / as sysdba
接続されました。
SQL hoge > startup
ORACLEインスタンスが起動しました。

Total System Global Area 3423965184 bytes
Fixed Size 2231288 bytes
Variable Size 704644104 bytes
Database Buffers 2701131776 bytes
Redo Buffers 15958016 bytes
データベースがマウントされました。
データベースがオープンされました。


7)変更後の設定を確認する
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
SQL hoge > show parameter control_files

NAME TYPE
------------------------------------ ---------------------------------
VALUE
------------------------------
control_files string
/data/oracle/hoge/red00/con
trol_00.ctl, /data/oracle/hoge
/red01/control_01.ctl
SQL hoge > exit
Oracle Database 11g Release 11.2.0.2.0 - 64bit Productionとの接続が切断されました。

まず以下のとおり、Oracleから必要なデータを抽出する。

# su - oracle
$ export ORACLE_SID=インスタンス名
$ sqlplus /nolog

SQL> connect / as sysdba
SQL> set pagesize 10000
SQL> set linesize 10000
SQL> select NUM||'!'||NAME||'!'||TYPE||'!'||VALUE||'!'||DISPLAY_VALUE||'!'||ISDEFAULT||'!'||ISSES_MODIFIABLE||'!'||ISSYS_MODIFIABLE||'!'||ISINSTANCE_MODIFIABLE||'!'||ISMODIFIED||'!'||ISADJUSTED||'!'||ISDEPRECATED||'!'||ISBASIC||'!'||DESCRIPTION||'!'||UPDATE_COMMENT||'!'||HASH from v$system_parameter;
SQL> exit

この出力結果をコピーし、Windowsのメモ帳などに貼り付ける。
メモ帳の置換機能で、『||'』と『'||』を全て削除する。
置換後にテキストとして保存する。
このテキストファイルをEXCELファイルで開く。
EXCELの[データ]メニューから[区切り位置]を選択する。
区切り文字として『!』を指定する。

Linuxでhtpasswdコマンドを利用して、ApacheのBASIC認証用ユーザを作成する場合、パスワードはcrypt()関数を利用してハッシュされる。

crypt()関数の仕様として8文字までしかハッシュできないため、パスワードに9文字以上入力しても8文字までしか使用されない。それ以上は切り捨てられる。

そのため、パスワードに『abcdefghij』を設定しても、最後の『ij』が切り捨てられて、『abcdefgh』だけがハッシュされて.htpasswdファイルに書き込まれる。

実際にブラウザでアクセスして、認証する際にも、始めの8文字が『abcdefgh』であれば、それ以降の文字はハッシュされるときに切り捨てられるので、マッチしていてもしていなくても認証OKとなる。
つまり、上記ケースでは以下のいずれでも認証OKとなる。
・abcdefgh
・abcdefghij
・abcdefghaaaaa

上記仕様から、標準では9文字以上のパスワードが利用できない。しかし、パスワードの暗号化にmd5を利用すると9文字以上のパスワードが利用できる。

md5で暗号化するには、以下のように『-m』オプションを付与すればよい。

【実行例】
# htpasswd -m /etc/httpd/conf/.htpasswd user3
New password:
Re-type new password:
Adding password for user user3

md5で暗号化した場合は、パスワードがキッチリ一致しなければ認証OKとならない。
md5の場合の文字数制限は確認中。。。
ただ、相当長くても大丈夫そう。

【.htpasswdの内容】
user2:YbFSlpa9ix7so ←crypt()で暗号化したもの
user3:$apr1$sGgFf...$YtExFt5siF7hd2ARlaSst/ ←md5で暗号化したもの
※混在していても正常に動いた。

通常lsコマンドでファイルの更新日を見ると、以下のように年月日のみ表示される。
更新されたのが1週間以内?1ヶ月以内?であれば、更新月日時分が表示される。

# ls -l install.log
-rw-r--r-- 1 root root 51345 4月 4 2011 install.log

オプションを以下のように指定すると、更新された年月日時分秒が表示される。

# ls --full-time install.log
-rw-r--r-- 1 root root 51345 2011-04-04 11:49:50.000000000 +0900 install.log

■Apache用のパスワードファイル「/etc/httpd/conf/.htpasswd」を新規に作成し、ユーザ「user1」を追加する場合
※もし既に「.htpasswd」ファイルが存在する場合は、これまでに登録されたユーザクリアされて、新規の「user1」だけになります。

# htpasswd -c /etc/httpd/conf/.htpasswd user1
New password:
Re-type new password:
Adding password for user user1

■ユーザ「user2」を追加する場合

# htpasswd /etc/httpd/conf/.htpasswd user2
New password:
Re-type new password:
Adding password for user user2

■ユーザ「user2」のパスワードを変更する場合

# htpasswd /etc/httpd/conf/.htpasswd user2
New password:
Re-type new password:
Updating password for user user2

■ユーザ「user2」を削除する場合

# htpasswd -D /etc/httpd/conf/.htpasswd user2
Deleting password for user user2

Linuxでは稼働時間の経過と共に(ファイルの書き込みの度に?)freeコマンドで見たところのcachedの値が増加する傾向にある。
Linuxはファイルを書き込む際に、いきなりディスクに書き込むわけではなく、一旦キャッシュ(メモリ)上に書き込み、これでI/Oを完了したとすることでパフォーマンス向上を図っているためである(ディスクに書くよりメモリに書く方が速い)。
キャッシュ上のデータは非同期でディスクに書き込まれる。
このように使われていないメモリはどんどんキャッシュとして利用されるため、時間の経過と共にcachedの値が増加する。
最終的にはメモリ全体の使用率が95%程度まで(かな?)増加するため、単純にfreeコマンド等でメモリの使用率を見るとメモリが逼迫しているように見える。
しかし、OSやアプリケーションがメモリを必要とした際には、このキャッシュ領域が開放されて使われる。
freeコマンドで表示されるbuffersやcachedは必要に応じて解放されて使われるため、メモリの空き領域の一部として考えることが多い。

上記特徴から、Linuxでメモリの使用率監視を行う際には、freeコマンドの「-/+ buffers/cache」で表示される「used」の値を使用率と見て監視することが多い。

しかし、Oracle Databaseが稼働しているサーバでは、SGA、PGA、バックグラウンドプロセスの容量を足した数値(Oracleが使っているはずのメモリの容量)が、上記usedの値よりも小さく表示されていた。
使っているはずなのに使っているように見えない??
・・・だが、実際には大量のスワップが発生していたため、やはりメモリは使われていた様子。
調べてみると、Oracleの共有メモリはfreeコマンドで見たところのusedではなく、cachedに計上されている様子。
容量の内訳からしてそうかとは思っていたが。。。
ただ、Oracleの設定によってどこに計上されるかが変わるようなので、正確なところはもっと調査の必要有り。

また、JBossが稼働しているAPサーバでも同様の傾向があるため、こちらも要調査。

Mem
 total 物理メモリ総量。
 used 物理メモリの使用量。バッファとキャッシュを含む。
 free 物理メモリの空き容量。
 shared 物理メモリのうち、共有メモリの使用量。
 buffers 物理メモリのうち、バッファキャッシュの使用量。ブロックデバイス用のキャッシュ。
 cached 物理メモリのうち、ページキャッシュの使用量。ファイル用のキャッシュ。

-/+ buffers/cache
 used 物理メモリの使用量から、バッファとキャッシュを引いた使用量。
 free 物理メモリの空き容量に、バッファとキャッシュの使用量を加えた容量。OSとアプリケーションが使える残りメモリ。

Swap
 total スワップの総量。
 used スワップの使用量。
 free スワップの空き容量。

LinuxでLVMの論理ボリュームを作成した後、このボリュームを拡張する方法。
なお、ボリュームグループには必要な空きがある前提で。

ファイルシステムがext3の場合はマウントを解除せずにオンラインでサイズ拡張が可能。

1.まずはVG内のLVOLを拡張する。
 今回はLogVol02を4GB拡張する
--------------------ここから--------------------
# lvextend -L +4G /dev/VolGroup05/LogVol02
Extending logical volume LogVol02 to 10.00 GB
Logical volume LogVol02 successfully resized
# echo $?
0
--------------------ここまで--------------------

2.続いて拡張した論理ボリューム内のファイルシステムを拡張する。
--------------------ここから--------------------
# resize2fs /dev/VolGroup05/LogVol02
resize2fs 1.39 (29-May-2006)
Filesystem at /dev/VolGroup05/LogVol02 is mounted on /data/xxx/arc00; on-line resizing required
Performing an on-line resize of /dev/VolGroup05/LogVol02 to 2621440 (4k) blocks.
The filesystem on /dev/VolGroup05/LogVol02 is now 2621440 blocks long.

# echo $?
0
--------------------ここまで--------------------

論理ボリューム拡張時はvgdisplayコマンドで結果を確認し、
ファイルシステム拡張時はdfで結果を確認する。

カレントディレクトリ以下全てのディレクトリのパーミッションを777に変更する。
ファイルのパーミッションは変更されない。

# find . -type d -exec chmod 777 {} \;

変更後にディレクトリのみを一覧表示してパーミッションを確認する。

# find . -type d -exec ls -ld {} \;

Apacheの設定ファイル /etc/httpd/conf/httpd.conf や /etc/httpd/conf.d/*.conf を修正したとき、設定ファイルの構文が間違っていないかを検証するためのコマンドは以下のとおり。

# apachectl configtest

エラーがある場合は標準出力に出力されるので、設定ファイルと行番号を見て、間違いを修正する。

間違いがなくなるまで同じことを繰り返し、エラーが出なくなったらApacheを再起動する。

このアーカイブについて

このページには、過去に書かれたブログ記事のうちLinuxカテゴリに属しているものが含まれています。

前のカテゴリはLANです。

次のカテゴリはMySQLです。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。