Skip to main content

Mysql/MariaDB Recovery.

[DB_NAME]: DB-name to recovery.

/dev/shm Usage: First, check your memory if you can use shm directory.

  For recovery speed, I use /dev/shm/ directory.


Process flow.

01. Stop DB

 service mysqld stop

02. Stop web-service. (If you don't use, block DB-connection by using firewall-cmd.)

 service httpd stop

03. Change DB-mode on server.cnf 

 set innodb_force_recovery = 5 on /etc/my.cnf.d/server.cnf

04. Start DB for recovery.

 service mysqld start

05. Run DB-dump.

 mysqldump -u root -p --databases [DB_NAME] > /dev/shm/[DB_NAME].sql

06. Stop DB

 service mysqld stop

07. Change DB-mode on server.cnf (normal mode)

 set innodb_force_recovery = 0 on /etc/my.cnf.d/server.cnf

08. Backup old DB-files. (Run follows if you necessarily need backup.)

 mkdir /backup/DB_BackupTmp

 mv /backup/DB/ibdata1 /backup/DB_BackupTmp

 mv /backup/DB/ib_logfile0 /backup/DB_BackupTmp

 mv /backup/DB/ib_logfile1 /backup/DB_BackupTmp

 mv /backup/DB/[DB_NAME] /backup/DB_BackupTmp

09. Start DB

 service mysqld start

10. Create Database: [DB_NAME]

 mysql -u root -p

 CREATE DATABASE [DB_NAME];

11. Recover DB-dump

 mysql -uroot -p [DB_NAME] < /dev/shm/[DB_NAME].sql

12. Start web-service. (If you don't use, change DB-connection for allow by using firewall-cmd.)

 service httpd start


-End-


Comments

Popular posts from this blog

sanitize on in CMakeLists.txt

1. CMakeLists.txt set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=address") add_compile_options(-fsanitize=address) If a subdir is set with add_subdirectory and a module that does not support sanitize is imported from the path and needs to be removed, add -fno-sanitize=address to add_compile_options in CMakeLists.txt of the subdir to remove it. Basically, if you enable sanitize, sanitize will adjust ulimit's core to 0, so core will not occur. You can do this by putting the following part as an environment variable. (Below is the part you put in systemd's service) 2. service file in systemd [Service] LimitCORE=infinity Environment="ASAN_OPTIONS=handle_segv=0:handle_abort=1:abort_on_error=1:disable_coredump=0"

e1000e 0000:00:1f.6 eno1: Detected Hardware Unit Hang

 make a file: /usr/local/etc/ethtool.sh (eno1 is your mgmt i/f, vmbr0 is your bridge i/f.) #!/bin/bash ethtool -K eno1 gso off gro on tso off tx on rx on rxvlan on txvlan on sg on && ethtool -K vmbr0 gso off gro on tso off tx on rx on rxvlan on txvlan on sg on ethtool -G eno1 rx 4096 if you want to activate on reboot. /etc/systemd/system/ethtool.service [Unit] Description=ethtool script [Service] WorkingDirectory=/usr/local/etc/ ExecStart=/usr/local/etc/ethtool.sh [Install] WantedBy=multi-user.target then systemctl enable ethtool.service && systemctl start ethtool.service refs: https://forum.proxmox.com/threads/e1000-driver-hang.58284/page-8#post-390709

[bash-script] get_info.sh print cpu allocation infomation of threads

1) way1 ps xH -o 'pid tid cmd comm pcpu psr' 2) way2 #!/bin/bash TMP_FILE=$(mktemp /tmp/abc-script.XXXXXX) echo ${TMP_FILE} ps xH -o 'pid tid cmd comm pcpu ' > ${TMP_FILE} function make_header() {   echo -n "$1"   echo " psr" } function make_values() {   echo -n "$1"   STATUS_FILE=/proc/${2}/task/${3}/status   if [ -f ${STATUS_FILE} ] ; then     CPU_SET=`cat ${STATUS_FILE}  |grep Cpus_allowed_list |awk ' { print $2 } '`   else     CPU_SET="None"   fi   echo " ${CPU_SET}" } let IDX=0 while IFS='' read -r line || [[ -n "$line" ]]; do    LINE_SEP=( $line )    MY_PID=${LINE_SEP[0]}    MY_TID=${LINE_SEP[1]}    if [ ${IDX} -eq 0 ]; then      SZ_HEADER=`make_header "$line"`      echo ${SZ_HEADER}    else      SZ_VALUES=`make_values "$line" ${MY_PID} ${MY_TID}`      echo ${SZ_VALUES}...