跨承租人移动的承租人数据的恢复的制作方法

文档序号:6367407阅读:102来源:国知局
专利名称:跨承租人移动的承租人数据的恢复的制作方法
技术领域
本发明涉及数据存储,尤其涉及跨承租人移动的承租人数据的恢复。
背景技术
承租人数据可以因各种原因被移至不同的位置。例如,承租人数据可以在升级场时、在承租人数据需要更多空间等等时被移动。在这些情况下,作出承租人数据的新备份。

发明内容
提供本发明内容以便以简化形式介绍将在以下具体实施方式
中进一步描述的一些概念。本发明内容并非旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用 于帮助确定所要求保护的主题的范围。保持承租人数据的位置的历史。承租人数据包括当前正在被承租人使用的数据和相应的备份数据。当承租人的数据从一个位置被改变为另一个位置时,将位置和时间存储至历史中,该历史可被访问以确定承租人数据在指定时刻的位置。不同的操作触发了位置/时间在历史内的存储。一般而言,改变承租人数据的位置的操作触发了该位置在历史内的存储(例如,场的升级、承租人的移动、添加承租人、数据的负载平衡等)。当操作(例如,还原)需要承租人数据时,可以访问该历史以确定数据的位置。


图I示出了示例性计算环境;图2示出了用于跨承租人移动而保持承租人数据的位置的系统;图3示出包括承租人数据位置变化的记录在内的历史;图4示出用于更新承租人数据位置改变历史的过程;以及图5示出用于处理从备份位置还原承租人数据的请求的过程。
具体实施例方式现将参考附图来描述各实施例,在附图中类似的标号代表类似的元素。具体地,图I和相应的讨论旨在提供对在其中可实现各实施例的合适计算环境的简要、概括描述。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构和其它类型的结构。也可使用其它计算机系统配置,包括手持式设备、多处理器系统、基于微处理器或可编程消费电子产品、小型计算机、大型计算机等等。还可使用在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境。在分布式计算环境中,程序模块可位于本地和远程存储器存储设备两者中。现在参考图1,将描述在各个实施例中所利用的计算机100的说明性计算机环境。图I所示的计算机环境包括计算设备,这些计算设备各自可以被配置为移动计算设备(例如,电话、平板电脑、上网本、膝上型电脑)、服务器、台式计算机、或者某一其他类型的计算设备,并且包括中央处理单元5 ( “CPU” )、包括随机存取存储器9 ( “RAM” )和只读存储器(“R0M”)10的系统存储器7、以及将存储器耦合至中央处理单元(“CPU”)5的系统总线12。基本输入/输出系统存储在ROM 10中,所述基本输入/输出系统包含帮助在诸如启动期间在计算机内元件之间传递信息的基本例程。计算机100还包括大容量存储设备14,该大容量存储设备14用于存储操作系统16、应用24、web浏览器25、以及备份管理器26,这将在下面予以更详细的描述。
大容量存储设备14通过连接至总线12的大容量存储控制器(未示出)连接到CPU 5。大容量存储设备14及其相关联的计算机可读介质为计算机100提供非易失性存储。虽然此处包含的对计算机可读介质的描述针对诸如硬盘或CD-ROM驱动器等大容量存储设备,但是计算机可读介质可以是能够由计算机100访问的任何可用介质。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质包括以存储如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术来实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质还包括,但不限于,RAM、ROM、可擦除可编程只读存储器(“EPR0M”)、电可擦可编程只读存储器(“EEPR0M”)、闪存或其它固态存储器技术、⑶-ROM、数字多功能盘(“DVD”)或其它光存储、磁带盒、磁带、磁盘存储或其它磁性存储设备、或能用于存储所需信息且可以由计算机100访问的任何其它介质。计算机100使用通过诸如因特网之类的网络18与远程计算机的逻辑连接而在网络化环境中操作。计算机100可以通过连接至总线12的网络接口单元20来连接到网络18。网络连接可以是无线的和/或有线的。网络接口单元20也可用于连接到其它类型的网络和远程计算机系统。计算机100还可包括用于接收和处理来自多个其他设备的输入的输入/输出控制器22,这些设备包括键盘、鼠标或者电子指示笔(未在图I中示出)。类似地,输入/输出控制器22可以为显示屏23、打印机或其它类型的输出设备提供输入/输出。如前简述的那样,多个程序模块和数据文件可以被存储在计算机100的大容量存储设备14和RAM 9内,包括适于控制计算机的操作的操作系统16,如华盛顿州雷蒙德市的微软公司的WINDOWS 7 、WINDOWS SERVER 或WINDOWS PHONE 7 操作系统。大容量存储设备14和RAM 9还可以存储一个或多个程序模块。具体而言,大容量存储设备14和RAM9可以存储包括一个或多个应用24和web浏览器25的一个或多个应用程序。根据一实施例,应用24是被配置成与在线服务交互的应用,所述在线服务诸如为不同承租人提供服务的解决方案服务的商业点。也可以使用其他应用。例如,应用24可以是被配置成与数据交互的客户端应用。应用可以被配置成与许多不同类型的数据交互,包括但不限于文档、电子表格、幻灯片、笔记等。网络存储27被配置成存储承租人的承租人数据。网络存储27可通过IP网络18对一个或多个计算设备/用户来说可访问。例如,网络存储27可以为诸如在线服务17等在线服务存储一个或多个承租人的承租人数据。其他网络存储也可以被配置成存储承租人的数据。承租人数据也可以从一个网络存储移至另一个网络存储。备份管理器26被配置成将承租人数据的位置保持在诸如历史21等历史内。备份管理器26可以是诸如在线服务17等在线服务的一部分,并且备份管理器26所提供的全部/一些功能可以位于应用内部/外部。承租人数据包括当前正在被承租人使用的数据和相应的备份数据。当承租人的数据从一个位置被改变为另一个位置时,将位置和时间保存至历史21中,该历史21可被访问以确定承租人数据在指定时刻的位置。不同的操作触发了位置/时间在历史内的存储。一般而言,改变承租人数据的位置的操作触发了该位置在历史内的存储(例如,场的升级、承租人的移动、添加承租人、数据的负载平衡等)。当操作(例如,还原)需要承租人数据时,可以访问该历史以确定数据的位置。下面公开了与备份管理器相关的更多细节。图2示出了用于跨承租人移动而保持承租人数据的位置的系统。如图所示,系统200包括服务210、数据存储220、数据存储230和计算设备240。所使用的计算设备可以是被配置成执行与计算设备的使用有关的操作的任何类型的计算设备。例如,这些计算设备中的一些可以是移动计算设备(例如,蜂窝电话、平板计算机、智能电话、膝上型计算机等等);一些可以是台式计算设备,其他计算设备可以被配置为服务器。一些计算设备可以被安排为提供基于云的在线服务(例如服务210);—些计算设备可以被安排为提供数据存储服务的数据共享,一些计算设备可以被安排在本地网 络中;一些计算设备可以被安排在可通过因特网访问的网络中,等等。计算设备通过网络18被耦合。网络18可以是许多不同类型的网络。例如,网络18可以是IP网络、用于蜂窝通信的载波网络等等。一般而言,网络18用于在诸如计算设备240、数据存储220、数据存储230和服务210之类的计算设备之间传送数据。计算设备240包括应用242、Web浏览器244以及用户界面246。如图所示,用户使用计算设备240与诸如服务210等服务交互。根据一实施例,服务210是多承租服务。一般而言,多承租是指顾客间的数据(包括备份)、使用、管理的隔离。换言之,即使来自每个承租人的数据可以被存储在同一数据存储内的同一数据库中,来自一个顾客(承租人I)的数据也不可被另一顾客(承租人2)访问。用户界面(n) 246用于与对于计算设备240可以是本地/非本地的各个应用交互。可以使用一种或多种类型的一个或多个用户界面来与文档交互。例如,UI 246可以包括上下文菜单、菜单栏内的菜单、选自条带用户界面的菜单项、图形菜单等等的使用。一般而言,UI 246这样配置,使得用户可以容易地与应用的功能交互。例如,用户可以仅仅选择UI 246内的选项来选择还原服务210所保持的承租人数据。数据存储220和数据存储230被配置成存储承租人数据。数据存储可由各个应用计算设备访问。例如,网络存储可以与支持解决方案服务的在线商业点的在线服务相关联。例如,在线服务可以提供数据服务、字处理服务、电子表格服务等。如图所示,数据存储220包括N个不同承租人的承租人数据,承租人数据包括相应的备份数据。数据存储可以存储承租人数据的全部/部分。例如,一些承租人可以使用多于一个数据存储,而其他承租人与许多其他承租人共享该数据存储。尽管同一个数据存储内示出了承租人的相应的备份数据,但是该备份数据可以被存储在其他位置。例如,可以使用一个数据存储来存储承租人数据,可以使用一个或多个其他数据存储来存储相应的备份数据。数据存储230示出承租人数据的位置被改变,备份数据从一个不同的数据存储被改变。在当前例子中,承租人数据2和相应的备份数据已经从数据存储220改变至数据存储230。承租人3的备份数据已经从数据存储220改变成数据存储230。承租人数据8已经从数据存储220改变成数据存储230。位置改变可以出于各种原因而发生。例如,承租人可以需要更多空间,数据存储可以被负载平衡,承租人所处的场可以被升级,数据存储可以发生故障,数据库可以被移动/升级,等等。许多其他场景可以造成承租人的数据发生改变。从当前例子可见,承租人的数据可以被存储在一个数据存储中,相应的备份数据可以被存储在另一个数据存储中。服务210包括备份管理器26、历史212以及包括Web呈递器216在内的Web应用214。服务210被配置为一在线服务,该在线服务被配置成提供与显示与来自多个承租的数据的交互有关的服务。服务210为多个承租人提供共享的基础设施。根据一个实施例,月艮务210是微软公司的SHAREPOINT ONLINE服务。不同的承租人可以使用服务210来主存他们的web应用/站点集合。承租人也可以仅使用专用服务或者与服务210所提供的服务结合使用。web应用214被配置为用于接收和响应与数据相关的请求。例如,服务210可以访问存储在网络存储220和/或网络存储230上的承租人的数据。Web应用214可用于向诸如计算设备240之类的计算设备的用户提供界面以便与可通过网络18访问的数据交互。 Web应用214可以与用于执行和服务有关的操作的其他服务器通信。服务210从诸如计算设备240这样的计算设备接收请求。计算设备可以向服务210发送请求以便与文档和/或其他数据交互。响应于这一请求,web应用214从诸如网络共享230这样的位置获得数据。要显示的数据被转换成诸如IS0/IEC 29500格式这样的标记语言格式。数据可以由服务210或由一个或多个其他计算设备来转换。一旦web应用214已经接收到了数据的标记语言表示,服务就利用web呈递器216把经标记语言格式化的文档转换成数据的可以由web浏览器应用(比如计算设备240上的web浏览器244)呈递的表示。所呈递的数据看上去与用于查看相同数据的相应桌面应用的输出基本上类似。一旦Web呈递器216已经完成了文件的呈递,则其被服务210返回到请求方计算设备,在那里,其可由Web浏览器244呈递。Web呈递器216还被配置为向标记语言文件中呈递一个或多个脚本以用于允许诸如计算设备240之类的计算设备的用户与web浏览器244的上下文中的数据交互。Web呈递器216可用于将可由web浏览器应用244执行的脚本代码呈递到所返回的网页中。这些脚本例如可以提供用于允许用户改变数据段和/或修改与数据相关的值的功能。响应于某些类型的用户输入,这些脚本可以被执行。当脚本被执行时,可以向服务210传送如下响应该响应指示文档已经被操作;标识出已经进行的交互的类型;以及还向web应用214标识出应当对数据执行的功能。响应于造成承租人数据位置改变的操作,备份管理器26将条目置于历史212内。历史212保持承租人数据和相应的备份数据的位置的记录。根据一实施例,历史212存储数据库名称和用于存储承租人数据的位置、承租人数据的备份位置的名称和位置、数据被存储在该位置的时间(见图3和相关讨论)。历史信息可以以各种方式被存储。例如,每个承租人的历史记录可以被存储在数据库内,历史信息可以被存储在数据文件内,等等。根据一实施例,备份管理器26被配置成执行承租人数据的完全备份、以及在完全备份时刻之间的增量备份和事务日志条目。完全备份的时间表是可配置的。根据一实施例,完全备份每周执行,增量备份每日执行、事务每五分钟被存储一次。其他时间表也可被使用,并且可以是可配置的。不同的备份可以被存储在相同位置和/或不同位置。例如,完全备份可以被存储在第一位置,增量备份和事务日志可以被存储在不同的位置。图3示出包括承租人数据位置变化的记录在内的历史。历史300包括正在被管理的每个承租人的记录。出于示例目的,历史300示出承租人I (310)、承租人2 (320)和承租人8 (330)的历史记录。如图所示,历史记录310响应于承租人I被添加而被创建。根据一实施例,历史记录包括内容位置、时间、备份位置和时间的字段。内容位置提供了和承租人内容被存储在何处有关的信息(例如,数据库名称、到内容位置的URL等)。时间I字段指明承租人数据最近一次位于指定位置处的时间。根据一实施例,当时间I字段为空时,时间2值用于该记录。当时间I字段和时间2字段均为空时,数据仍位于记录中所列的内容位置和备份位置处。备份位置字段指明了内容的备份所位于的位置。时间2字段指明承租人的备份数据最 近一次位于指定位置处的时间。参照承租人I的历史(310)可见,承租人I的数据位于内容位置“Content 12”(例如,数据库的名称)处,承租人I的数据的备份数据位于“backups\ds220\Content 12”处。该情况下,承租人I的数据的位置自承租人I被添加以来未改变。承租人2的数据的位置从“Content 12”改变为“Content 56”又改变为“Content79”。在2010年3月4日上午10点以前、2010年I月2日上午1:04以后,数据被存储在 “Content 56”,相应的备份数据被存储在 “backups\ds220\Content 56”。在 2010 年 I月2日上午1:04以前,数据被存储在“Content 12”,相应的备份数据被存储在“backups\ds220\Content 12”。承租人3的数据的位置从“Content 12”改变为“Content 15”。相应的备份数据已经从 “backups\ds220\Content 12” 改变为 “backups\ds220\Content 15” 又改变为“backups\ds230\Content 79”。在2010年3月12日上午7:35以后,承租人3的数据被存储在“Content 15”。在2010年3月24日上午1:22以前、2010年3月12日上午7:35以后,相应的备份数据被存储在“backups\ds220\Content 15”。在2010年3月12日上午7:35以前,数据被存储在“Content 12”,相应的备份数据被存储在“backups\ds220\Content12”。在当前例子中,在承租人3的承租人数据的位置未从“Content 15”发生改变的情况下,承租人3的备份数据的位置发生改变。可以使用许多其他方式来存储和承租人数据的位置有关的信息。例如,时间字段可以包括开始时间和结束时间、开始时间和无结束时间、或结束时间和无开始时间。位置可以被指定为名称、标识符、URL等。也可以包括其他字段,诸如大小字段、记录数量字段、上一次访问字段等。图4和5示出用于跨承租人移动还原承租人数据的说明性过程。当阅读对在此提供的例程的讨论时,应当理解,各实施例的逻辑操作被实现为(I)运行于计算系统上的一系列计算机实现的动作或程序模块,和/或(2)计算系统内互连的机器逻辑电路或电路模块。该实现是取决于实现本发明的计算系统的性能要求来选择的。因此,所例示的并且构成此处所描述的实施例的逻辑操作被不同地表示为操作、结构设备、动作或模块。这些操作、结构设备、动作和模块可用软件、固件、专用数字逻辑,及其任何组合来实现。图4示出用于更新承租人数据位置改变历史的过程。
在开始框之后,过程400移至操作410,在那里确定操作是否已改变了承租人数据的位置。改变可以涉及承租人数据的全部/部分。许多不同的操作可以造成承租人数据位置的改变。例如,添加承租人、场升级、承租人移动、承租人数据的负载平衡、相应备份数据的负载平衡、保持操作、故障等。一般而言,确定造成承租人数据和/或相应备份数据改变位置的任何操作。流至操作420,访问其数据正在改变位置的承租人的历史。历史可以在本地数据存储、共享数据存储和/或某一其他存储器位置内被访问。移至操作430,更新承租人的历史以反映承租人数据的当前状态和任何先前状态。根据一实施例,每个承租人包括指示其相应历史的表格。历史可以使用许多不同方法来存储,所述不同方法使用了许多不同类型的结构。例如,历史可以被存储在存储器、文件、电子表格、数据库中。历史记录也可以在数据存储内混杂,诸如在列表、电子表格等内。根据一实施例,历史记录包括内容位置、时间、备份位置和时间的字段。内容位置提供了和承租人内容被存储在何处有关的信息(例如,数据库名称、到内容位置的URL等)。时间I字段指明承租人数据最近一次位于指定位置处的时间。根据一实施例,当时间I字段为空时,时间 I值与时间2字段相同。当时间I字段和时间2字段为空时,数据仍位于内容位置和备份位置处。备份位置字段指明了内容的备份所位于的位置。时间2字段指明承租人的备份数据最近一次位于指定位置处的时间。随后该过程行进到结束框,并返回以处理其它动作。图5示出用于处理从前一位置还原承租人数据的请求的过程。在开始框之后,过程移至操作510,在那里接收还原承租人数据的请求。例如,承租人可能偶然删除了他们希望还原的数据。根据一实施例,请求包括指明他们何时相信他们已删除数据的时间。根据另一实施例,可以赋予时间范围。根据还有一个实施例,可以在不在请求内提供时间的情况下,搜索承租人历史内的每个位置来寻找数据。流至操作520,访问承租人的历史以确定数据位于何处。如上面所讨论的,历史包括承租人数据和相应备份数据的当前位置、以及数据的每个先前位置。移至操作530,承租人的数据被还原至临时位置,使得承租人的当前数据不被不期望的先前数据所覆写。转至操作540,所请求的数据从临时位置被提取,并且被还原至承租人数据的当前位置。临时位置处的数据可以被擦除。随后该过程流至结束框,并返回以处理其它动作。以上说明、示例和数据提供了对本发明的组成部分的制造和使用的全面描述。因为可以在不背离本发明的精神和范围的情况下做出本发明的许多实施例,所以本发明落在所附权利要求的范围内。
权利要求
1.一种用于跨承租人移动还原承租人数据的方法,包括 确定改变承租人数据的位置的操作(410); 响应于改变承租人数据的位置的操作,通过添加承租人数据的当前位置来更新承租人数据的历史(430);以及 在被请求时,访问历史(420)以确定承租人数据的前一位置。
2.如权利要求I所述的方法,其特征在于,所述历史响应于以下中的至少一个被更新以下至少一个的负载平衡承租人数据和备份数据;承租人移动;响应于场升级(410)。
3.如权利要求I所述的方法,其特征在于,更新历史包括存储和承租人数据相对应的备份数据的位置(430)。
4.如权利要求3所述的方法,其特征在于,所述备份数据包括承租人数据的完全备份、承租人数据的增量备份、和承租人数据的事务日志备份(300)。
5.如权利要求I所述的方法,其特征在于,更新历史包括包括一时间,该时间指明承租人数据从前一位置移至当前位置(300)。
6.如权利要求5所述的方法,其特征在于,还包括通过基于指定时间与历史内时间的比较来访问位置,来确定承租人数据的前一位置(300)。
7.如权利要求I所述的方法,其特征在于,还包括将数据还原至临时位置并且从临时位置提取所请求的数据,并且将所提取的数据置于承租人数据的当前位置中(530)。
8.一种存储用于跨承租人移动还原承租人数据的计算机可执行指令的计算机可读存储介质,包括 确定改变承租人数据的位置的操作(410); 更新承租人数据的历史以包括承租人数据的当前位置(430),其中所述历史包括承租人数据已经被存储的每个位置以及当前位置的记录,每个记录包括承租人数据位置、承租人数据的备份位置、以及指明数据何时位于各个位置处的时间信息,其中所述历史响应于以下至少之一被更新以下至少一个的负载平衡承租人数据和备份数据;承租人移动;和场升级;以及 在被请求时,访问历史以确定承租人数据的前一位置。
9.一种用于跨承租人移动还原承租人数据的系统,包括 被配置成连接到网络的网络连接(20); 处理器(5)、存储器(7)和计算机可读存储介质(14); 存储在所述计算机可读存储介质上并在所述处理器上执行的操作环境(16); 存储与不同承租人相关联的承租人数据的数据存储(230);以及 备份管理器,其被配置成执行动作,所述动作包括 接收对承租人数据的请求(510); 访问承租人数据位置的历史(520),包括比较请求内指定的时间以确定所请求的承租人数据的位置,其中所述历史包括承租人数据已被存储的每个位置以及当前位置的记录,其中所述记录包括承租人数据位置、承租人数据的备份位置、以及指明数据何时位于各个位置处的时间信息。
10.如权利要求9所述的系统,其特征在于,还包括将承租人数据还原至临时位置(530)并且从临时位置提取所请求的数据,并且将所提取的数据置于承租人数据的当前位置中。
全文摘要
本发明涉及跨承租人移动的承租人数据的恢复。保持承租人数据的位置的历史。承租人数据包括当前正在被承租人使用的数据和相应的备份数据。当承租人的数据从一个位置被改变为另一个位置时,将位置和时间存储在历史中,该历史可被访问以确定承租人数据在指定时刻的位置。不同的操作触发了位置/时间在历史内的存储。一般而言,改变承租人数据的位置的操作触发了该位置在历史内的存储(例如,场的升级、承租人的移动、添加承租人、数据的负载平衡等)。当操作(例如,还原)需要承租人数据时,可以访问该历史以确定数据的位置。
文档编号G06F17/30GK102750312SQ201210091010
公开日2012年10月24日 申请日期2012年3月30日 优先权日2011年3月31日
发明者A·M·小达席尔瓦, D·布罗德, N·沃龙科夫, S·R·沙阿, V·塔拉诺弗 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1