因胸联盟 发表于 2015-1-16 20:09:04

绝无经由的MySQL重定位数据库目次的内容

“通过有能力的DBA的一个简单计划,MySQL可以达到令人难以想像的运行速度,”一位资深DBA如此表示。MySQL中没有多余的功能来拖累CPU或占用内存。一切数据库和形态文件都包括在个中。可是,在断定数据目次内容的结构中办理员有某些职责。本文会商为何要挪动数据目次的各个部分(乃至是字典自己)、能够挪动甚么,和如何举行这些挪动。

◆MySQL同意您重定位个中的数据目次或元素。如许做有几个缘故原由:
◆能够用比缺省定位的文件体系更年夜的容量在文件体系中安排数据目次。
◆假如数据目次在忙碌的磁盘上,能够将其安排到较少利用的驱动器上,以均衡物理设备之间的磁盘举动。为了相似的缘故原由,能够将数据库和日记文件放在分歧的驱动器上,或在驱动器之间对数据库举行再散布。
◆您能够运转多个服务器,而且每一个服务器都有属于本人的数据目次。这是一种办理总历程文件形貌符限定成绩的办法,特别是当不克不及从头设置体系的中心以失掉更高的限定值时。
◆某些体系将PID文件保留在诸如/var/run的目次中。为了体系运作的分歧性,您能够将MySQLPID文件也放在那边。
重定位办法

有两种对数据目次重定位的办法:

◆能够在命令行或在一个选项文件的组上,在服务器启动工夫指定一个选项。

◆能够挪动要重定位的内容,然后在原始的地位中做一个指向新地位的symlink(symboliclink,标记链接)。

两种办法的任何一种都不克不及为您举行全体的重定位事情。表5-3综合了可重定位的内容和可用于重定位的办法。

假如您利用一个选项文件,能够指定在全局选项文件/etc/my.cnf(Windows中的c:my.cnf)中的选项。以后的Windows版本还会见体系目次(c:windows或c:WINNT)。

您还可使用缺省数据目次的选项文件my.cnf(该目次编译在服务器中)。笔者不倡议利用此文件。假如要重定位数据目次自己,必需坚持缺省数据目次的完全性,以便在数据目次中安排一个选项文件,该文件将申明服务器应当在那里找到“真正”的数据目次!真乱。假如想要用一个选项文件来指定服务器的选项,则最好利用/etc/my.cnf。

重定位数据目次

如今申明重定位数据库目次的办法与步骤。

1、封闭服务器,比方:

$mysqladminCuroot-pshutdown

2、将数据库目次挪动到新的地位

3、然后删除本来的数据库

4、假如用symlink办法(Unix平台上),比方:

$lnCsNEWDIRDATADIR

DATADIR是尺度的数据库目次的地位,也是本来的数据库目次路径

假如用起动选项的办法,能够如许启动:

$safe_mysqld--basedir=/path/to/dir/&(Unix)
$mysqld--basedir=x:datadir(Windows)

假如用选项文件的办法:

在/etc/my.cnf(Unix)大概c:my.cnf(Windows)中到场:


datadir=/path/to/dir/

5、从头启动数据库
重定位数据库

重定位数据库只能经由过程symlink办法,因而windows平台没法重定位数据库。为了重定位数据库,应封闭数据库,挪动数据库的目次。删除本来的数据库目次,用指向新地位的symlink来取代她,然后启动服务器。

上面用一个实践的例子DD备份bigdbDD申明这个历程:

$mysqladminCurootCp
$cdDATADIR
$tarcfbigdb|(cd/var/db;tarxf)
$mvbigdbbigdb.old
$lnCsvar/db/bigdb.
$safe_mysqld&

