v480 디스크 교체.

운영중인 sun v480 서버의 디스크가 고장났을때, 아래와 같은 절차로 교체.
디스크는 내부 FCAL 디스크 2개이며, mirror 구성되어 있다. 때문에, 디스크 교체후 mirror를 구성해 주어야 한다.

1. 디스크의 교체(핫스왑)
먼저, iostat -en 으로 고장 디스크 확인.

—- errors —-
s/w h/w trn tot

1 0 0 0 c1t0d0
0 13 126 139 c1t1d0

luxadm으로 디스크 제거.

luxadm -e remove_device -F /dev/rdsk/c1t1d0s2
WARNING!! please ensure that no filesystem are mounted on these device(s).
All data on these devices should have been backed up.
Error: SCSI failure. – /dev/rdsk/c1t1d0s2
luxadm -e offline /dev/rdsk/c1t1d0s2
devctl: I/O error

디스크가 이미 고장이므로 luxadm이 정상작동 하지 않았다.
그래서, 그냥 디스크 빼고 새 디스크로 교체.
바로 online 메시지 나오면서 인식.
이후 mirror작업수행.

2. 미러작업 완료후, Resync 중에 시스템을 종료해야만 했다. 이후 재 부팅과정에서 문제가 발생했다.

stale databases …

single user모드로 부팅이 되며, fsck 로도 해결되지 않았음. single모드에서 아래 커맨드 수행

metadb
metadb -d /dev/dsk/c1t1d0s7

s7이 메타디바이스영역.
이후 정상 부팅후,

metadb -a /dev/dsk/c1t1d0s7

이후 metastat 로 확인해보면, resyncing되는것을 확인.
혹시나해서 검색해보니,

http://download.oracle.com/docs/cd/E19455-01/806-3205/troubleshoottasks-38/index.html

ubuntu10.10 에러 메시지

메일로 자꾸 아래와 같은 메시지가 전송되어 왔다.

PHP Deprecated: Comments starting with ‘#’ are deprecated in /etc/php5/cli/conf.d/idn.ini on line 1 in Unknown on line 0
PHP Deprecated: Comments starting with ‘#’ are deprecated in /etc/php5/cli/conf.d/ming.ini on line 1 in Unknown on line 0

결론은 각각의 ini화일의 주석처리 # 이 되지 않는다는 내용. #을 ;로 바꾸니 모두 해결.
영어만 잘 해석하면 됨 ^^

solaris lvm mirror – 스크랩

구성…
http://blog.naver.com/comki/100024647947
복구
http://www.brandonhutchinson.com/Replacing_a_disk_with_different_geometry_in_DiskSuite.html
내가 해본것.
원본디스크: c0t0d0s2 대상디스크: c0t1d0s2
원본디스크의 파티션 (7번 슬라이스는 md를 위한 공간으로 16MB잡았음)

partition> p
Current partition table (original):
Total disk cylinders available: 47994 + 2 (reserved cylinders)
Part Tag Flag Cylinders Size Blocks
0 root wm 352 – 27391 38.47GB (27040/0/0) 80687360
1 swap wu 0 – 351 512.88MB (352/0/0) 1050368
2 backup wm 0 – 47993 68.29GB (47994/0/0) 143214096
3 unassigned wm 0 0 (0/0/0) 0
4 unassigned wm 0 0 (0/0/0) 0
5 unassigned wm 27392 – 34255 9.77GB (6864/0/0) 20482176
6 unassigned wm 34256 – 47982 19.53GB (13727/0/0) 40961368
7 unassigned wm 47983 – 47993 16.03MB (11/0/0) 32824

1. 디스크 미러 만들기
prtvtoc /dev/rdsk/c0t0d0s2 | fmthard -s – /dev/rdsk/c0t1d0s2
여기서 두 디스크의 모델이 서로 달라서 에러 발생. 이것은 두번째 문서를 참조하여, 같은 모델로 설정함.
format -> disk -> 1 -> type -> …..
디스크 파티션은 아래와 같음
/dev/dsk/c0t0d0s1 – – swap – no –
/dev/dsk/c0t0d0s0 /dev/rdsk/c0t0d0s0 / ufs 1 no –
/dev/dsk/c0t0d0s5 /dev/rdsk/c0t0d0s5 /oracle ufs 2 yes –
/dev/dsk/c0t0d0s6 /dev/rdsk/c0t0d0s6 /oradata ufs 2 yes –
swap – /tmp tmpfs – yes –
작업내용
metadb -a -f -c 2 /dev/dsk/c0t0d0s7 /dev/dsk/c0t1d0s7
metainit -f d10 1 1 c0t0d0s0
metainit -f d20 1 1 c0t1d0s0
metainit d0 -m d10
metaroot d0
lockfs -fa
metainit -f d11 1 1 c0t0d0s1
metainit -f d21 1 1 c0t1d0s1
metainit d1 -m d11
metainit -f d 15 1 1 c0t0d0s5
metainit -f d15 1 1 c0t0d0s5
metainit -f d25 1 1 c0t1d0s5
metainit d5 -m d15
metainit -f d16 1 1 c0t0d0s6
metainit -f d26 1 1 c0t1d0s6
metainit d6 -m d16
/etc/vfstab 을 편집
/dev/md/dsk/d1 – – swap – no –
/dev/md/dsk/d0 /dev/md/rdsk/d0 / ufs 1 no –
/dev/md/dsk/d5 /dev/md/rdsk/d5 /oracle ufs 2 yes –
/dev/md/dsk/d6 /dev/md/rdsk/d6 /oradata ufs 2 yes –
swap – /tmp tmpfs – yes –
그리고 재부팅 후 나머지 슬라이스를 메타디바이스에 추가해준다.
metattach d0 d20
metattach d1 d21
metattach d5 d25
metattach d6 d26
# metastat
d6: Mirror
Submirror 0: d16
State: Okay
Submirror 1: d26
State: Resyncing
Resync in progress: 17 % done
Pass: 1
Read option: roundrobin (default)
Write option: parallel (default)
Size: 40961368 blocks (19 GB)
d16: Submirror of d6
State: Okay
Size: 40961368 blocks (19 GB)
Stripe 0:
Device Start Block Dbase State Reloc Hot Spare
c0t0d0s6 0 No Okay Yes
d26: Submirror of d6
State: Resyncing
Size: 40961368 blocks (19 GB)
Stripe 0:
Device Start Block Dbase State Reloc Hot Spare
c0t1d0s6 0 No Okay Yes
d5: Mirror
Submirror 0: d15
State: Okay
Submirror 1: d25
State: Resyncing
Resync in progress: 79 % done
Pass: 1
Read option: roundrobin (default)
Write option: parallel (default)
Size: 20482176 blocks (9.8 GB)
d15: Submirror of d5
State: Okay
Size: 20482176 blocks (9.8 GB)
Stripe 0:
Device Start Block Dbase State Reloc Hot Spare
c0t0d0s5 0 No Okay Yes
d25: Submirror of d5
State: Resyncing
Size: 20489378 blocks (9.8 GB)
Stripe 0:
Device Start Block Dbase State Reloc Hot Spare
c0t1d0s5 0 No Resyncing Yes
d1: Mirror
Submirror 0: d11
State: Okay
Submirror 1: d21
State: Okay
Pass: 1
Read option: roundrobin (default)
Write option: parallel (default)
Size: 1050368 blocks (512 MB)
d11: Submirror of d1
State: Okay
Size: 1050368 blocks (512 MB)
Stripe 0:
Device Start Block Dbase State Reloc Hot Spare
c0t0d0s1 0 No Okay Yes
d21: Submirror of d1
State: Okay
Size: 1051466 blocks (513 MB)
Stripe 0:
Device Start Block Dbase State Reloc Hot Spare
c0t1d0s1 0 No Okay Yes
d0: Mirror
Submirror 0: d10
State: Okay
Submirror 1: d20
State: Resyncing
Resync in progress: 0 % done
Pass: 1
Read option: roundrobin (default)
Write option: parallel (default)
Size: 80687360 blocks (38 GB)
d10: Submirror of d0
State: Okay
Size: 80687360 blocks (38 GB)
Stripe 0:
Device Start Block Dbase State Reloc Hot Spare
c0t0d0s0 0 No Okay Yes
d20: Submirror of d0
State: Resyncing
Size: 80687360 blocks (38 GB)
Stripe 0:
Device Start Block Dbase State Reloc Hot Spare
c0t1d0s0 0 No Okay Yes

