Linux系統(tǒng)崩潰后怎么修復(fù)數(shù)據(jù)庫
有時(shí)Linux系統(tǒng)崩潰了,尤其在工作電腦上,往往導(dǎo)致數(shù)據(jù)庫數(shù)據(jù)丟失,需要馬上修復(fù),減少損失,本文就來介紹一下Linux系統(tǒng)奔潰后修復(fù)數(shù)據(jù)庫技巧。
Linux系統(tǒng)奔潰后修復(fù)數(shù)據(jù)庫技巧
問題描述與分析:
突然發(fā)現(xiàn)機(jī)器無法登錄,感覺是遠(yuǎn)程中斷了,馬上接到電話,測(cè)試數(shù)據(jù)庫無法使用。進(jìn)入機(jī)房檢查發(fā)現(xiàn)系統(tǒng)無法啟動(dòng),報(bào)錯(cuò):no such file or directory 。。。 這該如何是好,一個(gè)出身DBA的我要搞定系統(tǒng)的問題,還是要加強(qiáng)學(xué)習(xí)。網(wǎng)上的解決方案提示了我,要先用CD-ROM或U盤啟動(dòng)到系統(tǒng)的救援模式(rescue mode),然后掃描VG信息,手工激活VG卷,將LV掛載后將數(shù)據(jù)庫所需文件通過網(wǎng)絡(luò)或移動(dòng)設(shè)備進(jìn)行備份。之后大家就隨意弄了。數(shù)據(jù)保住了,心情平靜了一大半。
處理方法:
1. 使用CD-ROM或U盤啟動(dòng)到系統(tǒng)的救援模式rescue mode (這里指的是操作系統(tǒng)安裝盤)
2. vgscan --掃描vg信息
3. vgdisplay --查看vg信息
4. vgchange -ay vg卷組名 --激活vg
5. lvdisplay --查看lv信息
6. mount 路徑lv名 新掛載點(diǎn) --掛載lv
7. 將掛載后的盤上的相關(guān)數(shù)據(jù)庫內(nèi)容通過網(wǎng)絡(luò)與移動(dòng)設(shè)備進(jìn)行備份。
8. 修復(fù)操作系統(tǒng)或重新安裝
9. 將備份的數(shù)據(jù)庫文件COPY回正常系統(tǒng)
10 。 安裝oracle軟件并恢復(fù)數(shù)據(jù)庫
總結(jié):上述問題最好還是不要碰到,當(dāng)然此故障也再一次提醒了我們DBA,備份的重要性。切記切記再切記。
補(bǔ)充:MySQL 數(shù)據(jù)庫常用命令
create database name; 創(chuàng)建數(shù)據(jù)庫
use databasename; 進(jìn)入數(shù)據(jù)庫
drop database name 直接刪除數(shù)據(jù)庫,不提醒
show tables; 顯示表
describe tablename; 查看表的結(jié)構(gòu)
select 中加上distinct去除重復(fù)字段
mysqladmin drop databasename 刪除數(shù)據(jù)庫前,有提示。
顯示當(dāng)前mysql版本和當(dāng)前日期
select version(),current_date;
數(shù)據(jù)庫維護(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àn)樵谑褂玫倪^程中,MySQL的表的結(jié)構(gòu)會(huì)整體全部重新整理,需要消耗很多的資源,建議在凌晨?jī)扇c(diǎn)鐘的時(shí)候執(zhí)行。(在linux下有定時(shí)器腳本可以執(zhí)行,crontab)
數(shù)據(jù)庫修復(fù)相關(guān)文章: