RSS구독하기:SUBSCRIBE TO RSS FEED
즐겨찾기추가:ADD FAVORITE
글쓰기:POST
관리자:ADMINISTRATOR

1. ntpd deamon?

ntpd , ntp 서버를 참조해 시스템 클록을 보정하면서, 클라이언트에 시간을 제공하는 데몬.

 

2. ntpd 설정방법

1) /etc/ntp.conf

# restric 설정은 peer 들이 본 서버로 sync 하는 것에 대한 제한

restrict 127.0.0.1

restrict -6 ::1

 

# NTP 서버 설정

server  ntp 서버1

server  ntp 서버2

 

# driftfile , 시간 오차치를 보존해 두는 파일 ntpd 데몬에 의해 자동생성된다.

driftfile /var/lib/ntp/drift

 

# 인증 받기 위한 key가 저장되는 파일

keys /etc/ntp/keys

 

3. ntpd 확인 방법

기본적인 명령어를 통하여 ntpd가 정상적으로 작동을 하는지 확인을 할 수 있다.

1) ntpq -p

예시)

remote

refid

st

t

when

poll

reach

delay

offset

jitter

================================================================

+172.31.x.x

.GPS.

1

u

18

64

377

0.397

-525.92

342.898

*172.31.x.x

.GPS.

1

u

57

64

377

0.326

-707.41

186.074






라벨

설명

remote

Remote Server Host

refid

참조ID(명확하지 않을 때는 0.0.0.0 으로 표시됨)

st

stratum 번호,서버가 어떤 Layer 인지를 표시함.

t

단층(Layer)의 타입 (l:localu:unicastm:multicastb:broadcast)

when

마지막으로 Packet 을 수신한 이후 경과한 시간 (단위:)

poll

Polling 간격 (단위:)

reach

도달가능한 register 8 진수로 표현한 값

delay

Polling insterval 지연예상시간 (단위:밀리초)

offset

단층(Layer) offset (단위:밀리초)

jitter

단층(Layer)의 분산 (단위:밀리초)

 

MARK

설명

' '(reject)

거리가 멀어서 사용되지 않는 서버

'x'(falsetick

falseticker 검사결과 사용되지 않는 서버

'.'(excess)

참조서버가 많아서 사용되지 않는 서버

'-'(outlyer

clustering 검사결과 사용되지 않는 서버

'+'(candidat)

접속 테스트를 합격하여 언제든지 참조가 가능한 서버

'#'(selected)

동기 거리가 멀지만 참조가 가능한 서버

'*'(sys.peer)

동기중인 서버

'o'(pps.peer)

동기중인 서버(동기는 PPS 신호로부터 간접적으로 행해짐

 

 

정상 일 경우

remote

refid

st

t

when

poll

reach

delay

offset

jitter

================================================================

+172.31.x.x

.GPS.

1

u

18

64

377

0.397

-525.92

342.898

*172.31.x.x

.GPS.

1

u

57

64

377

0.326

-707.41

186.074





 

연결이 원할 하지 않을 경우 - 1

remote

refid

st

t

when

poll

reach

delay

offset

jitter

================================================================

x172.31.x.x

.GPS.

1

u

102

256

377

0.366

-1053.6

306.647

x172.31.x.x

.GPS.

1

u

77

256

377

0.354

-1472.2

269.880





 

연결이 원할 하지 않을 경우 - 2

remote

refid

st

t

when

poll

reach

delay

offset

jitter

================================================================

172.31.x.x

.STEP.

16

u

21

64

0

0.000

0.000

0.001

172.31.x.x

.STEP.

16

u

25

64

0

0.000

0.000

0.001





 

2) poll
에대한 부과 설명

각 서버마다 network이나 기타 이유로 인하여 poll은 달라지게 된다. 기본적으로 minpoll64s(26)이고. maxpoll1,024s(210)이다. 이 옵션의 경우에는 ntp.conf에 삽입하여 사용도 가능하다.

 

minpoll 64    ; 16s(24)보다 작을 수 없다.

maxpoll 1024  ; 36.4h(217) 보다 클 수 없다.

4. 기타 참조

1) clocksource

# cat /sys/devices/system/clocksource/clocksource0/available_clocksource

acpi_pm jiffies tsc pit  사용 가능한 clocksource

 

# cat /sys/devices/system/clocksource/clocksource0/current_clocksource

tsc → 현재 사용 중인 clocksource

 

2) Tickless Linux Kernels

2.6.18 이 후 커널에서는 tick counting을 사용하지 않기 시작했고, 몇몇 새로운 커널에서는 주기적인 타이머 인터럽트 프로그래밍이 아닌 불규칙한 인터럽트를 사용하게 되었다. 이것이 바로 tickless kernels라고 부른다. tickless kernels에서는 PIT를 사용하는 것이 아닌 Local APIC timer interrupts를 사용한다. 이것을 이용하여 정상적으로 시간 카운트가 되는지 확인 하는 방법은 하기와 같다.

 

Redhat Enterprise Linux 4: HZ = 1000Hz

Redhat Enterprise Linux 5: HZ = 1000Hz

 

# cat /proc/interrupts ; sleep 10; cat /proc/interrupts

 

CPU0       CPU1       

0:     125251      79291    IO-APIC-edge  timer

1:        591        585    IO-APIC-edge  i8042

8:          0          0    IO-APIC-edge  rtc

9:          0          0    IO-APIC-level  acpi

12:        67          8    IO-APIC-edge  i8042

14:       753        643    IO-APIC-edge  ide0

169:     2840        142    IO-APIC-level  ioc0

177:      748         19    IO-APIC-level  eth0

NMI:       43         35  

LOC:     204282     204830

ERR:        0

MIS:        0         

         CPU0       CPU1       

0:     134539      80039    IO-APIC-edge  timer

1:        592        585    IO-APIC-edge  i8042

8:          0          0    IO-APIC-edge  rtc

9:          0          0    IO-APIC-level  acpi

12:        67          8    IO-APIC-edge  i8042

14:       771        715    IO-APIC-edge  ide0

169:     2840        147    IO-APIC-level  ioc0

177:      800         19    IO-APIC-level  eth0

NMI:       43         36  

LOC:     214314     214862

ERR:        0

MIS:        0

 

before = 125251 + 79291 = 204542

after = 134539 + 80039 = 214578

timer rate = (214578 - 204542) / 10 seconds = 1003/sec

 

5. 참조 URL

http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1005802

 

http://kb.vmware.com/selfservice/microsites/search.do?cmd=displayKC&docType=kc&externalId=1006113&sliceId=1&docTypeID=DT_KB_1_1&dialogID=123674026&stateId=0%200%20132037035

 

http://kldp.org/node/97268

 

 

Trackback
Reply

1. kdump?

kdump 는 커널 crash 가 일어났을 때 메모리 덤프를 해주는 역할로 구 버전의 diskdump netdump kexec kdump로 대체되었습니다. kdump에서는 raw device, disk partition, nfs, ssh 등을 지원합니다.

 

2. kexec / kdump

1) kexec 의 역할

 kexec는 새로운 커널이 BIOS를 통하지 않고 재부팅이 될 수 있게 해 줍니다. kexec는 부팅시에 메모리에(RAM)에 상주하게 되며 패닉(panic) 발생 시 현재 커널을 정지 시키고 새로운 커널(dump용 커널)을 동작시키는 역할을 합니다.

 

2) kdump의 역할

 /etc/kdump.conf 환경설정 파일을 가지고 있으며, 서버의 panic 상황을 지켜보는 역할을 합니다.

 

3. dump 생성 작동 단계

1) 시스템 패닉 발생.(System panics)

2) kdump 커널로 부팅

3) kdump initramfs 로딩 및 init 작동

4) /etc/kdump.conf에 덤프 타켓이 설정되어 있는지 확인( 5, 아니오 9)

5) /etc/kdump.conf설정에 따라 capture dump

6) capture가 정상적으로 완료 되었는지 확인 ( 12, 아니오 7)

7) /etc/kdump.conf 설정 중 default_action halt 일 경우 ( 14, 아니오 8)

8) /etc/kdump.conf 설정 중 default_action reboot 일 경우 ( 12, 아니오 9)

9) root filesystem을 마운트 한 뒤, pivot_root(change root file system), /sbin/init 진행

10) kdump 서비스 시작

11) capture core CP/proc/vmcore /var/crash/<host-addr>-<date>/vmcore로 진행

12) 재부팅

13) shell drop

14) 시스템 다운(정지)

 

kdump가 설정되면, 패닉 발생 시 덤프를 뜨기 위한 비상용 커널이 미리 메모리에 올라가 있다가, 패닉 발생시 해당 비상 커널로 제어권이 넘어가고(실제로는 특수한 형태의 재부팅이 이루어집니다) 물리메모리(Raw memory)를 읽어 저장하게 됩니다.

 

4. kdump 설정법

1) /etc/kdump.conf

#raw /dev/sda5

#ext3 /dev/sda3

#ext3 LABEL=/boot

#ext3 UUID=03138356-5e61-4ab3-b58e-27507ac41937

#net my.server.com:/export/tmp

#net user@my.server.com

#path /var/crash

#core_collector makedumpfile -c --message-level 1

#link_delay 60

#kdump_post /var/crash/scripts/kdump-post.sh

#extra_bins /usr/bin/lftp

#extra_modules gfs2

#options modulename options

#default shell

 

옵션 설명

1) raw device dump 받기

raw <devicename>

 

2) disk dump 받기

     ext3 <devicename>

     ext3 LABEL=라벨명

     ext3 UUID=f15759be-89d4-46c4-9e1d-1b67e5b5da82

 

생성 디렉토리를 변경

path /원하는 디렉토리명

 

3) NETWORK를 통한 dump file 생성

     NFS설정

net <nfs server>:</nfs/mount>

 

     SSH설정

net <user>@<ssh server>

설정 이 후, service kdump propagate 명령어로 ssh keys를 생성

 

4) dump 파일 생성 옵션

core_collector makedumpfile -c --message-level 1

 vmcore를 대용량의 메모리를 FULL DUMP로 생성하게 되면, 오래 걸리기 때문에 확인 쓸모 없는 페이지를 빼고, 압축을 하여 시간을 단축 시키는 것이 좋다. 옵션 확인 방법은 /sbin/makedumpfile --help로 확인이 가능하다

-c : 각 페이지를 압축하는 옵션

-d : 특정 분석이 불필요한 페이지를 빼는 옵션(X표 있는 것은 제외되는 page)

 

Dump

zero

cache

cache

user

free

Level

page

page

private

data

page

0






1

X





2


X




4


X

X



8




X


16





X

31

X

X

X

X

X

, FULL DUMP를 위해서는 –d 0 옵션을 주어야 하며, -d 31는 가장 적은 양의 덤프 옵션이다.

–c, 옵션과 –d 옵션 적용 시에는 vmcore 생성하는 시간이 늘어날 수 있으니, 재부팅 이 후 빨리 원복이 되어야 하는 시스템에서는 제외 하는 것이 좋다.

 

아무것도 설정 안 했을 시, 기본으로 적용 되는 옵션

path /var/crash

core_collector --message-level 7

 

5) 커널 파라미터 설정

/etc/grub.conf

# grub.conf generated by anaconda

#

#boot=/dev/hda

default=0

timeout=5

splashimage=(hd0,0)/boot/grub/splash.xpm.gz

hiddenmenu

title Red Hat Enterprise Linux Client (2.6.17-1.2519.4.21.el5)

        root (hd0,0)

        kernel /boot/vmlinuz-2.6.17-1.2519.4.21.el5 ro root=LABEL=/ rhgb quiet crashkernel=128M@16M

        initrd /boot/initrd-2.6.17-1.2519.4.21.el5.img

 

crashkernel=128M@16M에서 x86시리즈에서는 32bit 64bit든 기본은 128M@16M으로 설정을 한다. 여기에서 128M RAM에 상주하는 용량이다. 기본 권고는 상 위와 같으나 메모리 용량이 클 경우에는 좀 달리한다. 메모리 용량이 256GB이상이거나 TB급일 경우에는 crashkernel=128M@32M로 설정하라는 access.redhat.com 권고가 있으니, vmcore 생성이 정상적이지 않을 경우에는 참조하여 변경 하도록 한다.

 

