분류 전체보기 261

[Oracle/Error] ORA-28000: the account is locked

리눅스에 솔루션을 설치한 후 오라클 계정에 접속하려하니 'ORA-28000: the account is locked'라는 에러가 발생하면서 접속이 되지 않았다. 내가 접속하려는 계정이 잠겨있다는 것이다. 이는 다음과 같은 원인으로 발생할 수 있다.Oracle 서버를 디폴트(DEFAULT)로 설치할 경우, 일부 계정은 잠금(Locked) 상태로 생성된다.Oracle 서버를 설치할 때, 관리자가 일부러 계정을 사용할 수 없도록 잠금 상태로 변경한다.(관리자: 계정에 대한 잠금/해제 권한을 가진 사용자)로그인에 여러 번 실패하면 계정이 잠긴다.(실패 횟수는 FAILED_LOGIN_ATTEMPTS에 설정) 이러한 경우에는 관리자 계정으로 접속하여 다음 쿼리를 실행하면 계정 잠금이 해제된다.ALTER USER 잠..

Database/Oracle 2024.07.27

[Weblogic] jsp가 정상적으로 반영되지 않는 경우

파일 패치한 후 웹로직을 재기동했는데 변경된 jsp가 정상적으로 반영되지 않았다.처음엔 jsp가 잘못되었나 싶었는데 찾아보니까 웹로직이 간헐적으로 이러한 현상이 발생하는 것 같았다. 이는 캐시를 삭제 후 재기동하니 해결되었다. 1. weblogic 홈에서 UI를 올려놓은 경로로 이동한다.$ cd $ORACLE_HOME/user_projects/domains/Your_domain/Servers/Your_server/2. cache/와 tmp/를 삭제한다.$ rm -rf cache tmp3. weblogic을 재기동한다.$ cd ../../bin$ ./stopManagedWebLogic.sh$ ./startManagedWebLogic.sh

WAS/Weblogic 2024.07.13

[Oracle/Error] ORA-01013: user requested cancel of current operation

솔루션 패치 후에 특정 기능의 화면이 정상적으로 보이지 않아 서버 쪽 로그를 확인해보았다.ORA-01013: user requested cancel of current operation 에러가 발생하였는데, 이는 특정 기능을 위한 update 쿼리를 실행하면서 타임아웃이 발생하여 생긴 에러이다. 나의 경우는 오라클 DB에서 테이블 컬럼 추가 후 commit을 하지 않아서 해당 에러가 발생한 것이다.DB가 auto commit을 하지 않도록 설정되어 있어서 ddl 실행 후 commit을 따로 해줘야 했는데, 이를 까먹어버려서 해당 컬럼을 사용하려는데 없어서 사용하지 못하고 타임아웃이 발생되었다. commit 후 재기동하니 해당 에러는 발생하지 않았다.

Database/Oracle 2024.07.10

[Linux/Error] java.net.BindException: Address already in use

위 에러는 현재 실행한 프로세스의 포트가 이미 다른 데서 사용 중이어서 발생한 에러다.이를 해결하기 위해선 다음 명령어를 입력한다. 먼저 netstat 명령어로 사용 중인 프로세스의 PID 정보를 확인한다.netstat -nap | grep 포트번호예) netstat -nap | grep 9003- 옵션 -n : 포트번호- 옵션 -a : 모든 프로세스 표시- 옵션 -p : 프로세스의 PID 정보위 사진에서 맨 오른쪽의 595880/haproxy에서 595880이 이미 사용 중인 포트 9003 프로세스의 PID이다. 저 PID를 kill 명령어로 종료시킨 후 원래 실행하려던 프로세스를 실행하면 정상적으로 실행될 것이다.kill -9 PID예) kill -9 595880

OS/Linux 2024.05.28

[PostgreSQL/Error] permission denied for language internal

설치파일 테스트를 위해 데이터베이스 계정을 새로 만들어 설치파일과 관련된 설정 SQL 파일을 실행했는데 위 에러가 발생했다. 찾아보니 내가 만든 데이터베이스 계정이 슈퍼유저 권한이 없었던 게 문제였다.또한 저 SQL 파일 이외에 DDL SQL 파일도 있었기 때문에 CREATEDB 권한도 필요했다. 슈퍼유저 권한과 CREATEDB 권한 설정은 다음 쿼리를 실행하면 된다.1) 슈퍼유저 권한 부여 쿼리ALTER USER DB사용자계정명 WITH SUPERUSER;#예시> ALTER USER tistory WITH SUPERUSER; 2) CREATEDB 권한 부여 쿼리ALTER USER DB사용자계정명 CREATEDB;# ALTER USER tistory CREATEDB;  참고) DB 사용자 계정마다 부여된..

