본문 바로가기

Database

(26)
MySQL 데이터베이스 이름 변경 MySQL 데이터베이스 이름 변경 방법입니다. AWS RDS에서 변경 시 아래와 같이 변경합니다. 새로운 데이터베이스를 생성하고, 모든 테이블에 대해 Rename 해줍니다. CREATE DATABASE new_db; RENAME TABLE old_db.table1 TO new_db.table1; RENAME TABLE old_db.table2 TO new_db.table2; 테이블이 많을 경우 일괄 변경하기 위한 쿼리입니다. SELECT concat('RENAME TABLE ',TABLE_SCHEMA,'.',TABLE_NAME,' TO ','new_db.',TABLE_NAME,';') FROM information_schema.tables WHERE TABLE_SCHEMA LIKE 'old_db'; 위 ..
Oracle FlashBack 쿼리 timestamp를 이용한 긴급 복원 Oracle에서 실수로 데이터를 삭제했거나, 변경했을 경우 백업/복원을 이용한 방법 외에 아래와 같이 FlashBack 쿼리로 복원이 가능합니다. 복원이 가능한 조건이 있는데, 별도 문서로 참고하시기 바랍니다. 60분 전의 데이터를 확인합니다. 숫자를 변경해 시간을 조절할 수 있습니다. SELECT COL1 FROM USER1.TABLE1 AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL '60' MINUTE); 60분 전 데이터로 현재 데이터를 수정해야 할 경우 예시 UPDATE USER1.TABLE1 T1 SET COL1 = (SELECT COL1 FROM USER1.TABLE1 AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL '60' MINUTE) WHERE C..
SQL Server 쿼리 정형화 툴 Poor Man's T-SQL Formatter SQL Server의 기본 관리툴인 sql server management studio에서 쿼리를 정형화된 포맷으로 만들어 주는 기능을 가진 add-on입니다. MySQL Workbench에서는 Beautify Query로 포맷을 만들 수 있으며, Oracle에 많이 쓰는 Sql Developer에서는 Ctr+F7 명령어로 쿼리를 fomat 할 수 있습니다. 아래 사이트에서 파일을 다운로드합니다. http://architectshack.com/poormanstsqlformatter.ashx Poor Man's T-SQL Formatter - Architect Shack Overview This is a free and open-source SQL (T-SQL) formatter: Handles compl..
CentOS 7.6버전에 MySQL 8.0 버전 설치 [환경] homedb : 10.100.10.11 -- 접속 ssh admin@10.100.10.11 예시: admin / 암호, 나중에 변경 -- 리눅스 버전확인 shell> cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) MySQL rpm 최신 버전 확인 https://dev.mysql.com/downloads/repo/yum/ MySQL :: Download MySQL Yum Repository Support EOL for Fedora 37 Per the MySQL Support Lifecycle policy regarding ending support for OS versions that have reached end of life, we..
AWS RDS MySQL 마스터 권한 부여하기 Amazon RDS MySQL이나 Aurora MySQL에서 root (마스터) 권한을 부여하는 방법입니다. 초기 구성시 하나의 마스터 사용자 계정을 만들 수 있으며, 추가로 권한이 필요한 계정이 있으면 아래와 같은 절차로 권한을 부여할 수 있습니다. DB 접속해서 SHOW GRANTS으로 현재 마스터 사용자 계정의 권한 목록을 가져옵니다. SHOW GRANTS for master_username 아래와 같은 결과가 출력됩니다. +-----------------------------------------------------------------------------------------------------------------------------------------------------------..
Oracle JOB 중지, 비활성화 작업 Oracle 작업으로 인해 JOB을 중지해야 할 경우 JOB을 조회해서 현황을 파악하고, JOB을 중지하거나 비활성화하는 방안에 대해 설명합니다. JOB 조회 -- JOB 조회, dba_jobs 테이블에서 정보 확인 -- Broken=Y는 비활성화 된 JOB col job for 9999 col schema_user for a11 col what for a40 col failures for 9999 col total_time for 9999 col last_date for a10 col last_sec for a10 col next_date for a10 col next_sec for a10 col interval for a30 select job, broken, schema_user, --what fa..
Oracle 시퀀스(Sequence) 이관 서로 다른 서버로 시퀀스를 이관할 때 기존 시퀀스 값을 그대로 이관해도 되나, 시퀀스 중복이나 문제 발생을 예방하기 위해 기존 값에 +10 정도 더해서 이관합니다. 물론 사전에 관련된 업무는 미리 중지해 놓고, 더 이상 쿼리 유입이 없는 상태여야 합니다. 시퀀스 삭제 -- USER01의 모든 sequence 삭제 SELECT 'DROP SEQUENCE "'||sequence_owner||'"."'||sequence_name||'";' as "Query" FROM DBA_SEQUENCES where SEQUENCE_OWNER='USER01'; CREATE SEQUENCE 구문 생성 -- create sequence 구문 생성 SELECT 'CREATE SEQUENCE "'||sequence_owner||'..
DBMS_DATAPUMP 중지 방법 실행 중인 DBMS_DATAPUMP JOB을 중지하는 방법입니다. JOB조회 COL owner_name FORMAT a15 COL job_name FORMAT a30 COL operation FORMAT a15 SELECT owner_name, job_name, operation,state FROM dba_datapump_jobs; 결과 확인 OWNER_NAME JOB_NAME OPERATION STATE SYSTEM XSCHEMA EXPORT NOT RUNNING 중지 -- DROP TABLE OWNER_NAME.JOB_NAME 으로 작업합니다. DROP TABLE SYSTEM.XSCHEMA;