2013-10-30

CentOS - Oracle 11gR2 - HugePages


Oracle이 잦은 swapping으로 성능 저하가 나는 경우가 있다.
주로 메모리 요구량이 많거나 또는 기본 4K pool이 모자라서 발생한다.

일반적으로 16GB 이상을 Oracle에 할당하면 발생하기 시작한다.
RHEL/CentOS 에서는 HugePages 라는 2M 혹은 4M 크기로 할당하여 회피할 수 있다.
또한 HugePage로 할당된 메모리는 swap되지 않고 메모리에 있는다.

1. Oracle 에 할당할 메모리크기 확인

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> show parameter target

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
archive_lag_target                   integer     0
db_flashback_retention_target        integer     1440
fast_start_io_target                 integer     0
fast_start_mttr_target               integer     0
memory_max_target                    big integer 0
memory_target                        big integer 0
parallel_servers_target              integer     16
pga_aggregate_target                 big integer 180M
sga_target                           big integer 600M
SQL>
[oracle@ora11 ~/scripts]$ ipcs -m

------ Shared Memory Segments --------
key        shmid      owner      perms      bytes      nattch     status
0x3b5a955c 5013505    oracle    660        631242752  22
 600+M 정도 필요하다.

2. Oracle 수행 계정에서 900M 까지(600M이상) 사용할 수 있게 준비


[root@ora11 ~]# tail -2 /etc/security/limits.conf
oracle soft memlock 921600
oracle hard memlock 921600
 확인
[root@ora11 ~]# su - oracle -c "ulimit -l"
921600
혹은
[oracle@ora11 ~/scripts]$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 16037
max locked memory       (kbytes, -l) 921600
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 16037
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
[oracle@ora11 ~/scripts]$

수행 계정의 그룹정보를 확인
[oracle@ora11 ~/scripts]$ id -a
uid=500(oracle) gid=500(dba) groups=500(dba)
[oracle@ora11 ~/scripts]$ grep dba /etc/group
dba:x:500:dmadmin

3. 준비할 HugePage 블럭 계산


[oracle@ora11 ~/scripts]$ grep Hugepagesize /proc/meminfo
Hugepagesize:     2048 kB
 2M 단위로 할당 중임, 600M / 2M = 300 개 필요, 넉넉하게 400개 지정
group id 는 500
[root@ora11 ~]# tail -2 /etc/sysctl.conf
vm.nr_hugepages = 400
vm.hugetlb_shm_group = 500

4. 커널 값 적용


리부팅 혹은
[root@ora11 ~]# sysctl -w vm.nr_hugepages=400
vm.nr_hugepages = 400
[root@ora11 ~]# sysctl -w vm.hugetlb_shm_group=500
vm.hugetlb_shm_group = 500
[root@ora11 ~]#

5. Oracle 재시작 후 확인


HugePage 적용시
[oracle@ora11 ~/scripts]$ egrep -e Mem -e Page -e Huge /proc/meminfo
MemTotal:      2056548 kB
MemFree:        674696 kB
AnonPages:       69968 kB
PageTables:      11384 kBHugePages_Total:   500
HugePages_Free:    199

HugePages_Rsvd:      0
Hugepagesize:     2048 kB
 미 적용시

[oracle@ora11 ~/scripts]$ egrep -e Mem -e Page -e Huge /proc/meminfo
MemTotal:      2056548 kB
MemFree:       1055076 kB
AnonPages:       71488 kB
PageTables:      37716 kB
HugePages_Total:     0
HugePages_Free:      0

HugePages_Rsvd:      0
Hugepagesize:     2048 kB
 HugePage 사용시 메모리 할당 갯수가 줄어들어 관리용 PageTable도 줄어드는 것 확인됨


기타.

가용한 HugePage가 모자라면 Oracle 기동 중 경고 없이 기존 방식대로 수행된다.

11.2.0.1에는 호환성 문제가 있어서 AMM (Automatic Memory Management) 구성은 안된다.
다만, ASMM (Automatic Shared Memory Management)는 지원한다.
즉, memory_target, memory_max_target 을 설정하는 AMM은 안되니, reset하고
대신 sga_target, sga_max_size, pga_aggregate_target 으로 조정해야한다.
SQL> show parameter target

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
archive_lag_target                   integer     0
db_flashback_retention_target        integer     1440
fast_start_io_target                 integer     0
fast_start_mttr_target               integer     0
memory_max_target                    big integer 0
memory_target                        big integer 0

