본문 바로가기

전체 글

(170)
[Linux] top 명령어로 서버의 상태 파악하기 TOP 명령어 top 명령어는 현재 OS의 상태를 나타내주는 CLI 어플리케이션입니다. 메모리 사용량, CPU 사용량 등을 나타내주며 top를 실행하는 동안에는 주기적인 업데이트로 실시간에 근접한 내용을 보여줍니다. 리눅스에서 top 명령어를 실행하면 아래와 깉이 노출됩니다. 위에는 전체의 요약이 있으며 아래에는 각 프로세스마다 구체적인 내용을 포함하고 있습니다. 요약 영역 요약 영역은 top에서 상단에 위치하고 있습니다. 이 요약영역은 전체 프로세스가 OS에 대해서 리소스를 어느정도 차지하고 있는지를 알려줍니다. 요약 영역에 나타나는 대표적인 값은 시간, 유저, 로드 에버리지(Load Average), 테스크(Tasks), CPU, 메모리(memory)로 아래의 이미지를 보시면 각 영역에 대해 나태내느..
[Oracle] ORA-01034: ORACLE not available 오류 해결법 Error 및 증상 ORA-01034: ORACLE not available ORA-27101: shared memoery realm does not exist Case 1. DB꺼져있는 상태에서 다른 계정으로 들어갈라고 할 때 생기는 에러 sqlplus sys as sysdba Enter Password: SQL> startup Case 2. Oracle 인스턴스가 떠 있으나 불완전한 종료 혹은 원인을 모를 때. SQL> shutdown immediate SQL> startup open Case 3. Oracle이 설치되어 있는 서버에서 Sqlplus로 접근이 가능하고 데이터베이스 조회가 가능하나, 외부 접근이 안될 때 Linux에서 Oracle을 설치시 환경 변수에 ORACLE_SID = SID 이름..
[Oracle] Job, Schedule 개념 정리 ORACLE JOB은 PLSQL_BLOCK, STORED_PROCEDURE만 구동된다고 한다. 오라클 10g에서부터 ORACLE SCHEDULER ​를 지원​한다. ORACLE JOB과 ORACLE SCHEDULER ​가장 큰 차이점이라면 OS상의 crontab에 등재되는 shell프로그램도 ORACLE SCHEDULER 에서 돌릴 수 있다는 점. 오라클스케쥴러 등록을 위한 권한은 다음과 같다. - GRANT CREATE ANY JOB TO 계정명; 오라클 스케쥴러에는 다음과 같은 명령어가 있다. 1. DBMS_SCHEDULER.CREATE_PROGRAM - 잡이 스케쥴러에 맞게 돌면서 실제로 동작하는 프로그램(외부의 shell이나 SP, PLSQL_BLOCK 등) 을 등록한다. 2. DBMS_SCHED..
[Linux] DB접속 오류 (java.sql.SQLRecoverableException: IO Error: Connection reset ) ::: 이슈 배경 ::: Table Migrator을 이용하여, 데이터를 이관중 계속 DB와 연결이 끊김 ::: 이슈 확인 ::: 오라클 11g에 접속이 안되는 현상이 발생하여 데이터 추출이 불가능 함 이전에는 아주 정상적으로 잘 수행되는 것이 갑자기 해당 에러가 떨어지면서 장애 발생 java.sql.SQLRecoverableException: IO Error: Connection reset 드라이버는 기존 운영시스템에 따라 11g JDBC 드라이버를 사용 ::: 원인 분석 ::: 11g JDBC 드라이버를 사용시에는 connect string을 암호화하기 위해서 /dev/random을 이용해서 40byte의 난수를 생성한 다음에 connect string을 암호화 한다고 합니다. 그런데 /dev/ran..
[Linux] Ping, Curl, telnet 서버끼리 통신하는 작업을 하다가 방화벽이 뚫려 있는지 확인할 일이 생겼다. ping도 쓰고 curl도 쓰는데 둘 차이가 뭔지 갑자기 궁금해져서 찾아봤다. Ping ping [대상 목적지 ip] 탁구 ping pong의 줄임말인 줄 알았는데(그런 의미도 있다고 하지만), Packet Internet Groper의 약자라고 한다...! 확인할 IP로 인터넷 패킷을 전송하고 대상이 보낸 응답을 분석하는 방식이다. 실제 ping google.com을 쳐보면 packets 전송상태를 나타내 준다. ping은 ICMP 프로토콜(TCP/IP에서 IP 패킷을 처리할 때 발생되는 문제를 알려주는 프로토콜)을 사용하는데 이 프로토콜은 OSI 7 계층의 3 layer에 해당하는 Network layer에 속하는 프로토콜을 ..
[Tibero] 정기점검 정리 목차 •0. 정기점검 목적 •1. TSM Info 1.1 Shared memory size 1.2 Shared Pool size 1.3 DB cache size 1.4 Log Buffer size • 2. DB performance 2.1 Buffer Cache Hit Ratio 2.2 SQL Cache Hit Ratio 2.3 Dictionary Cache Hit Ratio 2.4 Shared Cache Free Space •3. space usage 3.1 Table space free space 3.2 Undo segment usage •4. DISK I/O 4.1 File I/O contention 4.2 Online Redo Log switch Count •5. current session in..
[Tibero] Log 확인하기 데이터베이스를 포함한 대부분의 시스템들은 사용자가 해당 시스템의 운영 상황을 여러 관점에서 파악이 가능하도록 다양한 모니터링 정보들을 파일 형태로 실시간 저장한다. 티베로의 경우 제공하는 모니터링 파일들을 매개변수 파일에 XXXX_XXXX_DEST 형태로 저장하므로 다음과 같이 V$PARAMETERS를 조회하여 모니터링 파일들의 종류를 확인할 수 있다. 1 SELECT * FROM V$PARAMETERS WHERE NAME LIKE '%DEST'; tibero6 FS04 기준 16개가 검색이 되는데 대부분은 특정 장애 상황 발생 시 제조사 엔지니어와 원활한 소통을 위해 종류 및 경로 정도만 알고 있으면 되지만 다음에 소개하는 2개의 파일은 데이터베이스 관리자가 안정적으로 데이터베이스를 운영하기 위해 반드..
[Linux] Cannot bind socket error(포트 이미 사용 중) 해결법 오류메시지: cannot bind socket [IP주소:포트번호] 원인: 바인딩하고자하는 포트를 다른 프로세스가 사용 중 해결방법: ​ 1) 포트번호로 네트워크 연결 상태를 확인합니다. $ netstat -np | grep 포트번호​ ​ 2) 실행 중인 프로세스를 확인하고 해당 프로세스 번호를 알았다면 프로세스를 Kill합니다. $ ps -ef // 예) 프로세스 확인 $ kill -9 프로세스ID // 예) kill -9 2020 ​ 3) 프로세스를 죽여도 같은 현상이라면 네트워크 자원을 Kill하고 해제합니다. ​ 자원을 해제하는데 길게는 몇 분까지도 소요됩니다. $ fuser -k -n 프로토콜 포트번호 예1) fuser -k -n tcp 1001 예2) fuser -k 1001/tcp 만약 'f..