참조:https://access.redhat.com/kb/docs/DOC-2164 , https://access.redhat.com/kb/docs/DOC-31705

 

5. Daemon 구동

1) kdump daemon 서비스 등록

# chkconfig kdump on (혹은 chkconfig --level 345 kdump on)

 

2) kdump daemon 구동

# service kdump start

 

3) kdump daemon 정지

# service kdump stop

 

4) kdump daemon 상태 확인

# service kdump status

 

6. kdump 테스트 방법

1) Alt+ SysRq + C

/etc/sysctl.conf 에서 kernel.sysrq = 1 로 설정 후 sysctl -p로 활성화 이 후 사용 가능

      키보드에서 Alt + sysRq + C 키를 동시에 눌러서 패닉 유발.

      echo c > /proc/sysrq-trigger 명령어를 통해서 패닉 유발

 

2) NMI_WATCHDOG

서버 HANG 상태로 인하여, keyboard interrupts가 먹혀들지 않아 " Alt+ SysRq + C"로 패닉 유발이 되지 않을 때 셋팅

      /etc/grub.confnmi_watchdog=1(혹은 2) 파라미터를 설정

      (vmware의 경우)nmi 시그널을 보냄

 

3) NMI(Non maskable interrupt) button

H/W에서 지원하는 nmi 버튼을 이용 하기 위한 셋팅

      /etc/sysctl.conf kernel.unknown_nmi_panic = 1을 설정 후 활성화

      /etc/grub.confnmi_watchdog=1(혹은 2) 파라미터를 설정

      nmi 버튼을 누름

 

 

Trackback
Reply
 우분투라하여 이제까지 RHEL 계열만 써본지라 막상 GUI가 더 어색해진 이 마당에.. APM을 설치하게 되어서 잔뜩 쫄아 있었다.

Ubuntu DeskTop Linux 9.10(32bit)
Apache 2.2.14
Php 5.2.11 (5.3.0)
Mysql 5.1.37

먼저 기본으로 설치되어야할 데몬이 있다.
Ubuntu도 YUM과 같이 한번에 의존성이 걸린 패키지까지 설치 할 수 있는 명령어가 있다.
apt-get도 비슷한 명령어인데 aptitude가 좀 더 진보된(?) 명령어라고 한다.
Ubuntu같은 경우에는 설치 한 후 그 상태로는 root 로그인이 안되니, 구글링을 통하여 root 로그인이 가능하게 한 후 설치를 진행하자.(sudo 를 쓰면되나 귀찮아서...)

1. MySql 5.1.37
사전 데몬 설치
# aptitude install build-essential
# aptitude install libncurses5-dev

그룹/사용자 생성
# groupadd mysql
# useradd -g mysql mysql

compile, make, make install
#./configure \
--prefix=/usr/local/mysql \
--with-mysqld-ldflags=-all-static \
--with-client-ldflags=-all-static \
--with-charset=utf8 \
--with-collation=utf8_general_ci

컴파일 완료 확인 후
# make && make install


2. APACHE 2.2.14
apache는 별달리 필요로하는 데몬이 없다.
# ./configure \
--prefix=/usr/local/apache \
--enable-mods-shared=most \
--enable-so \
--enable-ssl

컴파일 완료 확인 후
# make && make install


3. PHP 5.2.11 (PHP 5.3.0)
php 같은 경우 필요로 하는 라이브러리 모듈이 많이 있을 수 있다. php compile시 필요한 모듈을 찾아 설치 해 주자.

사전 데몬 설치
# aptitude install libxml2-dev
# aptitude install libcurl3-dev
# aptitude install libjpeg62-dev
# aptitude install libpng12-dev
# aptitude install libfreetype6-dev
# aptitude install libxslt-dev
# aptitude install libmcrypt-dev

# ./configure \
--prefix=/usr/local/php \
--with-apxs2=/usr/local/apache/bin/apxs \
--with-config-file-path=/usr/local/apache/conf \
--with-mysql=/usr/local/mysql \
--with-jpeg-dir \
--with-png-dir \
--with-zlib  --with-zlib-dir \
--with-freetype-dir \
--with-libxml-dir \
--with-iconv \
--with-gd \
--enable-mod-charset \
--enable-sigchild \
--enable-magic-quotes \
--enable-sockets \
--enable-zip \
--with-xsl --with-xmlrpc \
--with-curl --with-mcrypt

컴파일 완료 확인 후
# make && make install

Trackback
Reply
AIX 카테고리의 이전 글을 보면 AIX에 Apache + PHP + Oracle을 연동하였는데, 이번에는 APM을 설치해야하는 상황이 왔다. 물론 저번의 APO처럼하면 될 줄 알았는데, 이게 왠걸... 안된다. 역시 SE는 쉽지 않다.

일단 AIX Toolbox는 기본으로 설치하여야한다.
설치가 정상적으로 되어 있는지 확인 해 보자.

1. 컴파일을 위한 GCC 등의 패키지 설치 및 확인
- 버전은 업데이트 될 수 있으니 AIX Toolbox에서 확인하는걸 잊지말자.
xargs rpm -iv << EOF
autoconf-2.59-1.aix5.1.noarch.rpm
automake-1.8.5-1.aix5.1.noarch.rpm
binutils-2.14-3.aix5.1.ppc.rpm
gcc-4.2.0-3.aix5.3.ppc.rpm
gcc-cplusplus-4.2.0-3.aix5.3.ppc.rpm
gcc-locale-4.2.0-3.aix5.3.ppc.rpm
libgcc-4.2.0-3.aix5.3.ppc.rpm
libstdcplusplus-4.2.0-3.aix5.3.ppc.rpm
libstdcplusplus-devel-4.2.0-3.aix5.3.ppc.rpm
gdbm-1.8.3-5.aix5.2.ppc.rpm
gdbm-devel-1.8.3-5.aix5.2.ppc.rpm
libtool-1.5.8-2.aix5.1.ppc.rpm
m4-1.4.1-1.aix5.1.ppc.rpm
make-3.80-1.aix5.1.ppc.rpm
EOF


