MySQL 명령어

테이블 통계정보

mysql> show table status like 'atin_story'\G


인덱스 통계정보

mysql> show index from atin_story\G


쿼리 플랜
mysql> explain select sql


인덱스 추가/제거

alter table table_name drop index index_name;

alter table table_name add index index_name(colunm1, column2);


MySQL 인덱스

  • B-Tree 인덱스 구조 사용
  • NULL을 값으로 인식하여 인덱스에 포함됨
  • 인덱싱 컬럼에 대한 IN절은 Expansion으로 처리됨( UNION ALL )
  • DESC 인덱스는 지원하지 않음


MySQL 플랜

  • select_type :  SELECT 유형
  • type :  Access type
    • Good : Const, system, eq_ref
    • Bad : ALL(테이블풀스캔),  index(인덱스풀스캔)
    • 처리범위에 따라 다름 : range, ref
  • extra : 실행계획을 생성할 때 적용하는 최적화 기법을 표현하거나 부가정보
    • Good : using index(커버링인덱스), using where(메모리에서 필터링)
    • Bad : using filesort, using join buffer
  • 특정인덱스를 사용하거나 사용하지 않도록 하는 인덱스 힌트는 아래와 같다
    • USE INDEX/FORCE INDEX 
    • IGNORE INDEX
    • STRAIGHT JOIN : 드라이빙 순서를 고정할 때 사용하는 힌트


저작자 표시 비영리 변경 금지
신고

'Infra > RDBMS' 카테고리의 다른 글

MySQL 명령어 정리  (0) 2017.11.03
Oracle 테이블 스페이스 변경  (0) 2014.01.17
오라클 DBF 용량 줄이기  (0) 2013.06.17
오라클 백업  (0) 2013.06.06
테이블 제약 조건 확인  (0) 2013.05.20
ORA-00600: internal error code, arguments: [kokle_lob2lob13:input mismatch] 해결  (2) 2013.04.23
Postgresql 랜덤값 출력  (0) 2011.10.14
DB Password 부호화 복호화  (0) 2011.04.19
DB2 TimeStamp  (0) 2009.08.24
DB2 SEQUENCE 생성  (0) 2009.07.16
DB2에서 Temp테이블 사용법  (0) 2009.07.07

Leave a Comment

select file_name, bytes from dba_data_files where tablespace_name = 'TableSpace이름';


alter tablespace TableSpace명 add datafile '절대경로/DBF파일명.dbf' size 1024M;


alter database datafile '절대경로/DBF파일명.dbf' resize 1024M;

신고

'Infra > RDBMS' 카테고리의 다른 글

MySQL 명령어 정리  (0) 2017.11.03
Oracle 테이블 스페이스 변경  (0) 2014.01.17
오라클 DBF 용량 줄이기  (0) 2013.06.17
오라클 백업  (0) 2013.06.06
테이블 제약 조건 확인  (0) 2013.05.20
ORA-00600: internal error code, arguments: [kokle_lob2lob13:input mismatch] 해결  (2) 2013.04.23
Postgresql 랜덤값 출력  (0) 2011.10.14
DB Password 부호화 복호화  (0) 2011.04.19
DB2 TimeStamp  (0) 2009.08.24
DB2 SEQUENCE 생성  (0) 2009.07.16
DB2에서 Temp테이블 사용법  (0) 2009.07.07

Leave a Comment

-- DBF별 파일 크기 확인

SELECT file_name, BYTES AS "FULL_SIZE", (SELECT (MAX (block_id) * 8192 + MAX (blocks * 8192)) FROM dba_extents WHERE file_id = a.file_id) AS "use_size" FROM dba_data_files a;


-- 파일 크기 변경

alter database datafile '/home/oracle/oradata/test/test01.dbf' resize 500m;


alter database datafile '/home/oracle/oradata/test/test_log.dbf' resize 500m;





신고

'Infra > RDBMS' 카테고리의 다른 글

