“星河摇缀”通过精心收集,向本站投稿了8篇对Exchange 的数据库进行脱机碎片,下面就是小编给大家整理后的对Exchange 的数据库进行脱机碎片,希望您能喜欢!
- 目录
篇1:对Exchange 的数据库进行脱机碎片
在缺省情况下,Exchange 2007邮箱服务器在数据库维护期间会自动对邮箱数据库进行在线的整理,我们可以通过下面的方法来设置维护的时间。
1、打开EMC,定位到服务器配置---邮箱,右键选中您要设置的数据库,选择属性,
2、点击general栏,点击customize,您可以根据自己的实际需要来设置维护时间。
其实,我们也可以使用 Exchange Server 数据库实用程序 Eseutil.exe /D,以脱机方式对数据库进行碎片整理和压缩。碎片整理选项可形成连续的已用存储空间,释放不用的存储空间,并压缩数据库,从而减小数据库文件的大小。
一、Eseutil 碎片整理的工作原理
在碎片整理过程中,Eseutil 将新建一个数据库,该数据库包含原数据库中的所有信息。碎片整理完成后,将删除原数据库或将其保存到用户指定的位置,然后将新版本重命名为原名称。如果该工具遇到错误记录,则将停止并显示错误消息。
执行脱机碎片整理时,Exchange 会生成一个数据库文件的临时副本。数据库文件中的表将被保留并复制到临时数据库中,但会丢弃空页并重建索引。因为此操作将更改数据库中的物理页码,所以,不会原封不动地复制页。页之间的页链接将全部更新,并会对数据库中保留的所有页进行完整性检查。
二、数据库碎片整理所需的时长
完成碎片整理所需的时长取决于数据库的空白空间数量,与数据库文件的大小无关。例如,对同样包含 10 GB 数据的 100 GB 数据库和 11 GB 数据库进行碎片整理,所用的时间几乎相同。
默认情况下,碎片整理完成之后,临时数据库将自动成为新的生产数据库,原生产数据库文件将被删除。如果相同逻辑驱动器上拥有与原数据库文件大小相同的可用空间,则可明显缩短碎片整理所需的时间。在这种情况下,临时数据库可以放在相同的逻辑驱动器上,最终副本几乎瞬时完成。
建议不要使用网络驱动器存储临时数据库。如果使用网络驱动器存储临时数据库,则将延长碎片整理所需的时间,并且任何暂时或永久的网络错误都将导致碎片整理过程终止。而由于碎片整理不可恢复,所以必须从头重新开始。
注意:只需要与碎片整理后的文件最终大小相同的额外逻辑驱动器磁盘空间。尽管无法精确地预测将回收的磁盘空间量,但仍应以 110%(建议值)的比例保留可用磁盘驱动器空间。
三、何时运行 脱机碎片整理命令
1. 数据库中存在大量可以回收并且不会再使用的可用空间。
2. 存在影响数据库文件索引的 ESE -1018 错误。在这种情况下,脱机碎片整理会重建索引。运行脱机碎片整理可以有效地消除此类损坏。
3. 数据库文件已使用 Eseutil /P 进行修复,
运行了修复之后,应对数据库文件执行 Eseutil 脱机碎片整理。
4. 驻留在 Exchange 2007 中心传输服务器或边缘传输服务器上的队列数据库文件上出现邮件风暴。邮件风暴是指大量邮件,其填满传输队列的速度超过了传输服务可以达到的电子邮件处理速度。此行为使队列中填满了邮件,队列数据库将根据需要进行扩展。处理了风暴中的邮件并对数据库运行了联机碎片整理之后,部分可用空间会保留在数据库中。若要回收此可用空间并缩小数据库,则可运行 Eseutil /D 执行脱机数据库碎片整理。
四、何时不应该运行 脱机碎片整理命令
不应将运行 Eseutil 脱机碎片整理作为任何类型的标准维护活动。Exchange 会在夜间运行自动联机碎片整理,处理 Exchange 的日常维护。对于日常维护、月度维护或年度维护,都不需要运行脱机碎片整理。
如果数据库未处于一致状态,则不应运行 Eseutil 碎片整理。
如果可将邮箱移动到某个可用数据库,则不应运行 Eseutil 脱机碎片整理。这样做可以减少最终用户的停机时间。因为脱机碎片整理是通过脱机方式完成的,所以在碎片整理过程中,用户将无法访问其邮箱。为了减少对最终用户的影响,建议您通过执行移动邮箱操作,将邮箱移动到其他可用数据库。
如果 ESE -1018 错误影响了数据库文件的数据部分,则不应运行 Eseutil 脱机碎片整理。在这种情况下,脱机碎片整理将检测到该错误,从而无法继续。
五、如何对邮箱服务器上的 Exchange 数据库进行碎片整理
1. 在 Exchange 管理控制台中,右键单击要进行碎片整理的数据库,然后单击“卸除数据库”。
2. 在命令提示符下,指向 bin 位置。
3. 输入下面的命令,然后回车,这时系统对数据库进行整理,并出现进度提示,
eseutil /d “E:exchange servermailboxfirst stroage groupMailbox Database.edb”
您需要将first stroage group替换为时间的储存组名称,Mailbox Database替换为实际邮箱数据库名称。
4. 当该命令完成后,系统会提示您对数据库执行一次完整的备份。
六、若要对 Exchange 数据库进行碎片整理,同时保证临时文件完好无损,可在命令提示符下运行以下命令:
eseutil /d “E:exchange servermailboxfirst stroage groupMailbox Database.edb” /p
此命令可能非常有用,因为它可以保证原始数据库完好无损,不会覆盖原始数据库。此选项会增大碎片整理所需的可用磁盘空间大小。这是因为需要为两个额外的 Exchange 数据库副本提供空间。
篇2:WIN技巧:对Exchange的数据库进行脱机碎片
在缺省情况下,Exchange 2007邮箱服务器在数据库维护期间会自动对邮箱数据库进行在 线的整理,我们可以通过下面的方法来设置维护的时间。
1、打开EMC,定位到服务器配置---邮箱,右键选中您要设置的数据库,选择属性,
2、点击general栏,点击customize,如图1所示,您可以根据自己的实际需要来设置维护时间。
图1
其实,我们也可以使用 Exchange Server 数据库实用程序 Eseutil.exe /D,以脱机方式对数据库进行碎片整理和压缩。碎片整理选项可形成连续的已用存储空间,释放不用的存储空间,并压缩数据库,从而减小数据库文件的大小。
一、Eseutil 碎片整理的工作原理
在碎片整理过程中,Eseutil 将新建一个数据库,该数据库包含原数据库中的所有信息。碎片整理完成后,将删除原数据库或将其保存到用户指定的位置,然后将新版本重命名为原名称。如果该工具遇到错误记录,则将停止并显示错误消息。
执行脱机碎片整理时,Exchange 会生成一个数据库文件的临时副本。数据库文件中的表将被保留并复制到临时数据库中,但会丢弃空页并重建索引。因为此操作将更改数据库中的物理页码,所以,不会原封不动地复制页。页之间的页链接将全部更新,并会对数据库中保留的所有页进行完整性检查。
二、数据库碎片整理所需的时长
完成碎片整理所需的时长取决于数据库的空白空间数量,与数据库文件的大小无关。例如,对同样包含 10 GB 数据的 100 GB 数据库和 11 GB 数据库进行碎片整理,所用的时间几乎相同。
默认情况下,碎片整理完成之后,临时数据库将自动成为新的生产数据库,原生产数据库文件将被删除。如果相同逻辑驱动器上拥有与原数据库文件大小相同的可用空间,则可明显缩短碎片整理所需的时间,
在这种情况下,临时数据库可以放在相同的逻辑驱动器上,最终副本几乎瞬时完成。
建议不要使用网络驱动器存储临时数据库。如果使用网络驱动器存储临时数据库,则将延长碎片整理所需的时间,并且任何暂时或永久的网络错误都将导致碎片整理过程终止。而由于碎片整理不可恢复,所以必须从头重新开始。
注意:只需要与碎片整理后的文件最终大小相同的额外逻辑驱动器磁盘空间。尽管无法精确地预测将回收的磁盘空间量,但仍应以 110%(建议值)的比例保留可用磁盘驱动器空间。
三、何时运行 脱机碎片整理命令
1. 数据库中存在大量可以回收并且不会再使用的可用空间。
2. 存在影响数据库文件索引的 ESE -1018 错误。在这种情况下,脱机碎片整理会重建索引。运行脱机碎片整理可以有效地消除此类损坏。
3. 数据库文件已使用 Eseutil /P 进行修复。运行了修复之后,应对数据库文件执行 Eseutil 脱机碎片整理。
4. 驻留在 Exchange 2007 中心传输服务器或边缘传输服务器上的队列数据库文件上出现邮件风暴。邮件风暴是指大量邮件,其填满传输队列的速度超过了传输服务可以达到的电子邮件处理速度。此行为使队列中填满了邮件,队列数据库将根据需要进行扩展。处理了风暴中的邮件并对数据库运行了联机碎片整理之后,部分可用空间会保留在数据库中。若要回收此可用空间并缩小数据库,则可运行 Eseutil /D 执行脱机数据库碎片整理。
四、何时不应该运行 脱机碎片整理命令
不应将运行 Eseutil 脱机碎片整理作为任何类型的标准维护活动。Exchange 会在夜间运行自动联机碎片整理,处理 Exchange 的日常维护。对于日常维护、月度维护或年度维护,都不需要运行脱机碎片整理。
如果数据库未处于一致状态,则不应运行 Eseutil 碎片整理。
如果可将邮箱移动到某个可用数据库,则不应运行 Eseutil 脱机碎片整理。这样做可以减少最终用户的停机时间。因为脱机碎片整理是通过脱机方式完成的,所以在碎片整理过程中,用户将无法访问其邮箱。为了减少对最终用户的影响,建议您通过执行移动邮箱操作,将邮箱移动到其他可用数据库。
如果 ESE -1018 错误影响了数据库文件的数据部分,则不应运行 Eseutil 脱机碎片整理。在这种情况下,脱机碎片整理将检测到该错误,从而无法继续。
篇3:用WinContig对单个文件进行碎片
电脑使用时间长了,硬盘里的文件资料就会越来越多,如果你经常移动、删除文件,很容易导致同一个文件分散在不连续的磁盘扇区,产生所谓的磁盘碎片问题,定期进行磁盘整理是很有必要的,XP系统内置的磁盘碎片整理工具效率太低,如果你只想对经常使用的磁盘扇区进行整理,可以使用名为 WinContig”的免费小软件 ,它能够针对硬盘中的某一个文件夹或文件进行操作,不必每次都要处理整个硬盘,使用起来非常方便。
下载地址:WinContig
小贴士:进入程序的主操作界面后,笔者建议首先点选菜单栏上的“Option”→“Languge”→“Chinese Simplifed”,将软件界面切换为中文界面。
第一步:在程序的菜单栏上依次点寻选项”→“管理方案”,里面分为“快速”和“精确”等两种整理模式。根据笔者的测试发现,使用“精确”模式,整理的速度依然非常快,而且也能对单个硬盘或整部电脑的多个硬盘一次性进行整理,建议大家首选这种整理模式,
此外,用户还可在“选项”→“磁盘清理” 中设置碎片整理前先进行磁盘清理。笔者建议点寻自动”一项,可让WinContig软件帮你清理掉磁盘中的一些垃圾文件再进行碎片整理,这样工作效率会更高。
第二步:由于WinContig能够对单个文件夹或文件进行碎片整理,因此接下来用户可创建一个整理列表。在程序界面上工具栏的“新建”下拉菜单中点寻添加文件”或者“添加文件夹”,找到需要整理的内容即可。如果用户刚刚添加的文件夹中有一些不需整理的子文件夹或文件,你还可以将它们排除出去。具体方法是:在程序菜单栏中点寻工具”→“管理排除列表”,将想排除的项目添加到排除列表中。并在随后弹出的“排除文件/文件夹”窗口内单击“添加文件夹”或“添加文件”按钮即可。在正式进行整理之前,WinContig程序会弹出一个对话框提示是否先检查磁盘容量错误,建议大家不要跳过这一步,点寻检查磁盘”按钮很快就能检查完毕。
第三步:此时,程序还会不厌其烦地再次弹出一个对话框,询问用户整理前需不需要清除垃圾文件(如缓存文件),以恢复磁盘空间。点寻开始磁盘清理”按钮,可将垃圾文件先清除掉来加快整理效率。等待一会儿,用户会看到整理完成的报告,告知你整理过的文件资料以及无法整理的文件列表。最后有一点要提醒大家的是,如果刚刚你所建立的整理文件列表中的文件或程序正在运行,必须先将其关闭,不然有可能会造成该文件无法被整理。
篇4:对所有表进行类似处理数据库教程
eg1:
大家知道,如果将一个表所有者改为dbo,只需
sp_changeobjectowner '表名','dbo'即可
但要将所有的表的所有者都改为dbo,可以用循环处理,此处略
其实用SQL的系统存储过程sp_MSForEachTable可以轻松搞定
只需exec sp_MSForEachTable 'sp_changeobjectowner ''?'', ''dbo'''
当然,可能运行时会有错(比如有些表的所有者原先就是dbo),不用理它,运行一遍就行了,
eg2:
所有表都加上一个自增长的字段
大家知道对一个表加的话只需: alter table 表名 add iid int identity(1,1)
若需对所有的表都加的话只需: sp_MSForEachTable 'alter table ? add iid int identity(1,1)'
同理,删除所有表中的iid字段只需 sp_MSForEachTable 'alter table ? drop column iid'
当然,可能运行时会有错(比如加字段时该表中已有该字段,删除字段时没有该字段),不用理它,运行一遍就行了,
eg3:
对所有表中的num字段进行四舍五入处理
sp_MSForEachTable 'update ? set num = round(num,2)'
当然,可能运行时会有错(比如有些表中没有num字段),不用理它,运行一遍就行了。
篇5:如何实现对数据库单个字段进行加密数据库教程
加密|数据|数据库
create view v_rand
as
select c=unicode(cast(round(rand*255,0) as tinyint))
go
create function f_jmstr(@str varchar(8000),@type bit)returns varchar(8000)
/*
*参数说明
*str:要加密的字符串或已经加密后的字符
*type:操作类型--0加密--解密
*返回值说明
*当操作类型为加密时(type--0):返回为加密后的str,即存放于数据库中的字符串
*当操作类型为解密时(type--1):返回为实际字符串,即加密字符串解密后的原来字符串
*/
As
begin
declare @re varchar(8000)--返回值
declare @c int--加密字符
declare @i int
/*
*加密方法为原字符异或一个随机ASCII字符
*/
if @type=0--加密
begin
select @c=c,@re='',@i=len(@str) from v_rand
while @i>0
select @re=nchar(unicode(substring(@str,@i,1))^@c^@i)+@re
,@i=@i-1
set @re=@re+nchar(@c)
end
else--解密
begin
select @i=len(@str)-1,@c=unicode(substring(@str,@i+1,1)),@re=''
while @i>0
select @re=nchar(unicode(substring(@str,@i,1))^@c^@i)+@re ,@i=@i-1
end
return(@re)
end
go
--测试
declare @tempstr varchar(20)
set @tempstr=' 1 2 3aA'
select dbo.f_jmstr(dbo.f_jmstr(@tempstr,0),1)
输出结果
1 2 3aA
(完)
篇6:一个对数据库进行操作的程序(之三)Unix系统
弄错了一个,还是补起来吧! chaxun. php : form. name=form1 method=post action=chaxun.php table width=200 border=0 tr th scope=row é /th td input type=text name=ID/td /tr /table /form. hr size=1 ? include(../db.func); if (!empty($ID)) { $rows
弄错了一个,还是补起来吧!
chaxun.php:
²éѯ
include(“../db.func”);
if (!empty($ID)) {
$rows = GetRows( “pcadmin”, “Select * From Profile where ID='$ID'” );
if ( $row =mysql_fetch_row($rows) ) {
echo “”;
echo “”;
for ( $K=0 ; $K < count($row); $K++ ) {
echo “
}
echo “”;
echo “”;
echo “Update”;
echo “”;
echo “”;
echo “”;
echo “”;
echo “Delete”;
echo “”;
echo “”;
echo “”;
echo “”;
}
}
?>
原文转自:www.ltesting.net
篇7:无法对这个卷上的某些文件进行碎片
问:我用的是Windows XP系统,最近整理硬盘碎片时,整理到中途就不能继续下去了,弹出窗口说“无法对这个卷上的某些文件进行碎片整理”,不知是什么原因?
答:出现这种现象的原因有两种。一是文件本身存在错误,你必须先进行磁盘扫描纠正这些文件错误,
还有一种原因就是整理磁盘碎片的时候,依然有程序在后台运行,当整理到这些运行程序的文件时,当然无法继续进行。
建议你按“Ctrl+Alt+Del”组合键调出任务管理器,将依然在运行的程序全部关闭,然后重新开始碎片整理。
篇8:怎样对SQL数据表和数据库进行迭代操作存储过程
本文介绍了master数据库中两个非常有用但在SQL Server在线教科书中没有提到的存储过程,
这些系统过程对于处理以下任务非常方便,如判断使用的存储空间大小、行数、用户表索引
等等。第一个过程sp_MSForEachDB对于感兴趣的服务器上的每个数据库执行三条命令。
@command1:第一个执行的命令
@replacechar:用另一个占位赋替换“?”
@command2:第二个执行的命令
@command3:第三个执行的命令
@precommand:进入循环前执行的命令
@postcommand:循环结束后执行的命令
每个命令集(即使该集合只含有一条命令)作为一个批处理对每个数据库执行,
所以当我们要将捕获的结果输出到文本而不是标准结果集表时,这将非常有用。
为了实现这一要求,选择菜单中的查询按钮|输出结果|输出到文本或者按快捷键[Ctrl]T。
下面的代码返回服务器上每个数据库中用户数据表的数目:
exec sp_MSForEachDB@command1 = “use ? exec sp_SpaceUsed”
The abbreviated output looks like this:简短输出可能如下:
数据库名数据库大小未分配空间大小
--------------------- ------------------
master 5.25 MB1.26 MB
reserved data index_size unused
------------------ ------------------
2808 KB 1144 KB 1080 KB 584 KB
第二个过程sp_MSForEachTable接受7个参数:
@command1:第一个执行的命令
@replacechar:用另一个占位符替换“?”
@command2:第二个执行的命令
@command3:第三个执行的命令
@whereand:Where条件语句 (或 Order By 语句)
@precommand:进入循环前执行的命令
@postcommand:循环结束后执行的命令
通过对要传递的参数命名,可以跳过传递空值的要求,
当要执行的命令中含有
一个问号时,参数@replacechar十分有用。@whereand参数的实现可以根据过滤
器缩小输出的范围。
你还可以加入一个ORDER BY语句。下面的例子返回AdventureWorks数据库中每个
数据表的行数,并按照数据表明对它们排序:
exec sp_MSForEachTable@command1 = “Print '?'”,
@command2 = “select count(*) from ?”, @whereand = “ORDER BY 1”
下面是输出结果:
[HumanResources].[Department]-----------
16[HumanResources].[Employee]-----------290[HumanResources].
[EmployeeAddress]-----------290[HumanResources].
[EmployeeDepartmentHistory]-----------296
关 键 字:MYSQL
★ 碎片优秀作文
★ 碎片作文550字
★ 离开碎片化作文
★ 碎片化阅读作文
对Exchange 的数据库进行脱机碎片(通用8篇)