parallel_servers_target              integer     16
pga_aggregate_target                 big integer 180M
sga_target                           big integer 600M
SQL>
11.2.0.2 부터는 HugePage를 강제로 사용하고 모자라면 기동안되게하는
use_large_pages설정이 추가됐다.
ALTER SYSTEM SET use_large_pages=only SCOPE=SPFILE;
SHUTDOWN IMMEDIATE;
STARTUP;
 단순히 swap되지 않고 메모리에만 있게 하려면 다른 방법도 있다.
/etc/fstab에 보면 메모리를 통상 /dev/shm 에 shm 혹은 tmpfs 로 마운트하는데
ramfs로 마운트하면 swap되지 않는다.

# umount /dev/shm
# mount -t ramfs ramfs /dev/shm

CentOS - Oracle 설치위한 시스템 라이브러리

CentOS - Required Packages for Oracle 

(CentOS - Oracle 설치위한 시스템 라이브러리)


Oracle 11gR2 - CentOS 5 에서

CentOS 5 (x86)
binutils
compat-libstdc++-33
elfutils-libelf
elfutils-libelf-devel
elfutils-libelf-devel-static
gcc
gcc-c++
glibc
glibc-common
glibc-devel
glibc-headers
kernel-headers
ksh
libaio
libaio-devel
libgcc
libgomp
libstdc++
libstdc++-devel
make
sysstat
unixODBC
unixODBC-devel

CentOS 5 (x64)
binutils
compat-libstdc++-33 (both 32 and 64 bit required)
elfutils-libelf
elfutils-libelf-develelfutils-libelf-devel-static
gcc
gcc-c++
glibc                         (both 32 and 64 bit required)
glibc-common
glibc-devel                (both 32 and 64 bit required)
glibc-headers
ksh
libaio                         (both 32 and 64 bit required)
libaio-devel               (both 32 and 64 bit required)
libgcc                        (both 32 and 64 bit required)
libstdc++                   (both 32 and 64 bit required)
libstdc++-devel
make
sysstat
unixODBC                  (both 32 and 64 bit required)
unixODBC-devel         (both 32 and 64 bit required)

기타 필수적이진 않지만 참고하면 좋을 설정들

 /etc/sysctl.conf
      # Kernel parameter settings for Oracle
 fs.aio-max-nr = 1048576
 fs.file-max = 6815744
 kernel.shmall = 2097152
 kernel.shmmax = 4294967295
 kernel.shmmni = 4096
 kernel.sem = 250 32000 100 128
 net.ipv4.ip_local_port_range = 9000 65500
 net.core.rmem_default = 262144
 net.core.rmem_max = 4194304
 net.core.wmem_default = 262144
 net.core.wmem_max = 1048586

/etc/security/limits.conf
      oracle           soft    nproc   2047
      oracle           hard    nproc   16384
      oracle           soft    nofile  1024
      oracle           hard    nofile  65536
 
/etc/pam.d/login 
      session    required     /lib/security/pam_limits.so
      session    required     pam_limits.so 

2013-10-23

iPad Air - Apple Event october 2013

iPad Air : 얇고 가볍게, iPhone 5S와 같은 CPU, MIMO 지원하는 최초 iOS기기
iPad mini 2 : 레티나 디스플레이, 5S와 동일 CPU

iWork, iLife : 64비트 최적화 및 기능 업그레이드

Mac Pro, Mac Book Pro : 사양 업그레이드


OS X Mavericks : 무료, Maps/iBooks 업그레이드

역시나 한방의 반전없는 싱거운 느낌


http://www.apple.com/apple-events/october-2013/

2013-10-16

쿠키 클릭커 - Cookie Clicker

쿠키 생산을 주제로 한  엽기 타이쿤 류 게임

http://orteil.dashnet.org/cookieclicker/



게임의 정보를 요약해 주는 애드온(javascript)


javascript: (function () {
var jA = document.createElement('script');
jA.setAttribute('type', 'text/javascript');
jA.setAttribute('src', 'http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js');
jA.onload = function() {
var jB = document.createElement('script');
jB.setAttribute('type', 'text/javascript');
jB.setAttribute('src', 'http://pastebin.com/raw.php?i=2KRNm8Gm');
document.body.appendChild(jB);
};
document.body.appendChild(jA);
}());

