仓酷云

标题: MYSQL教程之怎样举行MySQL数据库表的妨碍检测 [打印本页]

作者: 小女巫    时间: 2015-1-16 20:12
标题: MYSQL教程之怎样举行MySQL数据库表的妨碍检测
人们常说“成功孕育成功”,这种说法明显非常适合MySQL的情况。MySQL学习教程这个开源数据库号称在全世界有超过110万份的完全安装。你大概在利用MySQL过程当中,各类不测招致数据库表的破坏,并且这些数据常常是最新的数据,一般不成能在备份数据中找到。本章将报告怎样检测MySQL数据库表的妨碍。
表的妨碍检测和修改的一样平常历程以下:
◆反省堕落的表。假如该表反省经由过程,则完成义务,不然必需修复堕落的数据库表。
◆在入手下手修复之前对表文件举行拷贝,以包管数据的平安。
◆入手下手修单数据库表。
◆假如修复失利,从数据库的备份或更新日记中恢单数据。
在利用myisamchk或isamchk反省或修复表之前,应当起首注重:
◆创建数据库备份和利用更新日记,以防修复失利,丧失数据。
◆细心浏览本章内容今后再举行操纵,特别是不该该在浏览“制止与MySQL服务器交互感化”之行进行操纵。由于,在你没有充足的常识之前冒然操纵,大概会引发严峻的成果。
◆假如你在Unix平台上对表举行保护时,应当起首注册到公用的帐户mysql,以免对表读写会见发生一切权的成绩,和损坏数据库目次的一切权限。
数据库表的保护工具
MySQL的myisanchk和isamchk有用程序很相似,基础上它们具有一样的利用办法。它们之间的次要区分时所利用的表的范例。为了反省/修复MyISAM表(.MYI和.MYD),你应当利用myisamchk有用程序。为了反省/修复ISAM表(.ISM和.ISD),你应当利用isamchk有用程序。
◆为了利用任一个利用程序,应指明你要反省或修复的表,myisamchk和isamchk的利用办法为:

shell>myisamchkoptionstbl_nameshell>isamchkoptionstbl_name

假如你乐意,你能够在命令行定名几个表。
◆你也能指定一个名字作为一个索引文件(用“.MYI”或“.ISM”后缀),它同意你经由过程利用形式“*.MYI”或“.ISM”指定在一个目次一切的表。比方,假如你在一个数据库目次,你能够如许在目次下反省一切的表:

shell>myisamchk*.MYIshell>isamchk*.ISM

◆假如你不在数据库目次下,你可指定目次的路径:

shell>myisamchkoptions/path/to/database_dir/*.MYIshell>isamchkoptions/path/to/database_dir/*.ISM

◆你乃至能够经由过程为MySQL数据目次的路径指定一个通配符来感化于一切的数据库中的一切表:

shell>myisamchkoptions/path/to/datadir/*/*.MYIshell>isamchkoptions/path/to/database_dir/*/*.ISM

这个办法没法在windows平台下利用。
注重不管是myisamchk仍是isamchk都不合错误表地点的地位做任何判别,因而,应当大概在包括表文件的目次运转程序,大概指定表的路径名。这同意你将表文件拷贝到另外一个目次中并用该拷贝举行操纵。
反省数据库表
myisamchk和isamchk供应了表的反省办法,这些办法在完全反省表的水平方面有差别。
尺度的办法反省表
一般用尺度的办法就充足了。对表利用尺度的办法举行反省,不利用任何选项间接挪用便可,或用-s或--silent选项的任何一个:

myisamchktbl_nameisamchktbl_name

这能找出一切毛病的99.99%。它不克不及找出的是仅仅触及数据文件的破坏(这很不罕见)。
完整完全的数据反省
为了实行扩大反省,利用--extend-check或-e选项,这个选项反省数据:

myisamchk-etbl_nameisamchk-etbl_name

它做一个完整完全的数据反省(-e意义是“扩大反省”)。它对每行做每一个键的读反省以证明他们的确指向准确的行。这在一个有良多键的年夜表上大概花很长工夫。myisamchk一般将在它发明第一个毛病今后中断。假如你想要取得更多的信息,你能增添--verbose(-v)选项。这使得myisamchk或isamchk持续一向到最多20个毛病。在一样平常利用中,一个复杂的尺度反省(没有除表名之外的参数)就充足了。
中等水平的反省
指定选项--medium-check或-m

myisamchk-mtbl_name

中等水平的反省不如扩大反省完全,但速率快一些。其意义不年夜,较少利用。
假如关于--extend-check反省不呈报毛病,则能够一定表是无缺的。假如你仍旧感到表有成绩,那缘故原由一定在别的中央。应从头反省人亲睦像有成绩的查询以考证查询是准确誊写的。假如你以为成绩多是MySQL服务器的缘故原由,应当思索收拾一份妨碍呈报大概晋级到新的版本上。
大概有效的反省选项:
1.-i或―information打印统计信息,比方:

myisamchk-e-itbl_name

象后面的命令一样,可是-i选项告知myisamchk还打印出一些统计信息。
2.-C,--check-only-changed
只反省上一次反省后被修正的表
而且其固有的弹性使得它易于扩展以处理不断增长的需求,或当需求MySQL学习教程减弱时缩减规模。
作者: 若相依    时间: 2015-1-18 10:10
始终遗憾SQLServer的登陆无法分配CPU/内存占用等指标数。如果你的SQLServer给别人分配了一个只可以读几个表的权限,而这个家伙疯狂的死循环进行连接查询,会给你的系统带来很大的负担。
作者: 分手快乐    时间: 2015-1-30 22:17
以前的DTS轻盈简单。但是现在的SSIS虽然功能强大了很多,但是总是让人感觉太麻烦。看看论坛中询问SSIS的贴子就知道。做的功能太强大了,往往会有很多用户不会用了
作者: 小魔女    时间: 2015-2-6 16:23
需要注意的一点,也是我使用过程中发现的一个问题。在建立function->schema->table后,如果在现有的分区表上建立没有显式声明的聚集索引时,分区表会自动变为非分区表。这一点很让我纳闷。
作者: 因胸联盟    时间: 2015-2-17 06:01
你觉得我的非分区索引无法对起子分区,你可以提醒我一下呀!没有任何的提醒,直接就变成了非分区表。不知道这算不算一个bug。大家也可以试试。
作者: 变相怪杰    时间: 2015-3-5 16:54
varchar(max)\\\\nvarchar(max)类型的引入大大的提高了编程的效率,可以使用字符串函数对CLOB类型进行操作,这是一个亮点。
作者: 飘飘悠悠    时间: 2015-3-12 11:03
始终遗憾SQLServer的登陆无法分配CPU/内存占用等指标数。如果你的SQLServer给别人分配了一个只可以读几个表的权限,而这个家伙疯狂的死循环进行连接查询,会给你的系统带来很大的负担。
作者: 透明    时间: 2015-3-19 20:59
SQL语言是学习所有数据库产品的基础,无论你是做数据库管理还是做数据库开发都是这样。不过具体学习的侧重点要看你将来做哪一块,如果是做数据库管理(DBA),侧重点应该放在SQLServer的系统管理上.




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2