2. dd로 두번째 디스크 에러 유발
dd if=/dev/zero of=/dev/dsk/c0t1d0s2
이후, prtvtoc로 두번째 디스크의 파티션을 재 설정하고, 각각의 서브미러를 replace해준다.
metareplace -e d5 c0t1d0s5
metareplace -e d6 c0t1d0s6
metareplace -e d0 c0t1d0s0
metareplace -e d1 c0t1d0s1
만약 제대로 수행이 안된다면, 메타디바이스에서 분리(metadetach)후, 삭제(metaclear)하고, 다시 만들어줌(metainit)
metadetach -f d0 d20
metaclear d20
metainit -f d20 1 1 c0t1d0s0

linux KVM 성공기념 스크린 샷.

리눅스 서버에 KVM 설치하고, 솔라리스10, 윈도우XP를 게스트로 설치한후 성공한 스크린샷.

자세한 설치방법은 생략.
게스트 OS 생성: 순서대로 윈도우XP, 솔라리스10

virt-install –connect qemu:///system -n xpsp2 -r 1024 -f /home/VM/windows.vimg -s 12 -c /home/snowfox/Windows_XP_sp2.iso –vnc –noautoconsole –os-type windows –os-variant winxp
virt-install –connect qemu:///system -n soalris10 -r 1024 -f /home/VM/solaris10.vimg -s 12 -c /home/snowfox/sol-10-u9-ga-x86-dvd.iso –vnc –noautoconsole –os-type solaris –os-variant solaris10

리눅스 서버에 GUI를 올리지 않아서 접속해 보는데 힘들었다. 결국, Gnome 설치된 리눅스 데스크탑에서

virt-viewer -c qemu+ssh://192.168.100.12/system xpsp2

192.168.100.12는 kvm이 설치된 리눅스 서버.
실행중인 가상 서버를 보려면

virsh
virsh, 가상화 대화식 터미널에 오신 것을 환영합니다.
입력: 명령을 사용하여 문제 해결을 위해 ‘help’ 입력
종료하기 위해 ‘quit’입력
virsh # list –all
Id 이름 상태
———————————-
1 soalris10 실행중
2 xpsp2 실행중

윈도우 PC에서 guest OS 접속하는 방법(Xmanager 3.0 이용)
PC에서 사용할 수 있는 X서버 프로그램을 이용하면, 윈도우에서도 게스트 OS를 실행 할 수 있다. 상용프로그램인 Xmanager를 사용했지만, opensource인 Xming 을 이용해도 된다.
xmanager는 유료지만, 한달간 무료사용 가능하고, 기간이 지나도 사용하는데 문제는 없다.
먼저, xstart 를 실행하고, 호스트, 프로토콜(ssh를 사용했음), id, password를 입력하고, (virt-viewer를 실행할 수 있는 계정이면 됨), 실행명령에

virt-viewer -c qemu:///system xpsp2

를 입력해 주면, 게스트 OS를 사용할 수 있다.
게스트 OS 강제 종료는

virsh destroy [domain name]

 

2016년 12월 동영상 추가(virt-manager로 guestos 설치하기)

Continue reading

오라클 데이타 복구… 무식한방법…

관리중인 오라클서버에서 게시판 데이타를 삭제했다고 복구해 달라는 부탁을 받았다.

근데, 다 하고 보니 너무 무식한 방법을 사용한것 같다.

아무튼, 아래와 같은 방법으로 작업했다.

백업되어 있는 archive log화일과, dbf화일 ctl화일들을 모두  복사했다. 그리고, 오라클을 다른 컴퓨터에 설치한후에, 원래 화일들 이름을 바꾸고, 백업한 화일을 같은위치에 복사해 넣었다.
SQL> startup
*
ERROR at line 1:
ORA-01113: file 1 needs media recovery
ORA-01110: data file 1: ‘/xxx’

SQL> recover database;
Media recovery complete.
SQL> alter database open;

Database altered.

그리고 삭제된 데이타를 찾아보니 잘 있다 … 하하..

