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