2. PHP 5에서 필요한 패키지 설치 및 확인
xargs rpm -iv << EOF
bzip2-1.0.5-2.aix5.2.ppc.rpm
gd-1.8.4-3.aix5.1.ppc.rpm
gd-devel-1.8.4-3.aix5.1.ppc.rpm
gd-progs-1.8.4-3.aix5.1.ppc.rpm
gettext-0.10.40-8.aix5.2.ppc.rpm
libpng-1.2.8-9.aix5.2.ppc.rpm
libpng-devel-1.2.8-9.aix5.2.ppc.rpm
libjpeg-6b-6.aix5.1.ppc.rpm
libjpeg-devel-6b-6.aix5.1.ppc.rpm
freetype-1.3.1-9.aix5.1.ppc.rpm
freetype-devel-1.3.1-9.aix5.1.ppc.rpm
freetype2-2.1.7-5.aix5.1.ppc.rpm
freetype2-devel-2.1.7-5.aix5.1.ppc.rpm
libxml2-2.6.21-3.aix5.2.ppc.rpm
libxml2-devel-2.6.21-3.aix5.2.ppc.rpm
zlib-1.2.3-4.aix5.2.ppc.rpm
zlib-devel-1.2.3-4.aix5.2.ppc.rpm
EOF
위 패키지는 최소한의 요구 패키지이니 꼭 설치를 해야하며, 필요하면 bash 등도 설치하는게 좋다.


3. Mysql 설치
Mysql은 일반 소스 버전이 아닌 AIX용으로 나오는 파일을 다운받아야한다.
MySQL 유저와 그룹 생성
# mkuser mysql
# mkgroup -A mysql

다운 받은 파일 압축 풀기
# cd /usr/local
# gunzip mysql-standard-5.0.27-aix5.2-powerpc.tar.gz
# tar xf mysql-standard-5.0.27-aix5.2-powerpc.tar

/usr/local/mysql로 링크걸기
# ln -s mysql-standard-5.0.27-aix5.2-powerpc /usr/local/mysql

MySQL 설정하기
# cd /usr/local/mysql
# scripts/mysql_install_db --user=mysql
# chown -R root.mysql .
# chown -R mysql.mysql data
# chgrp -R mysql .
# nohup bin/mysqld_safe --user=mysql &
이것으로 Mysql은 설치 끝이다. 설치라기보단 그냥 압축풀기 정도..


4. Apache Compile
위의 RPM이 설치가 다 되었다면 이제 컴파일 할 차례.
컴파일 전에 권장사항이 있다면, 컴파일시 너무 느린 관계로 컴파일 할때는 bash shell을 이용하도록 하자.
export CONFIG_SHELL=/opt/freeware/bin/bash
export CONFIG_ENV_ARGS=/opt/freeware/bin/bash
테스트 결과 상당히 컴파일이나 MAKE시에 속도 차이가 있으니 꼭 설정 해 주자.
아니면 한 2~3시간동안 놀다오는 수가 생긴다.

아파치 컴파일은 별다른 무리가 없이 설치가 잘되었다.
CC=gcc CXX=gcc ./configure -C --enable-so --prefix /usr/local/apache --with-included-apr


5. PHP compile
문제가 되는 것은 PHP의 make!!

export PATH=/opt/freeware/bin:$PATH

./configure \
--prefix=/usr/local \
--with-config-file-path=/usr/local/apache/conf \
--with-mysql=/usr/local/mysql \
--enable-shared \
--disable-static \
--enable-maintainer-zts \
--enable-calendar \
--enable-bcmath \
--enable-sockets \
--enable-zip \
--with-gd \
--with-zlib \
--with-libxml-dir=/opt/freeware \
--with-zlib-dir=/opt/freeware \
--with-bz2 \
--with-gettext=/opt/freeware \
--with-jpeg-dir=/opt/freeware \
--with-png-dir=/opt/freeware \
--with-freetype-dir=/opt/freeware

기존의 APACHE APXS를 이용한 so모듈을 생성하기 위해 컴파일 옵션에 아래 항목을 추가했는데...
--with-apxs2=/usr/local/apache/bin/apxs
죽어도 libphp5.so가 생성이 되지 않고 libphp5.a , libphp5.la만 생성이 된다.
결국은 so파일 형식이 아닌 CGI binary 방식으로 컴파일을 하게 된 것이다. 이후 make 와 make install로 PHP 설치를 완료 한다.

6. Config 설정
설치가 완료 된 후 httpd.conf에 php 설정을 해 주자.
ScriptAlias /php5-cgi /usr/local/bin/php-cgi
Action php-cgi /php5-cgi
AddHandler php-cgi .php
so 모듈 생성때와는 다른 설정이니 참조 해 두길 바란다.

7. 문제점
Apache, PHP, Mysql이 설치가 잘 됐는데..
이상하게 PHP에서 Mysql 모듈을 읽어 들이지 못한다. libz.so 파일을 찾는데 일단 Mysql lib디렉토리 안에는 없다! 이 일은 아직 미제다 ㅠ_ㅠ

--> 해결!
/opt/freeware/lib/libz.a 파일을 mysql설치디렉토리/lib 에 넣어주면 된다!!
Trackback
Reply
1. 인덱스 REBUILD
alter index 인덱스명 rebuild;

2. 테이블스페이스 삭제
drop tablespace 테이블스페이스명 including contents;

3. 테이블스페이스 용량 조정
alter database datafile '데이터파일절대경로/데이터파일이름' resize 조절용량m;

4. 테이블스페이스 자동 증가 생성
create tablespace 테이블스페이스명
datafile '데이터파일절대경로/데이터파일이름' size 용량m
autoextend ON
next 용량m
maxsize 용량m;

이건 추가적으로 파일을 만들어서 생성)
alter tablespace 테이블스페이스명
add datafile '데이터파일절대경로/데이터파일이름' size 용량m
autoextend ON
next 용량m
maxsize 용량m;

