对Exchange2007的数据库进行脱机碎片整理

对Exchange2007的数据库进行脱机碎片整理,第1张

在缺省情况下,Exchange 2007邮箱服务器在数据库维护期间会自动对邮箱数据库进行在线的整理。我们可以通过下面的方法来设置维护的时间。

1、 打开EMC,定位到服务器配置---邮箱,右键选中您要设置的数据库,选择属性,

2、 点击general栏,点击customize,如图1所示,您可以根据自己的实际需要来设置维护时间。

其实,我们也可以使用 Exchange Server 数据库实用程序 Eseutilexe /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 脱机碎片整理。在这种情况下,脱机碎片整理将检测到该错误,从而无法继续。

一、备份还原简介

数据库备份是 DBA 日常最重要的工作内容。备份的主要目的是数据容灾,保证数据的安全性,在数据库发生故障时,通过还原备份集,将数据恢复到可用状态。

下面主要讲一下以联机执行SQL 语句进行备份还原和脱机工具 DMRMAN 进行备份还原的方式。

二、归档配置

备份与恢复过程都依赖归档日志,归档日志是保证数据一致性和完整性的重要保障。配有归档日志的数据库系统在出现故障时丢失数据的可能性更小,这是因为一旦出现介质故障如磁盘损坏时,利用归档日志,系统可被恢复至故障发生的前一刻,也可以还原到指定的时间点。

使用如下语句检查DM归档是否开启:

select arch_mode from v$database

1

1

ARCH_MODE字段查询结果为“Y”表示已开启,如果为“N”,则DM数据库归档未开启。

或者查看配置文件dmini,参数ARCH_INI的值:1表示已开启归档,0表示未开启归档

可以使用如下系列命令开启归档模式。开启归档模式,需要确定归档类型、归档路径、归档文件大小、归档空间大小限制参数,根据实际情况进行设置。

alter database mount;

alter database add archivelog 'dest=/dmdata/dmarch/arch,TYPE=local,FILE_SIZE=1024,SPACE_LIMIT=102400';

alter database archivelog;

alter database open;

1

2

3

4

1

2

3

4

或者修改配置文件dmini中的参数ARCH_INI=1,在dmini所在目录中,创建dmarchini文件并添加以下内容后,重启数据库实例。

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL

ARCH_DEST = /dmdata/dmarch/arch

ARCH_FILE_SIZE = 1024

ARCH_SPACE_LIMIT = 102400

ARCH_FLUSH_BUF_SIZE = 0

ARCH_HANG_FLAG = 1

1

2

3

4

5

6

7

1

2

3

4

5

6

7

三、使用disql进行联机备份还原

使用 DIsql 工具备份数据库、用户表空间、用户表和归档,系统必须处于归档模式下时,才允许进行数据库联机备份且保证数据库处于 OPEN 状态。

1 备份数据库

11 完全备份

执行数据库备份,数据库必须处于 OPEN 状态,MOUNT 和 SUSPEND 状态下不允许执行数据库备份。

在disql 中输入备份数据库语句,最简单的不设置其他参数的完全备份语句如下:

指定备份集路径为“/home/dm_bak/db_full_bak_01”

BACKUP DATABASE FULL BACKUPSET ‘/home/dm_bak/db_full_bak_01’;

这是最简单的数据库备份语句,如果要设置其他的备份选项需了解联机备份数据库的语法。 详细请参考《DM8备份与还原pdf》中的32211 概述。

12 设置备份名

系统为每个备份指定一个备份名,它可作为识别备份的一种方式。备份时用户可以采用系统生成的备份名也可以指定属于自己的备份名。

创建备份集,备份名设置为“WEEKLY_FULL_BAK”。

13 增量备份

增量备份指基于指定的库(或者表空间)的某个备份(完全备份或者增量备份),备份 自该备份以来所有发生修改的数据页。执行增量备份的主要目的是快速备份数据库中的修改, 减少备份时间和避免重复的备份。

在disql 中输入备份数据库语句,最简单的不设置其他参数的增量备份语句如下:

