StoryCode

binlog 삭제

Database 관리/Maria DB
반응형

# 참조 : https://blog.naver.com/PostView.nhn?isHttpsRedirect=true&blogId=hanajava&logNo=221008795923&categoryNo=46&parentCategoryNo=0&viewDate=&currentPage=1&postListTopCurrentPage=1&from=postView

 

 

Maria02 [test]> show binary logs;
+------------------+------------+
| Log_name         | File_size  |
+------------------+------------+
| mysql-bin.000035 |        401 |
| mysql-bin.000036 |        362 |
| mysql-bin.000037 | 1073742328 |
| mysql-bin.000038 |   77130306 |
+------------------+------------+
4 rows in set (0.05 sec)


Maria02 [test]> purge binary logs to 'mysql-bin.000038';
Query OK, 0 rows affected (0.10 sec)

 
Maria02 [test]> show binary logs;
0 row in set (0.14 sec)

Maria02 [test]>

 

​========================================================================================

DB에 레코드가 많이 쌓여 테이블 파일의 용량이 증가하는 것도 문제지만,

binary log를 초기 세팅대로 방치하면 금방 HDD가 꽉 차게 된다.

 

 

# ll -h
total 22G
drwx------ 2 mysql mysql 4.0K Feb 5 10:37 acclog
-rw-r----- 1 mysql mysql 112K Feb 5 19:09 localhost.localdomain.err
-rw-rw---- 1 mysql mysql 5 Feb 5 19:09 localhost.localdomain.pid
drwx------ 2 mysql mysql 4.0K Feb 5 10:15 mysql
-rw-rw---- 1 mysql mysql 1.1G Feb 15 07:13 mysql-bin.000174
-rw-rw---- 1 mysql mysql 1.1G Feb 15 07:24 mysql-bin.000175
-rw-rw---- 1 mysql mysql 1.1G Feb 15 07:36 mysql-bin.000176
-rw-rw---- 1 mysql mysql 1.1G Feb 15 07:47 mysql-bin.000177
-rw-rw---- 1 mysql mysql 1.1G Feb 15 07:59 mysql-bin.000178
-rw-rw---- 1 mysql mysql 1.1G Feb 15 08:16 mysql-bin.000179
-rw-rw---- 1 mysql mysql 1.1G Feb 15 08:31 mysql-bin.000180
-rw-rw---- 1 mysql mysql 1.1G Feb 15 08:42 mysql-bin.000181
-rw-rw---- 1 mysql mysql 1.1G Feb 15 08:54 mysql-bin.000182
-rw-rw---- 1 mysql mysql 1.1G Feb 15 09:05 mysql-bin.000183
-rw-rw---- 1 mysql mysql 1.1G Feb 15 09:17 mysql-bin.000184
-rw-rw---- 1 mysql mysql 1.1G Feb 15 09:29 mysql-bin.000185
-rw-rw---- 1 mysql mysql 1.1G Feb 15 09:40 mysql-bin.000186
-rw-rw---- 1 mysql mysql 1.1G Feb 15 09:52 mysql-bin.000187
-rw-rw---- 1 mysql mysql 1.1G Feb 15 10:04 mysql-bin.000188
-rw-rw---- 1 mysql mysql 334M Feb 15 11:43 mysql-bin.000189
-rw-r----- 1 mysql mysql 418 Feb 15 10:04 mysql-bin.index
drwx------ 2 mysql mysql 4.0K Feb 5 10:15 test


 

data 디렉토리(configure에 따라 다름) 내의 파일들을 보면 binary log가 많이 생성된 것을 알 수 있다.

파일을 rm 명령어로 직접 지우지 말고 mysql 콘솔에서 지우는 것이 바람직하다.

 

 

 mysql> show binary logs;
+------------------+------------+
| Log_name         | File_size  |
+------------------+------------+
| mysql-bin.000174 | 1073742003 |
| mysql-bin.000175 | 1073742050 |
| mysql-bin.000176 | 1073741968 |
| mysql-bin.000177 | 1073742039 |
| mysql-bin.000178 | 1073741908 |
| mysql-bin.000179 | 1073742024 |
| mysql-bin.000180 | 1073742027 |
| mysql-bin.000181 | 1073741959 |
| mysql-bin.000182 | 1073741883 |
| mysql-bin.000183 | 1073741988 |
| mysql-bin.000184 | 1073741999 |
| mysql-bin.000185 | 1073741927 |
| mysql-bin.000186 | 1073742098 |
| mysql-bin.000187 | 1073742018 |
| mysql-bin.000188 | 1073742083 |
| mysql-bin.000189 |  349569498 |
+------------------+------------+
16 rows in set (0.00 sec)

