본 시스템은 MariaDB 서버를[1] 데이터베이스로 사용하며 본 문서에서는 그 이름을 때때로 "mysql"로 표현합니다.

데이터베이스 상태 확인

show database {ARG} 명령어를 사용하면 데이터베이스 관련 각종 정보를 출력 할 수 있습니다.

argument Description
backup 백업 결과 및 파일을 출력합니다.
connection 데이터베이에 연결된 상태를 출력합니다.[2]
process 데이터베이에서 실행 중인 쓰레드(thread)를 표시합니다.[3]
  • ID: The client's process ID.
  • USER: The username associated with the process.
  • HOST: The host the client is connected to.
  • DB: The default database of the process (NULL if no default).
  • COMMAND: The command type.[4]
  • TIME: The amount of time, in seconds, the process has been in its current state.
  • INFO: The statement being executed.
  • PROGRESS: The total progress of the process (0-100%) (see Progress Reporting).
property 데이터베이스 연결 속성을 표시합니다.
replication 데이터베이스 복제(replication) 상태를 표시합니다.
status 데이터베이스 서비스 상태를 표시합니다.
variable 데이터베이스 global variables을 출력합니다.

user mode에서 show system mariadb 명령어를 실행하면 데이터베이스의 버전을 확인 할 수 있습니다. 데이터베이스의 동작 상태를 확인하려면 show service mysql 또는 show service status mysql 명령어를 이용할 수 있습니다.

LYSH@MyHostName# show system mariadb
Database server               : 10.4.19-MariaDB, for debian-linux-gnu (x86_64)

LYSH@MyHostName# show service mysql
● mariadb.service - MariaDB 10.4.19 database server
     Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
    Drop-In: /etc/systemd/system/mariadb.service.d
             └─migrated-from-my.cnf-settings.conf
     Active: active (running) since Tue 2021-05-11 15:44:07 KST; 6 days ago
.....

데이터베이스 연결 속성

데이터베이스 연결 속성은 imRAD 데이터베이스 서버의 IP 주소, 포트 번호, 사용자 및 암호를 포함하며 안전하게 암호화되었습니다.
show database property {id} 명령어를 사용하면 그 정보를 평문으로 출력 할 수 있습니다. 단, 보안상 암호는 일부가 * 표시로 출력됩니다.

imRAD는 3가지 형식의 연결속성이 존재합니다.

ID 이름 설명
0 MainDB 메인 데이터베이스의 연결 속성입니다. 만일 시스템 이중화 목적으로 두 개의 시스템이 존재할때 "active" 장비의 정보가 출력됩니다.
2 LocalDB 현재 장비에 대한 데이터베이스의 연결 속성입니다.
3 PeerDB 시스템 이중화 구성시 상대 장비에 대한 연결 정보입니다.

보안 목적으로 비밀번호 일부는 *로 표시됩니다.

LYSH@MyHostName# show database property 0	// Display the database connection properties of the MainDB (1)
  Host:127.0.0.1
  Port:6710
  User-id:lyon
  User-Password:*****y@nu24

데이터베이스 백업 설정

imRAD 데이터베이스 백업을 정의할 수 있으며 기본으로 다음과 같이 백업이 설정되어 있습니다.

  • db_backup_interval=1 // 매일(1일 간격)
  • db_backup_hour=3 // 새벽 3시
  • max_db_backup_file=5 // 백업 파일은 최대 5깨까지 보유

다음과 같은 명령어를 실행하면 백업 스케줄러의 상태와 최근 백업 결과를 확인 할 수 있습니다.

LYSH@MyHostName# show system backup		// view the current database backup configuration
db_backup task                : Active
db_backup                     : enable
db_backup_interval            : 1
db_backup_hour                : 3
max_db_backup_file            : 5
last_db_backup_datetime       : 2021-04-28 03:30:01
last_db_backup_state          : success

백업 속성을 변경하려면 configuration mode에서 database backup 명령어를 이용하세요.

LYSH@MyHostName# configure
LYSH@MyHostName(config)# database backup enable		// enable database backup
LYSH@MyHostName(config)# database backup disable		// disable database backup
LYSH@MyHostName(config)# database backup hour 5		// Configure the starting hour of database backup
LYSH@MyHostName(config)# database backup interval 2		// Configure the database backup interval in days
LYSH@MyHostName(config)# database backup maxfile 3		// Configure the maximum number of database backup files to keep