MySQL 명령어 정리  (0) 2017.11.03
Oracle 테이블 스페이스 변경  (0) 2014.01.17
오라클 DBF 용량 줄이기  (0) 2013.06.17
오라클 백업  (0) 2013.06.06
테이블 제약 조건 확인  (0) 2013.05.20
ORA-00600: internal error code, arguments: [kokle_lob2lob13:input mismatch] 해결  (2) 2013.04.23
Postgresql 랜덤값 출력  (0) 2011.10.14
DB Password 부호화 복호화  (0) 2011.04.19
DB2 TimeStamp  (0) 2009.08.24
DB2 SEQUENCE 생성  (0) 2009.07.16
DB2에서 Temp테이블 사용법  (0) 2009.07.07

Leave a Comment

오라클 백업


DB데이터 작업시에 언제나 백업해둬야 하는 습관을 길러야겠다.

안 하려다 무심코 한 백업이 날 살렸다. 밤 늦게 이제는 문제 없겠지하고 퇴근했다가 정말 다시 회사 갈 뻔했다.


Export

exp 아이디/패스워드 file=파일명.dmp log=로그명.log fully=y

 

Import

imp 아이디/패스워드 file=파일명.dmp log=로그명.log fully=y

imp 아이디/패스워드 file=파일명.dmp log=로그명.log ignore=yes tables=테이블명


여기서 위에 ignore를 yes로 해놓으면 에러가 나도 무시하고 실행된다.

덕분에 살았다.


백업을 잘하자.

망할 놈들.. 원복이 장난인지 알아..샹 


신고

'Infra > RDBMS' 카테고리의 다른 글

MySQL 명령어 정리  (0) 2017.11.03
Oracle 테이블 스페이스 변경  (0) 2014.01.17
오라클 DBF 용량 줄이기  (0) 2013.06.17
오라클 백업  (0) 2013.06.06
테이블 제약 조건 확인  (0) 2013.05.20
ORA-00600: internal error code, arguments: [kokle_lob2lob13:input mismatch] 해결  (2) 2013.04.23
Postgresql 랜덤값 출력  (0) 2011.10.14
DB Password 부호화 복호화  (0) 2011.04.19
DB2 TimeStamp  (0) 2009.08.24
DB2 SEQUENCE 생성  (0) 2009.07.16
DB2에서 Temp테이블 사용법  (0) 2009.07.07

Leave a Comment

Toad에서는 테이블 제약조건 확인이 쉽지만 sqlplus에서는 쉽지 않다.


-- 테이블 제약조건 확인

SELECT table_name, constraint_name, constraint_type FROM USER_CONSTRAINTS WHERE TABLE_NAME ='테이블명';


-- 제약조건 상세

SELECT * FROM USER_CONSTRAINTS WHERE CONSTRAINT_NAME = 'SYS_C0000000';






신고

'Infra > RDBMS' 카테고리의 다른 글

MySQL 명령어 정리  (0) 2017.11.03
Oracle 테이블 스페이스 변경  (0) 2014.01.17
오라클 DBF 용량 줄이기  (0) 2013.06.17
오라클 백업  (0) 2013.06.06
테이블 제약 조건 확인  (0) 2013.05.20
ORA-00600: internal error code, arguments: [kokle_lob2lob13:input mismatch] 해결  (2) 2013.04.23
Postgresql 랜덤값 출력  (0) 2011.10.14
DB Password 부호화 복호화  (0) 2011.04.19
DB2 TimeStamp  (0) 2009.08.24
DB2 SEQUENCE 생성  (0) 2009.07.16
DB2에서 Temp테이블 사용법  (0) 2009.07.07

Leave a Comment

오늘 다음과 같은 오라클 에러를 만났다.

작업은 서버1에 있는 오라클 데이터를 서버2에 오라클 서버로 옮기는 작업이었다.

impdp명령어를 이용해서 데이터를 가져오려고 하는 중에 다음과 같은 에러가 났다.


 [oracle@atin84 dmpFile]$ impdp id/pass directory=db_backup dumpfile=dump.dmp logfile=impdp.log table_exists_action=truncate

Import: Release 10.2.0.1.0 - 64bit Production on Wednesday, 24 April, 2013 0:45:33
Copyright (c) 2003, 2005, Oracle.  All rights reserved.
Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production

ORA-39006: internal error
ORA-39065: unexpected master process exception in DISPATCH
ORA-00600: internal error code, arguments: [kokle_lob2lob13:input mismatch], [1], [], [], [], [], [], []
ORA-39097: Data Pump job encountered unexpected error -600

[oracle@atin84 dmpFile]$ 


여러가지 에러가 났다. ORA에러코드만 4개이다. 에러 코드중에서도 이 내부 에러는 제일 골치 아픈 부분이다. 먼저 'NLS_NCHAR_CHARACTERSET'이 문제라고 생각되어서 UTF8로 바꿔주었다.


-- 캐릭터 셋 확인
SELECT parameter,value FROM nls_database_parameters WHERE parameter like '%CHAR%';

-- 변경
UPDATE sys.props$ SET value$='UTF8' WHERE name='NLS_NCHAR_CHARACTERSET';
COMMIT;


하지만 에러는 해결되지 않았다. 몇 시간동안 다른 전임과 이유를 찾다가 나자빠졌다.

거의 반포기하고 있던 중에 서영이네집님 블로그의 포스팅[1]을 통해서 해결을 볼 수 있었다. 서영이네집님께 다시 한번 감사드린다. 해당 포스팅이 아니었다면 난 해결하지 못했을 것이다. 이런 부분에서 나 역시 포스팅을 작성한다.


 # sqlplus / as sysdba
SQL>SHUTDOWN IMMEDIATE;
SQL>STARTUP MOUNT;
SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION;
SQL>ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
SQL>ALTER DATABASE OPEN;
SQL>ALTER DATABASE CHARACTER SET INTERNAL_USE KO16MSWIN949 ;
SQL>SHUTDOWN IMMEDIATE;
SQL>STARTUP;


위에 INTERNAL_USE 캐릭터셋이 문제였다고 생각되어진다.

위와 같이 실행한 후에 다시 impdp를 실행하니 에러코드가 바뀌었다. 하지만 간단한 문제라서 해결하고 작업을 마칠 수 있었다. 이런 문제로 고생하신 분들의 좋은 해결을 빈다.


Reference

[1] 서영이네 블로그 ( http://westzero.net/77 )

[2] DBA 클럽 ( http://oracleclub.com/article/55079 )


신고

'Infra > RDBMS' 카테고리의 다른 글

MySQL 명령어 정리  (0) 2017.11.03
Oracle 테이블 스페이스 변경  (0) 2014.01.17
오라클 DBF 용량 줄이기  (0) 2013.06.17
오라클 백업  (0) 2013.06.06
테이블 제약 조건 확인  (0) 2013.05.20
ORA-00600: internal error code, arguments: [kokle_lob2lob13:input mismatch] 해결  (2) 2013.04.23
Postgresql 랜덤값 출력  (0) 2011.10.14
DB Password 부호화 복호화  (0) 2011.04.19
DB2 TimeStamp  (0) 2009.08.24
DB2 SEQUENCE 생성  (0) 2009.07.16
DB2에서 Temp테이블 사용법  (0) 2009.07.07

Comments

  1. 지누셩 2014.02.12 11:30 신고 Permalink Modify/Delete Reply

    정말 감사합니다. 위의 오류로 인해 구글링 하는데, 해외에서도 딱히 이유를 찾을수 없었는데,
    요기 답이 있었네요..
    그런데 서영이네 블로그는 닫았나보네요. 접속이 안되네요.

  2. 옹실통실 2015.05.06 10:59 신고 Permalink Modify/Delete Reply

    감사합니다! 덕분에해결됐어요

Leave a Comment

개발중 테스트를 위해서 테이블에 가상의 데이터 수치를 넣어야 하는 경우가 생겼다.

sql에서 제공하는 랜덤 함수를 이용하면 금방 될 것 같았다.

Postgresql에서는 random이라는 함수를 제공한다. 최대값은 100에 소수점 2자리까지만 추출을 해보기로 했다.

round(cast(random() * 100 AS numeric), 2)

random()의 결과값은 0.~1.의 값이 나온다. 100을 곱해줘서 최대값 100을 만들어준다.
소수점 2자리까지 자르기 위해서 round()함수를 쓰고, random의 결과값은 double인가 그렇기 때문에 numeric으로 타입을 변환해준다.



 
신고

'Infra > RDBMS' 카테고리의 다른 글

Oracle 테이블 스페이스 변경  (0) 2014.01.17
오라클 DBF 용량 줄이기  (0) 2013.06.17
오라클 백업  (0) 2013.06.06
테이블 제약 조건 확인  (0) 2013.05.20
ORA-00600: internal error code, arguments: [kokle_lob2lob13:input mismatch] 해결  (2) 2013.04.23
Postgresql 랜덤값 출력  (0) 2011.10.14
DB Password 부호화 복호화  (0) 2011.04.19
DB2 TimeStamp  (0) 2009.08.24
DB2 SEQUENCE 생성  (0) 2009.07.16
DB2에서 Temp테이블 사용법  (0) 2009.07.07
데이터베이스 유저 권한 주기  (0) 2008.06.30

Leave a Comment

CREATE OR REPLACE FUNCTION ONMMON.FN_DES_ENCRYPT(plaintext VARCHAR2)
   RETURN VARCHAR2
AS
   LANGUAGE JAVA
   NAME 'DES.encrypt(java.lang.String) return java.lang.String';




 CREATE OR REPLACE FUNCTION ONMMON.FN_DES_DECRYPT(plaintext VARCHAR2)
   RETURN VARCHAR2
AS
   LANGUAGE JAVA
   NAME 'DES.decrypt(java.lang.String) return java.lang.String';
신고

'Infra > RDBMS' 카테고리의 다른 글

오라클 DBF 용량 줄이기  (0) 2013.06.17
오라클 백업  (0) 2013.06.06
테이블 제약 조건 확인  (0) 2013.05.20
ORA-00600: internal error code, arguments: [kokle_lob2lob13:input mismatch] 해결  (2) 2013.04.23
Postgresql 랜덤값 출력  (0) 2011.10.14
DB Password 부호화 복호화  (0) 2011.04.19
DB2 TimeStamp  (0) 2009.08.24
DB2 SEQUENCE 생성  (0) 2009.07.16
DB2에서 Temp테이블 사용법  (0) 2009.07.07
데이터베이스 유저 권한 주기  (0) 2008.06.30
기본 커리문  (0) 2008.06.25

Leave a Comment

DB2 TimeStamp

TimeStamp - 날짜 타입

현재시간 입력
CURRENT TIMESTAMP

타입 변환
TIMESTAMP(CAST(? AS VARCHAR(20)))

저작자 표시
신고

'Infra > RDBMS' 카테고리의 다른 글

오라클 DBF 용량 줄이기  (0) 2013.06.17
오라클 백업  (0) 2013.06.06
테이블 제약 조건 확인  (0) 2013.05.20
ORA-00600: internal error code, arguments: [kokle_lob2lob13:input mismatch] 해결  (2) 2013.04.23
Postgresql 랜덤값 출력  (0) 2011.10.14
DB Password 부호화 복호화  (0) 2011.04.19
DB2 TimeStamp  (0) 2009.08.24
DB2 SEQUENCE 생성  (0) 2009.07.16
DB2에서 Temp테이블 사용법  (0) 2009.07.07
데이터베이스 유저 권한 주기  (0) 2008.06.30
기본 커리문  (0) 2008.06.25

Leave a Comment

DB2 SEQUENCE 생성

DROP
DROP SEQUENCE "DB_NAME "."SEQUENCE_NAME" ;

CREATE
CREATE SEQUENCE "DB_NAME "."SECUENCE_NAME" AS INTEGER
        MINVALUE 1 MAXVALUE 2147483647
        START WITH 3007 INCREMENT BY 1
        CACHE 10 CYCLE NO ORDER;
저작자 표시
신고

'Infra > RDBMS' 카테고리의 다른 글

오라클 DBF 용량 줄이기  (0) 2013.06.17
오라클 백업  (0) 2013.06.06
테이블 제약 조건 확인  (0) 2013.05.20
ORA-00600: internal error code, arguments: [kokle_lob2lob13:input mismatch] 해결  (2) 2013.04.23
Postgresql 랜덤값 출력  (0) 2011.10.14
DB Password 부호화 복호화  (0) 2011.04.19
DB2 TimeStamp  (0) 2009.08.24
DB2 SEQUENCE 생성  (0) 2009.07.16
DB2에서 Temp테이블 사용법  (0) 2009.07.07
데이터베이스 유저 권한 주기  (0) 2008.06.30
기본 커리문  (0) 2008.06.25

Leave a Comment


to Top