Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
J
joohanhong
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
JooHan Hong
joohanhong
Commits
ecd0870a
Commit
ecd0870a
authored
Mar 04, 2023
by
JooHan Hong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
system/db backup modify2
parent
47ab079c
Pipeline
#7014
passed with stages
in 1 minute and 22 seconds
Changes
1
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
114 additions
and
0 deletions
+114
-0
README.md
SYSTEM/BACKUP/README.md
+114
-0
No files found.
SYSTEM/BACKUP/README.md
View file @
ecd0870a
...
...
@@ -306,3 +306,117 @@ fi
# DBMS 백업
DB 백업의 경우 위의 구성도와 같이 외부의 NFS 볼륨을 마운트한 후 진행한다.
```
bash
# df -h /BACKUP
Filesystem Size Used Avail Use% Mounted on
172.24.0.135:/PDS/BACKUP/DBMS 1.5T 1.3T 258G 83% /BACKUP
```
다음과 같이
`mariabackup`
명령을 사용하여, 전체/증분백업을 수행한다.
```
bash
#!/bin/bash
# Description: MariaDB Full/Inc Backup Script
# Author: juhanida21@nate.com
date
=
`
date
+
"%Y-%m-%d"
`
service
=
"HONGSNET"
dst
=
"/BACKUP/
$service
/FULL"
incdir
=
"/BACKUP/
$service
/INC"
xbk
=
"/usr/bin/mariabackup"
user
=
"root"
password
=
"패스워드"
slave
=
"no"
# yes | no
inc
=
5
mkdir
-p
$dst
||
exit
1
mkdir
-p
$incdir
||
exit
1
ulimit
-Sn
65535
ulimit
-Hn
65535
############ FULL ############
if
[
!
-d
$dst
/0
]
;
then
#최초 백업이라면..
if
[[
$slave
==
"yes"
]]
;
then
$xbk
--backup
--slave-info
--target-dir
${
dst
}
/0
--user
${
user
}
--password
${
password
}
else
$xbk
--backup
--no-lock
--target-dir
${
dst
}
/0
--user
${
user
}
--password
${
password
}
fi
else
#증분백업의 전체백업본을 생성한다. 이 과정은 향후 증분백업 시 필요하기 때문이다.
if
[
!
-d
$incdir
/0
]
;
then
if
[[
$slave
==
"yes"
]]
;
then
$xbk
--backup
--slave-info
--target-dir
${
incdir
}
/0
--user
${
user
}
--password
${
password
}
else
$xbk
--backup
--no-lock
--target-dir
${
incdir
}
/0
--user
${
user
}
--password
${
password
}
fi
fi
#최초 백업이 완료되었고, 증분을 수행해야할 경우
if
[[
$slave
==
"yes"
]]
;
then
$xbk
--backup
--slave-info
--target-dir
${
dst
}
/1
--incremental-basedir
${
dst
}
/0
--user
${
user
}
--password
${
password
}
if
[[
-d
${
incdir
}
/
$date
]]
;
then
rm
-rf
${
incdir
}
/
$date
else
cp
-rf
${
dst
}
/1
${
incdir
}
/
$date
fi
else
$xbk
--backup
--no-lock
--target-dir
${
dst
}
/1
--incremental-basedir
${
dst
}
/0
--user
${
user
}
--password
${
password
}
if
[[
-d
${
incdir
}
/
$date
]]
;
then
rm
-rf
${
incdir
}
/
$date
else
cp
-rf
${
dst
}
/1
${
incdir
}
/
$date
fi
fi
#매일 백업된 전체백업의 준비를 한다. 만약 이 과정을 무시하면, 다음의 에러가 발생된다.
#error: applying incremental backup needs a prepared target.
$xbk
--prepare
--target-dir
${
dst
}
/0
#위의 준비가 완료되었으면, 실제로 매일 백업된 증분백업을 전체백업으로 합친다.
$xbk
--prepare
--target-dir
${
dst
}
/0
--incremental-dir
${
dst
}
/1
--user
${
user
}
--password
${
password
}
#이 과정은 전체백업에 대한 부분이므로, 증분백업된 내역은 제거한다.
rm
-rf
${
dst
}
/1
fi
find
$incdir
/
-ctime
+
${
inc
}
-exec
rm
-rf
{}
\;
```
> 위의 스크립트의 핵심내역은 전체백업을 먼저 진행한 후 백업된 전체 본을 증분(`--incremental-basedir`)한다.
다음은 전체백업본에 대한 현황이다.
```
bash
# ls -al /BACKUP/HONGSNET/
합계 0
drwxr-xr-x 4 root root 29 10월 12 2021
.
drwxr-xr-x 4 root root 45 3월 4 03:50 ..
drwxr-xr-x 3 root root 15 3월 4 01:11 FULL
drwxr-xr-x 9 root root 123 3월 4 01:11 INC
```
또한 증분백업본은 다음과 같다.
```
bash
# ls -al /BACKUP/HONGSNET/INC/
합계 28
drwxr-xr-x 9 root root 123 3월 4 01:11
.
drwxr-xr-x 4 root root 29 10월 12 2021 ..
drwx------ 20 root root 4096 2월 28 01:09 0
drwx------ 20 root root 4096 2월 27 01:08 2023-02-27
drwx------ 20 root root 4096 2월 28 01:15 2023-02-28
drwx------ 20 root root 4096 3월 1 01:07 2023-03-01
drwx------ 20 root root 4096 3월 2 01:07 2023-03-02
drwx------ 20 root root 4096 3월 3 01:06 2023-03-03
drwx------ 20 root root 4096 3월 4 01:07 2023-03-04
```
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment