SQL Server 2005相对于SQL Server 2000来说,无论是性能还是功能都有一个相当大的提高,甚至可以用“革命”来形容这一次升级。SQL Server 2005使 SQL Server 跻身于企业级数据库行列。在数据高可用性方面,SQL Server 2005为用户提供了数据镜像、复制、故障转移群集、日志传送功能。本文向读者简单介结SQL Server 2005镜像功能。
作为一家“创意+整合+营销”的成都网站建设机构,我们在业内良好的客户口碑。创新互联建站提供从前期的网站品牌分析策划、网站设计、网站制作、成都网站设计、创意表现、网页制作、系统开发以及后续网站营销运营等一系列服务,帮助企业打造创新的互联网品牌经营模式与有效的网络营销方法,创造更大的价值。
一、镜像简介
数据库镜像是一个高可用性软件解决方案,为客户端提供小于10秒故障转移。每个数据库镜像配置均包含一个主体服务器(包含主体数据库)、一个镜像服务器(包含镜像数据库)和一个见证服务器,其中见证服务器是可选的。主体服务器和镜像服务器要求是独立的服务器实例。主体服务器和镜像服务器的角色是相对的,可以自动或者手动地将主体服务器设置为镜像服务器,镜像服务器设置为主体服务器。与主体服务器和镜像服务器不同的是,见证服务器并不能用于数据库。见证服务器监视主体服务器和镜像服务器,确保在给定的时间内这两个故障转移服务器中有且只有一个作为主体服务器,从而支持自动故障转移。如果存在见证服务器,同步会话将以“高可用性模式”运行,如果主体服务器出现故障,可以实现故障自动转移。如果见证服务器不存在,同步会话将以“高级别保护模式”运行,出现故障需要手动故障转移,并且有可能丢失数据。
图1:两台服务器镜像
图2:两台服务器镜像,一台见证服务器
数据库准备结束,端点创建完成,用户便可以启用数据库镜像。镜像启动后,每个伙伴都将开始维护所在数据库中有关其数据库,以及另一个伙伴和见证服务器的状态信息。这些状态信息允许服务器实例维护称为“数据库镜像会话”的当前关系。在数据库镜像会话过程中,服务器实例将通过彼此定期交换 PING 消息来互相监视。
1.SQL Server 节点1 Tonym 和 Tonym02必须位于同一域中,并且SQL1 和SQL2都要使用域账户启动SQL Server服务和SQLServerAgent服务。
保证同一个域帐户对两个服务都有权限.
2.在企业管理器中删掉local连接,应用Server Name注册本地服务器 Tonym,辅助服务器Tonym02
3.在SQL1 服务器上新建共享文件夹NorthwindBackupShare01,赋予启动SQL Server账户的Full 权限。在SQL1服务器上新建文件夹 ReceiveSQL2Logs,用来在进行数据库角色转换时接收从SQL2上传送过来的日志。 在SQL2 服务器上新建共享文件夹NorthwindBackupShare02,赋予启动SQL Server账户的Full 权限。在SQL2服务器上新建文件夹 ReceiveSQL1Logs,用来接收数据库SQL1上传送过来的日志。
4.设置想要应用Log Shipping的服务器为完全恢复模式。
5.在Database Maintenance Plans上右键 New maintenance Plan,选择进行LogShipping 的数据库,每次只允许选择一个数据库。
6.去掉Back up the database as part of the maintenance plan,保证维护计划唯一性(推荐)
7.指定数据库日志备份路径。
8.指定存放日志文件的共享文件夹。
8.添加目的数据库。
Server Name 为目的名称
Transaction Log Destination Directory 填写从SQL1上传送到SQL2上日志文件的接收路径.
Destination Database 选择新建数据库(指定数据文件,日志文件存放路径)或者应用已存在的数据库
Database Load State
No recovery mode:使用者将无法进行资料查询,只供备份使用.
Standby mode :设置成只读模式,只要不是进行日志回存的时候,都可以进行查询。
Terminate users in database(Recommended) :在回存数据库或是交易日志文件时,回存程序将是数据库唯一的使用者。
Allow database to assume primary role:允许主要服务器与次要服务器之间进行角色转换。
选择进行角色转换后新主要服务器的共享目录路径。
o
9.Initialize the Destination Database: 挑选最近一次的资料或是建立一份新的备份资料。对大型数据库,使用即有备份比较有效率。但是要保证从备份之后的日志都存在于主服务器上的日志共享目录中。
10.设定主服务器上日志备份频率。
11.设置辅助服务器复制备份日志和加载备份日志的频率,以及日志文件在辅助服务器上的留存时间。
12.针对日志备份及日志回存工作,设定合理的延迟时间,当超过临界时间时,日志传送监控程序对话框会相应一个警告信息。
13.指定监控服务器,应该指定独立于主服务器,辅助服务器的第三台服务器作为监控服务器,或者指定辅助服务器为监控服务器。
14.点击Next,指定维护计划的名称。Finish,开始进行Log shipping 的创建。
1.先分离数据库,然后删除日志文件,再附件数据库。
2.收缩文件,选择日志文件,设置将文件收缩到0M,试了一下,只能从65G收缩到55G,也就是只释放了未使用的空间。方法 二、
1.选中数据库,右键属性/选项,把恢复模式从“完整”改为“简单”。
2.选中数据库,右键任务/收缩文件,选择日志文件,设置将文件收缩为0M,确定。
3.再将恢复模式从“简单”-“完整”即可。
--------------------------------------------------
方案1: 所以可以执行以下sql语句:
DUMP TRANSACTION 你的数据库名 WITH NO_LOG
BACKUP LOG 你的数据库名 WITH NO_LOG
DBCC SHRINKDATABASE(你的数据库名)
EXEC sp_dboption '你的数据库名', 'autoshrink', 'TRUE'方案2:
在数据库的属性里-选择选项-恢复模式改为“简单”-勾选“自动收缩”。这样就可以自动进行数据库的收缩,推荐采用这种自动方式进行
--------------------------------------------------
SQLSERVER收缩事务日志
一、由于系统中录入及删除数据频繁,故事务日志很大。
SQLSERVER中讲:
BACKUP LOG 数据库名 WITH NO_LOG|TRUNCATE_ONLY可以截断事务日志。
但我在数据库中进行上述操作后,事务日志还是没有改变。
二、只有进行“数据库收缩”操作。
在此复选框中打勾
选中上图所示选项,即可点“确定“,执行收缩事务日志的操作,硬盘经过一段时间的工作后,SQLSERVER终于提示收缩成功。事务日志文件被恢复到原始尺寸。
综上所述,第一步只是将非活动的事务日志截断,并没有收缩数据库,只有进行第二项操作后,数据库才进行事务日志的清理工作,将截断的非活动事务删除,并将事务日志文件收缩到适当尺寸。
在使用 SQL Server 时,数据库里的日志文件会越来越大,需要把它删除。 我先把这个数据库分离,在数据库上点右键 - 所有任务 - 分离数据库,分离之后,就可以把 Log 文件删除,同时也可以把数据进行备份。之后,就可以在所有任务里的附加数据库再把那个数据库添进来,SQL Server 会提示 LOG 文件不存在,问你是不是要新建一个,选是就行了,这样,LOG 文件就清空了。 这个方法只需几分钟的时间,但在这几分钟里,就不能访问这个数据库了,我觉得只适用于小型的应用,对于大型的系统就要找其它方法了