show database backup 명령을 입력하면 데이터베이스 백업 속성, 최근 백업 결과 그리고 백업된 파일이 출력됩니다.

LYSH@MyHostName# show database backup
db_backup task                : Active
db_backup                     : enable
db_backup_interval            : 1
db_backup_hour                : 3
max_db_backup_file            : 5
last_db_backup_datetime       : 2021-04-28 03:30:01
last_db_backup_state          : success

total 1.7M
-rw-r--r-- 1 root root   20 Apr 25 03:30 backup_210425.sql.gz
-rw-r--r-- 1 root root   20 Apr 26 03:30 backup_210426.sql.gz
-rw-r--r-- 1 root root   20 Apr 27 03:30 backup_210427.sql.gz
-rw-r--r-- 1 root root   20 Apr 28 03:30 backup_210428.sql.gz

데이터베이스 패스워드 변경

데이터베이스 패스워드를 변경하려면 다음과 같이 configure 모드에서 database password 명령을 사용하세요.

LYSH@MyHostName# configure
LYSH@MyHostName(config) # database password
New password: ***********
Confirm password: ***********
misc: The Database password was changed.
LYSH@MyHostName(config)# exit
LYSH@MyHostName# show system database
Main Database                 : lyon/*****y@nu24@127.0.0.1:6710
Local Database                : lyon/*****y@nu24@127.0.0.1:6710

이중화가 구성된 환경에서는 반드시 Active 장비의 데이터베이스 패스워드를 변경 후 동일한 패스워드로 Passive(Standby) 장비의 비밀번호를 변경하세요. Active 장비의 데이터베이스 패스워드 변경 방식은 위에서 언급된 방법과 같습니다.

Passive(Standby) 장비에서 패스워드 변경
이중화가 운영되는 환경에서 Passive 장비의 패스워드는 Active 장비의 패스워드와 동일해야 하므로 Active 장비에 접속을 시도 후 성공되면 그 패스워드로 변경됩니다.

LYSH@MyHostName# configure
LYSH@MyHostName(config) # database password
Notice:
This device is the failover passive(standby) and must be set the same password as the active database.
Therefore, the database password will be changed to the same password as the active device.
Do you want to continue? [y/n]y
Input the password of active Database(a.b.c.d):***********
success
misc: The database password of the failover passive device was changed.
LYSH@MyHostName(config)# exit

데이터베이스 내보내기

user mode에서 mysql export 명령어를 사용하면 선택한 데이터베이스를 내보낼 수 있으며 파일을 지정된 경로에 저장됩니다.

LYSH@MyHostName# mysql export
1) lyon
2) lyon_dhcp
3) lyon_history
4) lyon_log
5) lyon_mailbox
6) lyon_rad
7) lyon_stat
8) all
Select databases number: 1
Please enter a backup file name: backup
Do you want to include the data?(Y/n default[Y]): y

LYSH@MyHostName# show database backup
db_backup=enable
db_backup_interval=1
db_backup_hour=3
max_db_backup_file=5
last_db_backup_datetime=2022-01-27 03:30:02
last_db_backup_state=success

-rw-r--r-- 1 root root 1115294 Jan 27 20:13 backup.gz
-rw-r--r-- 1 root root 3440103 Jan 23 03:30 backup_220123.sql.gz
...

데이터베이스 가져오기

백업된 파일로 데이터베이스를 복구하는 명령어입니다. 현재 데이터베이스가 손상되었거나 기타 문제가 발생한 경우 최근 백업 파일로 복구 할 수 있습니다.

LYSH@MyHostName# mysql import
1) backup.gz
2) backup_220123.sql.gz
3) backup_220124.sql.gz
4) backup_220125.sql.gz
5) backup_220126.sql.gz
6) backup_220127.sql.gz
7) update
Select backup file number: 2

데이터베이스 가져오기를 통해 데이터를 복구하면 현재 데이터는 모두 삭제되고 백업 파일의 데이터로 복구 되므로 데이터베이스에 문제가 있을 경우만 사용하세요.

데이터베이스(mysql) 직접 접속

진단 및 기타 목적으로 mysql에 직접 접속을 하려면 user mode에서 mysql 명령을 실행하면 됩니다. 단, root 계정을 이용해 접속하려면 OTP(One Time Password)[5] 발급 받아 입력해야합니다.

References