BACKUP DATABASE INCREMENT WITH BACKUPDIR ‘/home/dm_bak’ BACKUPSET ‘/home/dm_bak/db_increment_bak_02’;

2 表空间备份

21 完全备份

表空间备份就是拷贝表空间内所有数据文件中的有效数据的过程。DM 仅支持表空间联机备份,完全备份一个表空间步骤如下:

在 disql 中输入备份表空间语句,最简单的不设置其他参数的完全备份表空间语句:

BACKUP TABLESPACE MAIN FULL BACKUPSET ‘/home/dm_bak/ts_full_bak_01’;

22 增量备份

执行表空间增量备份的主要目的同数据库增量备份一样是为了快速备份数据库中的修改,减少备份时间和避免重复的备份。

在disql 中输入备份表空间语句,最简单的不设置其他参数的增量备份语句如下:

BACKUP TABLESPACE MAIN

INCREMENT WITH BACKUPDIR ‘/home/dm_bak’

BACKUPSET ‘/home/dm_bak/ts_increment_bak_02’;

3 表备份

表备份拷贝指定表所使用的所有数据页到备份集中,并记录各个数据页之间的逻辑关系用来恢复表数据结构。表备份均为联机完全备份,不需要备份归档日志,不存在增量备份之说。当数据库中某张表比较重要而又没必要备份整个数据库或表空间时就可以选择表备份。完整的备份表步骤如下:

1如有需要,可创建待备份的表 TAB1: SQL>CREATE TABLE TAB1(C1 INT);

2在disql 中输入备份表语句,简单的备份语句如下:

BACKUP TABLE TAB1 BACKUPSET ‘/home/dm_bak/tab_bak_01’;

4 归档备份

归档备份拷贝指定归档目录下的所有的归档文件到备份集中,并记录各个归档文件的属性、文件大小以及 LSN 区间等。归档备份不存在增量备份之说。当需要保存库的归档时,可以使用归档备份。

在disql 中输入备份数据库语句。

通过 LSN BETWEEN … AND …来指定起始和截至 LSN。

首先,确定 LSN 范围。:

select ARCH_LSN, CLSN, PATH from V$ARCH_FILE;

通过查询结果选出备份的起始 LSN 和截至 LSN。比如 36766 38135

其次,备份归档:

BACKUP ARCHIVELOG LSN BETWEEN 36766 AND 38135 BACKUPSET ‘/home/dm_bak/arch_bak_time_36766-38135’;

5 数据还原

DM 仅支持表的联机还原,数据库、表空间和归档日志的还原必须通过脱机工具 DMRMAN执行。

51 表还原

执行表还原,数据库必须处于 OPEN 状态,MOUNT 和 SUSPEND 状态下不允许执行表还原。表还原不需要配置归档,因为表还原是联机完全备份还原,所以不需要借助本地归档日志进行恢复。

表结构还原:

表备份和目标表中都包含索引,如果直接执行表数据还原会报错:还原表中存在二级索引或冗余约束。

创建待备份的表;

create table tab1 (a int, b varchar);

备份表数据;

BACKUP TABLE tab1 BACKUPSET ‘/home/dm_bak/tab1_bak_01’;

表结构还原:

RESTORE TABLE tab1 STRUCT FROM BACKUPSET

‘/home/dm_bak/tab1_bak_01’;

表数据还原:

RESTORE TABLE tab1 FROM BACKUPSET

‘/home/dm_bak/tab1_bak_01’

还原表数据,但不重建索引:

RESTORE TABLE tab1 WITHOUT INDEX

FROM BACKUPSET ‘/home/dm_bak/tab1_bak_01’;

还原表数据,但不还原约束:

RESTORE TABLE tab1 WITHOUT CONSTRAINT

FROM BACKUPSET ‘/home/dm_bak/tab1_bak_01’;

四、使用 DMRMAN工具进行脱机备份还原

1 备份数据库

11 完全备份

