Dump 가 뭔데?
데이터베이스 오브젝트(스키마, 테이블, 뷰 테이블 등)를 백업하는 것.
MongoDB 는 여러 테이블과 스키마를 통째로 dump 명령어(정확히는 실행파일)가 있다.
이름하여 mongodump
postgresql 의 .dump 파일
.dump 파일은 사실상 여러 SQL문 (DDL, DML, DCL) 을 스크립트 파일형태로 저장한 것과 같다.
이 스크립트는 테이블과 스키마 정보를 담고있다.
따라서 import `.dump` 하게되면 해당 SQL문을 연속해서 실행하게된다.
=> 백업 이전의 테이블과 스키마 정보를 그대로 불러온다.
-- PostgreSQL database dump
-- Dumped from database version 14.1
-- Dumped by pg_dump version 14.2
SET statement_timeout = 0;
SET lock_timeout = 0;
SET idle_in_transaction_session_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
SELECT pg_catalog.set_config('search_path', '', false);
SET check_function_bodies = false;
SET xmloption = content;
SET client_min_messages = warning;
SET row_security = off;
--
-- Name: public; Type: SCHEMA; Schema: -; Owner: postgres
--
CREATE SCHEMA public;
CREATE TABLE public.base_contents (
id integer NOT NULL,
description character varying,
);
ALTER TABLE public.base_contents OWNER TO postgres;
--
-- Name: base_contents_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--
CREATE SEQUENCE public.base_contents_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
-- PostgreSQL database dump complete
1. 개념
mongodump
DB내부의 Collection, Document들을 bson 파일에
metadata는 'Key' 속성(Model Schema)는 json 파일에
mongorestore
원하는 DB에 metadata.json, bson 파일을 불러와 Schema, Collection, Document들을 복구한다.
2. 사용법
<리눅스 쉘에서>
[mongodump] 백업
sudo mongodump --out 저장할 폴더 경로 --host 호스트명(기본 localhost) --port 포트명 -u 계정명 -p 비밀번호 -d DB명
[mongorestore] 복구
sudo mongorestore --host 호스트명 -d DB명 백업폴더경로 --port 포트명 -u 계정명 -p 비밀번호
'DataBase > NoSQL' 카테고리의 다른 글
[MongoDB] Drop DB on MongoDB with test (0) | 2023.07.14 |
---|---|
mongodb active:failed Error (0) | 2020.01.31 |
NoSQL (0) | 2020.01.05 |