Linux系统崩溃后怎么修复数据库
有时Linux系统崩溃了,尤其在工作电脑上,往往导致数据库数据丢失,需要马上修复,减少损失,本文就来介绍一下Linux系统奔溃后修复数据库技巧。
Linux系统奔溃后修复数据库技巧
问题描述与分析:
突然发现机器无法登录,感觉是远程中断了,马上接到电话,测试数据库无法使用。进入机房检查发现系统无法启动,报错:no such file or directory 。。。 这该如何是好,一个出身DBA的我要搞定系统的问题,还是要加强学习。网上的解决方案提示了我,要先用CD-ROM或U盘启动到系统的救援模式(rescue mode),然后扫描VG信息,手工激活VG卷,将LV挂载后将数据库所需文件通过网络或移动设备进行备份。之后大家就随意弄了。数据保住了,心情平静了一大半。
处理方法:
1. 使用CD-ROM或U盘启动到系统的救援模式rescue mode (这里指的是操作系统安装盘)
2. vgscan --扫描vg信息
3. vgdisplay --查看vg信息
4. vgchange -ay vg卷组名 --激活vg
5. lvdisplay --查看lv信息
6. mount 路径lv名 新挂载点 --挂载lv
7. 将挂载后的盘上的相关数据库内容通过网络与移动设备进行备份。
8. 修复操作系统或重新安装
9. 将备份的数据库文件COPY回正常系统
10 。 安装oracle软件并恢复数据库
总结:上述问题最好还是不要碰到,当然此故障也再一次提醒了我们DBA,备份的重要性。切记切记再切记。
补充:MySQL 数据库常用命令
create database name; 创建数据库
use databasename; 进入数据库
drop database name 直接删除数据库,不提醒
show tables; 显示表
describe tablename; 查看表的结构
select 中加上distinct去除重复字段
mysqladmin drop databasename 删除数据库前,有提示。
显示当前mysql版本和当前日期
select version(),current_date;
数据库维护方法
在MySQL使用的过程中,在系统运行一段时间后,可能会产生碎片,造成空间的浪费,所以有必要定期的对MySQL进行碎片整理。
当删除id=2的记录时候,发生的现象
这个时候发现磁盘的空间并没有减少。这种现象就叫做碎片化(有一部分的磁盘空间在数据删除以后(空),还是无法被操作系统所使用。)
常见的优化:
# alter table xxx engine myisam;
# optimize table t1;
注意: 在实际开发的过程中,上面两个语句尽量少使用,因为在使用的过程中,MySQL的表的结构会整体全部重新整理,需要消耗很多的资源,建议在凌晨两三点钟的时候执行。(在linux下有定时器脚本可以执行,crontab)
数据库修复相关文章: