SQL SERVER 2005 镜像数据库截断并收缩日志文件的思路和操作

主机操作:
1、alter database [DB_NAME] set partner off; ##DB_NAME:数据库名##
2、全备数据库 ##使用图形界面操作,备份日志是操作前的保障准备##
命令行的方式:backup database [DB_NAME] to disk='d:\backup\before\fullbackup01.bak'
3、以with no_log选项下备份数据库日志 ##备份日志文件,一方面是对日志作一次操作前的备份,另一方面是截断日志##
使用图形界面操作
使用命令:
use master
backup log [DB_NAME] to disk='d:\backup\before\log_backup.bak' with no_log;

4、alter database [DB_NAME] set recovery simple; ##要允许DBCC SHRINKFILE命令收缩文件,先要将数据库恢复模式设置为 SIMPLE 来截断该文件##
5、dbcc shrnkfile ([DB_NAME],[size}); ##收缩日志,size是收缩后的事务日志的大小##
6、alter database [DB_NAME] set recovery full; ##将数据库切换为完整模式##
7、全备数据库数据,拷贝至备机 ##此备份用于备机重新建立镜像使用##
命令行的方式:backup database [DB_NAME] to disk='d:\backup\before\fullbackup02.bak'


备机操作:
8、使用主机步骤8备的数据库全备进行恢复,注意恢复时选择norecovery
使用图形界面操作
使用命令:restore database [DB_NAME] from disk='d:\backup\before\fullbackup02.bak' with norecovery



备机操作: ##将备机恢复为镜像关系中的镜像##
9、alter database [DB_NAME] set partner='tcp://主机IP:端口号;


主机操作: ##将主机恢复为镜像关系中的主体##
10、alter database [DB_NAME]set partner='tcp://备机IP:端口号;


至此,操作完成。
关于这个思路有以下几个问题:
1、第2步,完成全库备份,初衷是在操作前将数据库完整备份,以备后面不测时的恢复,但同时数据库日志已经截断,那么第3步是否还有必要呢?
2、第4步,将数据库改为简单恢复模式,初衷是为了能够使用DBCC SHRINKFILE命令,但数据恢复模式由完全变为简单之后,是否会有其他副作用?
3、第5步,收缩后日志文件的目标大小size取值,应该怎么去量化到最优?

4、对于镜像架构下的日志文件截断与收缩,是否有不需要断开镜像关系来做的方法?

你可能感兴趣的:(sql,server)