Linux分區(qū)只讀導(dǎo)致數(shù)據(jù)庫(kù)停止寫入數(shù)據(jù)怎么辦
通常我們利用數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù)和需要時(shí)候讀取。但是有網(wǎng)友在Linux服務(wù)器中,出現(xiàn)Linux分區(qū)只讀的現(xiàn)象,導(dǎo)致數(shù)據(jù)庫(kù)無法輸入數(shù)據(jù),遇到這種情況要如何處理呢?下面小編就給大家介紹下Linux分區(qū)只讀導(dǎo)致數(shù)據(jù)庫(kù)停止寫入數(shù)據(jù)的解決方法。
Linux分區(qū)只讀導(dǎo)致數(shù)據(jù)庫(kù)停止寫入數(shù)據(jù)怎么辦?
升級(jí)操作系統(tǒng)至SUSE Linux 11SP2版本。
服務(wù)器掛載的遠(yuǎn)端分區(qū)(從存儲(chǔ)上劃分的卷),一開始是直接就掃描不到PV/VG/LV等信息,必須要手工執(zhí)行PVSCAN/VGSCAN/LVSCAN命令才可以看到信息,后來不能隨系統(tǒng)自動(dòng)掛載,無論怎么修改fstab文件都沒反應(yīng)。
xxx-db:~ # more /etc/fstab
/dev/disk/by-id/cciss-3600508b1001c2b630be086f93f71f626-part1 swap swap defaults 0 0
/dev/disk/by-id/cciss-3600508b1001c230b6be086f39f71f626-part2 / ext3 acl,user_xattr 1 1
proc /proc proc defaults 0 0
sysfs /sys sysfs noauto 0 0
debugfs /sys/kernel/debug debugfs noauto 0 0
usbfs /proc/bus/usb usbfs noauto 0 0
devpts /dev/pts devpts mode=0620,gid=5 0 0
#/dev/oraclevg/oraclelv /oradata ext3 acl,user_xattr 1 2
/dev/oraclevg/oraclelv /oradata ext3 defaults 0 0
#/dev/mapper/36001438009b03d620000500000f90000 /oradata ext3 defaults 0 0
1、懷疑是文件分區(qū)表最后的校驗(yàn)參數(shù)過于嚴(yán)格,于是由原來的“1 2”直接修改為“0 0”,結(jié)果依然未能解決問題。
2、添加如下腳本
xxx-db:/etc/init.d # more /etc/init.d/after.local
pvscan
vgscan
lvscan
mount /dev/mapper/oraclevg-oraclelv /oradata
解決了文件系統(tǒng)自動(dòng)掛載問題,這個(gè)應(yīng)該是SUSE系統(tǒng)升級(jí)過程中的BUG。
3、之后,沒有再次出現(xiàn)分區(qū)只讀問題,說明系統(tǒng)升級(jí)已經(jīng)解決分區(qū)只讀問題,后續(xù)如果還有問題,我打算再找硬件工程師更新光纖卡驅(qū)動(dòng)和服務(wù)器固件。
補(bǔ)充:MySQL 數(shù)據(jù)庫(kù)常用命令
create database name; 創(chuàng)建數(shù)據(jù)庫(kù)
use databasename; 進(jìn)入數(shù)據(jù)庫(kù)
drop database name 直接刪除數(shù)據(jù)庫(kù),不提醒
show tables; 顯示表
describe tablename; 查看表的結(jié)構(gòu)
select 中加上distinct去除重復(fù)字段
mysqladmin drop databasename 刪除數(shù)據(jù)庫(kù)前,有提示。
顯示當(dāng)前mysql版本和當(dāng)前日期
select version(),current_date;
數(shù)據(jù)庫(kù)維護(hù)方法
在MySQL使用的過程中,在系統(tǒng)運(yùn)行一段時(shí)間后,可能會(huì)產(chǎn)生碎片,造成空間的浪費(fèi),所以有必要定期的對(duì)MySQL進(jìn)行碎片整理。
當(dāng)刪除id=2的記錄時(shí)候,發(fā)生的現(xiàn)象
這個(gè)時(shí)候發(fā)現(xiàn)磁盤的空間并沒有減少。這種現(xiàn)象就叫做碎片化(有一部分的磁盤空間在數(shù)據(jù)刪除以后(空),還是無法被操作系統(tǒng)所使用。)
常見的優(yōu)化:
# alter table xxx engine myisam;
# optimize table t1;
注意: 在實(shí)際開發(fā)的過程中,上面兩個(gè)語(yǔ)句盡量少使用,因?yàn)樵谑褂玫倪^程中,MySQL的表的結(jié)構(gòu)會(huì)整體全部重新整理,需要消耗很多的資源,建議在凌晨?jī)扇c(diǎn)鐘的時(shí)候執(zhí)行。(在linux下有定時(shí)器腳本可以執(zhí)行,crontab)