5. 테이블스페이스 사용 용량 확인 하기
SELECT U.TABLESPACE_NAME "GHSDTS"
         , U.BYTES / 1024000 "크기(MB)"
         , (U.BYTES - SUM(NVL(F.BYTES,0))) / 1024000 "사용됨(MB)"
         , (SUM(NVL(F.BYTES,0))) / 1024000 "남음(MB)"
         , TRUNC((SUM(NVL(F.BYTES,0)) / U.BYTES) * 100,2) "남은 %"
  FROM DBA_FREE_SPACE F, DBA_DATA_FILES U
 WHERE F.FILE_ID(+) = U.FILE_ID
 GROUP BY U.TABLESPACE_NAME, U.FILE_NAME, U.BYTES
 ORDER BY U.TABLESPACE_NAME;

6. 유저 삭제 및 추가
drop user 유저명 cascade;
create user 유저명 identified by 유저비밀번호 quota unlimited on system;
grant connect, resource, dba to 유저명;

7. 세션 확인 하기
select b.osuser, b.sid, b.serial#, c.sql_text, a.*
from  V$lock a, v$session b, v$sql c
where a.sid = b.sid
and b.sql_id = c.sql_id;

8. 세션 죽이기
alter system kill session 'sid, serial#' immediate;

9. 테이블 스페이스 정보보기
COL FILE_NAME FORMAT A40
COL TABLESPACE_NAME FORMAT A15
SELECT file_name, tablespace_name, bytes, status FROM DBA_DATA_FILES;
Trackback
Reply
multi-queue?

 리눅스의 sendmail을 이용하여 메일을 발송하면 /var/spool/mqueue/ 디렉토리에 내용을 저장한 뒤에 SMTP로 이용하여 메일을 보내고 완료되면 삭제되는 방식이다.
 소규모 메일 서버라면 상관이 없겠지만 바로바로 발송이 완료되어 삭제가 되어서 큰 문제는 생기지 않지만, 회사의 홍보물 등의 대량으로 뿌리는 메일일 경우에는 문제가 발생할 수도 있다.
 적게는 몇 천, 많게는 몇 만건이상의 메일이 /var/spool/mqueue/ 디렉토리에 쌓이게 되고 이는 성능저하와 시스템 불안정을 초래하기도 한다. 특히나 상대방이 스팸(?) 메일을 받기 싫다고 이상한 메일 주소를 적으면 기하급수적으로 쌓이게 된다.

mailq 명령어를 치면 끝도 없이 올라가는 미발송 쿼리를 볼 수 있다.

 이러한 단점을 해소 하기 위한 것이 바로 multi queue 인것이다. 쉽게 말해서는 /var/spool/mqueue/q1 ,q2, q3 ... 디렉토리를 생성하여 한 디렉토리에 부하가 걸리는 것을 방지하여 병목현상을 줄인다고 생각하면 된다.
그렇다면 장점은 무엇인가?

첫번째, 디렉토리 분산으로 하나의 디스크 파티션을 사용하였을때 생길 수 있는 병목현상을 줄인다.
두번째, queue runner(메일 발송이 안된 메일을 다시 보내기 위한 데몬)이 다중으로 처리하여 효율성을 높힐 수 있다.
세번째, 한 디렉토리에 많은 파일이 있을 때 생기는 속도 저하를 피할 수 있다.

sendmail 8.10버전 이 후버전 부터는 multi queue를 지원하므로 대용량 메일 발송 서버라면 필히 설정을 하도록 하자.

가장 먼저 sendmail 버전부터 확인하고 시작하자.
# echo \$Z | /usr/sbin/sendmail -bt -d0

병렬처리 할 디렉토리 생성
# mkdir /var/spool/mqueue/q{1,2,3,4,5,6,7,8,9}

sendmail QueueDirectory 설정
# vi /etc/mail/sendmail.cf
# queue directory
O QueueDirectory=/var/spool/mqueue/q*

sendmail 재시작
# service sendmail restart

정상적으로 mail queue가 설정이 되어있는지 확인
# [uzoogom]root:~ > mailq
/var/spool/mqueue/q1 is empty
/var/spool/mqueue/q2 is empty
/var/spool/mqueue/q3 is empty
/var/spool/mqueue/q4 is empty
/var/spool/mqueue/q5 is empty
/var/spool/mqueue/q6 is empty
/var/spool/mqueue/q7 is empty
/var/spool/mqueue/q8 is empty
/var/spool/mqueue/q9 is empty

이걸로 완료.
다 기능에 비해서 설정이 무지 쉬우니 왠만하면 꼭 해주자!
Trackback
Reply
구글 로고는 해당국가의 특별한 날 그에 알맞은 이미지로 변경하는 것으로 유명하다.

그런데 오늘은 조금은 다른 로고가 눈에 띄었다.
<평상시의 로고>


바로 아래와 같이 로고가 변한것!!(영문사이트에서만 확인. 한국 구글에서는 정상적이다.)
분명 google이 아닌 googlle이다!! (구글이 아닌 구그르르?)
<왼쪽 상단 googlle 로고>

하지만 이 증상은 미국 구글에서만 일어나는 것으로보아 뭔가 있는데
처음에는 해킹당한지 알았다.. 가만보면 오늘이 아차! 바로 구글 탄생 11주년!!

11번째 생일이 된 구글을 위한 센스 있는 디자이너의 이스트에그인 셈이다.
가만히 보면 ll이 11로 보인다.

이튼여튼 작고 소소한 즐거움을 주는 구글!
11번째 생일을 축하해!!

Trackback
Reply
이상하고 이상한 증상이 있다.
도무지 왜 그런지 모르겠다.

아이폰 3GS와 아이팟터치.
둘다 Wi-Fi가 되는 기종인 대다가 다를게 없는데 신기하게도 무선 인터넷을 잡을때 요상한 증상을 보인다.
패스워드 인증 방식으로 설정을 한 뒤 분명 동일한 패스워드를 입력하였는데, 아이팟터치(국내정식 발매)는 잘 연결이 된다.

그런데 아이폰3GS(국내미정식떡밥발매폰)에서는 같은 패스워드를 넣어도 암호가 틀렸다는 메세지만 보일뿐 절대절대 연결이 돼지 않는다. 아이폰3G도 마찬가지 증상.

