운영(Ops) 이야기

    [Oracle] 계정 락(LOCK) 걸렸을 시 해제하는 방법 (ORA-28000)

    ERROR NAME ORA-28000 : the account is locked 오라클 사용자 계정이 잠긴 상태에서 발생하는 오류다. SYMPTOMS 계정이 잠기는 주요 원인은 아래와 같다. 1. ORACLE 서버 관리자 (DBA)가 계정을 수동으로 잠금 상태로 만든 경우 2. ORACLE 기본 설정변수 중 FAILED_LOGIN_ATTEMPTS에 설정되어 있는 로그인 실패 제한 횟수를 넘어서 로그인에 실패한 경우 HOW TO SOLVE 먼저, SYS 또는 SYSTEM 계정으로 접속한다. sqlplus "/as sysdba" 1. 계정 별 상태 (STATUS) 조회 SELECT USERNAME, ACCOUNT_STATUS, LOCK_DATE FROM DBA_USERS; USERNAME : 계정명 ACCO..

    [접근제어 - Hiware] 릴레이 서버에서 대상 장비에 연결을 실패하였습니다.

    ERROR NAME "릴레이 서버에서 대상 장비에 연결을 실패하였습니다." SYMPTOMS 이는 HIWARE 릴레이서버와 접속하려는 대상 장비 간 통신이 원활하지 않을때 발생하는 에러다. HOW TO SOLVE 따라서 아래 두 가지 경우로 나뉘어서 해결할 수 있다. 1. HIWARE 릴레이 서버에서 대상 장비로 통신이 안될 때 (대상 장비 문제인 경우) - 이 경우를 체크하려면 HIWARE에 등록된 다른 서버에 접속해보면 된다. 다른 서버에 접속이 잘 될 경우 대상 장비간 통신 문제므로 대상 장비만 체크해보면 된다. 2. HIWARE 릴레이 서버가 문제인 경우 - 이 경우면, 좀 골치아픈 상황이다. 릴레이서버가 문제이므로 다른 서버들 접속이 다 안될 것이다. 그러니, 릴레이서버 문제를 해결하면 된다.

    [ORACLE] 사용자 (User) 패스워드 변경하는 방법

    Oracle 데이터베이스를 운영하다보면 위와 같은 문구를 종종 보게 된다. 이는 패스워드 기간이 곧 만료 임박 시점임을 알려주는 알림창이므로 패스워드 변경만 해주면 간단한 일이다. ALTER USER [계정명] IDENTIFIED BY [패스워드]; 위 SQL 구문으로 변경해주면 된다. 근데, 간혹 분명 위 구문을 통해 패스워드를 변경했어도 접속 오류가 발생하는 상황이 생긴다. (예: SYS, SYSTEM 계정 등) 이는 오라클 DB 내 패스워드 파라미터를 저장하는 파일이 있는데 해당 파일도 수정해줘야 정상적으로 접속이 된다.

    [Oracle] 실행한 SQL 쿼리 이력 확인 방법

    다음은 Oracle Database 11g version에서 실행한 쿼리다. 2022-10-01 부터 오늘 일자 기준으로 특정 USER가 실행한 SQL 구문 이력을 확인하기 위해 아래와 같이 구문을 실행했다. 오라클에서 제공하는 v$sqlare 사전을 활용해서 아래 컬럼들을 각각 조회하였다. 최근 활동시간 (last_active_time) Parsing 한 유저명 (parsing_schema_name) SQL 아이디 (sql_id) SQL 구문 (sql_text) SELECT last_active_time ,parsing_schema_name ,sql_id ,sql_text FROM v$sqlarea WHERE parsing_schema_name = '[USERNAME]' AND last_active_t..

    [Oracle] 데이터베이스 명, SID 조회 방법

    오라클 데이터베이스명과 SID 확인 방법은 아래와 같다. SELECT NAME, DB_UNIQUE_NAME FROM v$database; SELECT instance from v$thread; 오라클 전체 시퀀스 조회 방법은 아래와 같다. SELECT * FROM USER_SEQUENCES;

    [Oracle] Synonym 사용법 정리 (생성, 조회, 권한, 삭제 등)

    Synonym (시노님) 이란? 데이터베이스 객체는 각자 고유한 이름이 있다. 이 객체들에 대한 동의어를 만드는것이 바로 시노님이다. ALIAS 개념과 유사한데 ALIAS는 1회성인 반면 Synonym은 영구적이다. 따라서 Synonym은 다른 유저의 객체를 참조할 때 사용한다. 이 Synonym에는 PUBLIC과 PRIVATE타입이 있다. Public : 모든 사용자 접근 가능 Private : 특정사용자만 접근 가능 Synonym 생성 및 수정 방법 CREATE OR REPLACE [PUBLIC/PRIVATE] SYNONYM [시노님명] FOR [객체명]; PUBLIC/PRIVATE 는 명시 선택사항이며, 기본값은 PRIVATE으로 생성됨 Synonym 수정도 위 구문으로 다시 쓰면 됨 예 : CRE..

    [Oracle] Materialized View 생성 권한 부여 방법

    Materialized View를 생성하기 위해선 다음 2가지 권한이 필요함 Query Rewrite Create Materialized view 따라서 아래와 명령으로 권한 부여가 가능함 GRANT QUERY REWRITE TO KPAPER; GRANT CREATE MATERIALIZED VIEW TO KPAPER; SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE='[사용자명]'; 마지막 select 구문은 권한이 잘 부여되었는지 사용자 권한을 조회하는 명령임.

    [Oracle] ORA-12541: TNS: no listener 오류 해결 방법

    ※ 이 글은 Oracle Database 11g Release 11.2.0.4.0 - 64bit 버전을 기준으로 작성된 글입니다. ERROR NAME ORA-12541 : TNS: no listener Fatal NI connect error 12541. SYMPTOMS Oracle Listener가 제대로 동작하지 않을 경우 발생함. - listener.ora 설정 오류 - listener.log 파일의 용량 초과 오라클 리스너 (Oracle Listener) - 사용자(Client)가 오라클 서버로 접속하기 위해 통신을 중재하는 네트워크 관리자 - 따라서, 오라클 서버로 들어오는 모든 네트워크 연결은 리스너를 통해 연결됨 HOW TO SOLVE 따라서, 다음과 같이 조치하면 된다. 조치 방법은 세 가..

    [Oracle] Oracle 용어 정리 : SID 와 Service Name의 차이 및 확인 방법

    SID와 Service Name의 차이는 아래와 같다. SID : DB 하나의 인스턴스 Service Name : 여러 개의 인스턴스를 모아 하나의 서버 혹은 시스템을 구성한 것 설명 일반적인 경우 데이터베이스가 인스턴스 하나만으로 구성되어 있다면 " 데이터베이스명 = SID " 가 된다. 하지만 RAC 구성일 경우 하나의 서버 내에 두 개 이상의 인스턴스로 구성되어 있으므로 아래와 같이 SID가 서로 다를 수 있다. SQL> SELECT NAME, DB_UNIQUE_NAME FROM V$DATABASE; NAME DB_UNIQUE_NAME ------------------ ------------------------------------------------------------ ORCL ORCL SQ..

    [Oracle] ORA-12154 : TNS: could not resolve the connect identifier specified 오류 해결 방법

    ※ 이 글은 Oracle Database 11g Release 11.2.0.4.0 - 64bit 버전을 기준으로 작성된 글입니다. ERROR NAME ORA-12154 : TNS:could not resolve the connect identifier specified SYMPTOMS TNS 위치 설정이 정상적으로 등록되어 있지 않아 발생하며 DB_LINK 접근 시 종종 오류가 발생함. 해당 오류는 tnsnames.ora 에 인스턴스 접속 정보들이 기재되어 있는데, tnsnames.ora에 등록되어 있지 않거나 DB Alias가 등록되어 있지 않은 경우 발생하는 오류다. HOW TO SOLVE 따라서, 다음과 같이 조치하면 된다. 조치 방법은 두가지다. tnsnames.ora에 db_alias 등록한 뒤..