mysql 콘솔에서는 위 명령으로 확인 가능.

 

 

mysql> purge master logs to 'mysql-bin.000186';
Query OK, 0 rows affected (0.91 sec)
mysql> show binary logs;
+------------------+------------+
| Log_name         | File_size  |
+------------------+------------+
| mysql-bin.000186 | 1073742098 |
| mysql-bin.000187 | 1073742018 |
| mysql-bin.000188 | 1073742083 |
| mysql-bin.000189 |  349742255 |
+------------------+------------+
4 rows in set (0.00 sec)

위 명령어에서 binary 로그 이름을 지정하면 해당 파일 이전의 파일들을 모두 삭제한다.

 

 

mysql> set global expire_logs_days=2;
Query OK, 0 rows affected (0.00 sec)

mysql> SHOW VARIABLES LIKE '%expire%';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| expire_logs_days | 2     |
+------------------+-------+
1 row in set (0.00 sec)

그리고 binary 로그를 저장할 주기를 설정한다.

시스템 사고가 발생해도 근시일 내에 확인할 수 있거나 특별히 백업해 분석할 것이 아니라면 2일 정도면 충분할 것이다.

 

출처: http://whiterussian.tistory.com/36 [화이트 러시안]

​==================================================================================

​MySQL에서 사용하는 log-bin이라는 옵션은 사용된 쿼리들이 로깅되는 파일이며 Innodb 혹은 Replication등에서 사용되곤 합니다.

하지만 이 파일의 문제는 무한정 늘어난다는 것입니다. relay-log-space-limit 같은 옵션이 있지만 이 옵션은 Replication에서 사용되는 relay-log-bin의 용량을 제한 하는 옵션이지 해결책이 되지 못합니다.

하지만 이 파일을 정리하는 방법이 있습니다.

우선 다음의 Query를 사용하는 것입니다.

PURGE MASTER LOGS BEFORE DATE_SUB(CURRENT_DATE, INTERVAL 30 DAY)

 

INTERVAL에서는 원하시는 로깅 시점을 기록하시면 됩니다. 위의 경우에는 30일 이전의 로깅 정보를 삭제하게 됩니다.

차례차례 해보도록 하겠습니다.

 

1. 현재의 하드디스크 용량 상태를 확인합니다.

[root@Theeye db]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1              18G  1.9G   15G  12% /
/dev/sda3              15G  803M   13G   6% /home
/dev/sda2              97G   78G   15G  85% /usr/local/mysql/db

데이터베이스 공간이 85%나 사용되어 곧 꽉찰지도 모른다는 불안감에 휩싸이게 되었습니다.

 

2. log-bin 파일을 확인해 봅시다.
[root@Theeye db]# ls mysql-bin.*
mysql-bin.000001  mysql-bin.000002  mysql-bin.000003 ......  mysql-bin.000073

파일이 엄청나게 많이 있습니다.

 

3. 다음 명령어를 수행합니다.
mysql -e "PURGE MASTER LOGS BEFORE DATE_SUB(CURRENT_DATE, INTERVAL 30 DAY)"

물론 mysql에 접속하셔서 위의 명령어를 입력하셔도 됩니다. Super권한을 가진 root계정으로 실행해 주세요.

 

4. log-bin 파일이 줄었나 확인해 봅시다.
[root@Theeye db]# ls mysql-bin.*
mysql-bin.000041  mysql-bin.000042  mysql-bin.000043 ......  mysql-bin.000073

41번 이전의 파일들이 모두 삭제 되었습니다. 41번 부터가 최근 30일 이내의 로그정보가 남아있는 모양이군요.

 

5. 하드디스크 용량 상태를 확인해 봅시다.
[root@Theeye db]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1              18G  1.9G   15G  12% /
/dev/sda3              15G  803M   13G   6% /home
/dev/sda2              97G   40G   53G  43% /usr/local/mysql/db

확실히 용량이 많이 확보가 되었군요^^

주기적인 실행이 필요하실 경우에는 위의 명령어를 crontab에 등록하시면 됩니다. 일주일에 한번정도의 실행이 적당하겠네요.

=================================================================​