아이팟터치 3대(국내정품 2대, 일본제품 1대) 정상접속
아이폰 2대(3GS, 3G) 접속안됨(암호가 올바르지 않다는 메세지)
(참 우연이라는게 얼마나 무서운가! 왜 하필 아이폰만 저런 증상이 있어서 쯧쯧.. 참고로 터치에도 가~~아끔 일어나는 문제로 확인됐다.)

물론 무선인터넷에 보안을 걸어놓지 않으면 잘된다.
문제는 회사에서 쓰는거라 현재 암호를 바꿀수가 없어서 특수기호를 빼 볼수가 없다는게 문제다.

흠.. 그래도 그렇지 왜 안되는거지?
암호에 특수기호가 들어가서 그런가?

혹시 이러한 증상에 대해서 아시는 분-!

.. 되든 안되든 아이폰 가지고싶다!

완전 어이 없는 해결법...
기가차서 말이 안나온다.

기기를 완전 끄고 켜라.(재부팅)

아무리 봐도 이건 엔지니어에겐 절대 불변의 매뉴얼인 듯하다.

 
OTL
아이폰이래봤자..... 컴퓨터기기일뿐인가...
Trackback
Reply
Information  2009. 9. 9. 09:40
SKT 모바일 오픈 마켓 베타가 끝이 나고 드디어  애플 웹 스토어와 비슷한 국내 T store가 오늘로 정식 오픈하였다.

T store는 쉽게 말하여 수많은 모바일 개발자들이 컨텐츠를 제작하여 판매를 할 수 있는 오픈마켓이라고 보면된다. 이제 막 오픈을 한 탓에 자료의 다양성은 뒷처지지만 Ipod Touch와는 달리 모바일이라는 점을 강조하여 점점 재미 있는 상품들이 많이 늘어날 듯하다.

안타깝게도 SCH-M480인 내 핸드폰에선 단 한개의 어플도 설치되지 않는다.(애초에 미지원 단말기다.옴니아에서는 된다. 이래서 비싼게 좋다.(?))
대다수스마트폰의 단점이라면 단점일까 모바일 Nate가 구동이되지 않아 여러모로 불편한 점이 있긴하다. SKT측에선 스마트폰 유저를 위한 nate 같은 홈페이지가 있었던 거 같은데 단 1g도 쓸모가 없어서 기억이 도무지 나질 않는다.


한가지 걱정되는 것은,
iPod Touch처럼 정형화된 기기가 아니 다수의 모바일을 대상으로 컨텐츠를 제작해야하니 지원/미지원 기종이 많이 갈리고 또한 각 핸드폰마다 사양이 달라서 어떤 폰에서는 원활이 APP가 구동이 되지 않을 것이며, 한 핸드폰에 많은 양의 컨텐츠를 넣을 수 없다는 제약이 따른 다는 것이다.

과연 얼마나 활성화가 될지 궁금하다.
이른바 대박 어플리케이션이 나와서 이목을 끌어줄려나?


Trackback
Reply

1.Juniper 자격이란? : 현재 인기있는 Cisco자격증과 유사한 Jniper 사에서 만든 자격증.
(Cisco와 Jniper는 네트워크 장비의 라이벌격인 회사다. 아무래도 Cisco 자격증을 견제하기 위한 이벤트가 아닐까 한다.)

2.Juniper 자격의 장점
Juniper 자격은 Cisco와 같이 네트워크 프로페셔널을 인증하는 프로그램으로 현재와 같이 Juniper의 장비도입이 급격히 증가하는 국내 시장상황과는 다르게 아직 Juniper 인증을 취득한 엔지니어는 별로 없어 시장에서 큰 경쟁력을 가질 수 있습니다.

3.대상: 무제한 (누구나 참여할 수 있습니다.)

4.대상과목: Fasttrack 에 나와있는 모든 Juniper Track.

5.방법:
  1. www.juniper.net/fasttrack 회원가입
  2. 원하는 과목을 선택하기 (모든 Track에 응시할 수 있음)
  3. 무료로 제공되는 courseware 및 동영상 강의 (90분짜리)를 통해 Juniper에 대한 공부하기
  4. 25문제짜리 퀴즈 풀기 (떨어지면 붙을 때 까지 계속 볼 수 있음)
  5. 합격 시 이메일로 100% 무료 바우쳐가 날아옴
  6. 프로메트릭 센터에서 시험 응시하기
  7. 같은 방법을 반복하여 모든 Juniper 자격 취득하기.

6.이벤트 기간: 2009년 말 까지
(간혹 사전 공지 없이 프로그램이 변경 될 수 있음으로 미리 보시기 바랍니다.)

Trackback
Reply
시대는 바야흐로 All in ONE 시대이다.

워크맨을 시초로(난 워크맨이 시초라고 생각된다.) 빠르게 발전해 온 iN Pocket 생활.
모든건 주머니 속으로 들어가야하는 시대가 오게 된 것이다. 이게 발단이 되어 각국에서는 너도나도 돈벌이가 되는 All in ONE 제품을 쏟아내기 시작한다.

물론 초창기에는 ONE on ONE 시스템이었다.
휴대용 게임기는 휴대용 게임기의 역할만 충실했으며 뮤직플레이어는 뮤직플레이어의 역할만 충실하면 되던 시절이 있었다.

칲셋의 고도화 정밀화로 인해서 기술은 점점 발전해가고 이젠 한가지 제품에 가기능을 지닌 엄청나게 멋지게 비싼 녀석들이 속속히 등장한다.

웃기게도 그 녀석들은 다들 똑같은 기능을 한다.

MP3P는 음악 재생 이외에 동영상재생을하며 APP로는 영한사전 등등의 기능이 들어가있다.
PMP는 동영상재생 이외에 음악플레이어 기능을 하며 APP로 영한사전 등등의 기능이 있다.
핸드폰 역시 MP3P, PMP기능을 다 가지고 있다.

필자가 사용하는 울트라메세징2(일명:미라지폰)

이젠 어떠한 기기를 사던 별 의미가 없어졌단 말이다.(물론 각 기기들은 가장 대표되는 기능은 다른 것보단 성능이 좋다. MP3P가 음질보다 영상재생력이 뛰어날리 없지 않는가.)

