[go: up one dir, main page]

HK1177520B - Recovery of tenant data across tenant moves - Google Patents

Recovery of tenant data across tenant moves Download PDF

Info

Publication number
HK1177520B
HK1177520B HK13104387.8A HK13104387A HK1177520B HK 1177520 B HK1177520 B HK 1177520B HK 13104387 A HK13104387 A HK 13104387A HK 1177520 B HK1177520 B HK 1177520B
Authority
HK
Hong Kong
Prior art keywords
data
lessee
storage location
backup
tenant
Prior art date
Application number
HK13104387.8A
Other languages
Chinese (zh)
Other versions
HK1177520A (en
Inventor
S.R.沙阿
A.M.小达席尔瓦
N.沃龙科夫
V.塔拉诺弗
D.布罗德
Original Assignee
微软技术许可有限责任公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 微软技术许可有限责任公司 filed Critical 微软技术许可有限责任公司
Publication of HK1177520A publication Critical patent/HK1177520A/en
Publication of HK1177520B publication Critical patent/HK1177520B/en

Links

Description

跨承租人移动的承租人数据的恢复Recovery of tenant data moved across tenants

技术领域Technical Field

本发明涉及数据存储,尤其涉及跨承租人移动的承租人数据的恢复。The present invention relates to data storage, and more particularly to recovery of tenant data moved across tenants.

背景技术Background Art

承租人数据可以因各种原因被移至不同的位置。例如,承租人数据可以在升级场时、在承租人数据需要更多空间等等时被移动。在这些情况下,作出承租人数据的新备份。Tenant data can be moved to different locations for various reasons. For example, tenant data can be moved when upgrading a farm, when more space is needed for tenant data, etc. In these cases, a new backup of the tenant data is made.

发明内容Summary of the Invention

提供本发明内容以便以简化形式介绍将在以下具体实施方式中进一步描述的一些概念。本发明内容并非旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。This Summary is provided to introduce some concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.

保持承租人数据的位置的历史。承租人数据包括当前正在被承租人使用的数据和相应的备份数据。当承租人的数据从一个位置被改变为另一个位置时,将位置和时间存储至历史中,该历史可被访问以确定承租人数据在指定时刻的位置。不同的操作触发了位置/时间在历史内的存储。一般而言,改变承租人数据的位置的操作触发了该位置在历史内的存储(例如,场的升级、承租人的移动、添加承租人、数据的负载平衡等)。当操作(例如,还原)需要承租人数据时,可以访问该历史以确定数据的位置。Maintain a history of the location of tenant data. Tenant data includes data currently being used by the tenant and corresponding backup data. When tenant data is changed from one location to another, the location and time are stored in a history that can be accessed to determine the location of the tenant data at a given moment. Different operations trigger the storage of location/time within the history. Generally speaking, an operation that changes the location of tenant data triggers the storage of that location within the history (e.g., a farm upgrade, a tenant move, adding a tenant, load balancing of data, etc.). When an operation (e.g., restore) requires tenant data, the history can be accessed to determine the location of the data.

附图说明BRIEF DESCRIPTION OF THE DRAWINGS

图1示出了示例性计算环境;FIG1 illustrates an exemplary computing environment;

图2示出了用于跨承租人移动而保持承租人数据的位置的系统;FIG2 illustrates a system for moving data across tenants while preserving the location of tenant data;

图3示出包括承租人数据位置变化的记录在内的历史;FIG3 shows a history including a record of changes in the location of tenant data;

图4示出用于更新承租人数据位置改变历史的过程;以及FIG4 illustrates a process for updating tenant data location change history; and

图5示出用于处理从备份位置还原承租人数据的请求的过程。FIG. 5 illustrates a process for handling a request to restore tenant data from a backup location.

具体实施方式DETAILED DESCRIPTION

现将参考附图来描述各实施例,在附图中类似的标号代表类似的元素。具体地,图1和相应的讨论旨在提供对在其中可实现各实施例的合适计算环境的简要、概括描述。The various embodiments will now be described with reference to the accompanying drawings, in which like reference numerals represent like elements. In particular, FIG1 and the corresponding discussion are intended to provide a brief, general description of a suitable computing environment in which the various embodiments may be implemented.

一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构和其它类型的结构。也可使用其它计算机系统配置,包括手持式设备、多处理器系统、基于微处理器或可编程消费电子产品、小型计算机、大型计算机等等。还可使用在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境。在分布式计算环境中,程序模块可位于本地和远程存储器存储设备两者中。Generally speaking, program modules include routines, programs, components, data structures, and other types of structures that perform specific tasks or implement specific abstract data types. Other computer system configurations may also be used, including handheld devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, mainframe computers, and the like. Distributed computing environments in which tasks are performed by remote processing devices linked through a communication network may also be used. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.

现在参考图1,将描述在各个实施例中所利用的计算机100的说明性计算机环境。图1所示的计算机环境包括计算设备,这些计算设备各自可以被配置为移动计算设备(例如,电话、平板电脑、上网本、膝上型电脑)、服务器、台式计算机、或者某一其他类型的计算设备,并且包括中央处理单元5(“CPU”)、包括随机存取存储器9(“RAM”)和只读存储器(“ROM”)10的系统存储器7、以及将存储器耦合至中央处理单元(“CPU”)5的系统总线12。1 , an illustrative computer environment of a computer 100 utilized in various embodiments will be described. The computer environment shown in FIG1 includes computing devices, each of which can be configured as a mobile computing device (e.g., a phone, tablet, netbook, laptop), a server, a desktop computer, or some other type of computing device, and includes a central processing unit 5 (“CPU”), system memory 7 including random access memory 9 (“RAM”) and read-only memory (“ROM”) 10, and a system bus 12 that couples the memory to the central processing unit (“CPU”) 5.

基本输入/输出系统存储在ROM 10中,所述基本输入/输出系统包含帮助在诸如启动期间在计算机内元件之间传递信息的基本例程。计算机100还包括大容量存储设备14,该大容量存储设备14用于存储操作系统16、应用24、web浏览器25、以及备份管理器26,这将在下面予以更详细的描述。A basic input/output system, containing the basic routines that help to transfer information between elements within the computer, such as during startup, is stored in ROM 10. Computer 100 also includes a mass storage device 14 for storing an operating system 16, applications 24, a web browser 25, and a backup manager 26, which are described in more detail below.

大容量存储设备14通过连接至总线12的大容量存储控制器(未示出)连接到CPU5。大容量存储设备14及其相关联的计算机可读介质为计算机100提供非易失性存储。虽然此处包含的对计算机可读介质的描述针对诸如硬盘或CD-ROM驱动器等大容量存储设备,但是计算机可读介质可以是能够由计算机100访问的任何可用介质。The mass storage device 14 is connected to the CPU 5 through a mass storage controller (not shown) connected to the bus 12. The mass storage device 14 and its associated computer-readable media provide non-volatile storage for the computer 100. Although the description of computer-readable media contained herein is directed to a mass storage device such as a hard disk or CD-ROM drive, computer-readable media can be any available media that can be accessed by the computer 100.

作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质包括以存储如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术来实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质还包括,但不限于,RAM、ROM、可擦除可编程只读存储器(“EPROM”)、电可擦可编程只读存储器(“EEPROM”)、闪存或其它固态存储器技术、CD-ROM、数字多功能盘(“DVD”)或其它光存储、磁带盒、磁带、磁盘存储或其它磁性存储设备、或能用于存储所需信息且可以由计算机100访问的任何其它介质。By way of example and not limitation, computer-readable media may include computer storage media and communication media. Computer storage media include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storing information such as computer-readable instructions, data structures, program modules or other data. Computer storage media also include, but are not limited to, RAM, ROM, erasable programmable read-only memory ("EPROM"), electrically erasable programmable read-only memory ("EEPROM"), flash memory or other solid-state memory technology, CD-ROM, digital versatile disk ("DVD") or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to store the desired information and can be accessed by the computer 100.

计算机100使用通过诸如因特网之类的网络18与远程计算机的逻辑连接而在网络化环境中操作。计算机100可以通过连接至总线12的网络接口单元20来连接到网络18。网络连接可以是无线的和/或有线的。网络接口单元20也可用于连接到其它类型的网络和远程计算机系统。计算机100还可包括用于接收和处理来自多个其他设备的输入的输入/输出控制器22,这些设备包括键盘、鼠标或者电子指示笔(未在图1中示出)。类似地,输入/输出控制器22可以为显示屏23、打印机或其它类型的输出设备提供输入/输出。The computer 100 operates in a networked environment using logical connections to remote computers via a network 18, such as the Internet. The computer 100 can be connected to the network 18 via a network interface unit 20 connected to the bus 12. The network connection can be wireless and/or wired. The network interface unit 20 can also be used to connect to other types of networks and remote computer systems. The computer 100 may also include an input/output controller 22 for receiving and processing input from a plurality of other devices, including a keyboard, mouse, or electronic stylus (not shown in FIG. 1 ). Similarly, the input/output controller 22 can provide input/output for a display screen 23, a printer, or other types of output devices.

如前简述的那样,多个程序模块和数据文件可以被存储在计算机100的大容量存储设备14和RAM 9内,包括适于控制计算机的操作的操作系统16,如华盛顿州雷蒙德市的微软公司的WINDOWS 7、WINDOWS SERVER或WINDOWS PHONE 7操作系统。大容量存储设备14和RAM 9还可以存储一个或多个程序模块。具体而言,大容量存储设备14和RAM 9可以存储包括一个或多个应用24和web浏览器25的一个或多个应用程序。根据一实施例,应用24是被配置成与在线服务交互的应用,所述在线服务诸如为不同承租人提供服务的解决方案服务的商业点。也可以使用其他应用。例如,应用24可以是被配置成与数据交互的客户端应用。应用可以被配置成与许多不同类型的数据交互,包括但不限于:文档、电子表格、幻灯片、笔记等。As briefly described above, a plurality of program modules and data files may be stored within the mass storage device 14 and RAM 9 of the computer 100, including an operating system 16 suitable for controlling the operation of the computer, such as the Windows 7, Windows Server, or Windows Phone 7 operating systems from Microsoft Corporation of Redmond, Washington. The mass storage device 14 and RAM 9 may also store one or more program modules. Specifically, the mass storage device 14 and RAM 9 may store one or more application programs, including one or more applications 24 and a web browser 25. According to one embodiment, the application 24 is an application configured to interact with an online service, such as a business point of sale that provides solutions to different tenants. Other applications may also be used. For example, the application 24 may be a client application configured to interact with data. The application may be configured to interact with many different types of data, including, but not limited to, documents, spreadsheets, slides, notes, and the like.

网络存储27被配置成存储承租人的承租人数据。网络存储27可通过IP网络18对一个或多个计算设备/用户来说可访问。例如,网络存储27可以为诸如在线服务17等在线服务存储一个或多个承租人的承租人数据。其他网络存储也可以被配置成存储承租人的数据。承租人数据也可以从一个网络存储移至另一个网络存储。Network storage 27 is configured to store tenant data for tenants. Network storage 27 is accessible to one or more computing devices/users via IP network 18. For example, network storage 27 may store tenant data for one or more tenants for an online service, such as online service 17. Other network storage may also be configured to store tenant data. Tenant data may also be moved from one network storage to another.

备份管理器26被配置成将承租人数据的位置保持在诸如历史21等历史内。备份管理器26可以是诸如在线服务17等在线服务的一部分,并且备份管理器26所提供的全部/一些功能可以位于应用内部/外部。承租人数据包括当前正在被承租人使用的数据和相应的备份数据。当承租人的数据从一个位置被改变为另一个位置时,将位置和时间保存至历史21中,该历史21可被访问以确定承租人数据在指定时刻的位置。不同的操作触发了位置/时间在历史内的存储。一般而言,改变承租人数据的位置的操作触发了该位置在历史内的存储(例如,场的升级、承租人的移动、添加承租人、数据的负载平衡等)。当操作(例如,还原)需要承租人数据时,可以访问该历史以确定数据的位置。下面公开了与备份管理器相关的更多细节。The backup manager 26 is configured to maintain the location of tenant data in a history such as history 21. The backup manager 26 can be part of an online service such as online service 17, and all/some of the functionality provided by the backup manager 26 can be located inside/outside the application. Tenant data includes data currently being used by the tenant and corresponding backup data. When a tenant's data is changed from one location to another, the location and time are saved to history 21, which can be accessed to determine the location of the tenant data at a given moment. Different operations trigger the storage of the location/time in the history. Generally speaking, an operation that changes the location of tenant data triggers the storage of the location in the history (e.g., an upgrade of the farm, a move of a tenant, adding a tenant, load balancing of data, etc.). When an operation (e.g., a restore) requires tenant data, the history can be accessed to determine the location of the data. More details related to the backup manager are disclosed below.

图2示出了用于跨承租人移动而保持承租人数据的位置的系统。如图所示,系统200包括服务210、数据存储220、数据存储230和计算设备240。2 shows a system for maintaining the location of tenant data while moving across tenants. As shown, system 200 includes a service 210, a data store 220, a data store 230, and a computing device 240.

所使用的计算设备可以是被配置成执行与计算设备的使用有关的操作的任何类型的计算设备。例如,这些计算设备中的一些可以是:移动计算设备(例如,蜂窝电话、平板计算机、智能电话、膝上型计算机等等);一些可以是台式计算设备,其他计算设备可以被配置为服务器。一些计算设备可以被安排为提供基于云的在线服务(例如服务210);一些计算设备可以被安排为提供数据存储服务的数据共享,一些计算设备可以被安排在本地网络中;一些计算设备可以被安排在可通过因特网访问的网络中,等等。The computing devices used may be any type of computing device configured to perform operations related to the use of the computing device. For example, some of these computing devices may be mobile computing devices (e.g., cell phones, tablet computers, smartphones, laptop computers, etc.); some may be desktop computing devices; and other computing devices may be configured as servers. Some computing devices may be arranged to provide cloud-based online services (e.g., service 210); some computing devices may be arranged to provide data sharing for data storage services; some computing devices may be arranged in a local network; some computing devices may be arranged in a network accessible via the Internet, etc.

计算设备通过网络18被耦合。网络18可以是许多不同类型的网络。例如,网络18可以是IP网络、用于蜂窝通信的载波网络等等。一般而言,网络18用于在诸如计算设备240、数据存储220、数据存储230和服务210之类的计算设备之间传送数据。The computing devices are coupled via a network 18. The network 18 can be any of many different types of networks. For example, the network 18 can be an IP network, a carrier network for cellular communications, and so on. Generally speaking, the network 18 is used to transfer data between computing devices such as the computing device 240, the data store 220, the data store 230, and the service 210.

计算设备240包括应用242、Web浏览器244以及用户界面246。如图所示,用户使用计算设备240与诸如服务210等服务交互。根据一实施例,服务210是多承租服务。一般而言,多承租是指顾客间的数据(包括备份)、使用、管理的隔离。换言之,即使来自每个承租人的数据可以被存储在同一数据存储内的同一数据库中,来自一个顾客(承租人1)的数据也不可被另一顾客(承租人2)访问。Computing device 240 includes application 242, web browser 244, and user interface 246. As shown, a user uses computing device 240 to interact with a service, such as service 210. According to one embodiment, service 210 is a multi-tenant service. Generally speaking, multi-tenancy refers to the isolation of data (including backup), usage, and management between customers. In other words, even though data from each tenant can be stored in the same database within the same data store, data from one customer (Tenant 1) cannot be accessed by another customer (Tenant 2).

用户界面(UI)246用于与对于计算设备240可以是本地/非本地的各个应用交互。可以使用一种或多种类型的一个或多个用户界面来与文档交互。例如,UI 246可以包括上下文菜单、菜单栏内的菜单、选自条带用户界面的菜单项、图形菜单等等的使用。一般而言,UI 246这样配置,使得用户可以容易地与应用的功能交互。例如,用户可以仅仅选择UI 246内的选项来选择还原服务210所保持的承租人数据。User interface (UI) 246 is used to interact with various applications that may be local or non-local to computing device 240. One or more user interfaces of one or more types may be used to interact with documents. For example, UI 246 may include the use of context menus, menus within a menu bar, menu items selected from a ribbon user interface, graphical menus, and the like. Generally speaking, UI 246 is configured so that a user can easily interact with the functionality of the applications. For example, a user may choose to restore tenant data maintained by service 210 by simply selecting an option within UI 246.

数据存储220和数据存储230被配置成存储承租人数据。数据存储可由各个应用计算设备访问。例如,网络存储可以与支持解决方案服务的在线商业点的在线服务相关联。例如,在线服务可以提供数据服务、字处理服务、电子表格服务等。Data storage 220 and data storage 230 are configured to store tenant data. The data storage is accessible by various application computing devices. For example, the network storage may be associated with an online service that supports an online point of sale for a solution service. For example, the online service may provide data services, word processing services, spreadsheet services, etc.

如图所示,数据存储220包括N个不同承租人的承租人数据,承租人数据包括相应的备份数据。数据存储可以存储承租人数据的全部/部分。例如,一些承租人可以使用多于一个数据存储,而其他承租人与许多其他承租人共享该数据存储。尽管同一个数据存储内示出了承租人的相应的备份数据,但是该备份数据可以被存储在其他位置。例如,可以使用一个数据存储来存储承租人数据,可以使用一个或多个其他数据存储来存储相应的备份数据。As shown, data store 220 includes tenant data for N different tenants, including corresponding backup data. A data store can store all or part of a tenant's data. For example, some tenants may use more than one data store, while other tenants share the data store with many other tenants. Although the corresponding backup data for a tenant is shown within the same data store, the backup data may be stored elsewhere. For example, one data store may be used to store tenant data, while one or more other data stores may be used to store the corresponding backup data.

数据存储230示出承租人数据的位置被改变,备份数据从一个不同的数据存储被改变。在当前例子中,承租人数据2和相应的备份数据已经从数据存储220改变至数据存储230。承租人3的备份数据已经从数据存储220改变成数据存储230。承租人数据8已经从数据存储220改变成数据存储230。位置改变可以出于各种原因而发生。例如,承租人可以需要更多空间,数据存储可以被负载平衡,承租人所处的场可以被升级,数据存储可以发生故障,数据库可以被移动/升级,等等。许多其他场景可以造成承租人的数据发生改变。从当前例子可见,承租人的数据可以被存储在一个数据存储中,相应的备份数据可以被存储在另一个数据存储中。Data store 230 shows that the location of tenant data has been changed and the backup data has been changed from a different data store. In the current example, Tenant Data 2 and the corresponding backup data have been changed from data store 220 to data store 230. Tenant 3's backup data has been changed from data store 220 to data store 230. Tenant Data 8 has been changed from data store 220 to data store 230. Location changes can occur for a variety of reasons. For example, a tenant may need more space, a data store may be load balanced, the farm where the tenant is located may be upgraded, a data store may fail, a database may be moved/upgraded, and so on. Many other scenarios may cause a tenant's data to change. As can be seen from the current example, a tenant's data may be stored in one data store and the corresponding backup data may be stored in another data store.

服务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可以与用于执行和服务有关的操作的其他服务器通信。Service 210 includes backup manager 26, historian 212, and web application 214 including web renderer 216. Service 210 is configured as an online service that provides services related to displaying and interacting with data from multiple tenants. Service 210 provides a shared infrastructure for multiple tenants. According to one embodiment, service 210 is Microsoft Corporation's SHAREPOINT ONLINE service. Different tenants can use service 210 to host their web application/site collections. Tenants can also use a dedicated service alone or in conjunction with the services provided by service 210. Web application 214 is configured to receive and respond to data-related requests. For example, service 210 can access tenant data stored on network storage 220 and/or network storage 230. Web application 214 can be used to provide an interface for users of computing devices, such as computing device 240, to interact with data accessible via network 18. Web application 214 can communicate with other servers to perform operations related to the service.

服务210从诸如计算设备240这样的计算设备接收请求。计算设备可以向服务210发送请求以便与文档和/或其他数据交互。响应于这一请求,web应用214从诸如网络共享230这样的位置获得数据。要显示的数据被转换成诸如ISO/IEC 29500格式这样的标记语言格式。数据可以由服务210或由一个或多个其他计算设备来转换。一旦web应用214已经接收到了数据的标记语言表示,服务就利用web呈递器216把经标记语言格式化的文档转换成数据的可以由web浏览器应用(比如计算设备240上的web浏览器244)呈递的表示。所呈递的数据看上去与用于查看相同数据的相应桌面应用的输出基本上类似。一旦Web呈递器216已经完成了文件的呈递,则其被服务210返回到请求方计算设备,在那里,其可由Web浏览器244呈递。The service 210 receives a request from a computing device such as computing device 240. The computing device can send a request to the service 210 in order to interact with documents and/or other data. In response to this request, the web application 214 obtains data from a location such as a network share 230. The data to be displayed is converted into a markup language format such as the ISO/IEC 29500 format. The data can be converted by the service 210 or by one or more other computing devices. Once the web application 214 has received the markup language representation of the data, the service utilizes a web renderer 216 to convert the document formatted in the markup language into a representation of the data that can be rendered by a web browser application (such as a web browser 244 on the computing device 240). The rendered data looks substantially similar to the output of a corresponding desktop application for viewing the same data. Once the web renderer 216 has completed the rendering of the file, it is returned by the service 210 to the requesting computing device, where it can be rendered by the web browser 244.

Web呈递器216还被配置为向标记语言文件中呈递一个或多个脚本以用于允许诸如计算设备240之类的计算设备的用户与web浏览器244的上下文中的数据交互。Web呈递器216可用于将可由web浏览器应用244执行的脚本代码呈递到所返回的网页中。这些脚本例如可以提供用于允许用户改变数据段和/或修改与数据相关的值的功能。响应于某些类型的用户输入,这些脚本可以被执行。当脚本被执行时,可以向服务210传送如下响应:该响应指示文档已经被操作;标识出已经进行的交互的类型;以及还向web应用214标识出应当对数据执行的功能。The web renderer 216 is also configured to render one or more scripts into a markup language file for allowing a user of a computing device, such as the computing device 240, to interact with data in the context of the web browser 244. The web renderer 216 can be used to render script code that can be executed by the web browser application 244 into the returned web page. These scripts can, for example, provide functionality that allows a user to change data segments and/or modify values associated with the data. These scripts can be executed in response to certain types of user input. When the script is executed, a response can be transmitted to the service 210 that indicates that the document has been manipulated; identifies the type of interaction that has occurred; and further identifies to the web application 214 the function that should be performed on the data.

响应于造成承租人数据位置改变的操作,备份管理器26将条目置于历史212内。历史212保持承租人数据和相应的备份数据的位置的记录。根据一实施例,历史212存储数据库名称和用于存储承租人数据的位置、承租人数据的备份位置的名称和位置、数据被存储在该位置的时间(见图3和相关讨论)。历史信息可以以各种方式被存储。例如,每个承租人的历史记录可以被存储在数据库内,历史信息可以被存储在数据文件内,等等。In response to an operation that causes a change in the location of tenant data, backup manager 26 places an entry in history 212. History 212 maintains a record of the location of tenant data and corresponding backup data. According to one embodiment, history 212 stores the name of the database and location used to store tenant data, the name and location of the backup location for the tenant data, and the time the data was stored at that location (see FIG. 3 and related discussion). Historical information can be stored in a variety of ways. For example, a historical record for each tenant can be stored in a database, historical information can be stored in a data file, etc.

根据一实施例,备份管理器26被配置成执行承租人数据的完全备份、以及在完全备份时刻之间的增量备份和事务日志条目。完全备份的时间表是可配置的。根据一实施例,完全备份每周执行,增量备份每日执行、事务每五分钟被存储一次。其他时间表也可被使用,并且可以是可配置的。不同的备份可以被存储在相同位置和/或不同位置。例如,完全备份可以被存储在第一位置,增量备份和事务日志可以被存储在不同的位置。According to one embodiment, backup manager 26 is configured to perform full backups of tenant data, as well as incremental backups and transaction log entries between full backups. The schedule for full backups is configurable. According to one embodiment, full backups are performed weekly, incremental backups are performed daily, and transactions are stored every five minutes. Other schedules may also be used and may be configurable. Different backups may be stored in the same location and/or in different locations. For example, full backups may be stored in a first location, while incremental backups and transaction logs may be stored in different locations.

图3示出包括承租人数据位置变化的记录在内的历史。历史300包括正在被管理的每个承租人的记录。出于示例目的,历史300示出承租人1(310)、承租人2(320)和承租人8(330)的历史记录。Figure 3 shows a history including a record of changes in tenant data location. History 300 includes a record for each tenant being managed. For example, history 300 shows the history records for tenant 1 (310), tenant 2 (320), and tenant 8 (330).

如图所示,历史记录310响应于承租人1被添加而被创建。根据一实施例,历史记录包括内容位置、时间、备份位置和时间的字段。内容位置提供了和承租人内容被存储在何处有关的信息(例如,数据库名称、到内容位置的URL等)。时间1字段指明承租人数据最近一次位于指定位置处的时间。根据一实施例,当时间1字段为空时,时间2值用于该记录。当时间1字段和时间2字段均为空时,数据仍位于记录中所列的内容位置和备份位置处。备份位置字段指明了内容的备份所位于的位置。时间2字段指明承租人的备份数据最近一次位于指定位置处的时间。As shown, history record 310 is created in response to Tenant 1 being added. According to one embodiment, the history record includes fields for content location, time, backup location, and time. The content location provides information about where the tenant's content is stored (e.g., database name, URL to the content location, etc.). The time 1 field indicates the last time the tenant's data was located at the specified location. According to one embodiment, when the time 1 field is empty, the time 2 value is used for the record. When both the time 1 field and the time 2 field are empty, the data is still located at the content location and backup location listed in the record. The backup location field indicates where the backup of the content is located. The time 2 field indicates the last time the tenant's backup data was located at the specified location.

参照承租人1的历史(310)可见,承租人1的数据位于内容位置“Content 12”(例如,数据库的名称)处,承租人1的数据的备份数据位于“backups\ds220\Content 12”处。该情况下,承租人1的数据的位置自承租人1被添加以来未改变。Referring to the history (310) of Tenant 1, it can be seen that Tenant 1's data is located at the content location "Content 12" (e.g., the name of the database), and the backup data of Tenant 1's data is located at "backups\ds220\Content 12." In this case, the location of Tenant 1's data has not changed since Tenant 1 was added.

承租人2的数据的位置从“Content 12”改变为“Content 56”又改变为“Content79”。在2010年3月4日上午10点以前、2010年1月2日上午1:04以后,数据被存储在“Content56”,相应的备份数据被存储在“backups\ds220\Content 56”。在2010年1月2日上午1:04以前,数据被存储在“Content 12”,相应的备份数据被存储在“backups\ds220\Content 12”。Tenant 2's data location changes from "Content 12" to "Content 56" and then to "Content 79." Before 10:00 AM on March 4, 2010, and after 1:04 AM on January 2, 2010, the data is stored in "Content 56," and the corresponding backup data is stored in "backups\ds220\Content 56." Before 1:04 AM on January 2, 2010, the data is stored in "Content 12," and the corresponding backup data is stored in "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\Content 12”。在当前例子中,在承租人3的承租人数据的位置未从“Content 15”发生改变的情况下,承租人3的备份数据的位置发生改变。The location of Tenant 3's data has changed from "Content 12" to "Content 15." The corresponding backup data has changed from "backups\ds220\Content 12" to "backups\ds220\Content 15" to "backups\ds230\Content 79." After 7:35 AM on March 12, 2010, Tenant 3's data is stored in "Content 15." Before 1:22 AM on March 24, 2010, and after 7:35 AM on March 12, 2010, the corresponding backup data is stored in "backups\ds220\Content 15." Before 7:35 AM on March 12, 2010, the data is stored in "Content 12," and the corresponding backup data is stored in "backups\ds220\Content 12." In the present example, while the location of the tenant data of the tenant 3 is not changed from "Content 15", the location of the backup data of the tenant 3 is changed.

可以使用许多其他方式来存储和承租人数据的位置有关的信息。例如,时间字段可以包括开始时间和结束时间、开始时间和无结束时间、或结束时间和无开始时间。位置可以被指定为名称、标识符、URL等。也可以包括其他字段,诸如大小字段、记录数量字段、上一次访问字段等。Many other ways of storing information about the location of tenant data are possible. For example, a time field can include a start time and end time, a start time and no end time, or an end time and no start time. The location can be specified as a name, an identifier, a URL, etc. Other fields can also be included, such as a size field, a number of records field, a last access field, etc.

图4和5示出用于跨承租人移动还原承租人数据的说明性过程。当阅读对在此提供的例程的讨论时,应当理解,各实施例的逻辑操作被实现为(1)运行于计算系统上的一系列计算机实现的动作或程序模块,和/或(2)计算系统内互连的机器逻辑电路或电路模块。该实现是取决于实现本发明的计算系统的性能要求来选择的。因此,所例示的并且构成此处所描述的实施例的逻辑操作被不同地表示为操作、结构设备、动作或模块。这些操作、结构设备、动作和模块可用软件、固件、专用数字逻辑,及其任何组合来实现。Figures 4 and 5 show an illustrative process for restoring tenant data across tenant moves. When reading the discussion of the routines provided herein, it should be understood that the logical operations of the various embodiments are implemented as (1) a series of computer-implemented actions or program modules running on a computing system, and/or (2) interconnected machine logic circuits or circuit modules within the computing system. The implementation is selected depending on the performance requirements of the computing system implementing the present invention. Therefore, the logical operations illustrated and constituting the embodiments described herein are variously represented as operations, structural devices, actions, or modules. These operations, structural devices, actions, and modules can be implemented using software, firmware, dedicated digital logic, and any combination thereof.

图4示出用于更新承租人数据位置改变历史的过程。FIG4 illustrates a process for updating tenant data location change history.

在开始框之后,过程400移至操作410,在那里确定操作是否已改变了承租人数据的位置。改变可以涉及承租人数据的全部/部分。许多不同的操作可以造成承租人数据位置的改变。例如,添加承租人、场升级、承租人移动、承租人数据的负载平衡、相应备份数据的负载平衡、保持操作、故障等。一般而言,确定造成承租人数据和/或相应备份数据改变位置的任何操作。After the start block, process 400 moves to operation 410, where it is determined whether an operation has changed the location of tenant data. The change may involve all or part of the tenant data. Many different operations can cause a change in the location of tenant data. For example, adding a tenant, a field upgrade, a tenant move, load balancing of tenant data, load balancing of corresponding backup data, a maintenance operation, a failure, etc. In general, any operation that causes a change in the location of tenant data and/or corresponding backup data is determined.

流至操作420,访问其数据正在改变位置的承租人的历史。历史可以在本地数据存储、共享数据存储和/或某一其他存储器位置内被访问。Flowing to operation 420, the history of the tenant whose data is changing location is accessed. The history can be accessed within a local data store, a shared data store, and/or some other memory location.

移至操作430,更新承租人的历史以反映承租人数据的当前状态和任何先前状态。根据一实施例,每个承租人包括指示其相应历史的表格。历史可以使用许多不同方法来存储,所述不同方法使用了许多不同类型的结构。例如,历史可以被存储在存储器、文件、电子表格、数据库中。历史记录也可以在数据存储内混杂,诸如在列表、电子表格等内。根据一实施例,历史记录包括内容位置、时间、备份位置和时间的字段。内容位置提供了和承租人内容被存储在何处有关的信息(例如,数据库名称、到内容位置的URL等)。时间1字段指明承租人数据最近一次位于指定位置处的时间。根据一实施例,当时间1字段为空时,时间1值与时间2字段相同。当时间1字段和时间2字段为空时,数据仍位于内容位置和备份位置处。备份位置字段指明了内容的备份所位于的位置。时间2字段指明承租人的备份数据最近一次位于指定位置处的时间。Moving to operation 430, the tenant's history is updated to reflect the current state and any previous states of the tenant's data. According to one embodiment, each tenant includes a table indicating its corresponding history. The history can be stored using many different methods, using many different types of structures. For example, the history can be stored in memory, a file, a spreadsheet, or a database. The history can also be mixed within the data store, such as in a list, a spreadsheet, etc. According to one embodiment, the history includes fields for content location, time, backup location, and time. The content location provides information about where the tenant's content is stored (e.g., database name, URL to the content location, etc.). The time1 field indicates the time when the tenant's data was last located at the specified location. According to one embodiment, when the time1 field is empty, the time1 value is the same as the time2 field. When the time1 field and the time2 field are empty, the data is still located at the content location and the backup location. The backup location field indicates the location where the backup of the content is located. The time2 field indicates the time when the tenant's backup data was last located at the specified location.

随后该过程行进到结束框,并返回以处理其它动作。The process then proceeds to the end block and returns to process other actions.

图5示出用于处理从前一位置还原承租人数据的请求的过程。FIG. 5 illustrates a process for handling a request to restore tenant data from a previous location.

在开始框之后,过程移至操作510,在那里接收还原承租人数据的请求。例如,承租人可能偶然删除了他们希望还原的数据。根据一实施例,请求包括指明他们何时相信他们已删除数据的时间。根据另一实施例,可以赋予时间范围。根据还有一个实施例,可以在不在请求内提供时间的情况下,搜索承租人历史内的每个位置来寻找数据。After the start block, the process moves to operation 510, where a request to restore tenant data is received. For example, the tenant may have accidentally deleted data they wish to restore. According to one embodiment, the request includes a time indicating when they believe they deleted the data. According to another embodiment, a time range may be specified. According to yet another embodiment, every location in the tenant's history may be searched for data without providing a time in the request.

流至操作520,访问承租人的历史以确定数据位于何处。如上面所讨论的,历史包括承租人数据和相应备份数据的当前位置、以及数据的每个先前位置。Flowing to operation 520, the tenant's history is accessed to determine where the data is located. As discussed above, the history includes the current location of the tenant data and corresponding backup data, as well as each previous location of the data.

移至操作530,承租人的数据被还原至临时位置,使得承租人的当前数据不被不期望的先前数据所覆写。Moving to operation 530 , the tenant's data is restored to the temporary location so that the tenant's current data is not overwritten by undesired previous data.

转至操作540,所请求的数据从临时位置被提取,并且被还原至承租人数据的当前位置。临时位置处的数据可以被擦除。Transitioning to operation 540, the requested data is extracted from the temporary location and restored to the current location of the tenant data.The data at the temporary location may be erased.

随后该过程流至结束框,并返回以处理其它动作。The process then flows to the end block and returns to process other actions.

以上说明、示例和数据提供了对本发明的组成部分的制造和使用的全面描述。因为可以在不背离本发明的精神和范围的情况下做出本发明的许多实施例,所以本发明落在所附权利要求的范围内。The above specification, examples and data provide a complete description of the manufacture and use of the components of the invention. Since many embodiments of the invention can be made without departing from the spirit and scope of the invention, the invention resides in the claims hereinafter appended.

Claims (7)

1.一种用于跨承租人移动还原承租人数据的方法,包括:1. A method for restoring lessee data across lessees, comprising: 在所述承租人数据上执行备份操作以生成承租人备份数据;Perform a backup operation on the lessee data to generate lessee backup data; 维持所述承租人数据的历史数据库,其中,所述历史数据库至少包括所述承租人数据的第一存储位置和相应承租人备份数据的第二存储位置;A historical database for maintaining the lessee's data, wherein the historical database includes at least a first storage location for the lessee's data and a second storage location for the corresponding lessee backup data; 确定将所述承租人数据的所述第一存储位置改变到不同的第三存储位置的改变操作;Determine the change operation to change the first storage location of the lessee data to a different third storage location; 响应于所述改变操作,更新所述历史数据库,其中,更新所述历史数据库包括:In response to the change operation, the historical database is updated, wherein updating the historical database includes: 将所述承租人数据的存储位置从所述第一存储位置更新到所述第三存储位置;Update the storage location of the lessee data from the first storage location to the third storage location; 将所述相应承租人备份数据的存储位置从所述第二存储位置更新到第四存储位置;以及Update the storage location of the corresponding lessee's backup data from the second storage location to the fourth storage location; and 添加与更新所述承租人数据的存储位置相关联的时间;Add the time associated with the storage location of the updated tenant data; 在被请求时,访问所述历史数据库以确定所述承租人数据的所述第一存储位置;以及When requested, access the historical database to determine the first storage location of the tenant's data; and 使用存储在所述第一存储位置的承租人数据来还原所述承租人数据。The lessee data is restored using the lessee data stored in the first storage location. 2.如权利要求1所述的方法,其特征在于,所述历史响应于以下中的至少一个被更新:以下至少一个的负载平衡:承租人数据和备份数据;承租人移动;响应于场升级。2. The method of claim 1, wherein the history is updated in response to at least one of the following: load balancing of at least one of the following: tenant data and backup data; tenant migration; in response to a field upgrade. 3.如权利要求1所述的方法,其特征在于,更新历史包括:存储和承租人数据的备份相对应的备份数据的存储位置。3. The method as described in claim 1, wherein the update history includes: the storage location of backup data corresponding to the backup of the storage and the lessee data. 4.如权利要求3所述的方法,其特征在于,所述备份数据包括承租人数据的完全备份、承租人数据的增量备份、和承租人数据的事务日志备份。4. The method as described in claim 3, wherein the backup data includes a full backup of the lessee data, an incremental backup of the lessee data, and a transaction log backup of the lessee data. 5.如权利要求1所述的方法,其特征在于,还包括:通过基于指定时间与历史内时间的比较来访问存储位置,来确定承租人数据的前一存储位置。5. The method as described in claim 1, further comprising: determining the previous storage location of the tenant's data by accessing the storage location based on a comparison between a specified time and a historical time. 6.一种用于跨承租人移动还原承租人数据的装置,包括:6. An apparatus for restoring lessee data across lessees, comprising: 用于在所述承租人数据上执行备份操作以生成承租人备份数据的单元;A unit for performing backup operations on the lessee data to generate backup data for the lessee; 用于维持所述承租人数据的历史数据库的单元,其中,所述历史数据库至少包括所述承租人数据的第一存储位置和相应承租人备份数据的第二存储位置;A unit for maintaining a historical database of the lessee's data, wherein the historical database includes at least a first storage location for the lessee's data and a second storage location for corresponding lessee backup data; 用于确定将所述承租人数据的所述第一存储位置改变到不同的第三存储位置的改变操作的单元;A unit for determining a change operation that changes the first storage location of the lessee's data to a different third storage location; 用于响应于所述改变操作,更新所述历史数据库的单元,其中,用于更新所述历史数据库的单元包括:A unit for updating the historical database in response to the change operation, wherein the unit for updating the historical database includes: 用于将所述承租人数据的存储位置从所述第一存储位置更新到所述第三存储位置的单元;A unit for updating the storage location of the lessee data from the first storage location to the third storage location; 用于将所述相应承租人备份数据的存储位置从所述第二存储位置更新到第四存储位置的单元;以及A unit for updating the storage location of the corresponding lessee's backup data from the second storage location to the fourth storage location; and 用于添加与更新所述承租人数据的存储位置相关联的时间的单元;A unit for adding the time associated with the storage location of the updated lessee data; 用于在被请求时,访问所述历史数据库以确定所述承租人数据的所述第一存储位置的单元;以及A unit for accessing the historical database upon request to determine the first storage location of the lessee's data; and 用于使用存储在所述第一存储位置的承租人数据来还原所述承租人数据的单元。A unit for restoring the lessee data using the lessee data stored in the first storage location. 7.一种用于跨承租人移动还原承租人数据的系统,包括:7. A system for restoring lessee data across lessees, comprising: 被配置成连接到网络的网络连接;A network connection configured to connect to a network; 处理器、存储器和计算机可读存储介质;Processors, memory, and computer-readable storage media; 存储在所述计算机可读存储介质上并在所述处理器上执行的操作环境;An operating environment stored on the computer-readable storage medium and executed on the processor; 存储与不同承租人相关联的承租人数据的数据存储;以及Data storage for tenant data associated with different tenants; and 备份管理器,其被配置成执行动作,所述动作包括:The backup manager is configured to perform actions, including: 在所述承租人数据上执行备份操作以生成承租人备份数据;Perform a backup operation on the lessee data to generate lessee backup data; 维持所述承租人数据的历史数据库,其中,所述历史数据库包括所述承租人数据和相应备份数据的当前存储位置以及所述承租人数据和相应备份数据的之前存储位置;A historical database for maintaining the lessee data is provided, wherein the historical database includes the current storage location of the lessee data and corresponding backup data, as well as the previous storage location of the lessee data and corresponding backup data; 接收对承租人数据的请求;Receive requests for tenant data; 访问所述历史数据库以使用指示所述承租人数据何时被移动到备份存储的时间来确定承租人数据的之前存储位置,其中所述历史数据库还包括承租人数据已被存储的每个存储位置的记录,其中所述记录包括承租人数据存储位置、承租人备份数据的备份存储位置、以及指明数据何时位于各个存储位置处的时间信息;以及Access the historical database to determine the previous storage location of the lessee data using the time indicating when the lessee data was moved to backup storage, wherein the historical database also includes records for each storage location where the lessee data has been stored, wherein the records include the lessee data storage location, the backup storage location of the lessee backup data, and time information indicating when the data was located at each storage location; and 使用存储在所述之前存储位置的承租人数据来还原所述承租人数据。The lessee data is restored using the lessee data stored in the previously stored location.
HK13104387.8A 2011-03-31 2013-04-10 Recovery of tenant data across tenant moves HK1177520B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/077,620 2011-03-31

Publications (2)

Publication Number Publication Date
HK1177520A HK1177520A (en) 2013-08-23
HK1177520B true HK1177520B (en) 2019-08-30

Family

ID=

Similar Documents

Publication Publication Date Title
JP6463393B2 (en) Tenant data recovery across tenant migration
US11782892B2 (en) Method and system for migrating content between enterprise content management systems
RU2610288C2 (en) Providing capabilities of configured technological process
CN112947992B (en) Code version management method and device
US8495166B2 (en) Optimized caching for large data requests
US11687595B2 (en) System and method for searching backups
US8892585B2 (en) Metadata driven flexible user interface for business applications
US11507473B2 (en) System and method for efficient backup generation
CN108509207A (en) The cross-system of WEB application program is installed
US20240028753A1 (en) Method and system for executing a secure file-level restore from a block-based backup
CN103562876A (en) Redirecting requests to secondary location during temporary outage
WO2019109519A1 (en) Service rule management method, apparatus and device, and computer-readable storage medium
CN103597452A (en) Crawling Freshness in a Disaster Data Center
CN117633382A (en) Page loading method and device, electronic equipment and computer readable medium
HK1177520B (en) Recovery of tenant data across tenant moves
CN111553711A (en) Configuration method, system, electronic device and medium of order compensation plan
HK1177520A (en) Recovery of tenant data across tenant moves
CN102150149B (en) Leveraging synchronous communication protocols to enable asynchronous application and line-of-business behaviors
CN113760720A (en) Code abnormal information display method and device
GB2498848A (en) Sharing artifacts between collaborative systems