bookmark용 링크



2013-09-25

CentOS - 서버 시간 동기화

NTPd 구성

  * ntp 패키지 설정
  * 안정적인 ntp 서버 목록 확보


1. ntp 패키지 설치
# yum -y install ntp


2.일단 한번만 동기화
# ntpdate time.windows.com


3. 계속 사용하려면
# chkconfig --list | grep ntp
ntpd            0:off   1:off   2:off   3:off   4:off   5:off   6:off
# chkconfig ntpd on
# chkconfig --list | grep ntp
ntpd            0:off   1:off   2:on    3:on    4:on    5:on    6:off
# service ntpd start



4. 국내 ntp 서버 등록 하기
* /etc/ntp.conf 파일에 server 부분 수정/추가
** http://www.pool.ntp.org/zone/kr 에서 제시하는 설정
...
server 3.kr.pool.ntp.org
server 3.asia.pool.ntp.org
server 0.asia.pool.ntp.org
...


기타 자주 쓰는 서버들
kr.pool.ntp.org
asia.pool.ntp.org
time.bora.net
time.windows.com
time.kornet.net
time.nuri.net

CentOS - rpmforge 설치



rpmforge 는 CentOS 나 RedHat과 별개로 진행되는 프로젝트임.

http://pkgs.repoforge.org/rpmforge-release/


1. 설치할 바이너리가 32비트일지 64비트일지 확인
  * i386, i486, i586, i686 등이면 32비트
  * x86_64면 64비트
[root@bocs ~]# uname -m
x86_64

2. http://pkgs.repoforge.org/rpmforge-release/ 에서 최신 버전 확인
 * 현재 확인시 rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm

[   ] rpmforge-release-0.5.3-1.el3.rf.i386.rpm   20-Mar-2013 16:59   11K  RHEL3 and CentOS-3 x86 32bit
[   ] rpmforge-release-0.5.3-1.el3.rf.x86_64.rpm 20-Mar-2013 16:59   11K  RHEL3 and CentOS-3 x86 64bit
[   ] rpmforge-release-0.5.3-1.el4.rf.i386.rpm   20-Mar-2013 16:59   11K  RHEL4 and CentOS-4 x86 32bit
[   ] rpmforge-release-0.5.3-1.el4.rf.x86_64.rpm 20-Mar-2013 16:59   11K  RHEL4 and CentOS-4 x86 64bit
[   ] rpmforge-release-0.5.3-1.el5.rf.i386.rpm   20-Mar-2013 16:59   12K  RHEL5 and CentOS-5 x86 32bit
[   ] rpmforge-release-0.5.3-1.el5.rf.x86_64.rpm 20-Mar-2013 16:59   12K  RHEL5 and CentOS-5 x86 64bit
[   ] rpmforge-release-0.5.3-1.el6.rf.i686.rpm   20-Mar-2013 16:59   12K  RHEL6 and CentOS-6 x86 32bit
[   ] rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm 20-Mar-2013 16:59   12K  RHEL6 and CentOS-6 x86 64bit
[   ] rpmforge-release-0.5.3-1.rf.src.rpm        20-Mar-2013 16:59  8.5K  Distribution independent source
 
3. 해당 rpm download
[root@bocs ~]# wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
Resolving apt.sw.be... 193.1.193.67
Connecting to apt.sw.be|193.1.193.67|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 12640 (12K) [application/x-redhat-package-manager]
Saving to: ?pmforge-release-0.5.3-1.el6.rf.x86_64.rpm?

100%[=====================================================================>] 12,640      61.2K/s   in 0.2s

Last-modified header invalid -- time-stamp ignored.
2013-09-25 03:26:33 (61.2 KB/s) - ?pmforge-release-0.5.3-1.el6.rf.x86_64.rpm?saved [12640/12640]
[root@bocs ~]#
   혹시 wget 없다면
[root@bocs ~]# yum -y install wget

4. rpm 설치
[root@bocs ~]# rpm -Uvh rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
warning: rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 6b8d79e6: NOKEY
Preparing...                ########################################### [100%]
   1:rpmforge-release       ########################################### [100%]
[root@bocs ~]#
 5. Repository PGP key 설치
[root@bocs ~]# wget http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
[root@bocs ~]#  rpm --import RPM-GPG-KEY.dag.txt

 6. 필요한 모듈 설치
   * htop 설치 예
