본문 바로가기

DB

[Oracle] ORA-28002: the password will expire within 1 days Oracle 패스워드 변경기간이 1일 남았다는 메세지 입니다. 이걸 해결 하기 위해서는 패스워드 변경 기간이 디폴트 180인데 unlimited로 변경 해주고 패스워드도 변경 해주면 됩니다. 1. 디폴트 패스워드 변경 기간이 얼마인지 확인 합니다. select resource_name,resource_type,limit from dba_profiles; 2. PASSWORD_LIFE_TIME 이 unlimited로 되어 있디 않다면 변경 해줍니다. alter profile default limit PASSWORD_LIFE_TIME unlimited; 3. 사용자 정보를 조회 해보면 EXPIRY_DATE에 날짜가 들어가 있는것을 확인 할 수 있습니다. select * from dba_users where .. 더보기
PostgreSQL Table 목록 추출 PostgreSQL DB 테이블 정의서 만들때 사용하고 있습니다. 구글에서 검색해서 사용하던 쿼리 입니다. SELECT info. TABLE_NAME as 테이블ID, tb_comm.tb_comm as 테이블명, info. COLUMN_NAME as 컬럼ID, comm.column_comment as 컬럼명, info.udt_name as 데이터타입, case when info.character_maximum_length is null then info.numeric_precision else info.character_maximum_length end as length, info.is_nullable NullOption, case when pri_key.column_name is null then ''.. 더보기
Oracle Table 목록 추출 Oracle DB 테이블 목록 추출 쿼리 입니다. 테이블 정의서 만들때 주로 사용하고 있는데 구글에서 찾아보면 많이 있습니다. --테이블 목록 추출 SELECT DISTINCT S1.OWNER, S1.TABLE_NAME AS 물리테이블명, COMMENTS AS 논리테이블명, TABLESPACE_NAME AS 테이블스페이스명, NUM_ROWS AS ROW수, --- analize 를 해야 정확한 Row수를 얻는다. LAST_ANALYZED AS 최종분석일자, PARTITIONED AS 파티션여부 FROM ALL_TABLES S1, ALL_TAB_COMMENTS S2 WHERE S1.TABLE_NAME = S2.TABLE_NAME AND S2.TABLE_TYPE = 'TABLE' -- VIEW (뷰, 테이블.. 더보기
Oracle to PostgreSQL 쿼리 변환 Oracle 쿼리를 PostgreSQL 쿼리로 변경 할때 수정 해야 할 부분입니다. 테이블 이관은 찾아보면 무료로 사용 할 수 있는게 몇가지 있습니다. 적당한 것으로 하시면 될거 같습니다. Oracle PostgreSQL 비고 select sysdate FROM DUAL select now() sysdate now() ROWNUM (ROW_NUMBER() OVER()) select 절 WHERE ROWNUM = LIMIT where NVL coalesce left outer join (+) (left table) left outer join (Right table) on left.col = right.col right outer join (+) (left table) right outer join (Ri.. 더보기
Postgresql pgpool을 활용한 클러스터 명령어 및 docker-compose 1. pgpool, PostgreSql container 시작 및 종료 pgpool 시작 sudo docker-compose up -d pgpool 종료 sudo docker-compose down PostgreSql 시작 sudo docker-compose up -d PostgreSql 종료 sudo docker-compose down 2. pgpool 사용자 추가 DB서버에 사용자를 추가 할 경우 pgpool을 통해서 로그인을 하기 위해서는 pgpool docker-compose.yml 파일에 추가 해야 한다. 수정후 pgpool 재시작 - PGPOOL_POSTGRES_CUSTOM_USERS=airflow,airflow1 - PGPOOL_POSTGRES_CUSTOM_PASSWORDS=postgres,.. 더보기
Postgresql pgpool을 활용한 클러스터링 pgpool을 이용한 Postgresql 클러스터링을 구현해 보겠습니다. docker기반으로 테스트 했습니다. 1.connection pooling : DB서버와의 연결을 유지하고 동일한 속성(user,db,protocol) 을 가진 새로운 연결 요청이 오면 이를 재사용함 2.load balancing : replication 을 사용하는 서비스에서 DB서버의 편중된 load를 줄이기 위해 SELECT 쿼리를 처리 가능한 서버 간 배포하는 기능 3.automated failover : DB 서버 중 하나가 down되면 이를 차단하고 나머지 DB에서 서비스를 지속함, master down 될 시엔 다른 standby 서버를 승격시킴 4.Replication : 복제 기능을 활성화하여 하나가 장애가 발생해도.. 더보기
MongoDB Replicaset 구성 명령어 1. hosts에 container명 추가 Replica Set 구성 할떄 사용 $ sudo vi /etc/hosts 2. docker-compose-replicaset.yml(인증없이 생성) version: '3.3' services: mongo1: container_name: mongo1 image: mongo:latest volumes: - ./scripts/rs-init.sh:/scripts/rs-init.sh - /data/mongo/mongoRepl/mongo1:/data/db networks: - mongo-network ports: - 37017:37017 restart: always entrypoint: [ "/usr/bin/mongod", "--bind_ip_all", "--replSe.. 더보기
MongoDB Replicaset 구성 MongoDB 복제 구성을 docker기반에서 테스트한 내용을 공유하겠습니다. 대부분은 구글 검색을 통해서 찾은 내용이고, 직접 테스트한 내용입니다. 1. MongoDB 의 복제 MongoDB 의 Replica set 은 동일한 데이터 세트를 유지 관리하는 mongod 인스턴스 그룹이다. Replica set 에는 여러 데이터 베어링 노드와 선택적으로 하나의 중재자(abiter) 노드가 포함 되게 된다. 데이터 베어링 노드 중 하나의 구성원만 Primary(기본) 노드가 되며 다른 노드는 Secondary 노드가 된다. 단일 Replica set 구조에서는 별도의 관리용 컴포넌트가 필요하지는 않지만, 단일 노드(Standalone) 에 비해서 추가로 MongoDB 서버가 필요 하다. Replica set.. 더보기