学习啦>学习电脑>网络知识>网络技术>

Linux分区只读导致数据库停止写入数据怎么办

加城分享

  通常我们利用数据库存储数据和需要时候读取。但是有网友在Linux服务器中,出现Linux分区只读的现象,导致数据库无法输入数据,遇到这种情况要如何处理呢?下面小编就给大家介绍下Linux分区只读导致数据库停止写入数据的解决方法。

  Linux分区只读导致数据库停止写入数据怎么办?

  升级操作系统至SUSE Linux 11SP2版本。

  服务器挂载的远端分区(从存储上划分的卷),一开始是直接就扫描不到PV/VG/LV等信息,必须要手工执行PVSCAN/VGSCAN/LVSCAN命令才可以看到信息,后来不能随系统自动挂载,无论怎么修改fstab文件都没反应。

  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、怀疑是文件分区表最后的校验参数过于严格,于是由原来的“1 2”直接修改为“0 0”,结果依然未能解决问题。

  2、添加如下脚本

  xxx-db:/etc/init.d # more /etc/init.d/after.local

  pvscan

  vgscan

  lvscan

  mount /dev/mapper/oraclevg-oraclelv /oradata

  解决了文件系统自动挂载问题,这个应该是SUSE系统升级过程中的BUG。

  3、之后,没有再次出现分区只读问题,说明系统升级已经解决分区只读问题,后续如果还有问题,我打算再找硬件工程师更新光纤卡驱动和服务器固件。

  补充: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)


    4015139