教你轻松掌握终止数据库恢复过程 |
| [ 作者:佚名 转贴自:网络转载 阅读次数:97 更新时间:2007-10-4 12:51:00 录入:刘光勇 ] 热 |
|
|
|
当某一正常运行的大事务(例如:update、delete操作)被终止,且重新启动server后,运行该事务的数据库处于恢复状态,通常这种状态会持续很长时间,当在此恢复过程中没有出现任何异常时,建议用户耐心等待恢复过程完成。同时我们提供以下方法来终止此恢复过程,但请用户注意这些操作将带来数据的不一致性。必要时,希望用户用完整、可靠的数据库备份恢复此数据库。 Rq\IrC+ (1) 启动Backup Server, 后备master数据库(这一步很重要!) Dhb@xvH ^)v :5*} 1>dump database master to "/usr/sybase/master.dup" V(Ua& 2>go 5aI3hQ|I- bh zSP`j9@ (2) 用isql登录到SQL Server, 须用sa帐号 (本文以pubs2数据库为例) dDswW 8/:$KQS[ 1>sp_configure "allow updates", 1 wI ibY/ 2>go W nDiT" 1>begin tran GSmm -g 2>go VFcS\!`f 1> use master $19MP VL 2> go Y1y/wS= 1>update sysdatabases Xo7:s})@ 2>set status = -32768 :#Jz|R}K 3>Where name="pubs2" w][^_&vR[r 4>go ^YOjK/=;Z -9I6Cpb,u 如果得到(1 row affected),则 }baxKdWP `597?S#s 1>commit iaDd}f}` 2>go s-5D>c_ F}8FXo 否则 9pJBGymr| p\`!Fk?@ 1>rollback zK<68 2>go + %"zG& {XM.mOw+ (3)这时重新启动SQL Server, 使用bcp工具将该数据库(本例中为pubs2)内的全部数据导出备份(这一步很重要!) L~D?]kP`? +{(D-Opo:] (4)以sa帐号登录到SQL Server,执行下面操作: /,6Gq zd ;v$}|Us}\9 1>dump tran pubs2 with no_log (|BxS/z 2>go o"c{&s.` 1>begin tran 8n&J 2>go pSJ,Z@vZ 1> use master E 2PFnue 2> go H(5J 1>update sysdatabases < i6\pY 2>set status=0 CFFZ$M@ 3>Where name="pubs2" 8yJJ9Q2E 4>go Cn=A@TVJ `vijqOJ} 如果得到(1 row affected),则 9we` B}` 2_ gR\:?jt 1>commit &GrKJ+N:u 2>go PpVD#Z$] qjVkNMv @ 否则 v)<0a/'! (T6v ] Z< 1>rollback ErmMp+)@ 2>go %Vj`ORfv jl>s _kJd? 1>sp_configure "allow updates" ,0 &2-MkR 2>go ]YN nV?mW 3 @ysn 0: (5) 重新启动server RG /v[%%? .N5oWw| (6) 如果你的数据库原来有dboption(例如"select into","trunc log on chkpt"等), 你需要重新设置这些option.. $-dI@/G I1DZ`D (7) 当数据库已经恢复可使用状态后,运行dbcc命令检查数据库的一致性(参照"如何检查数据库中数据一致性"文章) _}jx+L jPz*Y (8) 后备用户数据库 Upw)g ,Yq1kJZ6C 例如: q {SM|"q 1>dump database pubs2 to "/usr/sybase/pubs2.dup" b.Fz 2>go
|
|
|
|