[root@bocs src]# yum --enablerepo=rpmforge -y install htop

2013-09-24

CentOS LVM resizing volume - root volume 줄이고 swap 늘이기

root volume 줄이고 swap 늘이기

CentOS 6.4 x64

LVM 으로 볼륨을 만들어 두면 크기 조정하기가 편하다.
기본 값으로 설치를 마치고 보니, swap이 작아 보인다.

/ 를 줄이고 swap을 늘이려하나, 사용중인 root volume은 live 상태로 바꾸지 못한다.

해결 방법은

1. 설치 DVD (혹은 minimal, live 등)을 이용하여 rescue 모드로 부팅한다.
  • 부팅모드 : rescue
  • 언어선택 :  기본 (English)
  • 키보드 : 기본 (us)
  • rescue 이미지 : 기본 (Local CD/DVD)
  • network interface : No  (Network 필요 없음)
  • 기존 파일시스템 mount 여부 : SKIP (반드시 마운트 하지 말것)
  • 할일 : 기본 (shell 시작)
2.  shell이 시작되면

기존 파일 시스템을 인식
# lvm vgchange -a y


수정할 / 볼륨 확인
# lvscan

파일시스템 오류 여부 확인
# e2fsck -y /dev/VolGroup/lv_root 

파일시스템 줄이기 (8.54G -> 7G)
# resize2fs -f /dev/VolGroup/lv_root 7G

논리볼륨 줄이기 (8.54G -> 7G)
# lvm lvreduce -L7G /dev/VolGroup/lv_root

swap에 줄여서 남긴 공간 전체 (100%=약1.5G) 할당하기
# lvm lvresize /dev/VolGroup/lv_swap -l 100%FREE
혹은 특정크기(2GB) 지정하기
# lvm lvresize /dev/VolGroup/lv_swap -L2G


swap 영역 새로 만들기
#mkswap -f /dev/VolGroup/lv_swap



3.shell 끝내고 재시작
  • # exit
  • reboot 선택


2013-09-13

CentOS - 사용중인 ext3 파일 시스템을 ext4로 변경하는 법

CentOS - converting procedure from ext3 to ext4 without format

사용중인 ext3 파일 시스템을 ext4로 변경하는 법

* 최상위 (/ ) 아닌 경우 ; / 를 변환하려면 initrd 수정 후 single mode에서 처리 등 조금 다름
mv /boot/initrd-`uname -r`.img /boot/initrd-`uname -r`.img.old
mkinitrd -v --with=ext4 --with=ext3 /boot/initrd-`uname -r`.img `uname -r` 

** 디렉토리 변환하면(fsck -D 옵션), ext4 에서 ext3으로 돌아올 수 없게 됨


CentOS 5.6

5.6에서는 커널에서 지원을 하지 않았기 때문에, 별도로 만들어진 ext4 전용 툴(tune4fs,e4fsck)을 설치 후 작업

1. ext4 전용 툴(tune4fs,e4fsck)을 설치
#yum -y upgrade mkinitrd e2fsprogs
#yum -y install e4fsprogs

2. 파일시스템 설정값 변경
*uninit_bg 으로 기존 데이터 유지
#cd /; umount /dev/VolGroup00/LogVol01
#tune4fs -O extents,uninit_bg,dir_index /dev/VolGroup00/LogVol01

3. /etc/fstab 의 내용을 ext3에서 ext4로 변경
#vi /etc/fstab

4. 변환 수행
* 변환시 invalid 수정한다는 문구가 조금 나타남
** single mode에서 하는 것이 안전함
#e4fsck -fDC0 /dev/VolGroup00/LogVol01

5. 완료 후 사용
#mount -a


CentOS 6.x 

기본 툴(tune2fs,e2fsck)에서 ext4 를 지원함
* 툴 명령만 다를 뿐 OS 5.6에서와 절차는 동일함
#cd /; umount /dev/VolGroup00/LogVol01

#tune2fs -O extents,uninit_bg,dir_index /dev/VolGroup00/LogVol01

#vi /etc/fstab

#e2fsck -fDC0 /dev/VolGroup00/LogVol01

#mount -a

CentOS vFabric tcServer 설치

CentOS vFabric tcServer installation and configuration

우선 SUN JDK 설치 후 VMWare tcServer 설치


작업 환경 : CentOS 5.9, SUN Java 1.6, tcServer 2.9.3
[root@was was]# cat /etc/redhat-release
CentOS release 5.9 (Final)
[root@was was]# uname -a
Linux was 2.6.18-348.16.1.el5 #1 SMP Wed Aug 21 04:00:25 EDT 2013 x86_64 x86_64 x86_64 GNU/Linux

1. 설치 파일 확보 : SUN JDK 및 VMWare tcServer

[root@was was]# ls
jdk-6u45-linux-i586-rpm.bin
jdk-6u45-linux-x64-rpm.bin
vfabric-tc-server-standard-2.9.3-RELEASE.noarch.rpm

2. SUN JDK 1.6 설치 및 확인
* 여기선 x32설치, 필요시 x64 설치
[root@was was]# mkdir tt;cd tt
[root@was tt]# sh ../jdk-6u45-linux-i586-rpm.bin
Unpacking...
Checksumming...
Extracting...
UnZipSFX 5.50 of 17 February 2002, by Info-ZIP (Zip-Bugs@lists.wku.edu).
  inflating: jdk-6u45-linux-i586.rpm
  inflating: sun-javadb-common-10.6.2-1.1.i386.rpm
  inflating: sun-javadb-core-10.6.2-1.1.i386.rpm
  inflating: sun-javadb-client-10.6.2-1.1.i386.rpm
  inflating: sun-javadb-demo-10.6.2-1.1.i386.rpm
  inflating: sun-javadb-docs-10.6.2-1.1.i386.rpm
  inflating: sun-javadb-javadoc-10.6.2-1.1.i386.rpm
Preparing...                ########################################### [100%]
   1:jdk                    ########################################### [100%]
Unpacking JAR files...
        rt.jar...
        jsse.jar...
        charsets.jar...
        tools.jar...
        localedata.jar...
        plugin.jar...
        javaws.jar...
        deploy.jar...
Installing JavaDB
Preparing...                ########################################### [100%]
   1:sun-javadb-common      ########################################### [ 17%]
   2:sun-javadb-core        ########################################### [ 33%]
   3:sun-javadb-client      ########################################### [ 50%]
   4:sun-javadb-demo        ########################################### [ 67%]
   5:sun-javadb-docs        ########################################### [ 83%]
   6:sun-javadb-javadoc     ########################################### [100%]

Done.
[root@was tt]# whereis java
java: /usr/bin/java /etc/java /usr/lib/java /usr/share/java
[root@was tt]# java -fullversion
java full version "1.6.0_45-b06"
[root@was tt]# rpm -qa | egrep -e java -e jdk
jdk-1.6.0_45-fcs
sun-javadb-demo-10.6.2-1.1
sun-javadb-common-10.6.2-1.1
sun-javadb-client-10.6.2-1.1
sun-javadb-docs-10.6.2-1.1
sun-javadb-core-10.6.2-1.1
sun-javadb-javadoc-10.6.2-1.1

3. VMWare tcServer 설치 및 확인

[root@was tt]# cd ..
[root@was was]# rpm -i vfabric-tc-server-standard-2.9.3-RELEASE.noarch.rpm
[root@was was]# rpm -qa | grep vfabric
vfabric-tc-server-standard-2.9.3-RELEASE
[root@was was]# cd /opt/vmware/vfabric-tc-server-standard/
[root@was vfabric-tc-server-standard]# ls
lib         README.txt         tcruntime-instance.bat  tomcat-6.0.37.A.RELEASE
licenses    tcruntime-ctl.bat  tcruntime-instance.sh   tomcat-7.0.42.A.RELEASE
quickstart  tcruntime-ctl.sh   templates

4. server01 인스턴스 구성 및 확인
* 여기에선 기본인 tomcat7 대신 tomcat6를 선택하였음
** 필요에 따라 server01/conf/tomcat-users.xml 등 수정

tcServer 설치시 생성된 tcserver 라는 계정 사용

