728x90
반응형

DB (데이터베이스) 110

[MS-SQL] MS-SQL 계층형 쿼리 작성 (LOCK SESSION 조회)

oracle에서는 계층형 쿼리를 사용할 때 start with.. connect by와 같은 내장함수로 간단하계 트리구조를 조회할 수 있다. 하지만 MS-SQL은 with절을 통해 재귀로 구현하는 방법이 있다. 구현하는 방식은 아래와 같다.WITH (column1, column2...) AS ( -- 루트노드 SELECT *, 0 AS LEVEL FROM A UNILN ALL -- 자식노드 SELECT *, .LEVEL + 1 FROM A JOIN ON ... )이 포멧을 토대로 LOCK SESSION 을 조회하는 쿼리를 작성해보자.  with blocking as ( select session_id, blocking_session_id, 0 as level from sys.dm_exec_r..

[Oracle] DBA의 역할 : oracle 모니터링 항목

Oracle DBA를 할 때 운영중인 Oracle DB의 모니터링 항목에 대해 알아보자. 이 항목은 필자가 운영업무를 하면서 필요한 것들을 모은 것이니, 표준이 있는 것은 아니다. 1. buffer cache hit ratio (90%이상) select trunc(( 1- ( phy.value - lob.value - dir.value)/ses.value) * 100) as cache_hit_ratiofrom v$sysstat ses, v$sysstat lob, v$sysstat dir, v$sysstat phywhere ses.name = 'session logical reads'and dir.name = 'physical reads direct'and lob.name = 'physical reads..

[MS-SQL] MS-SQL 운영자(Operators) 설정

이전 포스트에서 SQL Server 에이전트로 메일 설정 및 메일 test를 진행하였다.  2024.07.18 - [DB (데이터베이스)/MS-SQL] - [MS-SQL]ms-sql 메일 설정 이제 이 SQL Server에이전트 서비스가 작업의 실패와 성공여부, 또는 특정 이벤트 발생 시 메일을 받을 담당자를 설정해야한다. 이를 '운영자' Operators라고 한다. 1. 운영자 추가ssms에서 [SQL Server 에이전트 -> 운영자(마우스 우클릭) -> 새 운영자] 를 선택한다. 위를 통해 운영자의 이메일을 넣어 SQL Server 에이전트가 메일을 보낼 때 이 운영자에게 보낼 수 있도록 설정 할 수 있다.  2. 작업 완료 시 메일 발송 설정SQL Server에이전트에 full backup 작업(..

[MS-SQL]ms-sql 메일 설정

우선 ms-sql메일 설정을 하기 전에 'SQL Server 에이전트'의 역할에 대해서 알아야한다. SQL Server 에이전트 서비스란? 자동화를 담당하는 구성요소이다. SQL Server에이전트 서비스는 정해진 일정으로 작업을 수행하고, 특정 상황에 경고를 발생시켜주는 역할을 한다. 즉 백그라운드에서 SQL Server 엔진과 별개로 운영되는 process이다. 메일 설정은 이 SQL Server에이전트를 통해 보내야한다. 이제 SQL server에서 메일을 설정하고 보내는 방법에 대해 알아보자 1. 데이터베이스 메일 설정[관리 -> 데이터베이스 메일 (마우스 우클릭) -> 데이터베이스 메일 구성] 을 눌러 데이터베이스 메일 구성 마법사를 연다. '다음 태스크를 수행하여 데이터베이스 메일 설치' 를 ..

[MS-SQL] 백업 기록 조회 sql

아래 쿼리를 이용해 백업기록을 조회할 수 있다.-- backup type /* D : 데이터베이스 백업 ( Database backup ) I : 차등 백업 ( Differentail Database backup ) L : 트랜젝션 로그 백업 ( Transaction log backup ) F : 파일 또는 파일그룹 백업 ( File or filrgroup backup ) G : 차등 파일 백업 ( Differentail file backup ) P : 부분 백업 ( Partial backup ) Q : 차등 부분 백업 ( Differentail partial backup ) */ select backupset.database_name, backupset.backup_start_date, backups..

[Oracle] oracle에서 값 존재 검증 (With절 사용)

데이터를 검증 하는 방법은 여러가지 있지만 , 이 포스트에서 소개할 검증 방법은 수열 데이터 중 특정 데이터가 있는지 검증 하는 방법입니다.예시)예를들어 A라는 컬럼에 1~100 사이의 숫자가 있어야 한다고 치자. 이때 1부터 100까지 모든 데이터가 있는지 확인하려고 order by를 사용하여 데이터를 뽑아 검사하기 힘들다 또는 A라는 컬럼에 날짜 데이터타입으로 202001 ~ 202401까지 전부 있는지 확인하려면 어떻게 해야할까? 이 때는 With절을 사용하여 join하면 해결할 수 있다. 1. 숫자 찾기 예제 TEST_A 라는 테이블에 과 같이 데이터가 들어가있다. 이때 1부터 10까지 데이터가 전부 존재하는지 검증하는 쿼리를 작성하면WITH test_NUMBER AS ( SELECT LEVEL ..

[Oracle] oracle dba_hist_sqlstat를 통해 특정 sql실행시간 조회 (ORA-01555)

Oracle DB 운영중에 가끔씩 ORA-01555 error를 볼 수 있다. ORA-01555의 발생원인은 대형 테이블을 스캔하거나 복잡한 조인을 수행하는 긴 실행시간 동안, 실행이 시작 된 후 데이터가 변경되고 해당사항이 커밋되면, 쿼리가 참조해야 할 이전 데이터의 스냅샷이 더 이상 유효하지 않게 되어서 발생하는 현상이다. alert_log에서 ORA-01555에 대한 sql_id를 얻을 수 있고 아래 sql문을 통해 해당 sql의 실행시간을 조회 할 수 있다.-- elapsed_time_delta : 각 스냅샷 간의 총 실행 시간 (마이크로 초 즉 백만분의 1초)-- executions_delta : 각 스냅샷 간의 실행 횟수SELECT sql_id, sum(executions_delta) AS ..

[Oracle] oracle AWR 뽑는 방법

우선 oracle awr이란 자동으로 Oracle DB에 대한 통계 및 성능자료를 수집해 스냅샷으로 만들어 일장기간 보관하고, 이를 활용할 수 있도록 해주는 기능이다. AWR을 통해 Buffer cache, CPU사용률, Latch hit, Library cache hit 등 정보를 볼 수 있다. 그리고 가장 중요한 점 ※중요 : awr을 사용하기 위해서는 Diagnostic Pack을 구매해야하는데 이 package를 구매하지 않고 사용하면 안된다. 하지만 실제로 구매하지 않아도 사용은 가능하도록 되어있다. 아마 이 사실을 모르고 사용하는 사용자들을 낚아 돈을 벌려는 oracle의 함정이 아닐까 싶다.1. AWR script실행 cd $ORACLE_HOME/rdbms/admin 위치에는 awrrpt.s..

[Oracle] oracle의 profile에서 password와 관련된 정책

oracle의 profile에서 password와 관련된 정책을 정의하는 파라미터에 대해 알아보자.  1. 종류* FAILED_LOGIN_ATTEMPTS : 사용자가 잘못된 비밀번호로 로그인 시도를 할 수 있는 최대 횟수 * PASSWORD_GRACE_TIME : 비밀번호를 변경해야 하는 유예기간 일 수 * PASSWORD_LIFE_TIME : 비밀번호 유효 기간 일 수 * PASSWORD_LOCK_TIME : 계정이 잠긴 후 잠금 상태가 유지되는 기간 * PASSWORD_REUSE_MAX : 비밀번호가 재사용될 수 있기 전에 사용되어야 하는 고유한 비밀번호 수 * PASSWORD_REUSE_TIME : 비밀번호가 재사용될 수 있기 전에 경과해야 하는 일 수  * PASSWORD_VERIFY_FUNCTI..

[Oracle] oracle에서 expdp중 exclude옵션과 query옵션 parfile로 작성하기

oracle의 Datapump인 expdp는 export하는 기능을 한다. 이 때 exclude옵션과 query옵션을 사용할 때 '(홑따옴표)문제 때문에 작성하는데 어려움을 겪는다.  이 문제를 쉽게 해결할 방안에 대해서 알아보자. 1. expdp exclude예시  1-1. exclude옵션을 expdp에 직접 사용exclude옵션은 export를 제외할 table 또는 schema를 명시할 수 있다. table exclude 예시)  exclude=table:"IN('TEST', 'TEST2')" schema exclude 예시) exclude=schema:"IN('SYS', 'SYSTEM', 'TEST')" ※ Unix(Linux)에서는 include, exclude옵션에서는 [ ", ', (, )..

728x90
반응형