https://bommbom.tistory.com/entry/%EC%98%A4%EB%9D%BC%ED%81%B4-%ED%9E%8C%ED%8A%B8hint-%EC%A2%85%EB%A5%98-%EB%B0%8F-%EC%82%AC%EC%9A%A9%EB%B2%95

 

오라클 힌트(hint) 종류 및 사용법

[ 목차 ] 이번 글에서는 오라클 힌트 종류 및 사용법에 대해 알아보겠습니다. 힌트(Hint)는 쉽게 말하면 dbms에게 SQL를 최적화를 위해 힌트를 주는 것입니다. 데이터베이스관리자(DBA)나 개발자가 오

bommbom.tistory.com

 

'쿼리 > ORACLE' 카테고리의 다른 글

[ORACLE] DB Function 선언  (0) 2023.03.20
[ORACLE] Constraint 쿼리로 제거하는 방법  (0) 2022.11.29
CREATE OR REPLACE FUNCTION MyFunc (nInput NUMBER) 
    RETURN VARCHAR2 
IS 
    Ret VARCHAR2(14); 
BEGIN 
    SELECT dname 
      INTO Ret 
      FROM dept 
     WHERE deptno = nInput; 

    RETURN Ret; 
END;

참 쉽죠?

사용법은 ..?

nInput이 14라면

SELECT MyFunc(14) FROM DUAL;

 

'쿼리 > ORACLE' 카테고리의 다른 글

오라클 쿼리 힌트  (1) 2024.09.05
[ORACLE] Constraint 쿼리로 제거하는 방법  (0) 2022.11.29

ALTER TABLE DM_REGISTER DROP CONSTRAINT USER_ID_FK;

'쿼리 > ORACLE' 카테고리의 다른 글

오라클 쿼리 힌트  (1) 2024.09.05
[ORACLE] DB Function 선언  (0) 2023.03.20

https://walkingfox.tistory.com/103

 

Mysql에서 rownum 과 그룹별 rownum

이런 table이 있다고 가정하자 name : scores column : class, name, score class (반), name(학생이름), score(점수) 하고자 하는 작업은 각 반별로 상위 점수 3명을 구하는 것이다. 1. rownum mysql에서는 rown..

walkingfox.tistory.com

 

'쿼리 > MYSQL' 카테고리의 다른 글

[MYSQL] 트리거 작성  (0) 2022.07.01
[MYSQL] 계정 생성 및 외부 접속 허용  (0) 2022.06.23
MYSQL DB 백업하기  (0) 2022.04.18
frm, ibd 파일로 DB복구하기  (0) 2022.04.05
mariadb 완벽제거  (0) 2022.03.13
MYSQL sql_mode 세팅  (0) 2022.03.12

# 트리거에서 컬럼 사용.

Insert 되었을 때 ,

NEW.컬럼명

Delete 되었을 때 ,

OLD.컬럼명 이용

 

 

# 참고

 

# 변수. 파라미터 선언 

BEGIN
	SET @... = ..;
END

#  IF문 사용 ( 연산자 사용에서 == 대신 = 를 쓰는다는 특징!)

예시

BEGIN
	IF .... = 1 THEN
    END IF
END

 

'쿼리 > MYSQL' 카테고리의 다른 글

[MYSQL] 그룹별 카운트  (0) 2022.08.17
[MYSQL] 계정 생성 및 외부 접속 허용  (0) 2022.06.23
MYSQL DB 백업하기  (0) 2022.04.18
frm, ibd 파일로 DB복구하기  (0) 2022.04.05
mariadb 완벽제거  (0) 2022.03.13
MYSQL sql_mode 세팅  (0) 2022.03.12

1. MYSQL 접속 후 계정 생성

CREATE USER '아이디'@'%' identified by '비번';

 2. 계정에 모든 db 권한 부여 

grant all privileges on *.* to '계정'@'%';
grant all privileges on db.* to '계정'@'%';

3. 적용

FLUSH PRIVILEGES;

4. cnf 파일 수정(위치는 보통 /etc/mysql/mysql.conf.d/mysqld.cnf)

bind-address = 127.0.0.1 주석처리 후

bind-address = 0.0.0.0 추가 

 

5.mysql 재시작 

