제품 여행

named pipe를 활용한 압축 백업하기.

by HiCLASS posted May 25, 2020

작년 12월 18일에 CUBRID 10.2가 릴리즈 되었다.

자세한 링크는 다음과 같다. https://www.cubrid.com/3824761

 

이번 버전부터 backup 시 named pipe 를 활용 할 수 있다.

 

Named Pipe

| 파이프를 이용해 명령들을 연결하여 사용하거나 명령, 프로세스 치환을 사용하면 명령 실행 중에 자동으로 pipe 가 생성되어 사용된 후 사라지게 되는데요.

이때 생성되는 파이프를 이름이 없다고 해서 unnamed pipe 또는 anonymous pipe 라고 합니다. 이에 반해 named pipe 는 직접 파이프를 파일로 만들어 사용합니다.

 

자 이제 Named pipe를 생성해 보자.

 

1
2
3
$ mkfifo backup_pipe
$ ls -al backup_pipe
prw-rw-r--1 hiclass hiclass 0 May 25 10:40 backup_pipe

 

이렇게 생성해도 되고

 

1
2
3
$ mknod backup_pipe p
$ ls -al backup_pipe
prw-rw-r--1 hiclass hiclass 0 May 25 10:40 backup_pipe

 

이렇게 생성 할 수도 있다.

 

이제 생성한 파이프를 이용하여 백업을 해보자. 먼저 용량비교를 위해서 파이프를 사용하지 않은 일반 백업을 해 보겠다.

 

$ cubrid backupdb demodb --0 --D . -o bk.out
Backup Volume Label: Level: 0, Unit: 0, Database demodb, Backup Time: Mon May 25 10:30:50 2020
$ ll
total 251124
prw-rw-r--1 hiclass hiclass         0 May 25 10:29 backup_pipe
-rw-------1 hiclass hiclass      1000 May 25 10:30 bk.out
-rw-------1 hiclass hiclass 134217728 May 25 10:30 demodb
-rw-------1 hiclass hiclass   6304768 May 25 10:30 demodb_bk0v000
-rw-------1 hiclass hiclass        64 May 25 10:30 demodb_bkvinf
-rw-------1 hiclass hiclass 104857600 May 25 10:30 demodb_lgar_t
-rw-------1 hiclass hiclass 104857600 May 25 10:30 demodb_lgat
-rw-------1 hiclass hiclass       221 May 25 10:28 demodb_lginf
-rw-rw-r--1 hiclass hiclass      2414 May 25 10:28 demodb_loaddb.log
-rw-------1 hiclass hiclass       298 May 25 10:28 demodb_vinf
drwxrwxr-x. 2 hiclass hiclass         6 Mar 12 12:20 lob
 

 

-rw-------1 hiclass hiclass   6304768 May 25 10:30 demodb_bk0v000

백업 파일의 용량은 약 6.1M이다.

 

이제 생성한 Named pipe를 이용하여 압축 백업을 해 보자.

 

$ cubrid backupdb demodb --0 --D backup_pipe -o bk.out & cat backup_pipe | gzip > demodb_bk0v000.gz
[17483
Backup Volume Label: Level: 0, Unit: 0, Database demodb, Backup Time: Mon May 25 10:30:59 2020
[1]+  Done                    cubrid backupdb demodb --0 --D backup_pipe -o bk.out
$ ls -al
total 254172
drwxrwxr-x. 3 hiclass hiclass       236 May 25 10:30 .
drwxrwxr-x. 5 hiclass hiclass       103 May 25 10:28 ..
prw-rw-r--1 hiclass hiclass         0 May 25 10:30 backup_pipe
-rw-------1 hiclass hiclass      1000 May 25 10:30 bk.out
-rw-------1 hiclass hiclass 134217728 May 25 10:30 demodb
-rw-------1 hiclass hiclass   6304768 May 25 10:30 demodb_bk0v000
-rw-rw-r--1 hiclass hiclass   3117962 May 25 10:30 demodb_bk0v000.gz
-rw-------1 hiclass hiclass        61 May 25 10:30 demodb_bkvinf
-rw-------1 hiclass hiclass 104857600 May 25 10:30 demodb_lgar_t
-rw-------1 hiclass hiclass 104857600 May 25 10:30 demodb_lgat
-rw-------1 hiclass hiclass       221 May 25 10:28 demodb_lginf
-rw-rw-r--1 hiclass hiclass      2414 May 25 10:28 demodb_loaddb.log
-rw-------1 hiclass hiclass       298 May 25 10:28 demodb_vinf
drwxrwxr-x. 2 hiclass hiclass         6 Mar 12 12:20 lob
 

 

-rw-rw-r--1 hiclass hiclass   3117962 May 25 10:30 demodb_bk0v000.gz

백업 파일의 용량은 약 3M이다.

 

파이프를 이용한 백업은 위의 방법 외에도 ssh를 이용하여 다른 서버에도 다이렉트로 전송할 수 있다.

또한 위의 방법은 FIFO pipe를 이용하여 백업하기 때문에 물리적인 공간이 부족 할 때에도 활용 할 수 있다.

 

새로운 방법의 백업을 활용 하여 DBA역할에 도움이 되셨으면 한다.