본문 바로가기

Oracle

(7)
Oracle FlashBack 쿼리 timestamp를 이용한 긴급 복원 Oracle에서 실수로 데이터를 삭제했거나, 변경했을 경우 백업/복원을 이용한 방법 외에 아래와 같이 FlashBack 쿼리로 복원이 가능합니다. 복원이 가능한 조건이 있는데, 별도 문서로 참고하시기 바랍니다. 60분 전의 데이터를 확인합니다. 숫자를 변경해 시간을 조절할 수 있습니다. SELECT COL1 FROM USER1.TABLE1 AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL '60' MINUTE); 60분 전 데이터로 현재 데이터를 수정해야 할 경우 예시 UPDATE USER1.TABLE1 T1 SET COL1 = (SELECT COL1 FROM USER1.TABLE1 AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL '60' MINUTE) WHERE C..
Oracle JOB 중지, 비활성화 작업 Oracle 작업으로 인해 JOB을 중지해야 할 경우 JOB을 조회해서 현황을 파악하고, JOB을 중지하거나 비활성화하는 방안에 대해 설명합니다. JOB 조회 -- JOB 조회, dba_jobs 테이블에서 정보 확인 -- Broken=Y는 비활성화 된 JOB col job for 9999 col schema_user for a11 col what for a40 col failures for 9999 col total_time for 9999 col last_date for a10 col last_sec for a10 col next_date for a10 col next_sec for a10 col interval for a30 select job, broken, schema_user, --what fa..
Oracle 시퀀스(Sequence) 이관 서로 다른 서버로 시퀀스를 이관할 때 기존 시퀀스 값을 그대로 이관해도 되나, 시퀀스 중복이나 문제 발생을 예방하기 위해 기존 값에 +10 정도 더해서 이관합니다. 물론 사전에 관련된 업무는 미리 중지해 놓고, 더 이상 쿼리 유입이 없는 상태여야 합니다. 시퀀스 삭제 -- USER01의 모든 sequence 삭제 SELECT 'DROP SEQUENCE "'||sequence_owner||'"."'||sequence_name||'";' as "Query" FROM DBA_SEQUENCES where SEQUENCE_OWNER='USER01'; CREATE SEQUENCE 구문 생성 -- create sequence 구문 생성 SELECT 'CREATE SEQUENCE "'||sequence_owner||'..
DBMS_DATAPUMP 사용법과 예제 기존 On-Premise Oracle 서버에서는 expdp 명령어를 많이 사용했으나, AWS RDS를 사용하면서 expdp명령어의 제약으로 인해 DBMS_DATAPUMP를 사용합니다. 스키마 전체를 이관하거나, Metadata 만 이관하거나, 특정 테이블만 이관하는 다양한 경우에 대해 알아봅니다. DBMS_DATAPUMP의 사용방법 및 다양한 예시를 모아봤습니다. DBMS_DATAPUMP EXPORT SCHEMA 모드 ⇒ job_mode = ‘SCHEMA’ 가장 일반적인 Export 하기(덤프파일명, 로그파일명, 스키마이름 변경 후 실행) 해당 계정의 스키마 및 데이터 모두 포함 -- IBE 계정의 모든 오브젝트 EXPORT DECLARE hdnl NUMBER; BEGIN hdnl := DBMS_DATA..
Oracle Database Migration to aws RDS using DB-LINK Oracle Database Migration to aws RDS using DB-LINK에 대해 설명합니다. On-Premise Oracle Database를 AWS로 Migration 하는 방법 중에서 DB-LINK를 이용하는 방법입니다. S3 버킷을 이용하지 않고 직접 RDS로 이관하므로 시간을 단축할 수 있습니다. 덤프파일을 S3에 거치지 않는 대신 이외 Export, 전송, Import과정은 모두 포함합니다. 또한 RDS의 DATA_PUMP_DIR 공간을 사용하기 때문에 RDS의 용량을 많이 사용할 수 있습니다. 덤프파일의 공간과 Import시 생성되는 공간이 모두 필요합니다. RDS스토리지는 축소되지 않기 때문에 용량이 많을 경우 작업을 나눠서 작은 파일로 여러 번 작업해야 할 수도 있습니다...
SQL Server 연결된서버 쿼리 오류 분석 방법 예시 SQL Server가 덤프가 발생되면서 재시작되는 현상이 있어 원인 분석한 과정입니다. 원인부터 말씀드리면 OS를 보안업데이트 하는 과정에서 업데이트 후 서버의 환경변수에 Path가 삭제되면서 삭제된 Path를 백업해 놓지 않아 비슷한 업무의 다른 서버에서 복사해 놓고 사용하는 과정에서 덤프가 발생되었습니다. 원래 제품 버전: SQL Server 원래 KB 번호: 2295405 다음과 같은 경우를 생각해볼 수 있습니다. 이 SQL Server 실행 중인 컴퓨터에 Windows 설치합니다. Oracle 데이터베이스에 대한 연결된 서버를 만듭니다. 연결된 서버 공급자에 대한 옵션 대화 상자에서 inprocess 허용 옵션을 사용하도록 설정할 수 있습니다. 덤프파일 관련 내용 minidump.mdmp에서 어셈..
RDS Oracle 세션 KILL 하는 방법 AWS RDS 사용 중에 일반적인 상황에서 세션을 KILL 해야 하거나, 잘못된 상황으로 인해 긴급하고 빠르게 쿼리를 KILL 해야 하는 경우에, SID, SERIAL#을 이용해 KILL 쿼리를 편집하는 대신 쿼리 결과를 복사해서 바로 사용할 수 있도록 다양한 쿼리들을 정리했습니다. 특정 사용자의 모든 세션을 KILL 할 경우 USER01이 사용하는 세션을 확인 SELECT SID, SERIAL#, USERNAME, STATUS FROM V$SESSION WHERE USERNAME='USER01'; 해당 세션을 KILL 해도 계속해서 들어올 수 있는 상황에서는 계정을 LOCK 하고, 이후 일괄 쿼리를 이용해서 KILL 수행합니다. 아래 두 번째 쿼리의 수행결과를 복사해서 다시 실행합니다. 필요에 따라 계..