그런대도 내가 iPod touch를 원하는 이유는 단 한가지이다.(난 iPod 빠돌이가 아니다!!)

iPod touch는 이미 대중적인 문화가 되어버린 이유이다.

올 하반기에는 ZuneHD와 Zii egg plazma가 iPod touch 대항마제품으로 등장했다.
물론 저 기기들은 iPod touch 2G 를 겨냥한 것이 아닌 조금 있으면 나올 3G를 겨냥한 제품들이라 스펙또한 월등하다.(단지 각 회사들이 내놓은 메뉴얼적인 스펙이다.)

(왼쪽 : ZuneHD / 오른쪽:Zii egg plazma)


내가 저 둘을 비관적으로 보는(적어도 현재로썬) 이유는 저들은 저들만의 문화를 만들어 내지 못했다는 점이다. ZuneHD 와 Zii egg(이건 이번에 처음 출시되었지만..)라는 이름을 제대로 들어본 사람이 얼마나 될까? (필자도 Zii egg는 처음에 KT에서 내 놓은 egg 단말기를 말하는지 알았다.)

하지만 iPod touch는 다르다.
컴퓨터는 익스플로어만 킬 줄 아는 내 여동생도 아이팟 터치는 안다.(물론 iPhone하고 같이 두면 구분 못한다.) P2P 사이트를 돌아다니면 손쉽게 iPod touch로 인코딩된 영상을 구할 수 있다. 각종 포털에서 iPod touch를 위한 다양한 서비스를 시작했다. 해킹이 된다.(흠..)

국내 제품 중에 성공한 사례는 D2, S9, 민트패드 정도일까?

iPod touch를 사용하기 위해서는 너무나도 손쉽게 모든걸 해결 할 수있다.
그러나 적어도 아직까진 다른 제품을 사용하기에는 너무 매니악하다.

이것이 내가 iPod touch 3G를 기다리는 작은 이유이다.
이제 9월달이면 슬슬 APPLE 사에서 발표를 할 때가 된 것 같다.
가격이 얼마든 총알은 장전 되어 있으니, 또 한번 소비자를 우롱할 때가 된 것이다.

(참고로 나는 iPod touch가 터치감 이외에는 그렇게 훌륭한 기기라고 생각지 않는다. 단지 그 우수한 활용도에 반했을 뿐이다.)

마치 쓰기 싫어도 쓰고마는 Windows 처럼 iPod touch의 독주는 한 동안 계속될 것이라고 전망한다.

Trackback
Reply
Microsoft Windows Server 2008 x64에서는 일반적으로 사용하는 oracle 64bit 버전을 다운받아서는 설치가 되지 않는다.

Windows 7(공식적으론 미지원, 하지만 속여서 설치는 가능)
Windows 2008
Windows vista

위 3가지의 버전에서는 따로 oracle 에서 제공하는 databases를 다운 받아야 한다.

다운받으러 가기

Windows 2008 x64에서 실치되는 버전
10204_vista_w2k8_x64_production_db.zip (710,440,513 bytes)

Windows 2008 x64에서 실치 안되는 버전(64bit라도 안된다!)
102010_win64_x64_database.zip (697,852,295 bytes) (cksum - 42455351)

그 이외에는 별다른 설정없이 무난하게 설치가 된다.

하지만, Windows 7 등 지원하지 않는 버전에서 마치 Linux에서 CentOS를 마치 RHEL 인것인 마냥 속여서 설치하는 것 처럼 버전을 속여서 설치를 할 수도 있는 듯하다.(절대 권장하지 않는다.)


고생말고 지원 해 주는 버전을 다운 받자 ' ㅂ') b

Trackback
Reply
3D tag는 Roy Tanck분이 공개한 WordPress용이다.

이를 Tistory에서 3D Tag Clude를 달 수 있게 해준 BLUEnLIVE님께 감사드린다.
어떻게 이런 훌륭한 생각을 할 수 있는지^^
Tistory용 설치방법은 http://zoc.kr/639 참조
텍스트큐브 닷컴에서 3D tag를 이용하려면 위 사이트에서 자료를 다운받아서 자기게시판에 올려야 하는데 확장자가 js, swf인 파일은 기본적으로 스킨 편집 항목에서 업로드는 불가능하다.

약간의 꼼수를 써서 파일을 업로드 하여 사용하는 방법이 있는데
자세한 방법은 쉽고도 암암리에 퍼져나가 있으니 별도로 알려주진 않겠다.
정 모르겠으면 살짝 꼬리를 달아주시라~

일단 파일을 업로드 하고, 그 파일의 경로를 확인 한 후 작업을 진행한다.

작업은 skin.html 파일을 수정하여야 한다.
Tistory 용에는 아래의 스크립트를 <head>안에 집어 넣어야 한다고 명시되어있으나,
텍큐닷컴에서는 <body>에 넣어야 한다.

<script type="text/javascript" src="http://여긴 자신이 올린 파일 주소를 찾아서 적어넣음/swfobject.js"></script>
<script type="text/javascript" src="http://여긴 자신이 올린 파일 주소를 찾아서 적어넣음/TiCumulus.js"></script>

한시간 넘게 <head>에 넣고 했더니 아래 메세지만 나오더라.
Tistory Cumulus Flash tag cloud by BLUEnLIVE requires Flash Player 9 or better.

skin.html 수정하기
# 수정전
<s_sidebar_element>
<!-- 태그목록 모듈 -->
<div class="tagbox">
<h3>태그 목록</h3>
<ul>
<s_random_tags>
<li> <a href=""></a> </li>
</s_random_tags>
</ul>
</div>
</s_sidebar_element>

# 수정후
<s_sidebar_element>
<!-- 태그목록 모듈 -->
<div class="tagbox">
<h3>태그 구름</h3>
<div class="tagboxWrap">
<div id="htags" style="display:none;"><tags>
  <s_random_tags>
    <a href="" class=""></a>
  </s_random_tags>