应当以数据库目次一切者的身份实行这些命令。服务器事情一般以后,能够删除备份目次bigdb.old:
$rmCrfbigdb.old
重定位数据库表
对单个数据库表从头定位并非出格有效,偶然反而会形成很年夜的贫苦。能够经由过程将表的文件挪动到另外一个地位不再该书据库目次中创立指向这些文件的symlink来举行。办法相似于重定位数据库的办法。
可是,假如已经公布过ALTERTABLE或OPTIMIZETABLE语句,则所做的这些重定位事情将被作废。其缘故原由就不先容了。
重定位形态文件
形态文件中PID文件、惯例日记褐更新日记,能够用起动选项大概选项文件的办法从头定位。毛病日记由safe_mysqld创立且不克不及够从头定位,除非编纂safe_mysqld剧本。
为了在另外一个地位写形态文件,因封闭服务器,然后用制订新形态文件地位的得当选项启动他。
启动选项:
--pid-file=pidfilePID文件
--log=logfile惯例日记
--log-update=updatefile更新日记
选项文件

pid-file=pidfile
log=logfile
log-update=updatefile
形态文件的定名划定规矩:
1、假如以相对路径指定一个形态文件的称号,则用该路径创立改文件。
比方,你指定―pid-file=/var/run/mysqld.pid,则该PID文件的就是/var/run/mysqld.pid
2、假如你只给出文件名,则文件在数据库目次下创立。
比方,你指定―pid-file=mysqld.pid则该PID文件为DATADIR/mysqld.pid
3、假如没有给出文件,则形态文件利用缺省的名字。
如许做将告知服务器启用形态文件,这对PID文件没成心义,由于服务器老是利用它。比方:
$safe_mysqld--log--log-update&
大概,利用选项文件:

log
log-update
关于惯例日记,将天生DATADIR/hostname.log文件,hostname是运转服务器的主机名。关于更新日记,天生DATADIR/hostname.nnn的按次文件。
4、关于更新日记,假如指定一个没有扩大名的更新日记,则MySQL在翻开该更新日记是将天生数据的名字。这些名字用.nnn扩大名创立,这里的.nnn是违反已有的更新日记文件利用过的第一个号码(如,hostname.001、hostname.002等等)。能够经由过程指定明白的扩大名来疏忽按次名字的天生,然后服务器将仅利用您指定的名字。
总结
在本节中你将学到怎样从头定位数据库目次,和形态文件等。你大概必要重定位的内容有:
1、数据库目次
2、数据库
3、形态文件,包含惯例日记,更新日记等
重定位的办法有:
1、标记链接
2、指天命令行参数
3、利用选项文件
MySQL已经为支持所有最流行的Web2.0语言做好了准备,诸如Ruby、Ajax等,当然还有PHP。有的业界分析师说过,“每一个Web2.0公司实质上就是一个数据库公司。

飘灵儿 发表于 2015-1-18 18:14:43

我是新手,正在学习数据库和操作系统,深感理论的泛广,唯有一步一步来,但是又感觉时间不够,收集了很多资料却总是没能认真的看完,希望有一个讨论板块,大家共同解决,共同分享,共同努力

分手快乐 发表于 2015-1-27 15:42:07

如果处理少量数据,比如几百条记录的数据,我不知道这两种情况哪个效率更高,如果处理大量数据呢?比如有表中有20万条记录.

第二个灵魂 发表于 2015-2-5 13:13:52

SQLServer的异构移植功能个人感觉最好了。(如果对比过SQLServer的链接服务器和Oracle的透明网关的朋友会发现SQLServer的sp_addlinkedserver(openquery)异构数据库系列比Oracle真是强太多了。)

小妖女 发表于 2015-2-11 23:55:51

光写几个SQL实在叫无知。

简单生活 发表于 2015-3-2 20:52:29

可以动态传入参数,省却了动态SQL的拼写。

海妖 发表于 2015-3-11 06:26:01

至于淘汰的问题,只能说在你的项目周期之内,微软应该都不会倒闭。

灵魂腐蚀 发表于 2015-3-17 22:32:57

从底层原理到表层引用,书籍多的很。个人认为没有什么那本书好?这样的说法。主要看和个人的学习方法是否适合。
页: [1]
查看完整版本: 绝无经由的MySQL重定位数据库目次的内容