执行数据库备份要求数据库处于脱机状态。若是正常退出的数据库,则脱机备份前不需

要配置归档;若是故障退出的数据库,则备份前,需先进行归档修复。

备份到默认目录:

RMAN>BACKUP DATABASE '/dmdata/dmdb/DAMENG/dmini';

--命令执行完后会在默认的备份路径下生成备份集目录,默认的备份路径为 dmini 中BAK_PATH 的配置值,若未配置,则使用 SYSTEM_PATH 下的 bak 目录。

1

2

1

2

备份到指定目录:

RMAN>BACKUP DATABASE '/dmdata/dmdb/DAMENG/dmini' FULL BACKUPSET '/home/dm_bak/db_full_bak_01';

1

1

12 增量备份

增量备份指基于指定的库的某个备份(完全备份或者增量备份),备份自该备份以来所有发生修改了的数据页。脱机增量备份要求两次备份之间数据库必须有 *** 作,否则备份会报

错。

RMAN>BACKUP DATABASE '/dmdata/dmdb/DAMENG/dmini' INCREMENT WITH BACKUPDIR '/home/dm_bak'BACKUPSET '/home/dm_bak/db_increment_bak_02';

--命令中的 INCREMENT 参数表示执行的备份为增量备份,增量备份时该参数不可省略。如果增量备份的基备份不在默认备份目录中,则必须指定 WITH BACKUPDIR 参数用于搜索基备份集。

1

2

1

2

2 备份归档

21 创建归档备份

使用 DMRMAN 备份归档需要设置归档,否则会报错。关闭数据库实例。

备份到默认目录:

RMAN>BACKUP ARCHIVE LOG DATABASE '/dmdata/dmdb/DAMENG/dmini';

--命令执行完后会在默认的备份路径下生成备份集目录,默认的备份路径为 dmini 中BAK_PATH 的配置值,若未配置,则使用 SYSTEM_PATH 下的 bak 目录。

1

2

1

2

备份到指定目录:

RMAN>BACKUP ARCHIVE LOG ALL DATABASE '/dmdata/dmdb/DAMENG/dmini' BACKUPSET

'/home/dm_bak/arch_all_bak_01';

--命令中的 ALL 参数表示执行的备份为备份所有的归档,也可以不指定该参数,DMRMAN默认执行的备份类型为 ALL 类型归档备份。

1

2

3

1

2

3

22 创建设置条件的归档备份

设置条件的归档备份指通过设置 LSN 或者时间点,控制需要备份归档的范围。

RMAN>BACKUP ARCHIVE LOG LSN BETWEEN 50000 AND 120000 DATABASE '/dmdata/DAMENG/dmini' BACKUPSET '/home/dm_bak/arch_lsn_bak_02';

1

1

3 数据库还原和恢复

使用 RESTORE 命令完成脱机还原 *** 作,在还原语句中指定库级备份集,可以是脱机库级备份集,也可以是联机库级备份集。

31 还原数据库

RMAN>RESTORE DATABASE '/dmdata/dmdb/DAMENG_FOR_RESTORE/dmini' FROM BACKUPSET '/home/dm_bak/db_full_bak_for_restore';

1

1

32数据库恢复

RMAN>RECOVER DATABASE '/dmdata/dmdb/DAMENG_FOR_RESTORE/dmini' FROM BACKUPSET '/home/dm_arch/arch';

--使用 RECOVER DATABASEUNTIL TIME 命令恢复到指定的时间:

RMAN>RECOVER DATABASE '/opt/dmdbms/data/DAMENG_FOR_RESTORE/dmini' WITH ARCHIVEDIR'/home/dm_arch/arch' UNTIL TIME'2018-11-16 10:56:40';

--使用 RECOVER DATABASEUNTIL LSN 命令恢复到指定的 LSN

RMAN>RECOVER DATABASE '/opt

以上就是关于对Exchange2007的数据库进行脱机碎片整理全部的内容,包括:对Exchange2007的数据库进行脱机碎片整理、发布后脱机再联机数据库不存在、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9771571.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存