아래 디렉토리에서 event.log 화일 확인.
/var/opt/resmon/log
6월 13
증상: 시스템 다운, 경고등 점등.
1. HMC1 포트에 crossover 케이블로 연결하여 ASM접속후 error/event log 확인.
2. HMC포트 1번은 192.168.2.147 이 default IP
여기서 문제. ip 주소 확인을 해야 했음.
OP패널의 아래쪽 방향키를 눌러 숫자 02 선택후 선택버튼(가운데 버튼)
패널의 내용이 N으로 되어 있으면 ip주소 확인이 안되므로 M으로 변경.
이후 30** 를 선택하면 ip주소 확인 가능
3. 확인한 ip주소로 접속(https://xxx.xxx.xxx.xxx).
내 경우에는 ASM 메뉴가 제대로 나오지 않아서, Serial 포트로 연결(19200).
admin passwd 변경하라는 메시지가나와서 변경해주고 다시 hmc1 포트로 접속하니 제대로 메뉴가 보였음.
4. 시스템 보드와 CPU교체.
5. 정상적으로 부팅되지 않음, 화면 안나옴.(시리얼포으 연결하면 OS 이미지를 찾을 수 없다는 메시지.)
6. 아래 과정으로 처리.
5월 23
0: stdin
1 : stdout
2 : stderr
2>&1은 stderr을 stdout으로 리다이렉트하고 1>&2는 stdout을 stderr로 리다이렉트한다.
5월 15
lanscan 했을때 인터페이스가 lan900이면 Auto Port Aggreation 설정되어 있음.
해제 순서
1. /sbin/init.d/hplm stop
2. /sbin/init.d/hpapa stop
lanscan 해보면, lan900 down 으로 보임
3. /etc/rc.config.d/netconf 화일에 lan0, lan1 설정(필요한 인터페이스에)하고
4. /sbin/init.d/net stop
/sbin/init.d/net start
ifconfig lan0 ; ifconfig lan1
해서 확인
5월 08
hpux kernel bit 확인방법.
방법1.
# getconf KERNEL_BITS
64
방법2.
# file /stand/vmunix
/stand/vmunix: ELF-64 executable object file – PA-RISC 2.0 (LP64)
참고로, solaris는
# isainfo -vk
64-bit sparcv9 kernel modules
리눅스, freeBSD는
$ getconf LONG_BIT
64
5월 01
오라클과, python연동 시키는 cx_Oracle을 http://cx-oracle.sourceforge.net/ 에서 다운로드 받어 설치한다. prec ompile 패키지는 윈도우용과 리눅스용만 있는것 같다.
아래는 테스트 코드(Lotto 테이블에서, 491회 당첨번호 추출하는 예제)
listener name: oracle
listener port: 1521
oracle SID: orcl
oracle user/passwd: fox/fox
table name: lotto
>>> import cx_Oracle
>>> cx0=cx_Oracle.makedsn(“oracle”, 1521, “orcl”)
>>> connection=cx_Oracle.connect(“fox”, “fox”, cx0)
>>> cursor=connection.cursor()
>>> cursor.execute(“select * from lotto where idx=491”)
<__builtin__.OracleCursor on <cx_Oracle.Connection to fox@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle)(PORT=1521)))(CONNECT_DATA=(SID=orcl)))>>
>>> print cursor.fetchall()
[(491, 8, 17, 35, 36, 39, 42, 4)]
4월 27
가상머신에 freeBSD설치하고 사용자등록, su – 했는데…
> su –
su: Sorry
이유는 알고보니, su 를 사용할 수 있는 사용자는 wheel 그룹에 등록된 사용자만 가능하다고…
pw user mod [user_id] -G wheel
groups로 확인해보면, 사용자 그룹에 wheel이 추가되었음을 알 수 있다.
또 다른 방법으로는 /etc/pam.d/su 에서 설정을 변경하는 방법이 있다.
4월 25 2012
telnet 접속 안될때 확인
lssrc -a 로 실행중인 서비스 확인, telnet은 inetd가 제어하므로, lssrc -a | grep -i inetd
active상태가 아니면 아래 커맨드로 시작.
startsrc -s inetdd
만약, inetd가 실행중이라면, kill -HUP [inetd pid]와 같은 효과인 아래 커맨드 수행.
refresh -s inetd
서비스 정지는
stopsrc -s inetd
4월 04
RedHat ES4 서버에 설치된 컴파일러는 gcc 3.4버전이다. 여기에 어플리케이션 설치후 실행하니, 컴파일러가 gcc4.0 이상이 필요하다는 메시지가 나왔다. 문제는, 현재 설치된 서버의 서브스크립션이 등록되어 있지 않고, 서브스크립션도 구매하지 않았기 때문에, up2date를 사용할 수 없다는 점이다. (물론, up2date를 한다고 gcc 4.0이상으로 업그레이드 되리라는 보장도 없다.)
얼마전 libstdc++ 를 잘못 건드렸다가 kernel panic을 경험한터이므로, 가상머신에 RedHat ES4를 설치, 업그레이드를 미리 수행해 보기로 했다.
일단,
[root@localhost ~]# rpm -qa | grep gcc
gcc-g77-3.4.3-9.EL4
libgcc-3.4.3-9.EL4
gcc-c++-3.4.3-9.EL4
gcc-java-3.4.3-9.EL4
gcc-3.4.3-9.EL4[root@localhost ~]# rpm -qa | grep glib
glibc-2.3.4-2
glib2-2.4.7-1
glib-1.2.10-15
glibc-headers-2.3.4-2
glibc-common-2.3.4-2
dbus-glib-0.22-11.EL
glib2-devel-2.4.7-1
glibc-kernheaders-2.4-9.1.87
glibc-devel-2.3.4-2
로 컴파일러에 필요한 패키지들을 검색.
RedHat ES5 에서 아래 화일 가져옴.
gcc-4.1.2-42.el5.i386.rpm
glibc-2.5-24.i386.rpm
gcc-c++-4.1.2-42.el5.i386.rpm
glibc-2.5-24.i686.rpm
gcc-gfortran-4.1.2-42.el5.i386.rpm
glibc-common-2.5-24.i386.rpm
gcc-gnat-4.1.2-42.el5.i386.rpm
glibc-devel-2.5-24.i386.rpm
gcc-java-4.1.2-42.el5.i386.rpm
glibc-headers-2.5-24.i386.rpm
gcc-objc-4.1.2-42.el5.i386.rpm
glibc-utils-2.5-24.i386.rpm
gcc-objc++-4.1.2-42.el5.i386.rpm
glib-devel-1.2.10-20.el5.i386.rpm
glib-1.2.10-20.el5.i386.rpm
glib-java-0.2.6-3.fc6.i386.rpm
glib2-2.12.3-2.fc6.i386.rpm
glib-java-devel-0.2.6-3.fc6.i386.rpm
glib2-devel-2.12.3-2.fc6.i386.rpm
libgcc-4.1.2-42.el5.i386.rpm
rpm -ivh –force –nodeps *.rpm 을 수행하여 컴파일러 강제 업그레이드하고, gcc 버전 확인
[root@localhost rpm]# gcc -v
Using built-in specs.
Target: i386-redhat-linux
Configured with: ../configure –prefix=/usr –mandir=/usr/share/man –infodir=/usr/share/info –enable-shared –enable-threads=posix –enable-checking=release –with-system-zlib –enable-__cxa_atexit –disable-libunwind-exceptions –enable-libgcj-multifile –enable-languages=c,c++,objc,obj-c++,java,fortran,ada –enable-java-awt=gtk –disable-dssi –enable-plugin –with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre –with-cpu=generic –host=i386-redhat-linux
Thread model: posix
gcc version 4.1.2 20071124 (Red Hat 4.1.2-42)
아래와 같은 샘플코드를 컴파일
a.c
#include <stdio.h>
#include <stdlib.h>main()
{
printf(“gcc is ok!!!\n”);
}
오류가 발생
[root@localhost ~]# gcc a.c
gcc: error trying to exec ‘cc1’: execvp: No such file or directory[root@localhost ~]# find / -name cc1 -print
/usr/libexec/gcc/i386-redhat-linux/3.4.3/cc1[root@localhost ~]# rpm -qf /usr/libexec/gcc/i386-redhat-linux/3.4.3/cc1
cpp-3.4.3-9.EL4
위과정을 보면, cc1의 버전과 업그레이드한 gcc의 버전이 맞지 않아서 발생하는 에러라 추정했고,
[root@localhost rpm]# rpm -ivh –force –nodeps cpp-4.1.2-42.el5.i386.rpm
warning: cpp-4.1.2-42.el5.i386.rpm: V3 DSA signature: NOKEY, key ID 37017186
Preparing… ########################################### [100%]
1:cpp ########################################### [100%]
이번엔 아래처럼 ld관련 오류 마찬가지로 버전 차이라 생각되어,
[root@localhost ~]# gcc a.c
/usr/bin/ld: unrecognized option ‘–hash-style=gnu’
/usr/bin/ld: use the –help option for usage information
collect2: ld returned 1 exit status[root@localhost ~]# rpm -qf /usr/bin/ld
binutils-2.15.92.0.2-10.EL4[root@localhost rpm]# rpm -ivh –force –nodeps binutils-2.17.50.0.6-6.el5.i386.rpm
warning: binutils-2.17.50.0.6-6.el5.i386.rpm: V3 DSA signature: NOKEY, key ID 37017186
Preparing… ########################################### [100%]
1:binutils ########################################### [10
이제, 컴파일은 잘되며, 생성된 실행화일 실행해보니,
[root@localhost rpm]# gcc a.c
[root@localhost rpm]# ./a.out
gcc is ok!!!
마지막으로 서버 재부팅해보았다. 걱정하던 커널패닉은 발생하지 않았다.
4월 03
원문: http://www.akadia.com/services/ora_statspack_survival_guide.html
원문을 번역한것은 아니며, 원문을 참고하여, statspack을 설치, 구성하였음.
1. statspack이 사용할 테이블 스페이스(perfstat) 생성.
SQL> create tablespace perfstat
2 datafile ‘/ora_data/stats_pack/perfstat.dbf’ size 1000M reuse
3 extent management local uniform size 512k
4 segment space management auto
5 permanent
6 online;
reuse 옵션: 해당 위치에 동일한 파일이 있는 경우 그 화일을 재사용. 옵션 사용하기전에 확인해야 할듯.
2. 설치스크립트가 있는곳($ORACLE_HOME/rdbms/admin)으로 이동하여 설치 시작한다. 비밀번호는 perfstat, 사용할테이블 스페이스는 이전에 생성한 perfstats, temporary 테이블스페이스는 temp 를 사용한다.
SQL> start spcreate.sql
Choose the PERFSTAT user’s password
———————————–
Not specifying a password will result in the installation FAILINGEnter value for perfstat_password: perfstat
perfstatChoose the Default tablespace for the PERFSTAT user
—————————————————
Below is the list of online tablespaces in this database which can
store user data. Specifying the SYSTEM tablespace for the user’s
default tablespace will result in the installation FAILING, as
using SYSTEM for performance data is not supported.Choose the PERFSTAT users’s default tablespace. This is the tablespace
in which the STATSPACK tables and indexes will be created.TABLESPACE_NAME CONTENTS STATSPACK DEFAULT TABLESPACE
—————————— ——— —————————-
EXAMPLE PERMANENT
PERFSTAT PERMANENT
SNOWFOX PERMANENT
SYSAUX PERMANENT *
USERS PERMANENTPressing <return> will result in STATSPACK’s recommended default
tablespace (identified by *) being used.Enter value for default_tablespace: PERFSTAT
Using tablespace PERFSTAT as PERFSTAT default tablespace.
Choose the PERFSTAT user’s Temporary tablespace.
TABLESPACE_NAME CONTENTS DB DEFAULT TEMP TABLESPACE
—————————— ——— ————————–
SNOWFOX_TEMP TEMPORARY
TEMP TEMPORARY *Pressing <return> will result in the database’s default Temporary
tablespace (identified by *) being used.Enter value for temporary_tablespace: TEMP
……
SQL> set echo off;
Creating Package STATSPACK…Package created.
No errors.
Creating Package Body STATSPACK…Package body created.
No errors.
NOTE:
SPCPKG complete. Please check spcpkg.lis for any errors.
3. statspack 삭제.
설치시 원하지 않는 테이블스페이스나, 비밀번호를 사용했다면, 삭제후 다시 설치하면된다.
삭제는
SQL> @spdrop.sql
다시 설치하려고 start spcreate.sql 하면, 제대로 설치되지 않는다. 이때는 perfstat user를 삭제한다.
SQL> drop user perfstat;
혹시
SQL> drop user perfstat;
drop user perfstat
*
ERROR at line 1:
ORA-01922: CASCADE must be specified to drop ‘PERFSTAT’
이런 에러가 난다면,
SQL> drop user perfstat cascade;
statspack을 완전히 삭제하려면,
SQL> @spdrop.sql
SQL> DROP TABLESPACE perfstat INCLUDING CONTENTS AND DATAFILES;