๋ฐฑ์ ๊ฐ์
BACKUP/MOUNT
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์์์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํด์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ ์ต๋ํ ๋นจ๋ฆฌ Disk์ ์ ์ฅ๋๋ค. ๊ทธ๋ฆฌ๊ณ Process Failure์ ๊ฐ์ ์ผ๋ฐ์ ์ธ ์ฅ์ ์ํฉ์ด ๋ฐ์ํ ๊ฒฝ์ฐ, Restart Recovery๋ฅผ ํตํด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ Consistentํ ์ํ๋ก ๋ง๋ ๋ค. ํ์ง๋ง Power Failure๋ ํ์ฌ์ ์ํ Hardware์ ํผํด๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ, ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ณต๊ตฌ๋ ๋ถ๊ฐํ๋ค. ์ด๋ฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์ ๋ณ๋์ ๋์คํฌ๋ Hardware์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ธฐ์ ์ผ๋ก ๋ค๋ฅธ ์์ญ์ ์ ์ฅํ์ฌ, ์ ์ฌ์ ํด๋น ๋ฐ์ดํฐ๋ฅผ ์ด์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๋ณต๊ตฌํ๋ ๊ธฐ๋ฅ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐฑ์ ๊ณผ ๋ณต๊ตฌ ๊ธฐ๋ฅ์ด๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐฑ์ ์ ์ธ์ ์ํํ๋๋์ ๋ฐ๋ผ์ ํฌ๊ฒ ๋ ๊ฐ์ง๋ก ๋๋์ด ์ง๋ค.
- Offline Backup
- Online Backup
์ฒซ๋ฒ์งธ, Offline Backup ๊ธฐ๋ฅ์ DBMS๋ฅผ Shutdownํ๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ณต์ฌํ๋ ๊ธฐ๋ฅ์ผ๋ก Cold Backup์ด๋ผ๊ณ ๋ถ๋ฅด๊ธฐ๋ ํ๋ค. ๋งค์ฐ ๊ฐ๋จํ์ง๋ง, ์ฌ์ฉ์์ ์๋น์ค๊ฐ ์ค๋จ๋๋ ๋จ์ ์ด ์์ผ๋ฏ๋ก ์ด์ ์ค์๋ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ๊ฑฐ์ ์์ผ๋ฉฐ ์ด๊ธฐ ํ ์คํธ๋ ๋ฐ์ดํฐ ๊ตฌ์ถ ์์๋ง ์ฌ์ฉํ๋ ๊ฒฝํฅ์ด ์๋ค.
๋ ๋ฒ์งธ, Online Backup์ DBMS๊ฐ ๋์ ์ค์ผ ๋, ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ Backupํ๋ ๊ธฐ๋ฅ์ผ๋ก Hot Backup์ด๋ผ๊ณ ๋ถ๋ฅด๊ธฐ๋ ํ๋ค. ์ด ๊ธฐ๋ฅ์ ์๋น์ค๋ฅผ ์ค๋จํ์ง ์๊ณ ์ํ๋ ์ ์์ด ์ฌ์ฉ์์ Service Availability๋ฅผ ์ฆ๊ฐ์์ผ ๋๋ถ๋ถ์ DBMS Backup์ Online Backup์ ์๋ฏธํ๋ค. ๋ค๋ฅธ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ Backup๊ณผ ๋ฌ๋ฆฌ ์๊ณ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ธ Machbase ๋ Duration Backup์ ์ ๊ณตํ๋ค. ์ด๋ Backup์ ๋ฐฑ์ ๋ Database์ ์๊ฐ์ ์ง์ ํ์ฌ ์ํ๋ ์๊ฐ๋์ ๋ฐ์ดํฐ๋ง Backupํ ์ ์๋ค.
backup database into disk = 'backup'; backup database from to_date('2015-07-14 00:00:00','YYYY-MM-DD HH24:MI:SS') to to_date('2015-07-14 23:59:59 999:999:999','YYYY-MM-DD HH24:MI:SS mmm:uuu:nnn') into disk = 'backup_20150714';
Backup๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ฅ์ ๋ณต๊ตฌ ๊ณผ์ ์ ๊ฑฐ์ณ์ ๊ธฐ์กด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ฒ๋ผ ์ฌ์ฉ๋ ์ ์๋ค. ์ด ๋ณต๊ตฌ ๋ฐฉ๋ฒ์ Restore๋ผ๊ณ ํ๋ค. ์ด Restore ๊ธฐ๋ฅ์ ํ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ญ์ ํ๊ณ ๋ฐฑ์ ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฏธ์ง๋ฅผ Primary Database๋ก ๋ณต๊ตฌํ๋ค. ๋๋ฌธ์ ๋ณต๊ตฌ์ ๊ธฐ์กด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ญ์ ํ๊ณ machadmin -r ๊ธฐ๋ฅ์ ์ด์ฉํ์ฌ ๋ณต๊ตฌํ๋ค.
machadmin -r 'backup'
Mount/unmount ๊ธฐ๋ฅ์ Online์ผ๋ก ๋์ํ๋ ๊ธฐ๋ฅ์ผ๋ก Backup๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ํ์ฌ ์ด์ ์ค์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ Attachํ๋ ๊ธฐ๋ฅ์ด๋ค.
mount database 'backup' to mountName; umount database mountName;
Databaseย Backup
Machbase ์์๋ ๋ฐ์ดํฐ ๋ฐฑ์ ์ ํ ๋ ๋ ๊ฐ์ง ์ต์ ์ ์ ๊ณตํ๋ค. ์ด์ ์ค์ธ DB์ ์ ๋ณด๋ฅผ ๋ฐฑ์ ํ๋ DATABASE ๋ฐฑ์ ๊ณผ ํ์ํ Table๋ง ์ ํํ์ฌ ๋ฐฑ์ ํ ์ ์๋ TABLE ๋ฐฑ์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
DB์์ ์ ๊ณตํ๋ ๋ฐฑ์ ๋ช ๋ น์ ๋ค์๊ณผ ๊ฐ๋ค.
BACKUP [ DATABASE | TABLE table_name ] [ time_duration ] INTO [ DISK | IBFILE ] = 'path/backup_name'; time_duration = FROM start_time TO end_time path = 'absolute_path' or 'relative_path'
# Directory backup BACKUP DATABASE INTO DISK = 'backup_dir_name'; # a single file backup BACKUP DATABASE INTO IBFILE = backup_ibfile_name; # Set backup duration - Directory backup BACKUP DATABASE FROM TO_DATE('2015-07-14 00:00:00','YYYY-MM-DD HH24:MI:SS') TO TO_DATE('2015-07-14 23:59:59','YYYY-MM-DD HH24:MI:SS') INTO DISK = '/home/machbase/backup_20150714' - File backup BACKUP DATABASE FROM TO_DATE('2015-07-14 00:00:00','YYYY-MM-DD HH24:MI:SS') TO TO_DATE('2015-07-14 23:59:59','YYYY-MM-DD HH24:MI:SS') INTO IBFILE = '/home/machbase/backup_20150714.ibf' # a single table backup BACKUP TABLE SYSLOG_TABLE INTO IBFILE = '/home/machbase/backup/syslog_table';
DB ๋ฐฑ์ ์ ์ํํ ๋ ์ต์ ์ ๋ฐฑ์ ํ์ , Time duration, ๊ฒฝ๋ก๋ฅผ ์ ๋ ฅํด์ผ ํ๋ค. DATABASE ์ ์ฒด๋ฅผ ๋ฐฑ์ ํ ๋๋ ๋ฐฑ์ ํ์ ์ DATABASE๋ฅผ ์ ๋ ฅํ๊ณ , ํน์ Table๋ง ๋ฐฑ์ ํ๋ ค๋ฉด TABLE์ ์ ๋ ฅํ ํ ๋ฐฑ์ ํ๋ ค๋ Table_Name์ ์ ๋ ฅํ๋ค. TIME_DURATION ๊ตฌ๋ฌธ์ ํ์ํ ๊ธฐ๊ฐ์ ๋ฐ์ดํฐ๋ง ๋ฐฑ์ ํ๋๋ก ์ค์ ํ ์ ์๋ค. FROM ํญ๋ชฉ์ ๋ฐฑ์ ์ ์ํ๋ ๋ ์ง์ ์์ ์๊ฐ์ ์ ๋ ฅํ๊ณ TO ํญ๋ชฉ์ ๋ฐฑ์ ์ ๋ง์ง๋ง ๋ ์ง์ ์๊ฐ์ ์ ๋ ฅํ๋ฉด ๊ทธ ๊ธฐ๊ฐ์ ๋ฐ์ดํฐ๋ง ์ ํํ์ฌ ๋ฐฑ์ ํ ์ ์๋ค. ์์ 3๋ฒ์ ๋ณด๋ฉด TIME_DURATION ํญ๋ชฉ์ FROM์ '2015๋ 7์ 14์ผ 0์ 0๋ถ 0์ด'๋ก ์ค์ ํ๊ณ TO์ '2015๋ 7์ 14์ผ 23์ 59๋ถ 59์ด'๋ก ์ค์ ํ์ฌ 2015๋ 7์ 14์ผ์ ๋ฐ์ดํฐ๋ง ๋ฐฑ์ ๋๋๋ก ์ค์ ํ์๋ค. ๋ง์ฝ DURATION ํญ๋ชฉ์ ๋ํ ์ ๋ณด๋ฅผ ์ ๋ ฅํ์ง ์์ผ๋ฉด FROM ํญ๋ชฉ์๋ '1970๋ 1์ 1์ผ 9์ 0๋ถ 0์ด'๋ก ์ค์ ๋๊ณ TO ํญ๋ชฉ์๋ ๋ช ๋ น์ ์ํํ๋ ์๊ฐ์ผ๋ก ์๋ ์ค์ ๋๋ค.
๋ง์ง๋ง์ผ๋ก, ๋ฐฑ์ ์ํ์ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ ์ ์ฅ ๋งค์ฒด์ ๋ํ ์ค์ ์ด ํ์ํ๋ค. ๋ฐฑ์ ์ ๋จ์ผ ํ์ผ๋ก ์์ฑํ๊ณ ์ถ์ผ๋ฉด ์์ฑ ํ์ ์ IBFILE๋ก ์ค์ ํ๊ณ , ๋๋ ํฐ๋ฆฌ ๋จ์๋ก ์์ฑํ๋ ค๋ฉด DISK๋ฅผ ์ ๋ ฅํ๋ค. ์ฃผ์ํ ์ ์ ์์ฑ๋ฌผ ์ ์ฅ๋๋ PATH ์ ๋ณด๋ฅผ ์ง์ ํ ์ ์๋๋ฐ ๋ง์ฝ ์๋ ๊ฒฝ๋ก๋ฅผ ์ ๋ ฅํ๋ฉด ํ์ฌ ์ด์ ์ค์ธ DB์ ํ๊ฒฝ์ค์ ์ DB_PATH ํญ๋ชฉ์ ์ง์ ๋ ๊ฒฝ๋ก์ ์์ฑ๋๋ค. ๋ง์ฝ DB_PATH๊ฐ ์๋ ๋ค๋ฅธ ๊ณณ์ ์ ์ฅํ๊ณ ์ถ๋ค๋ฉด '/'๋ก ์์ํ๋ ์ ๋ ๊ฒฝ๋ก๋ฅผ ์ ๋ ฅํด์ผ ํ๋ค.
Database Restore
Database Restore๊ธฐ๋ฅ์ ๊ตฌ๋ฌธ์ผ๋ก ์ ๊ณต๋์ง ์๊ณ , Offline์ผ๋ก machadmin -r ๊ธฐ๋ฅ์ ํตํด ๋ณต๊ตฌํ ์ ์๋ค. ๋ณต๊ตฌ์ ์ ๋ค์ ์ฌํญ์ ์ฒดํฌํด์ผ ํ๋ค.
- Machbase ๊ฐ ์ข ๋ฃ๋์๋๊ฐ?
- ์ด์ ์ ์์ฑํ DB๋ฅผ ์ญ์ ํ์๋๊ฐ?
machadmin -r backup_database_path;
backup database into disk = '/home/machbase/backup';
machadmin -k machadmin -d machadmin -r /home/machbase/backup;
Extract Single File
๋ฐฑ์ ์ INTO IBFILE ํํ๋ก ์์ฑํ ๋จ์ผ ๋ฐฑ์ ํ์ผ์ ๋ฐ๋ก Restore๊ฐ ๋ถ๊ฐ๋ฅํ๋ฉฐ machadmin์ ์ด์ฉํ์ฌ ๋๋ ํฐ๋ฆฌ ํํ๋ก ๋ณํํด์ผ ํ๋ค.
๋ณํ ์ดํ์๋ target_path/backup_file_name ์ ๊ฒฝ๋ก์ ๋๋ ํฐ๋ฆฌ ๋ฐฑ์ ํํ์ ํ์ผ๋ค์ด ์์ฑ๋๋ค.
machadmin -x single_file_backup_file_name extract_target_path
machadmin -x backup_20150101.ibf /db/data/ machadmin -r /db/data/backup_20150101.ibf/
๋จ์ผ ๋ฐฑ์ ํ์ผ ์ ๋ณด ์กฐํ
๋ฐฑ์ ๋ช ๋ น์ด๋ก ์์ฑํ ๋จ์ผ ๋ฐฑ์ ํ์ผ์ ๋ํ ์ ๋ณด๋ machadmin -w ๋ช ๋ น์ผ๋ก ์กฐํํ ์ ์๋ค.
machadmin -w single_backup_file_name
machadmin -w ib_backup01 ... Display information of Backup Image successfully. ----------------------------------------------------------------- File name - mach_backup_19700101090000_20150725142017_3 Create time - 2015-07-25 14:19:22 Data duration - 1970-01-01 09:00:00 ~ 2015-07-25 14:20:17 Backup duration - 2015-07-25 14:20:18 ~ 2015-07-25 14:20:18 Version - DB(4.0) Meta(1.6) CM(1.5) ---------------------------------------------------------
Database Mount
์ฅ์ ์ํฉ์ ๋๋นํ์ฌ ๋๋์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฃผ๊ธฐ์ ์ผ๋ก Backup ํ๊ณ ๋ฐ์ดํฐ๋ฅผ ๊ณ์ ์ถ๊ฐํ๋ ๊ฒฝ์ฐ, ๋ค์๊ณผ ๊ฐ์ ๋ฌธ์ ์ ์ด ๋ฐ์ํ๋ค.
- ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ์ํ ๋์คํฌ ๋น์ฉ ์ฆ๊ฐ
- ์ด์ ์ค์ธ Machine์ ๋ฌผ๋ฆฌ์ Disk๊ณต๊ฐ์ ํ๊ณ
์ด ๋ฌธ์ ์ ์ ํด๊ฒฐํ๊ธฐ ์ํด์ ์ฃผ๊ธฐ์ ์ผ๋ก ํ์ฌ ์๋น์ค๋ฅผ ์ํด ํ์ํ ๋ฐ์ดํฐ๋ง์ ๋จ๊ธฐ๊ณ ์ญ์ ๋ฅผ ์ํํ๋ค. ๊ทธ๋ฌ๋ ๊ณผ๊ฑฐ ๋ฐ์ดํฐ์ ๋ํ ์ฐธ์กฐ๊ฐ ํ์ํ ๊ฒฝ์ฐ์๋ Backup ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ Restoreํ์ฌ ์ฐธ์กฐํด์ผ ํ๋๋ฐ, ๋๋จํ ํฐ Backup Image์ผ ๊ฒฝ์ฐ ๋ณต๊ตฌ์๊ฐ์ด ๋ง์ด ๊ฑธ๋ฆฌ๊ณ ๋ํ ๋ณ๋์ ์ฅ๋น๋ ํ์ํ๋ค. ์๋ํ๋ฉด Restore๊ธฐ๋ฅ์ ํ์ฌ ์ด์ ์ค์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ญ์ ํด์ผ ์ํํ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค. ์ด๋ฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์ Machbase ๋ Database Mount ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
Database Mount๊ธฐ๋ฅ์ Online์ผ๋ก ๋์ํ๋ ๊ธฐ๋ฅ์ผ๋ก Backup๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ํ์ฌ ์ด์ ์ค์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ Attachํ๋ ๊ธฐ๋ฅ์ด๋ค. ๊ทธ๋ฆฌ๊ณ ์ฌ๋ฌ ๊ฐ์ Backup Database์ ์ด์ ์ค์ธ Primary Database์ Attachํ์ฌ ์ฌ์ฉ์๋ ์ฌ๋ฌ ๊ฐ์ Backup Database๋ฅผ ํ๋์ Database์ธ ๊ฒ์ฒ๋ผ ์ฐธ์กฐ ๊ฐ๋ฅํ๋ค. ๋จ Mountํ Database์ ๋ํด์๋ Read๋ง ๊ฐ๋ฅํ๋ค.
Mount DATABASE ๋ช ๋ น์ ๊ธฐ์กด์ Backup์ผ๋ก ์์ฑ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํน์ ํ ์ด๋ธ DATA๋ฅผ ํ์ฌ ์ด์ ์ค์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์กฐํ ๊ฐ๋ฅํ ์ํ๋ก ์ค๋น์์ผ ์ฃผ๋ ๊ธฐ๋ฅ์ด๋ค. ๊ทธ๋์ Mount ๋ DATABASE๋ ๋์ผํ DB ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌย ๋ฐ์ดํฐ๋ฅผ ์กฐํํ ์ ์๋ค.
ํ์ฌ Database Mount ๊ธฐ๋ฅ์ ์ ์ฝ ์ฌํญ์ ๋ค์๊ณผ ๊ฐ๋ค.
- Backup ์ ๋ณด๋ Mountํ Database์ DB์ Major ๋ฒํธ์ Meta์ Major ๋ฒํธ๊ฐ ํธํ ๊ฐ๋ฅํ ๋ฒ์ ์ด์ด์ผ ํ๋ค.
- Backup Data๋ฅผ Mountํ ๊ฒฝ์ฐ ์ฝ๊ธฐ๋ง ๊ฐ๋ฅํ์ฌ Index ์์ฑ, ๋ฐ์ดํฐ ์ ๋ ฅ ๋ฐ ์ญ์ ๋ฑ์ ์ง์ํ์ง ์๋๋ค.
- ํ์ฌ Mount๋ DATABASE์ ์ ๋ณด๋ V$STORAGE_MOUNT_DATABASES๋ฅผ ์กฐํํ์ฌ ํ์ธํ ์ ์๋ค.
Mount
Mount ๋ช ๋ น์ ์ํํ๊ธฐ ์ํด์๋ Backup_database_path ์ ๋ณด์ DatabaseName์ด ํ์ํ๋ค. Backup_database_path๋ Backup ๋ช ๋ น์ ํตํ์ฌ ์์ฑ๋ DB์ ์์น ์ ๋ณด๋ฅผ ์ ๋ ฅํด์ผ ํ๊ณ , DatabaseName์๋ Database์ Mount ํ ๋ ๊ตฌ๋ถํ ์ ์๋ ์ด๋ฆ์ ์ง์ ํ๋ค. Backup_database_path๋ Backup ํ ๋์ ๋์ผํ๊ฒ ์๋ ๊ฒฝ๋ก๋ฅผ ์ ๋ ฅํ ๊ฒฝ์ฐ DB์ ํ๊ฒฝ๋ณ์์ ์ค์ ๋ DB_PATH์ ์ง์ ๋ ๋๋ ํฐ๋ฆฌ๋ฅผ ๊ธฐ์ค์ผ๋ก ๊ฒ์ํ๋ค.
MOUNT DATABASE 'backup_database_path' TO mount_name;
MOUNT DATABASE '/home/machbase/backup' TO mountdb;
Unmount
Mount๋ Database๋ฅผ ๋ ์ด์ ์ฌ์ฉํ์ง ์์ ๊ฒฝ์ฐ Umount ๋ช ๋ น์ ์ฌ์ฉํ์ฌ ์ ๊ฑฐํ ์ ์๋ค.
UNMOUNT DATABASE mount_name;
UNMOUNT DATABASE mountdb;
MOUNT DB์์ ๋ฐ์ดํฐ ์กฐํ
Backup DB์ DATA๋ฅผ ์กฐํํ ๋ ์ด์ ์ค์ธ DB์ DATA๋ฅผ ์กฐํํ๋ ๊ฒ๊ณผ ๋์ผํ SQL๋ฌธ์ ์ด์ฉํ์ฌ ์กฐํํ ์ ์๋ค.
Mount ๋ DB๋ ์ด์์ค์ธ DB์ SYS ๊ถํ์ ์ฌ์ฉ์๋ง ๋ฐ์ดํฐ๋ฅผ ์กฐํํ ์ ์๋ค. ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๊ธฐ ์ํด์๋ ์กฐํํ TableName ์์ MountDBName๊ณผ UserName์ ์ ๋ ฅํ๊ณ , ๊ฐ๊ฐ์ ๊ตฌ๋ถ์๋ก '.'์ ๋ถ์ฌ์ ์ฌ์ฉํด์ผ ํ๋ค. MountDBName์ ํ์ฌ Mount๋ DB๋ค ์ค ํน์ DB๋ฅผ ์ง์นญํ๊ธฐ ์ํด ์ฌ์ฉํ๊ณ , UserName์ Mount๋ DB์ Table์ ์์ ํ User์ ์ ๋ณด๋ฅผ ์ง์นญํ๋ ๊ฒ์ด๋ค.
SELECT column_name FROM mount_name.user_name.table_name;
SELECT * FROM mountdb.sys.backuptable;