MySQL Binary Log 는 add, delete, insert, update 등의 query 가 저장되어 있는 파일로서

MySQL을 설치하게 되면 기본적으로 MySQL Binary Log 가 생성됩니다.
Binary Log 를 쌓지 않아도 되는 MySQL 구동 환경에서는 Binary Log 를 삭제하므로, 디스크 공간
여유 공간을 확보할 수 있는데, MySQL Binary Log 를 지우는 방법에 대해서 알아보겠습니다.

1. MySQL Replication 환경에서 지우기

  - MySQL Replication MASTER 서버
    shell> mysql -u root -p
    mysql> RESET MASTER;

  - MySQL Replication SLAVE 서버
    shell> mysql -u root -p
    mysql> RESET MASTER;

2. MySQL Binary Log sequence number 또는 특정 일자로 지우기

  shell> mysql -u root -p
  mysql> PURGE BINARY LOGS TO 'mysql-bin.000015';
  shell> mysql -u root -p
  mysql> PURGE BINARY LOGS BEFORE '2009-05-01 00:00:00';

3. mysqladmin flush-logs 명령어를 통해서 MySQL Binary Log 지우기

   shell> mysqladmin -u root -p flush-logs

4. MySQL Binary Log 생성을 방지하는 방법

  /etc/my.cnf 파일에서 아래 라인을 주석 처리
  log-bin

5. MySQL Binary Log 를 특정 1주일까지만 생성 및 보관하기
  /etc/my.cnf 파일에서 아래 라인을 추가
  expire_logs_days = 7

 

 

반응형

'Database 관리 > Maria DB' 카테고리의 다른 글

Data Directory 변경  (0) 2023.05.26
Install mariadb.10.6.tar.gz in ubuntu  (0) 2022.01.18
Lock, 락, 해결  (0) 2021.10.29
RDS, export, mysqldump/ import  (0) 2021.10.14
[편법] CVS Parsing, 파싱  (0) 2021.09.23

crontab.실행이 잘 안될때

Server 관리/Linux
반응형

커맨드에서는 실행이 잘되는데, crontab 에서 실행이 잘 안될때,

 

1) 스크립트에 export 할거 다했나 확인

2) 파일 디렉토리에 "." 이나 ".." 으로 표시한 게 있는지 확인

 

반응형

'Server 관리 > Linux' 카테고리의 다른 글

Offline 설치.Dependency 포함.  (0) 2024.04.03
Command.병렬실행.명령  (0) 2023.01.24
vi.붙여넣기,paste.오류.밀려남.  (0) 2022.12.30
bash.shell.script.$변수.bad substitution  (0) 2022.12.19
Centos6.GLIBC2.28.forDockerInstall  (0) 2022.05.16

2023-003.ML, Accuracy, Precision, Recall, F1Score

IT 용어, 인터넷 활용 등등
반응형

 

반응형

'IT 용어, 인터넷 활용 등등' 카테고리의 다른 글

2020-289.CORS  (0) 2023.02.23
Andoroid.Phone.Pixel1.사진 백업.간편하게 하기  (0) 2023.02.17
CPU  (0) 2022.10.28
Node.js  (0) 2022.07.25
이벤트소싱, CQRS  (0) 2022.07.07

vi.붙여넣기,paste.오류.밀려남.

Server 관리/Linux
반응형

긴 다수의 문장들을 붙여넣다보면 밀려나서 정렬이 깨지는 경우,

:set paste

:set nopaste

반응형

'Server 관리 > Linux' 카테고리의 다른 글

Command.병렬실행.명령  (0) 2023.01.24
crontab.실행이 잘 안될때  (0) 2023.01.07
bash.shell.script.$변수.bad substitution  (0) 2022.12.19
Centos6.GLIBC2.28.forDockerInstall  (0) 2022.05.16
SSH 보안 설정  (0) 2022.01.13

MSSQL.Client.MSSQL-TOOLS.SQLCMD.Ubuntu22 설치

Database 관리/MSSQL
반응형

# https://learn.microsoft.com/ko-kr/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view=sql-server-ver16#ubuntu18

 

nmap --script ssl-enum-ciphers 202.30.110.132 # Check 1433.TLSv1.0

