SQL Server 2000之日记传送功效 - 描写(1)[MSSQL防范]
本文“SQL Server 2000之日记传送功效 - 描写(1)[MSSQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
角色变更、角色交换、以及监控服务器所在位置
??????? 当线上数据库停摆时(大概是筹划内保护工作,或是预期外的情况),假如还有备援服务器上的数据库可供存取,您大概会对比安心一点.一个计划杰出的日记传送系统(将数据库交易日记文件从主要服务器传送到备援服务器)便可赐与您这样的自大心.内建于 SQL Serve 2000 企业板与开辟版的 Enterprise Manager 工具程序即支持日记传送功效.
角色变更
??????? 将日记从主要服务器传送到次要服务器之后,您可在必要时以次要服务器置换掉主要服务器.假如主要服务器发生问题,或是筹划性停摆(比方进级硬件或安装改正程序),线上数据库就必须终止服务一段期间.此时您可以变更次要服务器上数据库之角色,让它代替主要服务器之后进而成为线上数据库.sql server 2000 线上手册(Books Online,BOL)将此项操作称为日记传送角色变更(log shipping role change).在日记传送历程里,次要服务器需设定在无法答复(nonrecovered)状况,因此交易日记才能从主要服务器回存到次要服务器(一但您将数据库答复,就不能再回存交易记录).变更角色时,您需将次要服务器的数据库予以答复,并标示其为新主要服务器数据库.您也可以将旧主要服务器数据库设定为新次要服务器数据库.假如旧主要服务器数据库并未破坏,那么便可以在新主要服务器与旧主要服务器(已变成新次要服务器)之间重新建置日记传送功效.这种切换方法我们称为角色交换(role reversal).
??????? 这些操作指引可订正为六个基本步骤,辨别为: 1、转移与汇出登入帐号,2、降级(demote)主要服务器,3、进级(promote)次要服务器,4、告诉监控服务器角色已变更,5、在次要服务器上解析登入帐号,6、以及连结数据库存取与权限.
??????? 步骤 1: 转移与汇出登入帐号 首先,BOL 倡议您成立一个SQL Server 2000 DTS封装(package),用来将主要服务器的登入帐号转移到次要服务器,且履行各服务器间登入帐号SID之解析行动.转移登入帐号所用的 DTS Transfer Logins Task只能在 SQL Server 2000 DTS Designer内利用.您可在主要服务器上成立与储存 DTS 封装,然后呼唤 dtsrun.exe 设定该封装的履行方法 — 透过主要服务器 SQL Server Agent 的工作(job).该封装履行时会将登入帐号从某服务器传送到另一服务器,但是它并不会解析其登入帐号的SID(在稍后步骤中会阐明为什么需解析登入帐号).但是,为了在稍后能顺利解析登入帐号,您必须先成立一个档案,其内包含主要服务器 syslogins 资料表的汇出资料.
??????? 汇出登入帐号到次要服务器时,BOL倡议您成立一个两阶段的SQL Server Agent工作:利用bcp汇出,以及复制登入帐号.在第一个步骤,您将利用原始情势的bcp将登入帐号汇出至某个档案.而在第二个步骤里,您必须将登入帐号复制到次要服务器的某个档案,以便稍后举行角色变更时可用来解析登入帐号.在步骤5您将利用 sp_resolve_logins 预存程序去解析次要服务器上登入帐号的SID.该工作成立完成后,便可以按期地履行(比方每晚履行一次).如此一来次要服务器上将随时保存最新的登入帐号汇出文件,以便举行日记传送角色变更.
??????? 步骤 2: 降级主要服务器 为了让主要服务器不再是日记传送系统的资料根源,您必须将它"降级".您可以降级主要服务器的根源数据库,让它变成潜在的次要服务器.然后在主要服务器上履行sp_change_primary_role 预存程序,目的是移除原有日记传送功效.程序代码列表1显示该预存程序若何把 Pubscopy 日记传送数据库从读/写情势更改成只读备援情势,预备随时承受交易日记之备份资料.该预存程序经过数个步骤后会在日记传送筹划内删除主要服务器数据库.传入的参数将告之预存程序需履行以下工作:备份近来一次的交易日记、完毕数据库内全部利用者联机、将数据库设定在备援状况与多利用者存取层级.预存程序的回传代码将标示 BACKUP LOG 论述句能否成功履行.
??????? 程序代码列表1:将日记传送数据库从读/写情势降级成只读情势之预存程序.
?????? 步骤 3: 进级次要服务器 下一个步骤是把目前次要服务器进级成答复状况(recovered state),这样它才能代替原先的线上数据库,且变成潜在日记传送主要服务器数据库.在次要服务器上,假如您已确认无任何利用者持续存取数据库,便可以履行 sp_change_secondary_role 预存程序,如程序代码列表2所示:?????? ?程序代码列表 2:将次要服务器数据库进级成主要服务器数据库之预存程序.
??????? 这些参数将促使该预存程序尝试将全部剩余的交易日记文件从原先主要服务器复制到次要服务器,并将这些日记文件加载次要服务器数据库.参数 @do_load=1 会举行近来一次备份,并加载全部交易日记文件;参数 @force_load=1 是在履行 sqlmaint.exe 时指定还没有文件化的 Forceload 选项;参数 @final_state=1 将新主要服务器数据库设定为答复情势;参数 @access_level 将存取方法设回先前多利用者状况.参数 @terminate=1 则促使该预存程序中止全部利用者的数据库存取行动 — 方法是履行 ALTER DATABASE 配合 IMMEDIATE 选项.但是,假如履行此预存程序时,您自己的 Enterprise Manager 与数据库间联机处于开启状况,ALTER DATABASE 行动将会失利.所以您必须以手动方法确认能否已将全部数据库联机予以中止.最后,假如该数据库被设定为数据库复写(replication)之出版者数据库(Publisher),那么 @keep_replication=0 参数将仍旧保持服务器上全部复写设定.
??????? 假定您曾挑选让次要服务器成为将来潜在的主要服务器,则数据库保护筹划会在次要服务器上建置一个交易日记备份工作(SQL Server Agent 的transaction-log backup job).该工作激活之后,交易日记备份文件就会开始呈目前新主要服务器.您需求这些档案去重新设定将日记传送回新次要服务器.
?
以上是“SQL Server 2000之日记传送功效 - 描写(1)[MSSQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |