MYSQL資料庫 MariaDB斷電恢復總結

2021-10-22 11:52:25 字數 2388 閱讀 3009

背景:本次是機房異常斷電,導致資料庫檔案損壞。在資料庫自啟動之後頻繁宕機,在多次嘗試以後,總結了一下幾種方法,及供參考。

1.mariadb伺服器斷電重啟之後missing mlog_checkpoint的報錯資訊?

解決辦法是,刪除data目錄下的ib_logfile0、ib_logfile1這兩個檔案,建議最好備份乙份。

2.資料庫檔案損壞,導致頻繁宕機

innodb_force_recovery=3 #mariadb資料庫檔案損壞重啟,當引數值大於3的時候會對資料檔案造成永久性的破壞。

1(srv_force_ignore_corrupt):忽略檢查到的corrupt頁。

2(srv_force_no_background):阻止主線程的執行,如主線程需要執行full purge操作,會導致crash。

3(srv_force_no_trx_undo):不執行事務回滾操作。

4(srv_force_no_ibuf_merge):不執行插入緩衝的合併操作。

5(srv_force_no_undo_log_scan):不檢視重做日誌,innodb儲存引擎會將未提交的事務視為已提交。

6(srv_force_no_log_redo):不執行前滾的操作。

3.啟動命令設定強制回滾

/usr/sbin/mysqld --skip-grant-tables --general-log &

service mysql start --tc-heuristic-recover=rollback

[client]

port = 3306

socket = /tmp/mysql.sock

[mysqld]

port = 3306

socket = /tmp/mysql.sock

user = mariadb

basedir = /usr/local/mariadb

datadir = /data/mysql

log_error = /data/mysql/mariadb.err

pid-file = /data/mysql/mariadb.pid

skip-external-locking

key_buffer_size = 64m

max_allowed_packet = 4m

table_open_cache = 256

sort_buffer_size = 4m

net_buffer_length = 18k

read_buffer_size = 4m

read_rnd_buffer_size =2m

myisam_sort_buffer_size = 16m

thread_cache_size = 32

query_cache_size = 32m

tmp_table_size = 64m

explicit_defaults_for_timestamp = true

#skip-networking

max_connections = 500

max_connect_errors = 100

open_files_limit = 65535

log-bin=mysql-bin

binlog_format=mixed

server-id = 1

expire_logs_days = 10

default_storage_engine = innodb

innodb_file_per_table = 1

innodb_data_home_dir = /data/mysql

innodb_data_file_path = ibdata1:10m:autoextend

innodb_log_group_home_dir = /data/mysql

innodb_buffer_pool_size = 256m

innodb_log_file_size = 64m

innodb_log_buffer_size = 8m

innodb_flush_log_at_trx_commit = 10

innodb_lock_wait_timeout = 50

[mysqldump]

quick

max_allowed_packet = 16m

[mysql]

no-auto-rehash

[myisamchk]

key_buffer_size = 64m

sort_buffer_size = 1m

read_buffer = 2m

write_buffer = 2m

[mysqlhotcopy]

interactive-timeout

你好!MariaDB資料庫

我們最熟知的資料庫莫過於mysql,開源給了他親民的一面,但是它被甲骨文收購以後呢,mysql的能否繼續開源下去成了大家茶前飯後所顧慮的問題,同樣,mysql的創始人widenius 麥可 維德紐斯 先生也在擔心這個問題,他覺得依靠sun oracle來發展mysql,實在很不靠譜,於是決定另開分支...

安裝mariadb資料庫

如果直接使用yum y install mariadb 安裝mariadb可能會安裝之前的舊版本 安裝最新的mariadb 在 etc yum.repos.d 下面新建乙個mariadb.repo 的檔案,將下面的內容複製進去儲存退出即可 使用 yum y install mariadb 來安裝,m...

mariadb資料庫指令

yum search mariadb 查詢與mariadb相關的軟體包 yum install mariadb mariadb server y 安裝maridb的server軟體和client軟體 啟動mariadb服務 systemctl start mariadb systemctl enab...