sudo service mysql restart

6. 웹서비스의 경우 아파치도 재시작 추천.

sudo service apache2 restart

'쿼리 > MYSQL' 카테고리의 다른 글

[MYSQL] 그룹별 카운트  (0) 2022.08.17
[MYSQL] 트리거 작성  (0) 2022.07.01
MYSQL DB 백업하기  (0) 2022.04.18
frm, ibd 파일로 DB복구하기  (0) 2022.04.05
mariadb 완벽제거  (0) 2022.03.13
MYSQL sql_mode 세팅  (0) 2022.03.12

DB 서버 터미널 접속후 

mysqldump -u'아이디' -p'패스워드' DB명 > 저장할파일명.sql

아래는 function trigger 등 포함 백업

https://storytown.tistory.com/19

 

MySQL Dump시 Procedure, Function, Trigger 포함하여 백업하기

복원에 실패한 자는 용서할 수 있어도 백업에 실패자는 용서가 안 된다는 말이 있듯이 백업의 중요성은 언제나 강조해도 부족합니다. MySQL 운영 시 백업을 하면 보통 아래 Dump 명령어를 이용해서

storytown.tistory.com

 

적용은

mysql 접속, root 계정이 아니어도 됨.

mysql -u root -p
CREATE DATABASE 데이터베이스이름

USE 데이터베이스이름

source 명령어로 sql파일 import

source [파일경로]/[파일명].sql

'쿼리 > MYSQL' 카테고리의 다른 글

[MYSQL] 그룹별 카운트  (0) 2022.08.17
[MYSQL] 트리거 작성  (0) 2022.07.01
[MYSQL] 계정 생성 및 외부 접속 허용  (0) 2022.06.23
frm, ibd 파일로 DB복구하기  (0) 2022.04.05
mariadb 완벽제거  (0) 2022.03.13
MYSQL sql_mode 세팅  (0) 2022.03.12

.sql 백업파일이 없는경우 복구는 참 난감하다. 구조를 잘 몰라서 2주간 고생했다.

 

서버에서 MariaDB나 Mysql을 삭제한 경우가 아니라면 다음을 시도해볼 수 있다. 

리눅스에서 진행

 

0. MariaDB 또는 Mysql 버전을 확인한다. (필수)

버전이 확인되지 않는 경우 3. 을 참고한다.

 

1. mysql 폴더 경로를 들어가 본다. mysql 폴더 경로는 다를수 있다.

$ cd /var/lib/mysql

 

2. mysql 폴더 경로에 있는 다음 파일 및 폴더를 백업한다.

ib_logfile0 , ib_logfile1, ibdata1, [복구하고자하는 데이터베이스 폴더]

 

3. [복구하고자하는 데이터베이스 폴더명] 으로 들어가보면, .frm파일과 .ibd파일을 볼 수 있다.

frm파일은 테이블의 구조(스키마)를 저장하는 파일이고, ibd는 실제 데이터(로우)가 들어간다.

frm파일에는 MariaDB 또는 Mysql 의 버전이 표시되는 경우가 있다.

mysqlfrm 도구나 dbsake를 이용하여 frm 파일을  읽어 보자. 필자는 dbsake를 이용했다.

 

 # dbsake 설치 (설치하면 디렉토리가 생성됨)

 $ curl -s  http://get.dbsake.net > dbsake 

 

 # dbsake 700 권한 부여

 $ chmod 700 dbsake

 

 # dbsake 버전 확인

 $ ./dbsake --version

 

4. MariaDB 또는 Mysql 를 삭제한 후 버전에 맞추어 재설치

(클린삭제, 삭제 판단은 본인에게 있다. [복구하고자하는 데이터베이스 폴더] 만 삭제해봐도 좋을 것 같음) 

 

5. mysql에 접속하여 복구하고자 했던 데이터베이스를 만든다.

 $ sudo mysql -uroot -p

 

 # 데이터베이스가 없는지 확인

 $ show databases; 

 

 # 데이터베이스 생성

 $ create database [데이터베이스명];

 

6. 백업해둔 frm파일을 이용해 테이블을 생성한다. 테이블을 생성하면 ibd가 신규로 생성된다.

frm파일을 하나의 .sql파일로 만들 수 있다. 

$ dbsake frmdump --type-codes [frm파일 경로/* ] > [SAVE_NAME].sql     (dbsake 디렉토리 경로에서 실행)

 

만들어진 .sql 파일로 테이블을 생성한 후 다음 명령어를 이용해 ibd(빈 데이터)와의 연동을 해제한다. (주의) 

$ sudo mysql -uroot -p

$ use [데이터베이스명];

$ ALTER TABLE table_name DISCARD TABLESPACE;   (테이블 하나씩)

 

7. 백업한 ibd파일을 새로 만들어진 [데이터베이스 폴더]에 복사붙여넣기한다.

 

8. 복사 붙여넣기한 ibd파일의 권한을 mysql로 바꿔줘야한다.

 # 폴더 통째로 mysql 권한부여

 $ chown -R mysql:mysql [폴더경로]

 

9. mysql에 접속하여 데이터들을 테이블 하나씩 연동한다. (끝)

$ ALTER TABLE table_name IMPORT TABLESPACE;

 

여기서 에러가 나는 경우는 mysql or mariadb 버전이 다른 경우다.

버전이 다르게 설치되면 위 방법이 안되는 경우가 있다. ibd,frm 연동방식이 다름으로 추정

 

 

질문

1.  ib_logfile0 , ib_logfile1, ibdata1 는 어디에 쓰나요?

데이터를 ibdata1과 ibd를 연관지어 저장하는 경우가 있다고 한다. (my.cnf..... xxxx.cnf의 방식에 따라 정해짐)

이 경우에는 위와 다른 복구를 해봐야한다.. 다만 매우 어려워보임.

해당 케이스의 경우,  ib_logfile0 와 ib_logfile1파일이 혹시 필요할 수 있으니 백업한 것임.

 

 

 

DB 는 자주 백업해 두자.

 

'쿼리 > MYSQL' 카테고리의 다른 글

[MYSQL] 그룹별 카운트  (0) 2022.08.17
[MYSQL] 트리거 작성  (0) 2022.07.01
[MYSQL] 계정 생성 및 외부 접속 허용  (0) 2022.06.23
MYSQL DB 백업하기  (0) 2022.04.18
mariadb 완벽제거  (0) 2022.03.13
MYSQL sql_mode 세팅  (0) 2022.03.12

[Mysql]

sudo apt-get purge mysql-server

sudo apt-get purge mysql-common

 

[MariaDB]

sudo apt-get purge mariadb-server

sudo apt-get purge mariadb-common

 

[공용작업]

sudo rm -rf /var/log/mysql

sudo rm -rf /var/log/mysql.*

sudo rm -rf /var/lib/mysql

sudo rm -rf /etc/mysql



출처: https://elfinlas.tistory.com/367 [MHLab Blog]

'쿼리 > MYSQL' 카테고리의 다른 글

[MYSQL] 그룹별 카운트  (0) 2022.08.17
[MYSQL] 트리거 작성  (0) 2022.07.01
[MYSQL] 계정 생성 및 외부 접속 허용  (0) 2022.06.23
MYSQL DB 백업하기  (0) 2022.04.18
frm, ibd 파일로 DB복구하기  (0) 2022.04.05
MYSQL sql_mode 세팅  (0) 2022.03.12

출처 :

https://blog.jiniworld.me/64

 

[MySQL] sql_mode로 알아보는 시스템 변수 permanent, runtime설정

MySQL 서버에서는 운영에 필요한 구성설정에 이용되는 다양한 시스템 변수가 존재합니다. MySQL 서버의 버전에 따라 각 시스템 변수는 기본값이 존재하고, 별도의 설정을 통해 값을 변경할 수 있습

blog.jiniworld.me

 

'쿼리 > MYSQL' 카테고리의 다른 글

[MYSQL] 그룹별 카운트  (0) 2022.08.17
[MYSQL] 트리거 작성  (0) 2022.07.01
[MYSQL] 계정 생성 및 외부 접속 허용  (0) 2022.06.23
MYSQL DB 백업하기  (0) 2022.04.18
frm, ibd 파일로 DB복구하기  (0) 2022.04.05
mariadb 완벽제거  (0) 2022.03.13

+ Recent posts