DBA

개인 학습, 작업 기록용입니다. 올바르지 않은 정보가 있다면 댓글주시면 감사하겠습니다!

오라클 7

[Oracle] 오라클 서비스 시작, 중지, 기동 확인 쉘 스크립트

OS 환경 : CentOS7 오라클 중지 스크립트 ( oracle_stop.sh ) 1. 리스너 중지 2. 남아있는 오라클 세션 kill 3. 오라클 셧다운 4. 정상 셧다운 확인 - DB 인스턴스 조회하여 해당 구문 error코드값으로 확인 0이면 쿼리 정상 수행 ( DB 올라온 상태 ) 0아니면 ERROR ( DB 내려간 상태) #!/bin/sh #리스너중지 /bin/su - oracle -c "lsnrctl stop" #오라클세션 kill ps -ef |grep LOCAL|grep oracle|grep -v grep |awk '{print $2}'|xargs kill -9 #오라클 셧다운 /bin/su - oracle -c "sqlplus '/as sysdba'"

DATABASE/Oracle 2024.01.09

[Oracle] SQL*Plus spool 활용하여 데이터 csv 파일 생성하기

sqlplus spool 명령어를 활용하여 조회한 데이터를 csv 파일 생성 spool 이란? 데이터를 파일로 저장하는 명령어 사용법 - SPOOL 파일명.확장자(csv, txt 등) : 데이터를 파일명.확장자 형식의 파일로 저장한다 - SPOOL OFF : SPOOL 종료 SPOOL /경로/파일명.확장자 -- 쿼리 작성 및 sql 파일명 SPOOL OFF; 사용예제 --csvtest.sql 작성 --SET 명령어 활용하여 불필요한 옵션 제거 set LINESIZE 1000 SET TRIMSPOOL ON SET PAGESIZE 0 SET FEEDBACK OFF SET TERMOUT OFF SPOOL /orabackup/test.csv SELECT 'a' ||','||'b' as ee FROM dual; ..

DATABASE/Oracle 2024.01.05

[Oracle] USER, PUBLIC SYNONYM, PROFILE 이관시 DATAPUMP 사용법

오라클 개발 서버에 운영과 동일한 환경을 세팅하기 위한 작업 진행 중 public synonym과 profile 정보도 함께 가지고 오고자 작업 진행함. USER, PUBLIC SYNONYM, PROFILE, ROLE 등 특정 스키마에 포함된 object 가 아닌 경우에는 expdp full = y include = public_synonym, profile을 조건 사용한다. full=y : 데이터베이스의 모든 스키마 대상 INCLUDE = 추출에 포함할 데이터베이스 개체 유형 PROFILE 테스트 -- test profile 생성 create profile TEST_PROFILE LIMIT IDLE_TIME UNLIMITED LOGICAL_READS_PER_CALL UNLIMITED PRIVATE_SG..

DATABASE/Oracle 2023.12.28

[Oracle] DB 링크 생성, 조회, 사용 및 삭제

오라클 DB 링크 : 로컬 DB와 원격 DB 간 데이터 작업시 사용 로컬 서버 tnsnames.ora 파일에 원격지 DB 접속 정보 추가하여 사용하거나 추가없이 직접 접속 정보를 기술하여 사용할 수 있다. 1. DATABASE LINK 생성 create [public] database link [DBLINK명] connect to [USER NAME] identified by "[USER PASSWORD]" using '(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.0)(PORT= 1521)) (CONNECT_DATA=(SERVICE_NAME=[서비스명])))'; * DB 구성에 따라 service_name = [서비스명] 또는 sid = [sid명] 을 사..

DATABASE/Oracle 2023.11.21

[Oracle] 통계정보 백업 및 복구, 자동통계정보 수집 기능 비활성화

--테이블 자동통계정보 수집 기능 테이블 단위 비활성화 begin DBMS_STATS.LOCK_TABLE_STATS('TEST_USER','TBL_PRICE'); end; --테이블 통계잠금해제 begin DBMS_STATS.UNLOCK_TABLE_STATS('TEST_USER','TBL_PRICE'); end; -- 통계정보 확인 select table_name, num_rows, blocks, empty_blocks, chain_cnt, avg_row_len, stale_stats, last_analyzed, sample_size from user_tab_statistics where table_name = 'XTMP_MBER'; select index_name, blevel, leaf_blocks,..

DATABASE/Oracle 2023.11.14

[Oracle] V$SQL 활용한 SQL 성능 분석

V$SQL 라이브러리 캐시에 캐싱된 각 child 커서에 대한 통계정보를 보여줌 select sql_id, child_number, sql_text, sql_fulltext, parsing_schema_name --1 , SHARABLE_MEM, PERSISTENT_MEM, RUNTIME_MEM --2 , loads, invalidations, parse_calls, executions, fetches, rows_processed --3 , cpu_time, elapsed_time --4 , buffer_gets, disk_reads, sorts --5 , application_wait_time, concurrency_wait_time --6 , cluster_wait_time, user_io_wait_..

DATABASE/Oracle 2023.06.13

[Oracle] 오라클 파티션테이블의 테이블스페이스 변경

인터벌파티션 테이블의 테이블 스페이스 변경 인터벌 파티션의 경우 자동으로 파티션을 생성해주므로 우선적으로 파티션 테이블의 디폴트 테이블 스페이스를 변경해주었다. --파티션 테이블 디폴트 테이블스페이스 변경 alter table [테이블명] modify default attributes tablespace [변경할 테이블스페이스명]; --이미 생성된 파티션의 테이블 스페이스 변경 파티션별로 테이블 스페이스 변경 작업을 위한 스크립트 생성 후 실행 select 'ALTER TABLE [테이블명] MOVE PARTITION '|| partition_name || ' TABLESPACE [변경할 테이블스페이스명];' from dba_tab_partitions where table_name = '[테이블명]' a..

DATABASE/Oracle 2022.11.03