<a href="/"></a></tags></div>
<div id="TiCumulus"><p>Tistory Cumulus Flash tag cloud by <a href="http://zoc.kr">BLUEnLIVE</a> requires Flash Player 9 or better.</p></div>
<script type="text/javascript">
//<![CDATA[
  var flashvars = {};
  flashvars.tcolor = "0x2970A6";
  flashvars.hicolor = "0x462A56";
  flashvars.mode = "tags";
  flashvars.distr = "true";
  flashvars.tspeed = "100";
  flashvars.tagcloud = document.getElementById('htags').innerHTML.E4Cumulus();
  var params = {};
  params.allowScriptAccess = "always";
  var attributes = {};
  attributes.bgcolor = "#f7f7f7"
  swfobject.embedSWF("http://여긴 자신이 올린 tagclud.swf의 주소를 찾아서 적어넣음/Xtefwe.swf", "TiCumulus", "100%", "200", "9.0.0", null, flashvars, params, attributes);
//]]>
</script>
</div>
</div>
<!-- 태그목록 모듈 끝-->
</s_sidebar_element>

완료!

Trackback
Reply
언제나 최신버전을 고집하는 얄궂은 특성때문에 이번에 나온 php 5.3을 설치 해 보았다.
신나게 설치하고 나니 오류가 조금 뜬다. 뭔가 함수명이 조금 바뀌고 사라지고 생겨나서 그러한 문제..

가장 먼저 5.3 에서는 TimeZone을 설정하지 않으면 warning을 뿌려된다.

php 5.3서는 기본적으로 사용하던 php.ini-dist 라는 파일이 없어서 당황하게 만든다.
대신 php.ini-development, php.ini-production 2개의 파일이 생기는데 둘 중 아무거나 사용해도 무방하다.
약간의 옵션 차이만 있을 뿐이다.

# Time Zone 셋팅
date.timezone = Asia/Seoul


그리고 적잖이 당황하게 만든 phpinfo보기!
사실 phpinfo를 보기 위해서 적는 아래의 문구 이게 문제가 되었다.
<?      phpinfo();     ?>

위 함수 구문은 short open tag라고해서 축약식으로 쓰는거다.
기본적으론 On이 되어 있는데 5.3에서는 Off로 되어 있어서 shot open tag가 안 먹혀서 php 함수가 안먹혀서 화면에 뿌려주질 않는 것이었다.

php.ini에서 아래를 수정해준다.
short_open_tag = On

이러면 5.3 정상구동-

Trackback
Reply
애드센스 기념품이 드디어 도착했다.

무릎담요, 메모장 등등 많은 종류가 있어서 뭐가 올까 궁금했었는데 나에게 온 것은
목베개! 오옷 필요했는데 잘됐다.

구글만세!
인증샷

Trackback
Reply
오류내용)
server/.libs/libmain.a(exports.o).data+0xa44): undefined reference to `apr_os_uuid_get'
collect2: ld returned 1 exit status
make[1]: *** [httpd] Error 1
make[1]: Leaving directory `/opt/httpd-2.2.13'
make: *** [all-recursive] Error 1

해결방법)
아파치 컴파일 시 아래 옵션을 추가 하면 OK!
--with-included-apr

간단하죠!
Trackback
Reply
ORALCE을 사용하다가 보면 장애나, DB 이전 등의 문제로 databases를 옮겨야 할 필요가 있다.
이상하게 미묘한 버전차이 (예를 들어 9.2.0.4 버전과 9.2.0.8버전)이 상호 exp/imp가 안될때 유용한 방법이다.

기본적인 원칙은 낮은 버전의 exp 명령어를 사용하여 데이터를 백업받아야 하는 것이다.

잘못 하면 헷갈릴 수 있으니 예를 들어서 설명을 하겠다.
상황, A에 있는 databases를 B로 옮겨야 하는 상황
A(oracle 9.2.0.8)
B(oracle 9.2.0.4)

B의 tnsnames.ora에 A서버 정보를 입력한다.
UZOOGOM =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = A서버IP )(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = UZOOGOM)
    )
  )

B 서버에서 export한다.(쉽게 설명하자면 B서버에서 A서버로 접속하여 B서버의 exp 파일로 백업을 받는다.)
# exp system/sytem암호@UZOOGOM file=oraclebackup.dmp log=oraclebackup.log full=y compress=n

이 후 oraclebackup.dmp된 파일을 import 하면 된다.
# imp system/sytem암호 file=oraclebackup.dmp log=oraclebackup.log full=y compress=n
Trackback
Reply

AdSenseKorea



트위터의 위력을 실감할수 있는 뉴스가 종종 나오는 가운데.

구글 애드센스가 트위터에 입성했고 ...
더욱 중요한 사실은 이벤트를 한단다 - _-)+ 희번뜩.
선물을 준다니 두근두근한 마음을 가지고 애드센스 코리아에 접속하는 순간..

' ㅂ')....

썰렁하다...
아직은 활성화가 안되었으나, 점차 바글바글 해지리라-

자- 이벤트 상품에 눈 먼자들아.
돌격하자.

시간은 오늘 까지란다.
(난 막차를 탄 기분!)

Trackback
Reply
간혹 서버를 셋팅하고 /etc/vsftpd/vsftpd.conf 정상적으로 셋팅을 하였음에도 불구하고
client에서 500 Ooops error를 뿌려된다면 100프로입니다.

SELinux 이놈이 문제인거죠!

# setsebool -P ftp_home_dir=1

위 커맨드를 입력하면 ftp directory에 대한 접근을 허가를 하게 되고 -P 옵션은 영구적으로 설정을 저장한다는 뜻입니다.
Trackback
Reply
HPUX 에서 cifs 방식으로 마운트가 안될때..

시껍했다 ' ㅂ')

아래의 데몬이 돌아가야 정상적으로 cifsmount가 된다.
/opt/cifsclient/sbin/cifsclientd

마운트 명령어들 예시
# mount 192.168.120.10:/flex_fs /data1
# cifsmount //vod/streams /flv  <- 이때 vod 는 /etc/hosts에 등록이 되어 있어야한다.
Trackback
Reply
우주곰:지구곰이 아닙니다.
지구곰이 아닙니다.
Categories (190)
Information (5)
About uzoogom (5)
My Advanced Linux (73)
Learning Linux (96)
OperatingSystem (5)
Databases (4)
OpenSource (1)
Tips! (1)
«   2025/03   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31