그러나 너무나 무식한 방법이었다…
아주 간단한 방법이 있었는데 그것은…..

SELECT * FROM [TABLE_NAME] AS OF TIMESTAMP (SYSTIMESTAMP – INTERVAL ‘100’ MINUTE);

삭제하고 commit 했어도 삭제된 데이타를 보여준단 말이다.
오라클의 flash back기능이란다…
있어도 무식해서 못써먹었으니… 이런 세상에나…

다음번에는 간단하게 써 먹어봐야 겠다.

CISCO 라우터 로그정보 외.

그대로 퍼왔음. 원문이 없어질 경우를 대비하여ㅣ

원문: http://www.totalphone.co.kr/router2.html

 Continue reading 

사이베이스 백업

사이베이스 백업 스크립트

#!/usr/bin/sh
DIR=”[SYBASE_BACKUP_DIR]”
WEEK=`date +%Y%m%d`
tgt_file=”$DIR/[database_name].$WEEK.dmp”
log_file=”$DIR/R/[database_name].$WEEK.log”
isql -Usa -P <<EOF
dump database [database_name] to “$tgt_file”
go
.
EOF
echo “DB DUMP END ==>$tgt_file”
find [SYBASE_BACKUP_DIR]/*.dmp -mtime +2 -exec rm -rf {} \;
find [SYBASE_BACKUP_DIR]/*.log -mtime +2 -exec rm -rf {} \;

넷백업 장애코드 스크랩

Status 6

– 원인 : The backup failed to back up the requested files

– policy의 backup selection이 정확한지 확인이 필요합니다. 해당 file이 없는 경우 발생합니다.

– DB agent의 경우 script 위치, 이름, 실행권한 등을 확인해야 합니다.

Status 21

– 원인 : A socket could not be opened

– 해결 방안

1. NetBackup log와 debug log를 생성하여 진행과정을 점검하여 장애 발생 요인 부분을 재설정한다.

2. Unix 장비인 경우 patch 적용이 정상적인지를 확인하고 Windows인 경우는 Service pack level을 확인한다.

Status 39

– 원인 : client name mismatch

– 해결 방안 : client 이름을 변경하거나 master 또는 media server에서 client 이름을 확인 후 변경한다.

Status 40

– 원인 : network connection broken

– 해결 방안

1. server에서 client로 ping test를 실행한다.

2. client와 server에 server list가 알맞게 설정되어 있는지를 확인한다.

3. mount 요청을 취소했을 경우에도 발생한다.

Status 54

– 원인 : timed out connecting to client

– Client와의 Network connection이 원할 하지 않을 때 발생합니다.

– Client의 Netbackup process가 실행 중인지 확인하고, ping등의 command를 이용해 client와 network 통신 확인

– 해결 방안

1. /etc/inetd.conf 파일에 bpcd 경로 설정이 맞는지 확인한다.

2. master server의 /etc/hosts 파일에 client명을 설정한다.

3. resolve network 통신 관련 점검한다.

Status 57

– 원인 : client connection refused

Status 71

– 원인 : none of the files in the file list exist

– policy에서 지정한 backup selection의 file을 찾을 수 없을 때 발생합니다.

– 실제 file이 존재하는지 확인합니다.

Status 84

– 원인 : media write error

– 미디어 write error입니다.

– Device 오염이나 media 불량으로 발생합니다.

– Device cleaning이나 media 교체로 문제를 해결할 수 있습니다.

Status 96

– 원인 : unable to allocate new media for backup, storage unit has none available

– 백업에 필요한 미디어가 없는 경우 발생

– 해결 방안

1.(Unix) /usr/openv/netbackup/bin/goodies/available_media

(Windows) install_path\netbackup\bin\goodies\available_media.cmd

위의 명령어로 현재 사용가능한 volume 있는지를 점검한다.

2. volume이 현재 FROZEN 이나 SUSPENDED 이면 bpmedia 명령어로 수정한다.

3. volume의 mount 최대값을 초과하였거나 모든 volume이 full발생하여 expire 되지 않았는지를 점검한다.

-policy에서 지정한 volume pool에 충분한 미디어가 있는지 확인합니다.

-미디어들이 full, frozen, suspend 상태이거나 다른 미디어 서버에 할당 되어 있으면 백업을 수행 할 수 없습니다.

-Tape 장비에 새 미디어를 넣거나 해당 volume pool에 미디어를 할당해서 해결할 수 있습니다.

Status 150

– 원인 : user가 강제로 job Cancel

Status 196

– 원인 : client backup was not attempted because backup window closed

-이전 백업 작업이 너무 오래 걸려서 schedule에 설정한 백업 윈도우 동안 백업 실행을 하지 못해서 발생합니다.

-Schedule을 조정해서 작업이 겹치지 않도록 하거나 백업 윈도우를 좀더 많이 주는 방법으로 해결할 수 있습니다.

Status 219

– 원인 : the required storage unit is unavailable

– Policy에서 지정한 storage unit이 가용하지 않은 경우입니다.

– 주로 system rebooting 등의 작업으로 drive상태가 down으로 되어 발생합니다.

– Device monitor 창에서 control column부분이 down상태인지 확인하고 down 상태이면 오른쪽 마우스를 클릭하여 up을 실행할 수 있습니다.

– 미디어 서버에서 NetBackup process가 정상적으로 동작 중인지 확인합니다.

– Up을 실행한 후에도 계속해서 down상태로 변환되면 실제 H/W장비에 이상이 있는 경우 입니다. 이 경우 장비 정비를 받으셔야 합니다.

-해결 방안

1.스케쥴에 설정된 storage unit이 맞는지 확인한다.

2.Device , Media Manager daemon이 구동 중인지 확인한다.

3.(Unix) Maximum concurrent jobs 의 값이 0 이 아닌지,

(Windows) Maximum concurrent drives 의 값이 0 이 아닌지를 확인한다.

4. storage unit이 tape이나 optical disk 일 경우 drive 상태가 UP 인지를 확인한다.

예제) F/S backup, Oracle Hot Backup ‘219’ Error 발생

원인 : Duplicate 3개(Copy하는 작업입니다.)가 실행중이었는데 그 중 하나가 어떤 Media를 요청하였으나 장시간 대기하다 timeover로 Pending Request가 발생 -> Pending Request로 상기 Backup ‘219’ 발생

해결 : Device Monitor에서 Pending Request 발생한 Media를 Deny Request(해당 Media ID에서 우측버튼) 선택으로 해결

[출처] 베리타스 장애 코드|작성자 곤이

Netbackup 문서

넷백업 커맨드 정리 문서.

다운로드:NetBackup_Commands_UNIX

넷백업 클라이언트 관리 가이드

다운로드: VERITAS NetBackup ™ 6.0 Advanced Client System Administrator Guide for UNIX and Win

mod_rewrite를 이용한 http커맨드 제어

PUT, TRACE, DELETE를 사용 불가능하게하기.

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^TRACE [OR]
RewriteCond %{REQUEST_METHOD} ^PUT   [OR]
RewriteCond %{REQUEST_METHOD} ^DELETE

RewriteRule .* – [F]
</IfModule>

적용전

[root@movie conf]# telnet localhost 80
Trying 127.0.0.1…
Connected to localhost.localdomain (127.0.0.1).
Escape character is ‘^]’.
TRACE / HTTP/1.0
Host: localhost

HTTP/1.1 200 OK
Date: Fri, 06 Nov 2009 03:26:32 GMT
Server: Apache
Connection: close
Content-Type: message/http

TRACE / HTTP/1.0
Host: localhost

Connection closed by foreign host.

적용후

[root@localhost conf]# telnet localhost 80
Trying 127.0.0.1…
Connected to localhost.localdomain (127.0.0.1).
Escape character is ‘^]’.
TRACE / HTTP/1.0
Host: localhost

HTTP/1.1 403 Forbidden
Date: Fri, 06 Nov 2009 03:42:21 GMT
Server: Apache
Content-Length: 321
Connection: close
Content-Type: text/html; charset=iso-8859-1

<!DOCTYPE HTML PUBLIC “-//IETF//DTD HTML 2.0//EN”>
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don’t have permission to access /
on this server.</p>
<p>Additionally, a 404 Not Found
error was encountered while trying to use an ErrorDocument to handle the request.</p>
</body></html>
Connection closed by foreign host.