1433/tcp open  ms-sql-s
| ssl-enum-ciphers:
|   TLSv1.0: # <============= 확인
|     ciphers:
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (ecdh_x25519) - A
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (ecdh_x25519) - A
|       TLS_DHE_RSA_WITH_AES_256_CBC_SHA (dh 2048) - A
|       TLS_DHE_RSA_WITH_AES_128_CBC_SHA (dh 2048) - A
|     compressors:
|       NULL
|     cipher preference: server
|     warnings:
|       Weak certificate signature: SHA1
|_  least strength: A
  vi /etc/ssl/openssl.cnf
    [system_default_sect]
    MinProtocol = TLSv1 #<=========== TLVv1
    CipherString = DEFAULT:@SECLEVEL=0 #<======= No Cipher
if ! [[ "18.04 20.04 22.04" == *"$(lsb_release -rs)"* ]];
then
    echo "Ubuntu $(lsb_release -rs) is not currently supported.";
    exit;
fi

sudo su
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -

curl https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/prod.list > /etc/apt/sources.list.d/mssql-release.list

exit
sudo apt-get update
sudo ACCEPT_EULA=Y apt-get install -y msodbcsql18
# optional: for bcp and sqlcmd
sudo ACCEPT_EULA=Y apt-get install -y mssql-tools18
echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc
source ~/.bashrc
# optional: for unixODBC development headers
sudo apt-get install -y unixodbc-dev

cd /opt/mssql-tools18/bin
./sqlcmd -C -S 123.456.789.012 -U userid -P password # -C 는 Error.Protocol 발생시 추가
    1> user master
    2> select @@ServiceName
    3> go
반응형

bash.shell.script.$변수.bad substitution

Server 관리/Linux
반응형

"${myvar }"에서 myvar 뒤에 빈칸때문에 발생하기도 한다.

반응형

'Server 관리 > Linux' 카테고리의 다른 글

crontab.실행이 잘 안될때  (0) 2023.01.07
vi.붙여넣기,paste.오류.밀려남.  (0) 2022.12.30
Centos6.GLIBC2.28.forDockerInstall  (0) 2022.05.16
SSH 보안 설정  (0) 2022.01.13
Centos, 센토스 server minimal 이후 추가 설치  (0) 2021.12.21

print().5 Ways

Python, 파이썬
반응형
No Way  
1 print(name + ' : ' + str(age))
2 print(name, ':', age)
3 print(f'{name} : {age}')
4 print('%s : %s' % (name, age))
5 print('{} : {}'.format(name, age))

 

 

반응형

'Python, 파이썬' 카테고리의 다른 글

..., :, Ellipsis  (0) 2023.09.21
Debugging.디버깅.breakpoint()  (0) 2023.09.20
print.format.text.lpad.rpad  (0) 2022.12.18
Ubuntu.pip3 설치  (0) 2022.09.27
python 버전 관리  (0) 2021.12.17

print.format.text.lpad.rpad

Python, 파이썬
반응형

print(f'{text}')

print(f'{text:#<20}') # rpad

print(f'{text:>20}') # lpad

print(f'{text:.^20}') # lrpad ( center text )

 

반응형

'Python, 파이썬' 카테고리의 다른 글

Debugging.디버깅.breakpoint()  (0) 2023.09.20
print().5 Ways  (0) 2022.12.18
Ubuntu.pip3 설치  (0) 2022.09.27
python 버전 관리  (0) 2021.12.17
유튜브 업로드  (0) 2021.04.06

Chrome.Console.elapsed.time.시간측정

JavaScript, ECMAScript
반응형

console.time('my time');

document.querySelector('a');

console.timeEnd('my time');

반응형

'JavaScript, ECMAScript' 카테고리의 다른 글

게시판.이미지.Image.Upload  (0) 2023.04.28
음성,Speak,Speech  (0) 2022.12.01
Chrome Browser Rendering FPS 측정  (0) 2022.11.20
Indexed DB  (0) 2022.08.03
디버깅.Debugging.VSC.VisualStudioCode.연동  (0) 2022.07.28

음성,Speak,Speech

JavaScript, ECMAScript
반응형

u = new SpeechSynthesisUtterance("우리는 말안하고 살수가 없나~");

window.speechSynthesis.speak(u);

반응형

'JavaScript, ECMAScript' 카테고리의 다른 글

게시판.이미지.Image.Upload  (0) 2023.04.28
Chrome.Console.elapsed.time.시간측정  (0) 2022.12.03
Chrome Browser Rendering FPS 측정  (0) 2022.11.20
Indexed DB  (0) 2022.08.03
디버깅.Debugging.VSC.VisualStudioCode.연동  (0) 2022.07.28