[root@was vfabric-tc-server-standard]# tail -1 /etc/passwd
tcserver:x:503:502:tc Server User:/home/tcserver:/bin/bash
[root@was vfabric-tc-server-standard]# chmod g+w .
[root@was vfabric-tc-server-standard]# su - tcserver
[tcserver@was ~]$ cd /opt/vmware/vfabric-tc-server-standard/
[tcserver@was vfabric-tc-server-standard]$ JAVA_HOME=/usr/java/default ./tcruntime-instance.sh create -v 6.0.37.A.RELEASE server01
Creating instance 'server01' ...
  Using separate layout
  Creating bin/setenv.sh
  Applying template 'base'
    Copying template's contents
    Applying fragment 'context-fragment.xml' to 'conf/context.xml'
    Applying fragment 'server-fragment.xml' to 'conf/server.xml'
    Applying fragment 'web-fragment.xml' to 'conf/web.xml'
    Applying fragment 'tomcat-users-fragment.xml' to 'conf/tomcat-users.xml'
    Applying fragment 'catalina-fragment.properties' to 'conf/catalina.properties'
  Applying template 'base-tomcat-6'
    Copying template's contents
    Applying fragment 'server-fragment.xml' to 'conf/server.xml'
    Applying fragment 'web-fragment.xml' to 'conf/web.xml'
  Applying template 'bio'
    Copying template's contents
    Applying fragment 'server-fragment.xml' to 'conf/server.xml'
  Configuring instance 'server01' to use Tomcat version 6.0.37.A.RELEASE
  Setting permissions
Instance created
Connector summary
  Port: 8080   Type: Blocking IO   Secure: false
[tcserver@was vfabric-tc-server-standard]$ ls server01
bin  conf  lib  logs  README.txt  temp  webapps  work
[tcserver@was vfabric-tc-server-standard]$ JAVA_HOME=/usr/java/default ./tcruntime-instance.sh list
Listing instances in '/opt/vmware/vfabric-tc-server-standard'
  server01 Info:
    Instance name:         server01
    Runtime version:       6.0.37.A.RELEASE
    tc Runtime Base:       /opt/vmware/vfabric-tc-server-standard/server01
    Status:                NOT RUNNING
[tcserver@was vfabric-tc-server-standard]$

5. server01 인스턴스 확인, 구동 후 graceful 정지

[tcserver@was vfabric-tc-server-standard]$ JAVA_HOME=/usr/java/default ./tcruntime-ctl.sh server01 status
Instance name:         server01
Runtime version:       6.0.37.A.RELEASE
tc Runtime Base:       /opt/vmware/vfabric-tc-server-standard/server01
Status:                NOT RUNNING
[tcserver@was vfabric-tc-server-standard]$ JAVA_HOME=/usr/java/default ./tcruntime-ctl.sh server01 start
Using CATALINA_BASE:   /opt/vmware/vfabric-tc-server-standard/server01
Using CATALINA_HOME:   /opt/vmware/vfabric-tc-server-standard/tomcat-6.0.37.A.RELEASE
Using CATALINA_TMPDIR: /opt/vmware/vfabric-tc-server-standard/server01/temp
Using JRE_HOME:        /usr/java/default
Using CLASSPATH:       /opt/vmware/vfabric-tc-server-standard/tomcat-6.0.37.A.RELEASE/bin/bootstrap.jar
Using CATALINA_PID:    /opt/vmware/vfabric-tc-server-standard/server01/logs/tcserver.pid
Status:                RUNNING as PID=11482
[tcserver@was vfabric-tc-server-standard]$ JAVA_HOME=/usr/java/default ./tcruntime-ctl.sh server01 stop
Instance is running as PID=11482, shutting down...
Instance is running PID=11482, sleeping for up to 60 seconds waiting for shutdown
Instance shut down gracefully
[tcserver@was vfabric-tc-server-standard]$

2013-09-11

아이폰 5S 속보 요약 - Apple event september 2013

Apple event september 2013 - iPhone 5S 속보 특징

  • 아이폰 5는 단종 (5C 로 대체), 4S는 약정시 무료옵션 (미국)
  • 5C 는 기존 5모델과 동일 HW사용 : 단 FaceTime HD 카메라 향상
  • 5S에 골드색 포함 : 골드, 실버, new space gray
  • A7 칩 (64비트 CPU) + M7 동작감지 칩 + GPS
  • 아이폰5 대비 2배 빨라 : 최초 아이폰 대비 : 40x CPU, 56x 그래픽
  • LTE, Dual-band WiFi, Bluetooth 4.0 
  • 배터리(사용시간) : 기존 5모델과 비슷 혹은 약간 향상 / 3G 통화 10시간, LTE 웹서핑 10시간
  • 5S에 Touch ID 라는 지문 인식 기능 포함
  • 카메라 개선 : 높아진 센서크기, 초당 10장 연속촬영, 슬로-모 (120fps 720p), true tone 플래시
  • A7 칩으로 대폭적인 성능 향상, 특히 비디오
  • 5C 는 플라스틱, 다양한 색상으로
  • iWork 및 iLife( iPhoto + iMovie) 는 새로운 iOS 장비에서 무료 (iBook 저작과 맞물리는 듯?)
  • 9.18 부터 iTunes radio
  • 9.18 부터 iOS7을 iphone, ipad 로 배포