Database/PostgreSQL 2024.05.23

[Python] list에서 빈 문자열인 요소 제거하기

list에서 빈 문자열인 요소를 제거하려면,리스트 컴프리헨션(List Comprehension)을 사용하면 된다. >예시코드T=input().split("X")print(T)# ['OO', '', '', 'O', 'O', '', 'OOO']T=[i for i in T if i]print(T)# ['OO', 'O', 'O', 'OOO']T에 "OOXXXOXOXXOOO"라는 값을 입력하면 split("X")를 통해 해당 입력값에서 "X"가 제거된 후 리스트로 저장된다.이때, T는 ['OO', '', '', 'O', 'O', '', 'OOO']로 출력된다.나는 공백인 요소가 필요없었기에 리스트 컴프리헨션을 사용하여 빈 문자열인 요소를 제거하였다.T=[i for i in T if i]위 코드에서 'if i'는..

[Python] 아스테리스크(*, Asterisk)의 의미

Python에서 Asterisk(*)는 언패킹(Unpacking) 연산자로 사용된다.리스트나 튜플 등의 iterable 객체를 언패킹하여 각 요소를 개별적으로 전달하는 역할을 한다. 다음은 N과 M을 입력받아 N*M 형태의 행렬 A에 들어갈 요소를 입력받아 출력하는 코드이다. N, M = map(int, input().split())matrix_A = []for _ in range(N): row_A = list(map(int, input().split())) matrix_A.append(row_A)for row in matrix_A: print(*row)첫 for문에선 행렬 A에 들어갈 요소를 공백을 구분자로 하여 리스트 형태로 입력받아 matrix_A에 append()로 행을 추가한다.그리고..

[Python] 입력 받기

Python에서는 입력받는 방법이 다음과 같다. 1. input()x = input()print(x)사진의 윗부분에서 검정 글씨가 입력받은 값이고, 파란 글씨가 print(x)로 출력된 값이다.이때, input()에 int()로 감싼 이유는 정수를 받기 위해서이다. 2. sys.stdin.readline()sys.stdin.readline()을 사용할 때는 sys를 import해야 한다.import sysx = int(sys.stdin.readline())print(x) input()에 split()을 사용하여 한번에 여러 값을 입력받을 수 있는데, sys.stdin.readline()도 input()과 동일하게 split()을 사용할 수 있다.1 2 3 4가 input()으로 입력받은 것이고, 6 7 ..

[IT/정보] Mac 단축키

1. 스크린샷 관련 단축키shift + command + 3 : 전체화면 스크린샷shift + command + 4 : 마우스 드래그하여 일부 화면 캡처shift + command + 5 : 화면 영상 녹화2. 윈도우(창) 관련 단축키command + R : 새로고침command + H : 화면이 켜져있는 모든 윈도우 가리기command + L : 주소창 포커싱command + M : 맨 앞창 최소화command + option + H : 맨 앞창 제외 나머지 창 최소화command + W : 창 닫기option + command + E : 캐시 비우기option + command + U : 개발자도구 중 페이지 소스 켜기option + command + I : 개발자도구 닫기 또는 이전에 열었던 개발자..

IT/정보 2024.04.20

[Linux] vi 모드에서 한 줄 복사 후 붙여넣는 명령어

타임존 테스트를 위해 profile 파일을 수정하다가 테스트가 끝나면 원복해야 하는데 수정 전 내용을 다시 찾아야하는 과정이 귀찮다는 생각이 문득 들었다. 그래서 수정하려는 줄을 싹 복사한 후 그 밑줄에 붙여넣기 하는 vi 편집기 명령어를 찾아보았다. 나는 test.txt를 임의로 만들어 명령어를 사용할 것이다. 일단 vi로 test.txt 파일을 연다. test.txt를 열면 아래와 같이 텍스트가 작성되어 있다. 나는 마지막 문장을 복사할 것이다. 그러려면 마지막 문장인 'COPY & PASTE ...'로 커서를 이동시킨 후 yy 명령어를 사용하여 복사한다. vi 모드에서 'y'를 연속으로 2번 입력하면 된다. yy 명령어를 입력하면 아무 것도 뜨는 것이 없겠지만, 이미 복사가 된 상태이다. 이제 붙여..

OS/Linux 2024.04.01