본문 바로가기

Database11

[CouchBase] 설치 및 확인 이미지를 바이너리 스트링 형태로 저장하여 보여주는 방식으로 사용하려고 함. 기본설치는 이분 거 참고함. https://t-okk.tistory.com/173 [DBMS] Couchbase Database 기본지식 및 설치방법 CouchBase Server에 대한 정의 및 특징 모바일 게임 중에 유명한 쿠키런의 경우 카우치베이스를 백엔드로 사용하고 있는데, 안정성이나 성능 등이 매우 뛰어나고, 사용하기 또한 매우 쉽다. 정의 Apach t-okk.tistory.com 다만, 설치 시 우분투 버전과 충돌이 일어남.. 5.0.1이 불가능해 7.1.0으로 갔다가 7.6.0으로 가라고 에러가 발생함. 그래서 ... cd /var/cache/apt/archives 로 이동하여 couchbase-server-comm.. 2024. 3. 28.
mysql / utf8_general_ci에서 utf8mb4_general_ci로 변환 (feat. 레츠투 이모지) mysql> show variables like 'char%'; +--------------------------+----------------------------------+ | Variable_name | Value | +--------------------------+----------------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | c.. 2023. 11. 21.
mysql / 버전, 스토리지 엔진, 캐릭터 셋, 테이블 명 대소문자 구분 확인 (설치 후 확인해야 할 부분들) 1. 설치 후 지원하는 언어셋을 확인하고, 이건 뭐 공통일 것임. show character set; 2. mysql 버전을 확인한다. select version(); 3. 스토리지 엔진 방식을 확인한다. SELECT support, engine FROM information_schema.engines where support = 'DEFAULT'; 4. 그리고 대소문자 구분을 하는지 확인한다. show variables like 'lower%'; linux의 경우, lower_case_table_names가 1이면 대소문자 구분을 하지 않는다는 것이다. 대소문자 구분을 하지 않는 경우 tb_test와 TB_TEST는 같은 테이블로 인지한다. 대소문자 구분을 하는 경우 서로 다른 테이블로 인지하기 때문에.. 2023. 11. 21.
Intellij / Datagrip에서 MS-SQL to MySQL 로 테이블을 간단하게 이관시키는 방법. 테이블 1개를 이관한다는 가정을 하고, MS-SQL에서 MySQL로 이기종 이관 시 아래와 같이 간단하게 Intellij IDE에서는 드래그앤 드랍으로 할 수 있다. (MS-SQL 커넥션과 MySQL 커넥션을 맺은 상태) MS-SQL 테이블을 잡고 드래그앤 드랍으로 이관할 MySQL 테이블에 드래그앤드랍! 그러면 아래와 같이 이기종간 테이블을 임포트하겠다는 창이 뜬다. 테이블 생성부터 데이터까지 가져간다. 기존 업체에서 정의한 테이블에 필드명이 참 그렇긴 하지만.. 2005년에 만든 구조라고 하니.. 이 부분은 넘어가장.. 또한, 위에서 필드 명이나, 데이터타입 등 remap도 제공된다. 이를 통하여 맞추자. 일단은 테스트를 하기 위함이라서 그냥 그대로 만들겠음. MySQL에 테이블이 생성되었다. 데이터.. 2023. 10. 10.
ORA-43853: SECUREFILE lobs cannot be used in non-ASSM tablespace "XXX" Oracle 19c .. dmp import 중 위와 같은 에러를 직면하였다... CREATE TABLESPACE [XXX] DATAFILE '/opt/oracle/oradata/ORCL/[XXX].dbf' -- 내 테이블스페이스 위치 확인 SIZE 1000M -- 초기 용량 설정 AUTOEXTEND ON -- 자동 확장 on NEXT 4M MAXSIZE 10000M -- 테이블스페이크 크기가 꽉 차면 4M 씩 늘려서 최대 설정사이즈까지 늘림. SEGMENT SPACE MANAGEMENT MANUAL FLASHBACK ON; -- 플래시백 사용 테이블 스페이스를 위와 같이 생성하였던게 화근이었다.. SEGMENT SPACE MANAGEMENT MANUAL # 위가 아래와 같이 AUTO가 되어야 한다.. .. 2023. 10. 6.
[MySQL/mariaDB] 구분자로 잘라서 행으로 반환하자. (feat. json_table()) 먼저 json_table() 함수를 사용하기 위해서는 mysql >= 8.0.4 / mariadb >= 10.6.0 을 만족해야 한다. 아래와 같은 테이블 table_name이 존재하고, 데이터는 아래와 같다고 가정을 함. select * from table_name tn; select tn.idx, jb.datas from table_name tn join json_table( replace(json_array(arrsdata), ',', '","'), '$[*]' columns (datas varchar(50) path '$') ) jb; 과정은 다음과 같다. 먼저 데이터를 json_array() 함수를 사용하여 데이터를 JSON화한다. 그러면 대략 아래와 같은 모양이 됨. select json_ar.. 2022. 5. 20.
ORACLE connection leak 체크 쿼리 select ses.sid, ses.serial#, ses.osuser, ses.program, sql.sql_id, sql.version_count, sql.sql_text from v$session ses, v$sqlarea sql where ses.STATUS = 'INACTIVE' and ses.LAST_CALL_ET >= [숫자(초단위)] -- 세션이 비활성화된지 [숫자(초단위)]이상 and ses.prev_sql_id = sql.sql_id and LOGON_TIME > sysdate - 3 ; -- 세션이 생성된 후 3일이상 문제가 확인되는 쿼리를 조회 후 sid와 serial#의 값을 토대로 해당 쿼리를 Kill 할 수 있다. ALTER SYSTEM KILL SESSION 'sid,seri.. 2021. 12. 31.
ORACLE 데이터 복구 ( as of timestamp 활용 ) -- 1분전 데이터 개수 select count(*) from 테이블명 as of timestamp(systimestamp - interval '1' MINUTE ); -- 1시간전 데이터 개수 select count(*) from 테이블명 as of timestamp(systimestamp - interval '1' HOUR ); -- 1일 이전의 해당 테이블의 데이터 조회 select * from 테이블명 as of timestamp (SYSTIMESTAMP - INTERVAL '1' DAY); -- 예를 들어, 현재 189 라는 코드의 데이터가 날아갔다면, insert into 테이블명 select * from 테이블명 as of timestamp(systimestamp - interval '1' .. 2021. 12. 31.
ORACLE 테이블 명세 쿼리 -- 테이블 명세가 필요한 데이터베이스로 접근을 하여 아래 쿼리를 실행 SELECT A1.TABLE_COMMENTS TABLE_COMMENTS, A1.TABLE_NAME TABLE_NAME, A1.COLUMN_COMMENTS COLUMN_COMMENTS, A1.COLUMN_NAME COLUMN_NAME, (CASE WHEN B1.CONSTRAINT_TYPE = 'P' THEN 'Y' END) PK_FLAG, (CASE WHEN B1.CONSTRAINT_TYPE = 'R' THEN 'Y' END) FK_FLAG, A1.NULL_FLAG, A1.DATA_TYPE, A1.DATA_LENGTH FROM (SELECT B.COMMENTS TABLE_COMMENTS, A.TABLE_NAME TABLE_NAME, C.. 2021. 12. 31.
MySQL 명세서 출력 쿼리 SELECT t1.table_name '테이블이름', t1.table_comment '테이블설명', column_name '칼럼', column_type '칼럼타입', CASE WHEN column_key='PRI' THEN 'Primary key' WHEN column_key='UNI' THEN 'Unique key' WHEN column_key='MUL' THEN 'Multiple' ELSE '-' END AS 키설정, is_nullable 'NULL허용여부', column_default '기본값', extra '자동여부', column_comment '칼럼설명' FROM (SELECT table_name, table_comment FROM information_schema.TABLES WHERE t.. 2021. 12. 30.
MySQL 서브쿼리 subquery 성능이슈 SELECT * FROM SEARCH_TABLE ST WHERE ST.index IN ( SELECT SST.index FROM SEARCH_TABLE SST WHERE SST.index 2021. 12. 30.