1차 발매국 (일본 등) 은 9.20부터 판매, 9.13 부터 선주문 예약 : 한국은 없음 (LTE-A는 없었기 때문에?)
이후 발매국은 올 연말 12월 경 판매 


공식 이벤트 동영상 보기 => http://www.apple.com/apple-events/

2013-09-05

도큐멘텀 설치 - Oracle 설정

RAC 환경에서 설치 하려면
반드시
MAX_COMMIT_PROPAGATION_DELAY
값을 0 (기본값 700/100=7.00초)으로 한 경우만 기술지원을 받을 수 있다.

문제는 10g Release2 부터 이 변수가 없어졌다.
대신
broadcast on commit
라는 관련 설정이 생겼지만, 의미가 다르기 때문에 주의가 필요하다.

Hint절 사용

select /*+ hint */ r_object_id from dm_sysobject_s

select r_object_id from dm_sysobject enable(oracle( hint ))


DB 계정 잠기지 않게

SQL> select profile from dba_users where username='{RepositoryOwner}';
SQL> alter profile {ProfileName}  limit password_life_time unlimited;

만일 만료(혹은 grace 기간) 해제
SQL> ALTER USER {UserName} IDENTIFIED BY {password};

이미 잠긴 경우
ALTER USER {UserName} ACCOUNT UNLOCK;

CentOS - 그래픽 없이 명령으로 볼륭 디스크 공간 추가하기

최초 OS 설치후 여러 프로그램을 /opt 에 설치하기위해, 디스크를 추가하고 /opt에 추가된 공간을 할당하는 예



1.추가된 디스크 확인 (sdb가 추가 디스크임)
# ls -l /dev | grep "^brw" | grep " [hs]d"
brw-rw----. 1 root disk      8,   0 Sep  5 11:27 sda
brw-rw----. 1 root disk      8,   1 Sep  5 11:27 sda1
brw-rw----. 1 root disk      8,   2 Sep  5 11:27 sda2
brw-rw----. 1 root disk      8,  16 Sep  5 11:27 sdb

 
2. 파티션 생성
# fdisk -l /dev/sdb


Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x698cd53a.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-2610, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610):
Using default value 2610

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.


# fdisk -l /dev/sdb

Disk /dev/sdb: 21.5 GB, 21474836480 bytes

255 heads, 63 sectors/track, 2610 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x698cd53a

   Device Boot      Start         End      Blocks   Id  System

/dev/sdb1               1        2610    20964793+  8e  Linux LVM

3. Physical volume 생성
# pvcreate /dev/sdb1
  Physical volume "/dev/sdb1" successfully created

4. Volume 확인
# vgscan
  Reading all physical volumes.  This may take a while...
  Found volume group "VolGroup" using metadata type lvm2

5. Logical Volume 확인
# lvscan
  ACTIVE            '/dev/VolGroup/lv_root' [8.54 GiB] inherit
  ACTIVE            '/dev/VolGroup/lv_swap' [992.00 MiB] inherit


6. Physical volume 확인
# pvscan
  PV /dev/sda2   VG VolGroup        lvm2 [9.51 GiB / 0    free]
  PV /dev/sdb1                      lvm2 [19.99 GiB]
  Total: 2 [29.50 GiB] / in use: 1 [9.51 GiB] / in no VG: 1 [19.99 GiB]


7. Volume 신규 생성
# vgcreate VolData /dev/sdb1
  Volume group "VolData" successfully created

8. Logical Volume 추가 (15GB)
# lvcreate -L 15G -n lv_data VolData
  Logical volume "lv_data" created


# lvscan
  ACTIVE            '/dev/VolData/lv_data' [15.00 GiB] inherit
  ACTIVE            '/dev/VolGroup/lv_root' [8.54 GiB] inherit
  ACTIVE            '/dev/VolGroup/lv_swap' [992.00 MiB] inherit

