Infra/RDBMS

    MySQL 명령어 정리

    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 유형typ..

    Oracle 테이블 스페이스 변경

    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;

    오라클 DBF 용량 줄이기

    -- 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;

    오라클 백업

    DB데이터 작업시에 언제나 백업해둬야 하는 습관을 길러야겠다.안 하려다 무심코 한 백업이 날 살렸다. 밤 늦게 이제는 문제 없겠지하고 퇴근했다가 정말 다시 회사 갈 뻔했다. Exportexp 아이디/패스워드 file=파일명.dmp log=로그명.log fully=y Import imp 아이디/패스워드 file=파일명.dmp log=로그명.log fully=yimp 아이디/패스워드 file=파일명.dmp log=로그명.log ignore=yes tables=테이블명 여기서 위에 ignore를 yes로 해놓으면 에러가 나도 무시하고 실행된다.덕분에 살았다. 백업을 잘하자.망할 놈들.. 원복이 장난인지 알아..샹

    테이블 제약 조건 확인

    Toad에서는 테이블 제약조건 확인이 쉽지만 sqlplus에서는 쉽지 않다. -- 테이블 제약조건 확인SELECT table_name, constraint_name, constraint_type FROM USER_CONSTRAINTS WHERE TABLE_NAME ='테이블명'; -- 제약조건 상세SELECT * FROM USER_CONSTRAINTS WHERE CONSTRAINT_NAME = 'SYS_C0000000';

    ORA-00600: internal error code, arguments: [kokle_lob2lob13:input mismatch] 해결

    오늘 다음과 같은 오라클 에러를 만났다.작업은 서버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 Da..

    Postgresql 랜덤값 출력

    개발중 테스트를 위해서 테이블에 가상의 데이터 수치를 넣어야 하는 경우가 생겼다. sql에서 제공하는 랜덤 함수를 이용하면 금방 될 것 같았다. Postgresql에서는 random이라는 함수를 제공한다. 최대값은 100에 소수점 2자리까지만 추출을 해보기로 했다. round(cast(random() * 100 AS numeric), 2) random()의 결과값은 0.~1.의 값이 나온다. 100을 곱해줘서 최대값 100을 만들어준다. 소수점 2자리까지 자르기 위해서 round()함수를 쓰고, random의 결과값은 double인가 그렇기 때문에 numeric으로 타입을 변환해준다.

    DB Password 부호화 복호화

    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';

    DB2 TimeStamp

    TimeStamp - 날짜 타입 현재시간 입력 CURRENT TIMESTAMP 타입 변환 TIMESTAMP(CAST(? AS VARCHAR(20)))

    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;