9. 파일시스템 생성 (ext4)
# mkfs.ext4 /dev/VolData/lv_data
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
983040 inodes, 3932160 blocks
196608 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4026531840
120 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208

Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 31 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

10. mount 정보 추가
* /etc/fstab 에 아래 한줄 추가

/dev/mapper/VolData-lv_data /opt               ext4    defaults        1 1


# mount -a

# df -k
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/mapper/VolGroup-lv_root
                       8813300   1558824   6806784  19% /
tmpfs                   771484         0    771484   0% /dev/shm
/dev/sda1               495844     97423    372821  21% /boot
/dev/mapper/VolData-lv_data
                      15481840    169456  14525952   2% /opt

CentOS - 복제한 VMWare 에서 네트워크 카드가 eth0 에서 eth1,2 등으로 이름이 바뀌는 문제

네트워크 관리 - CentOS, VMWare

VM 이미지를 복제 (Clone) 한 경우 원본 이미지에서 eth0, eth1 의 이름이 eth2, eth3 등으로 바뀌는 문제

VM이미지 복제 중 기존 네트워크 카드와 충돌을 방지하기 위해 MAC 주소를 재할당하여
원본 이미지의 /etc/sysconfig/networking-scripts/ifcfg-eth0 등에 들어 있는 기존 MAC 주소와 달라져서 /lib/udev/write_net_rules 라는 스크립트에서 자동으로 보정하는 기능 때문임

아래와 유사한 내용이 보이면 이 문제임
# dmesg | grep udev
udev: starting version 147
udev: starting version 147
udev: renamed network interface eth1 to eth3
udev: renamed network interface eth0 to rename2
udev: renamed network interface eth2 to eth4
udev: renamed network interface rename2 to eth2

1) 신규 이미지에서 MAC 주소를 확인
# ifconfig -a | grep eth | grep HWaddr

2) 네트워크 카드 설정에 들어있는 MAC 주소를 신규 주소로 변경
/etc/sysconfig/networking-scripts/ifcfg-eth0
/etc/sysconfig/networking-scripts/ifcfg-eth1
등등

3) 자동 보정 스크립트 삭제 후 재시작 
# cd /etc/udev/rules.d
# rm 70-persistent-net.rules
  (필요시 copy로 다른 곳에 보관)
# reboot

2013-08-28

ORT (Oxford Reading Tree) 옥스포드 리딩트리 책 무료로 보기

어쩌다 보니 영국에서 주로 사용하는 Oxford 출판사의 아이들 읽기 및 산수 학습 교제가 유행이 된 듯하다.

유아에서 초등학생까지 자라면서 아이들이 즐겁게 읽어가며 배워지는 읽기 능력 향상 교제이다.

한국에서 최초로 리딩펜이라는 기술이 도입되어 책에 대면 여러가지 동작을 하는 신기한 기능이 추가되어 유행이 된 듯하다.

펜의 특화된 기능없이도 오랫동안 인기를 유지해온 훌륭한 교제여서 책읽는 것 만으로도 가치가 있다.


가장 좋은 점은 출판사 홈페이지에 250 여권의 교제가 모두 이북 형태로 무료로 사용 가능하다는 점이다.


www.oxfordowl.co.uk 에 접속하여 이메일등록으로 계정하나 발급하면 교제 이북을 사용가능하다.
{ 오디오 북 + 스캔 화면 + 일부의 상호 활동 } 형태로 아이들이 보기에 재미가 쏠쏠하다.



홈페이지 (이북 무료) : www.oxfordowl.co.uk

2013-08-21

최강 무료 캡쳐 툴 - 픽픽 (PicPick)

쓸만한 (한국에서만) 무료 화면캡쳐 툴 입니다.


  • 기본 단축키도 윈도즈의 PrtScn (Print Screen) 키와 연계하게 되어 직관적입니다.
  • 자체적으로 수정가능한 에디터를 내장하였는데 간편하고 왠만한 기능은 다 있습니다.
  • 파일이 작고 설치도 간단하며 자체 업데이트도 됩니다.
  • 한국어 버전을 한국에서 사용하는 경우는 개인, 기업 관계없이 무료입니다.
    (해외판은 무료아닙니다)




라이선스 : 프리웨어 (기업, 공공기관 무료)
지원 운영체제 : Windows XP 이상 (Windows 8 완벽 호환)
등록 일자 : 2013-06-22

흠페이지