CN110799960B - 数据库租户迁移的系统和方法 - Google Patents
数据库租户迁移的系统和方法 Download PDFInfo
- Publication number
- CN110799960B CN110799960B CN201880043248.2A CN201880043248A CN110799960B CN 110799960 B CN110799960 B CN 110799960B CN 201880043248 A CN201880043248 A CN 201880043248A CN 110799960 B CN110799960 B CN 110799960B
- Authority
- CN
- China
- Prior art keywords
- tenant
- data
- database instance
- memory
- metadata
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 37
- 230000005012 migration Effects 0.000 title claims description 24
- 238000013508 migration Methods 0.000 title claims description 24
- 230000015654 memory Effects 0.000 claims abstract description 74
- 230000002085 persistent effect Effects 0.000 description 12
- 230000008569 process Effects 0.000 description 11
- 238000004590 computer program Methods 0.000 description 5
- 238000007726 management method Methods 0.000 description 5
- 230000005055 memory storage Effects 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 230000001413 cellular effect Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000010076 replication Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000009429 electrical wiring Methods 0.000 description 1
- 230000005670 electromagnetic radiation Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000012092 media component Substances 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
提供了用于将数据库系统的租户从源数据库实例迁移到目的地数据库实例的系统和方法。该系统和方法包括使要从源数据库实例迁移到目的地数据库实例的租户的租户数据静默,以便在源数据库实例处没有新数据被写入与租户标识符相关联的数据库系统的存储器中;发送要从源数据库实例迁移到目的地数据库实例的租户的元数据,以及在目的地数据库实例处修改租户的元数据,以便目的地数据库实例具有指向存储器中分组的数据的信息,以供目的地数据库访问租户数据。
Description
背景技术
在数据库管理系统(DBMS)中,灵活性在某种程度上是指根据需要按要求调整系统规模的能力,例如,达到负载平衡目的地,在高负载时段期间优化系统资源,在低负载时段期间整合租户等。租户迁移,即将租户数据从一台服务器移动到另一台服务器,在增加灵活性以及改善基本数据库管理功能方面发挥着重要作用。常规的DBMS通过将所有租户数据从一个数据库实例复制到另一个数据库实例来处理租户迁移。根据租户数据的数量,这通常需要对源数据库实例和目的地数据库实例执行多个操作。从源数据库实例中提取并随后删除源数据并将其添加到目的地数据库实例中会产生计算成本。此外,通常必须采取步骤以确保正确复制所有租户数据。
在常规数据库中,租户迁移过程通常很慢、需要大量资源且容易出错,部分原因是迁移租户需要将租户的所有行从源实例复制到目的地实例。
附图的简要说明
附图,其被包括以提供对所公开的主题的进一步理解,并入本说明书中并且构成本说明书的一部分。附图还示出了所公开的主题的实现,并且与详细描述一起解释了所公开的主题的实现的原理。并不试图比基本理解所公开的主题和实践该主题的各种方式所必需的更详细地示出结构细节。
图1A示出了根据所公开的主题的实现的使用虚拟化层存储和检索数据的示例系统和方法。
图1B示出了根据所公开的主题的实现的数据库系统中的记录的示例。
图2A至图2C示出了根据所公开的主题的实现的租户迁移的示例。
图3示出了根据所公开主题的实现的迁移租户数据的操作的流程图。
图4示出了根据所公开的主题的实现的计算机。
图5A-图5B示出了根据所公开的主题的实现的网络配置。
具体实施方式
参照附图描述了本公开的各个方面或特征,其中,相似的附图标记始终用于指代相似的元件。在本说明书中,阐述了许多细节以便提供对本公开的透彻理解。但是,应该理解,可以在没有这些具体细节的情况下,或者采用其他方法、部件、材料等实践本公开的某些方面。在其他情况下,以框图形式示出公知的结构和设备以利于描述主题公开。
传统的DBMS通过将所有租户数据从一个数据库实例复制到另一个数据库实例来处理租户迁移。常规的迁移系统和方法通常是需要大量资源的(即,它们需要大量的计算,数据路径,网络和/或存储资源来复制整个数据集)并且容易出错。例如,通过一系列费时的逐行复制操作迁移的租户数据可能会被错误地复制,可能会部分丢失,可能会损坏等。对于源数据库实例和目的地数据库实例,逐行复制可能很慢且是资源密集的,并且暂时使租户的存储需求增加了一倍。通常,租户的数据无法在一次交易中完全复制,因此需要一个复杂的过程来协调完成迁移之前多次复制操作中不一致的数据。
所公开的主题的实现可以将数据库系统的租户从源数据库实例迁移到目的地数据库实例,而无需逐行复制数据,复制生产数据或对复制的生产数据进行操作。如下所述,所公开的迁移可以比传统的租户迁移技术更快地完成,并且就处理器资源、数据存储和持久存储器资源(persistenceresource)和/或数据路径(例如,通信网络)资源而言,其成本较低。在许多情况下,无需对迁移的数据进行一致性检查或其他纠正措施,从而节省了额外的时间和系统资源。
所公开的租户迁移技术可以应用于多种不同的数据库结构。所公开的主题不限于单一类型的架构,而是出于说明性目的,下面的讨论将描述使用具有键范围(key-range)多租户的日志结构合并(LSM)树的实现。LSM树能够描述具有不可变数据版本的数据更改。键范围多租户允许动态绑定到服务器,并可用于使每个租户的数据保持独立。
LSM树可在关系数据库中使用,该关系数据库存储记录的持久内容,可以在通过租户标识符(即“租户ID”)并使用持久存储器(persistence)虚拟化寻根的单个键空间中使用。持久存储器可以使用扩展区(extent)来实现。“扩展区”是指存储器的区域,在存储介质内通常是连续的,可以用来存储数据。扩展区可以是不可变的。即,扩展区在创建之后可能不会对其进行修改,从而不会更新与存储介质中的扩展区相关联的区域和数据,但是将来可能会将其删除。扩展区引用(extent reference)可以用作对存储在物理存储器(例如,存储设备)中的物理扩展区的逻辑引用,并且可以用于虚拟化对物理存储器的访问。扩展区可以按键排序。
参考附图描述了本公开的各个方面或特征,其中,相同的附图标记始终用于表示相同的元件。在本说明书中,阐述了许多细节以便提供对本公开的透彻理解。但是,应该理解,可以在没有这些具体细节的情况下,或者采用其他方法、部件、材料等来实践本公开的某些方面。在其他情况下,以框图形式示出公知的结构和设备以利于描述本公开。
扩展区引用可以用作对存储在物理存储器(例如,存储设备)中的物理扩展区的逻辑引用,并且可以用于虚拟化对物理存储器的访问。图1A示出了用于实现所公开的租户迁移技术的示例系统100。系统100可以在单个计算设备或多个连接的计算设备上运行。例如,系统100可以在膝上型计算机、台式机、单个服务器、服务器集群、服务器农场或分布式服务器系统上实现,或者可以被实现为虚拟计算设备或系统,或物理和虚拟系统的任何合适的组合。为了简单起见,未示出诸如处理器、操作系统和数据库管理系统的其他组件的各个部分。
系统100可以是计算系统和网络基础架构的一部分,或者可以以其他方式连接到计算系统和网络基础架构,包括更大的服务器网络,该服务器网络可以包括类似于系统100的其他服务器系统。在一些实施例中,系统100可以是图4中所示的计算机600、中央组件700和/或第二计算机800,和/或图5A-图5B中所示的数据库系统1200a-1200d中的一个或更多个。
系统100可以将数据存储在不可变扩展区中。每个扩展区可以具有由系统100分配的唯一的id或键(key)。键可以包括各种类型的信息,例如用于指示数据与哪个租户相关联的租户标识符。
系统100包括访问层105、虚拟化层115和物理存储层127。访问层105可以包括一个或多个服务器111、112、113,这些服务器为租户提供了平台来托管应用程序和数据库,并用作用户与系统100交互的主界面。访问层105还可以包括数据库存储引擎110,该数据库存储引擎110可以操纵服务器111、112、113之间的负载平衡,并且可以接受和处理从计算设备(例如,图4所示的计算机600和/或第二计算机800)对系统100的查询。例如,数据库存储引擎110可以从租户组织接收查询,并且处理该查询以将命令发送到虚拟化层115。数据库存储引擎110可以是服务器系统100上用于以下目的的硬件和软件的任何合适的组合:接收对数据库系统的查询,并检索与接收到的查询有关的数据。
虚拟化层115虚拟化租户数据以向每个租户提供系统服务,例如定制的数据库,即使来自多个租户的数据可以存储在系统100中,该系统服务也只允许租户访问租户自己的数据。虚拟化层可以包括扩展区引用集120和内存存储器125。在一些实现中,扩展区引用集120和内存存储器125可以存储在图4所示的中央组件700中和/或图5A-图5B中所示的数据库系统1200a-1200d中。内存存储器125在数据被记录到物理存储层127中的扩展区之前,存储租户数据的最新版本。扩展区引用集120可以使用来自租户数据的元数据来定义扩展区位于物理存储物理存储器127中的位置(例如,如下所述,可以将租户数据存储为扩展区130的一部分)。元数据可以包括例如定义扩展区内哪些键可见的键范围,指示扩展区的交易顺序的交易号以及将扩展区与给定租户相关联的租户ID数据。扩展区引用集120可以使用服务器系统100上的硬件和软件的任何适当的组合来实现,该硬件和软件可以进行操作以向存储在物理存储器127(例如,存储设备)中的物理扩展区提供逻辑引用的功能。
虚拟化层115可以从数据库存储引擎110接收查询,并通过检查数据的最新版本是否在内存存储器125中,或通过查阅扩展区引用集120,其是否已经存储在物理存储层127中的扩展区130中,来找到所请求的数据。例如,可以从与至少一个租户相关联的数据库系统的授权用户接收该查询。如果数据已经被移动到物理存储器127,则虚拟化层115可以基于扩展区引用集中的元数据来定位所请求的数据。也就是说,虚拟化层115可以从扩展区130检索查询所请求的数据,并且可以将数据返回到数据库存储引擎110,数据库存储引擎110可以将其提供给例如向数据库系统发送查询的计算设备。
物理存储层127可以包括不可变数据存储设备,并且可以实现为例如半导体存储器,固态驱动器(SSD),硬盘驱动器,光学存储器,光学存储设备或任何其他合适的物理数据存储介质,或其某种组合。物理存储层127可以包括扩展区130(它们是租户数据的不可变版本),以及目录135,用于管理扩展区的身份和生存期,以及管理跟踪数据容量以管理可以存储扩展区的硬件(例如存储设备和服务器)。
随着新租户被添加和/或当前租户的增长、收缩或离开,随着时间的流逝,系统100中的资源分配可能变得效率低下。例如,数量相对较多的租户可以在服务器111上运行,而数量相对较少的租户在服务器112、113上运行。作为另一个示例,服务器111上的单个租户可能正在使用不成比例的资源,从而导致对于服务器上其他租户的延迟问题,或者租户对于单个服务器而言可能变得太大。在这些或其他情况中的任何一种情况下,为了合并数据,促进有效的存储管理和/或避免可能破坏原子性或一致性的故障,有必要或期望将租户从一台服务器迁移到另一台服务器。
在数据库系统(例如,图1A中所示的系统100,图4中所示的中央组件700和/或第二计算机800和/或图5A-图5B中所示的数据库系统1200a-1200d)和贯穿全文描述的租户迁移方法中,在多租户系统的实例中,可以将记录识别为键-值对。可以在数据库中创建租赁(tenancy),并且与租赁相关联的授权用户可以查看、访问和/或执行针对该租赁的操作。该值可以是例如关系数据库的表的行的内容、关系数据库的表中的行的标识或任何其他合适的值。键可以是记录的标识符,并且可以采用任何合适的形式,例如字母数字序列。键的某些部分可提供有关记录内容的信息。例如,键的一部分可以是租户标识符,其可以唯一地标识记录的内容所属的租户。键的其他部分例如当记录的值为行的内容或表号、表上的索引号时,可以标识例如表号和行的标识,以及当该值是行的标识时,可以标识所索引的列的标识。
数据库系统(例如,图1所示的系统100,图4所示的中央组件700和/或第二计算机800或图6A-图6B所示的数据库1200a,1200b,1200c和/或1200d)可以将交易存储为给定记录的不变版本。已经存储在服务器系统上的记录内容的不可变版本可能会保持不变,直到从服务器系统删除(如果有的话)为止。即,接收到的交易可以创建要存储在服务器系统中的记录的内容的新版本,而不是改变记录的内容。因此,本文公开的记录的多个版本(例如,具有不同内容的记录)可能具有除了交易标识符之外的相同键。对于给定记录的版本使用其他相同的键可以允许更改存储在关系数据库中的数据。因此,物理记录的每个版本可能都是不可变的;也就是说,它要么未被删除,要么在可能长达数月、数年或数十年的任意长时间段内未被删除。例如,具有与该记录的较早版本相同的键(而不是交易版本标识符)的记录的较新版本可以指示该记录的数据值发生变化(即,记录内容的变化)。或者,交易可以创建记录或删除记录(即,创建内容或删除内容)。可以通过插入‘tombstone(墓碑)’(例如,标识要删除的数据的标记)来删除记录,并且在将来的某个时间点,可以写入新的扩展区,该扩展区不再包含由tombstone标记的记录。
可以在创建租户时制作时间戳或其他时间标识符。此后,租户数据可以通过基于时间戳之前存储的数据池中的键访问适当的版本来解释时间戳之前的数据版本的主键请求。在时间戳之后各个租户访问所创建或更新的数据的键将被解释为访问租户创建的适当数据。替代地,代替使用时间戳,数据库中的每个交易可以具有与之相关联的唯一交易编号,该交易编号对于每个后续交易单调增加,并且系统可以注释最近创建的交易标识符来代替时间戳。
图1B示出了根据所公开的主题的实现,在数据库系统(例如,图1所示的系统100,图2A-图2C所示的系统,图3所示的中央组件700和/或第二计算机800或在图6A-图6B中示出的数据库系统1200a-1200d)中使用的示例记录。记录可以通过键空间(ks)、租户标识符、objectId(对象标识符)和/或ObjectKey(对象键)进行索引(keyed)。如图1B所示,记录可以包括租户标识符、objectId和ObjectKey。记录的键可以包括租户标识符、objectId和ObjectKey。在所公开主题的实现中,键和/或值的长度可以是可变的。如上所讨论的,可以根据提交时间,通过键对所公开的主题的实现方式中的数据扩展区进行排序,并在LSM树中按级别对其进行组织。如本文所公开的数据库系统可以具有不可变存储器,其可以在关系数据库中使用,该关系数据库存储记录的持久内容,由租户标识符并通过使用持久存储器虚拟化所寻根的单个键空间。持久存储器可以由扩展区组成。扩展区通常是用于存储数据的存储器的连续区域。如上所述,扩展区可以是不可变的,并且可以通过键进行排序。
在所公开的主题的实现中,数据扩展区引用可以被组织为级别。一个级别可以覆盖单个键范围,该键范围可以分组为按键排序的数据扩展区引用。
减少和/或最小化组织数据的级别数可能会随着新数据的到来而增加数据的重写。每个级别可具有最大尺寸阈值,并且级别尺寸可呈指数增加。当超过尺寸阈值时,可以由数据库系统(例如,图1A的系统100,图2A-图2C所示的系统和/或图5A-图5B所示的数据库系统1200a-1200d)执行合并操作,其中数据从级别N合并到级别N+1。
直到通过刷新操作使数据成为持久的并且查询已经移至持久存储器的最新查看为止,才将数据从数据库系统的内存存储器(例如,图5B所示的内存存储器1230)中移出。例如,在刷新操作中,如图5B所示,数据从内存存储器1230复制到存储器1260。即,在刷新操作中,一个或更多个扩展区从内存存储器1230移动到存储器1260(即,持久存储器)。对于特定的交易范围,这可以按键顺序进行。
图2A-图2C示出了根据所公开的主题的实现的租户迁移的示例。图2A示出了托管具有租户ID 10、11、62和98的租户的服务器211,以及托管具有租户ID 33、34、44和66的租户的服务器212。每个租户ID对应于扩展区键。服务器211、212对应于图1中位于访问层105中的服务器111、112。数据扩展区引用集220包含扩展区的扩展区ID(EID)和键范围,这些扩展区存储每个租户的对应数据。扩展区231、232存储在物理存储层227中。目录235跟踪扩展区231、232的ID和键范围。数据扩展区引用集220,目录235和扩展区231、232对应于图1A示出的数据扩展区引用集120,目录135和扩展区130。
可以以物理上连续的方式存储租户数据,以允许通过少量的元数据描述租户数据在物理存储中的位置。也就是说,物理存储中的租户数据可以以连续顺序存储和分类。以这种方式,可以使用减少量的元数据来描述租户数据扩展区的键范围,例如,具有扩展区ID“0x21”的扩展区的键范围,数据扩展区引用集220仅需要存储键起始值“10”和键结束值“98”,以将扩展区定义为包含物理存储器中连续记录在键范围(10,98)中的所有数据。
在此示例迁移中,与租户62相关联的数据将从服务器211处的源数据库实例迁移到服务器212处的目的地数据库实例。目的地数据库实例可以位于与源数据库实例不同的物理服务器或虚拟化服务器上。图3示出了根据所公开的主题的实现的迁移租户数据的操作的流程图300。
在操作310中,使与租户62相关联的数据静默(quiesced),使得在源数据库实例处没有新数据被写入与租户标识符相关联的数据库系统的存储器。即,在服务器211处将数据设置为只读,使得服务器211不能向物理存储器添加租户62的数据或更改物理存储器中的租户62的数据。
在操作320中,系统100(图1A)检查内存存储器125中是否有对租户62数据的任何数据修改。如果在内存存储器中存在任何改变,则将它们推出到物理存储层227(图2A)中的扩展区中,以确保数据是最新的。即,对租户62的数据的任何改变都存储在物理存储层227的扩展区231中。
在操作330中,将数据与源数据库解除关联。图2B示出了服务器211解除租户62数据的关联。扩展区引用集220通过将服务器211的键范围重新定义为(10,11),(98,98)并将键范围(62,62)设置为mull(空),来从服务器211分离租户62数据。现在,通过移除与租户62相关联的扩展区引用,从服务器211的源数据库实例中有效地移除租户62。图2B示出了服务器211现在指向键范围(10,11)和(98,98),而服务器212仍然指向键范围(33,66)。
在操作340中,将租户62的数据与目标服务器212相关联。可以通过以下操作来执行关联:发送要从服务器211处的源数据库实例迁移到服务器212处的目的地数据库实例的租户的元数据(在图2A-图2C所示示例中为租户62),并在目的地数据库实例处修改元数据,以便它指向物理存储器中分组的数据,以供租户数据访问租户数据。要发送的租户的元数据可以包括对存储器中租户数据的扩展区的扩展区引用。图2C示出了服务器212基于来自服务器211的元数据与租户62数据相关联。扩展区引用集220重新定义服务器212的键范围以包括(33,44),(62,62),(66,66)。现在,租户62已从服务器211迁移到服务器212。由于该操作仅需要更改元数据,因此可以相对快速地执行该操作,无需在物理存储层或其他位置复制租户数据。
示例迁移可以包括何时公司X需要将业务单元Z的数据从服务器211的数据库系统迁移到图2A所示的数据库系统的服务器212。X公司和业务单元Z都可以是服务器211的数据库系统的租户。可以执行此迁移以对接收到的针对服务器211和212的请求进行负载均衡,以使服务器211不会因同时查询X公司租户数据和业务单元Z的租户数据两者而过载。
在此示例中,业务单元Z的数据(例如,与图2A-图2C中所示的租户62相关联)可以从服务器211处的源数据库实例迁移到服务器212处的目的地数据库实例,以对向服务器211和212查询的数量进行负载均衡。目的地数据库实例(例如,服务器212)可以与源数据库实例(例如,服务器211)位于不同的物理服务器或虚拟化服务器上。图3示出了将业务单元Z的租户数据从服务器211迁移到服务器212的操作。
在操作310中,使业务单元Z的与租户62相关联的数据静默,以便在源数据库实例(例如,服务器211)处没有新数据写入与租户标识符相关联的数据库系统的存储器中。即,在服务器211处将业务单元Z的数据设置为只读,使得服务器211不能添加或更改业务单元Z(例如,租户62)的物理存储器中的数据。
在操作320中,系统检查业务单元Z的数据(例如,租户62数据)是否有任何数据修改。如果存在任何更改,则将它们推出到物理存储层227(图2A)的扩展区中,以确保业务单元Z(例如,租户62)的数据是最新的。即,对业务单元Z的数据(例如,租户62的数据)的任何改变被存储在物理存储层227的扩展区231中。
在操作330中,将业务单元Z数据与源数据库解除关联。图2B示出了服务器211从服务器211解除业务单元Z的数据(例如,租户62数据)的关联。扩展区引用集220通过将服务器211的键范围重新定义为(10,11),(98,98)并将键范围(62,62)设置为mull(空)来从服务器211分离业务单元Z数据(例如,租户62数据)。现在,通过删除与业务单元Z(例如,租户62)相关联的扩展区引用,从服务器211的源数据库实例删除业务单元Z。图2B示出了服务器211现在指向键范围(10,11)和(98,98),而服务器212仍然指向键范围(33,66)。
在操作340中,将业务单元Z(例如,租户62)的数据与目标服务器212相关联。可以通过以下操作执行关联:将业务单元Z(例如,租户62)的元数据从服务器211处的源数据库实例发送到服务器212处的目的地数据库实例,以及在目的地数据库实例处修改元数据,以便它指向物理存储器中分组的数据,以供租户数据访问租户数据。业务单位Z的元数据可以包括对存储器中租户数据的扩展区的扩展区引用。图2C示出了服务器212基于来自服务器211的元数据与业务单元Z数据(例如,租户62数据)相关联。扩展区引用集220重新定义服务器212的键范围以包括(33,44),(62,62),(66,66)。业务单元Z现在已从服务器211迁移到服务器212,并且对服务器211和212的查询数量可能比业务单元Z迁移之前更均衡。
根据上述实现,目的地数据库实例可以与源数据库实例位于不同的物理服务器或虚拟化服务器上,因为目的地数据库实例的物理存储器与源数据库实例共享。此外,在没有数据库间协调的情况下,目的地数据库实例中的至少一些元数据可以指向存储器中与源数据库实例中的至少一些元数据相同的数据。
所公开的实现可以克服传统租户迁移技术中的重要限制。更具体地说,传统的租户迁移相对较慢,因为复制所有必需的数据并检查看看复制的数据是否与原始数据集一致需要花费时间。这样的传统系统和方法也相对耗费资源(即,它们需要大量的计算,数据路径,网络和/或存储资源来复制整个数据集),并且容易出错。例如,数据通常不能正确地复制,迁移所需的数据部分可能丢失,要迁移的数据可能会损坏等。例如,使用传统的系统和方法执行租户迁移通常涉及将租户数据的所有行复制到数据库中。在源数据库和目标数据库上,逐行复制可能很慢且占用大量资源,并且可以至少暂时地使租户的存储量有效地增加一倍。在单次交易中复制所有租户的数据通常也是不切实际的,因此协调不一致数据的过程可能很复杂。根据所公开的实现的租户的迁移几乎是瞬时的,不占用额外的存储空间,并且是完全一致的。
可以在各种组件和网络架构中实现本公开的主题的实现并与之一起使用。图4是适合于实现当前公开的主题的实现的示例计算机600。如本文中进一步详细讨论的,计算机600可以是多个计算机的网络中的单个计算机。如图4所示,计算机600可以与中央或分布式组件700(例如,服务器,云服务器,数据库,集群,应用服务器等)通信。中央组件700可以与诸如第二计算机800之类的一个或更多个其他计算机通信,该第二计算机可以包括存储设备810。第二计算机800可以是服务器、云服务器等。存储器810可以使用任何适当的易失性和非易失性物理存储介质的任何适当的组合,包括例如硬盘驱动器,固态驱动器,光学介质,闪存,磁带驱动器,寄存器和随机存取存储器等等,或其任何组合。
可以使用任何适当的文件系统或存储方案或层次结构以任何适当的格式将数据存储在例如存储器810中。例如,存储器810可以使用具有多个级别的日志结构合并(LSM)树来存储数据。此外,如果图4-图5中所示的系统是多租户系统,针对租户的数据库的每个实例可以将存储器组织成单独的日志结构合并树。或者,可以将特定服务器或系统上所有记录的内容存储在单个日志结构合并树中,在这种情况下,可以使用与记录版本相关联的唯一租户标识符来区分每个租户的数据,如此处所公开。较新的事务可以存储在树的最高层或顶层,而较旧的事务可以存储在树的较低层。或者,可以将每个记录的最新交易或版本(即,每个记录的内容)存储在树的最高级别,而将先前的版本或先前的交易存储在树的较低级别。
可以针对每台计算机隔离所获得的至中央组件700的和/或从中央组件700获得的信息,以使计算机600无法与计算机800共享信息。可替代地,或此外,计算机600可以直接与第二计算机800通信。
计算机(例如,用户计算机、企业计算机等)600包括将计算机600的主要组件互连的总线610,例如中央处理器640,内存670(通常为RAM),但也可以包括ROM,闪存RAM等),输入/输出控制器680,用户显示器620(例如通过显示适配器的显示器或触摸屏),用户输入接口660(可以包括一个或更多个控制器和关联的用户输入或设备,例如键盘,鼠标,Wi-Fi/蜂窝无线电,触摸屏,麦克风/扬声器等,并且可以紧密耦合到I/O控制器680,固定存储器630(例如硬盘驱动器,闪存,光纤通道网络,SAN设备,SCSI设备等),以及可移除媒体组件650,用于控制和接收光盘、闪存驱动器等。
总线610使得能够在中央处理器640和内存670之间进行数据通信,该存储器可以包括只读存储器(ROM)或闪存(均未示出)以及随机存取存储器(RAM)(未示出),如先前指出。RAM可以包括将操作系统和应用程序加载到其中的主内存。ROM或闪存可以包含除其他代码外的基本输入输出系统(BIOS),该系统控制基本硬件操作,例如与外围组件的交互。可以将驻留在计算机600上的应用程序存储在计算机可读介质上并通过计算机可读介质进行访问,例如硬盘驱动器(例如,固定存储器630),光盘驱动器,软盘或其他存储介质650。
固定存储器630可以与计算机600集成在一起,或者可以分离并通过其他接口访问。固定存储器630可以是存储区域网络(SAN)的一部分。网络接口690可以通过电话链路提供到远程服务器的直接连接,通过互联网服务提供商(ISP)提供到互联网的直接连接,或者通过直接网络链接提供到远程服务器的直接连接,或者通过POP(存在点)或其他技术提供到互联网的直接连接。网络接口690可以使用无线技术来提供这种连接,所述无线技术包括数字蜂窝电话连接,蜂窝数字分组数据(CDPD)连接,数字卫星数据连接等。例如,网络接口690可以使计算机能够经由一个或多个局域网、广域网或其他网络与其他计算机和/或存储设备进行通信,如图5A-图5B所示。
许多其他设备或组件(未示出)可以以类似方式连接(例如,数据高速缓存系统,应用服务器,通信网络交换机,防火墙设备,验证和/或授权服务器,计算机和/或网络安全系统等等)。相反,不需要图5A-图5B中所示的所有组件都存在以实践本公开。组件可以以不同于所示方式的方式互连。诸如图10中所示的计算机的操作是本领域公知的,在本申请中不再详细讨论。可以将实现本公开的代码存储在计算机可读存储介质中,例如内存670,固定存储器630,可移除介质650中的一个或更多个,或存储在远程存储位置上。
图5A-图5B示出了根据所公开的主题的实现的示例性网络布置。在由云1202表示的网络中的不同节点处的四个分开的数据库系统1200a-d通过联网链路1204彼此通信并且与用户(未示出)通信。每个数据库系统1200可操作为托管数据库的多个实例,其中每个实例仅可被与特定租户相关联的用户访问。每个数据库系统都可以与存储区域网络(未示出)、负载均衡器和备份服务器以及防火墙、其他安全系统和验证系统一起组成计算机集群。系统1200中的任何一个处的一些实例可以是生活或生产中的实例,其处理和提交从用户或从计算元件(未示出)接收的事务,以摄取并提供数据以存储在实例中。
可以随时选择一个或更多个数据库系统1200a-1200d作为租户数据的源或目的地。例如,与租户相关联的数据库系统1200a-1200d的管理员或一个或更多个授权用户可以请求将租户数据迁移到数据库系统1200a-1200d中的一个。该系统,例如1200c,可以包括至少一个存储设备,如图5A-图5B中所示。例如,存储器可以包括内存670,固定存储器630,可移除介质650,中央组件700和/或第二计算机800所包括的存储设备,和/或与一个或更多个数据库系统1200a-1200d相关联的一个或更多个存储设备。租户可以使租户数据存储在与租户标识符相关联的至少一个存储设备的不可变存储器中。
图5B示出了根据所公开的主题的实现的单独的数据库系统1200a,1200b,1200c或1200d。数据库系统1200a-1200c可以具有存储器1260,其可以包括提供数据(例如,租户数据)的持久存储的一个或更多个存储设备。数据库系统1200a,1200b,1200c或1200d可以包括一个或更多个应用程序1210,其可以使用来自节点1220和/或存储器1260的数据和/或信息,存储器1260可以是一个或更多个存储设备。应用程序1210可以包括客户关系管理(CRM)应用程序等。存储器1260可以是一个或更多个存储设备,并且可以存储可以包括租户数据的数据扩展区1270。
在一些实现中,图4-图5B中所示的一个或更多个服务器可以使用日志结构合并树数据结构将数据存储在至少一个存储设备(例如,与中央组件700、第二计算机800和/或数据库系统1200a-1200d相关联的存储设备)的不可变存储器中。
所公开的主题的系统和方法可以用于单租户系统和/或多租户系统。多租户系统可以允许各种租户(例如可以是用户、用户组或组织)通过可以在各种租户之间共享的软件工具或服务器系统上的实例访问服务器系统上其自己的记录。每个租户的记录的内容可以是包含该租户的数据库的一部分。多个租户的记录的内容可以都一起存储在同一数据库中,但是每个租户只能访问属于该租户或由该租户创建的记录的内容。这可以允许数据库系统启用多租户,而不必将每个租户的记录的内容分别存储在例如单独的服务器或服务器系统上。租户的数据库可以是例如关系数据库、层次数据库或任何其他合适的数据库类型。存储在服务器系统上的所有记录可以以任何合适的结构存储,包括例如LSM树。
此外,多租户系统可以在分布在整个网络内的服务器系统上具有各种租户实例,并且每个节点处都具有计算系统。每个租户的生活或生产数据库实例只能在一个计算机系统上处理其交易。用于处理该实例的交易的计算系统还可以为其他租户处理其他实例的交易。
根据图或算法以及对计算机内存内的数据位的操作的符号表示来呈现具体实施方式的某些部分。这些图以及算法描述和表示通常由数据处理领域的技术人员用来将其工作的实质最有效地传达给本领域的其他技术人员。这里并且通常将算法设想为导致期望结果的步骤的自洽序列。这些步骤是需要对物理量进行物理操纵的步骤。通常,尽管不是必须的,这些量采取能够被存储、传输、组合、比较和以其他方式操纵的电或磁信号的形式。主要出于通用目的,已经证明有时将这些信号称为位,值,元素,符号,字符,项,数字等是方便的。
但是应该记住,所有这些和类似术语应与适当的物理量相关联,并且仅仅是应用于这些量的方便标签。除非从上面的讨论明显地另外指出,否则应理解,在整个描述中,利用诸如“接收”,“发送”,“修改”,“发送”等的术语的讨论是指计算机系统或类似的电子计算设备的动作和过程,这些计算机系统或类似的电子计算设备将表示为计算机系统的寄存器和内存中的物理(例如电子)量的数据进行操纵和转换为类似地表示为计算机系统内存或寄存器或其他此类信息存储、传输或显示设备的物理量的其他数据。
更一般地,当前公开的主题的各种实现可以包括或以计算机实现的过程和用于实践那些过程的装置的形式来实现。实现也可以以计算机程序产品的形式来实施,该计算机程序产品具有包含在非暂时性和/或有形介质(例如软盘,CD-ROM,硬盘驱动器,USB(通用串行总线)驱动器,或任何其他机器可读存储介质)中实现的指令,其中,当将计算机程序代码加载到计算机中并由计算机执行时,计算机成为用于实践所公开主题的实现的设备。还可以以计算机程序代码的形式来实施实现,例如,无论是存储在存储介质中,加载到计算机中和/或由计算机执行,还是通过某种传输介质(例如通过电线或电缆)经由光纤传输或通过电磁辐射传输,其中当将计算机程序代码加载到计算机中并由计算机执行时,计算机成为用于实践所公开主题的实现的设备。当在通用微处理器上实现时,计算机程序代码段将微处理器配置为创建特定的逻辑电路。在某些配置中,存储在计算机可读存储介质上的一组计算机可读指令可以由通用处理器实现,通用处理器可以将通用处理器或包含通用处理器的设备转换为配置为实现或执行指令的专用设备。可以使用硬件来实施实现,该硬件可以包括处理器,例如通用微处理器和/或专用集成电路(ASIC),该处理器根据硬件和/或固件中所公开的主题的实现方式来实现全部或部分技术。处理器可以耦合到诸如RAM,ROM,闪存,硬盘或能够存储电子信息的任何其他设备的内存。内存可以存储适于由处理器执行以执行根据所公开的主题的实现的技术的指令。
出于解释的目的,已经参考特定实现描述了前述描述。然而,以上说明性讨论并非旨在穷举或将所公开的主题的实现限制为所公开的精确形式。鉴于以上教导,许多修改和变化是可能的。选择并描述了实现以解释所公开的主题的实现的原理及其实际应用,从而使本领域的其他技术人员能够利用那些实现以及具有各种修改的各种实现,以适合所考虑的特定的用途。
Claims (12)
1.一种用于将数据库系统的租户从源数据库实例迁移到目的地数据库实例的计算机化的方法,具有存储在与租户标识符相关联的数据库系统的不可变存储器中的租户数据的所述租户要被迁移到所述目的地数据库实例,所述不可变存储器包括具有指向存储器的物理位置的指针的分组的数据,并且其中所述分组的数据包括用于访问所述存储器中至少部分数据的元数据,所述方法包括:
使要从所述源数据库实例迁移到所述目的地数据库实例的所述租户的所述租户数据静默,以便在所述源数据库实例处没有新数据被写入与所述租户标识符相关联的所述数据库系统的所述存储器中;
发送要从所述源数据库实例迁移到所述目的地数据库实例的所述租户的元数据,但不移动所述存储器中的所述租户数据,其中所述目的地数据库实例与所述源数据库实例位于不同的物理服务器或虚拟化服务器上,其中所述元数据包括所述存储器中的所述租户数据的扩展区的扩展区引用、所述扩展区的键范围和所述扩展区的租户标识符数据,并且其中所述键范围的至少一个键包括用于使所述租户与所述租户数据相关联的所述租户标识符;以及
在所述目的地数据库实例处,通过向所述目的地数据库实例的活动的扩展区引用集中添加至少一个新的扩展区引用来修改所述租户的所述元数据中的所述租户数据的键范围,所述活动的扩展区引用集包含用于从所述源数据库实例迁移的所述租户的键,以便所述目的地数据库实例指向所述存储器中的所述分组的数据,以供所述目的地数据库访问所述租户数据,但不移动所述存储器中的所述租户数据。
2.根据权利要求1所述的计算机化的方法,其中与所述源数据库实例位于不同的物理服务器或虚拟化服务器上的所述目的地数据库实例被配置为访问所述存储器,其中所述目的地数据库实例的所述存储器与所述源数据库实例共享。
3.根据权利要求1所述的计算机化的方法,还包括:
由于所述租户数据在物理上是连续的,因此对所述租户数据进行排序以允许所述租户数据在所述存储器中的位置由元数据来描述。
4.根据权利要求1所述的计算机化的方法,其中所述目的地数据库实例中的至少一些元数据指向所述存储器中与所述源数据库实例中的至少一些元数据相同的数据,无需数据库间协调。
5.根据权利要求1所述的计算机化的方法,还包括:
当所述租户已从所述源数据库实例迁移到所述目的地数据库实例时,通过移除所述源数据库实例的所述元数据中的所述租户的扩展区引用,来从所述源数据库实例中移除所述租户。
6.根据权利要求1所述的计算机化的方法,还包括:
使用日志结构合并树数据结构将所述租户数据存储在所述存储器中。
7.一种将数据库系统的租户从源数据库实例迁移到目的地数据库实例的系统,所述系统包括:
至少一个物理存储设备,用于存储与要迁移到所述目的地数据库实例的所述租户的租户标识符相关联的租户数据,所述至少一个物理存储设备包括具有指向所述至少一个物理存储设备的物理位置的指针的分组的数据,并且其中所述分组的数据包括用于访问所述至少一个物理存储设备中的至少部分数据的元数据;和
一个或更多个服务器,用于所述源数据库实例和所述目的地数据库实例,通信地耦合到所述至少一个物理存储设备,所述一个或更多个服务器用于使要从所述源数据库实例迁移到所述目的地数据库实例的所述租户的所述租户数据静默,使得在所述源数据库实例处没有新数据写入与所述租户标识符相关联的所述数据库系统的所述至少一个物理存储设备中,发送要从所述源数据库实例迁移到所述目的地数据库实例的所述租户的元数据,但不移动所述至少一个物理存储设备中的所述租户数据,其中所述目的地数据库实例与所述源数据库实例位于不同的物理服务器或虚拟化服务器上,并且其中所述元数据包括所述至少一个物理存储设备中的所述租户数据的扩展区的扩展区引用、所述扩展区的键范围和所述扩展区的租户标识符数据,其中所述键范围的至少一个键包括用于使所述租户数据与所述租户相关联的所述租户标识符,以及在所述目的地数据库实例处,通过向所述目的地数据库实例的活动的扩展区引用集中添加至少一个新的扩展区引用来修改所述租户的所述元数据中的所述租户数据的键范围,所述活动的扩展区引用集包含用于从所述源数据库实例迁移的所述租户的键,以便所述目的地数据库实例指向所述至少一个物理存储设备中用于所述租户数据的分组的数据,以访问租户数据,但不移动所述至少一个物理存储设备中的所述租户数据。
8.根据权利要求7所述的系统,其中与所述源数据库实例位于不同的物理服务器或虚拟化服务器上的所述目的地数据库实例被配置成访问所述至少一个物理存储设备,其中所述目的地数据库实例的所述至少一个物理存储设备与所述源数据库实例共享。
9.根据权利要求7所述的系统,其中由于所述租户数据是物理上连续的,因此所述至少一个服务器对所述租户数据进行排序,以允许所述租户数据在所述至少一个物理存储设备中的位置由元数据来描述。
10.根据权利要求7所述的系统,其中所述目的地数据库实例中的至少一些元数据指向所述至少一个物理存储设备中与所述源数据库实例中的至少一些元数据相同的数据,无需数据库间协调。
11.根据权利要求7所述的系统,其中当所述租户已经从所述源数据库实例迁移到所述目的地数据库实例时,所述至少一个服务器通过移除所述源数据库实例中的所述元数据中的所述租户的扩展区引用来从所述源数据库实例移除所述租户。
12.根据权利要求7所述的系统,其中所述至少一个服务器使用日志结构合并树数据结构将所述租户数据存储在所述至少一个物理存储设备中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311561060.6A CN117609183A (zh) | 2017-06-27 | 2018-06-26 | 数据库租户迁移的系统和方法 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/634,779 | 2017-06-27 | ||
US15/634,779 US10872066B2 (en) | 2017-06-27 | 2017-06-27 | Systems and methods of database tenant migration |
PCT/US2018/039441 WO2019005753A1 (en) | 2017-06-27 | 2018-06-26 | SYSTEMS AND METHODS FOR DATABASE TENANT MIGRATION |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311561060.6A Division CN117609183A (zh) | 2017-06-27 | 2018-06-26 | 数据库租户迁移的系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110799960A CN110799960A (zh) | 2020-02-14 |
CN110799960B true CN110799960B (zh) | 2023-12-08 |
Family
ID=62986194
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311561060.6A Pending CN117609183A (zh) | 2017-06-27 | 2018-06-26 | 数据库租户迁移的系统和方法 |
CN201880043248.2A Active CN110799960B (zh) | 2017-06-27 | 2018-06-26 | 数据库租户迁移的系统和方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311561060.6A Pending CN117609183A (zh) | 2017-06-27 | 2018-06-26 | 数据库租户迁移的系统和方法 |
Country Status (7)
Country | Link |
---|---|
US (2) | US10872066B2 (zh) |
EP (2) | EP4357930A1 (zh) |
JP (2) | JP7053682B2 (zh) |
CN (2) | CN117609183A (zh) |
AU (1) | AU2018290745B2 (zh) |
CA (1) | CA3066250A1 (zh) |
WO (1) | WO2019005753A1 (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10872066B2 (en) | 2017-06-27 | 2020-12-22 | Salesforce.Com, Inc. | Systems and methods of database tenant migration |
US10528592B2 (en) * | 2018-01-04 | 2020-01-07 | Sap Se | Database scaling for multi-tenant applications |
US10942902B2 (en) * | 2019-01-17 | 2021-03-09 | Cohesity, Inc. | Efficient database migration using an intermediary secondary storage system |
US10649952B1 (en) * | 2019-01-23 | 2020-05-12 | Cohesity, Inc. | Using a secondary storage system to maintain functionality of a database during database migration |
US11238174B2 (en) | 2019-01-31 | 2022-02-01 | Salesforce.Com, Inc. | Systems and methods of database encryption in a multitenant database management system |
CN110119412B (zh) * | 2019-04-16 | 2023-01-03 | 南京昆虫软件有限公司 | 一种引文来源数据库辨别方法 |
US11055010B2 (en) * | 2019-09-05 | 2021-07-06 | Microsoft Technology Licensing, Llc | Data partition migration via metadata transfer and access attribute change |
US11321294B2 (en) | 2019-09-09 | 2022-05-03 | Salesforce.Com, Inc. | Database index repair |
US11514015B2 (en) | 2020-01-30 | 2022-11-29 | Salesforce.Com, Inc. | Reducing requests using probabilistic data structures |
US11526474B2 (en) * | 2020-01-30 | 2022-12-13 | Salesforce.Com, Inc. | Reducing requests using probabilistic data structures |
US11483150B2 (en) | 2020-06-01 | 2022-10-25 | Salesforce.Com, Inc. | Private key cache in secure enclave |
US11232084B2 (en) | 2020-06-26 | 2022-01-25 | Microsoft Technology Licensing, Llc | Schema agnostic migration of delineated data between relational databases |
US20220129445A1 (en) * | 2020-10-28 | 2022-04-28 | Salesforce.Com, Inc. | Keyspace references |
CN113094372A (zh) * | 2021-04-16 | 2021-07-09 | 三星(中国)半导体有限公司 | 数据存取方法、数据存取控制装置及数据存取系统 |
US11989051B2 (en) | 2021-06-08 | 2024-05-21 | Salesforce, Inc. | Time alignment in director-based database system for transactional consistency |
US11822535B2 (en) | 2021-06-08 | 2023-11-21 | Salesforce, Inc. | Director-based database system for transactional consistency |
US20220391379A1 (en) * | 2021-06-08 | 2022-12-08 | Salesforce.Com, Inc. | Assistant nodes in director-based database system for transactional consistency |
US11914580B2 (en) * | 2021-09-30 | 2024-02-27 | Salesforce, Inc. | Mechanisms for deploying database clusters |
US20230409239A1 (en) * | 2022-06-21 | 2023-12-21 | Micron Technology, Inc. | Efficient command fetching in a memory sub-system |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101639835A (zh) * | 2008-07-30 | 2010-02-03 | 国际商业机器公司 | 多租户场景中应用数据库分区的方法和装置 |
CN102495857A (zh) * | 2011-11-21 | 2012-06-13 | 北京新媒传信科技有限公司 | 一种分布式数据库的负载均衡方法 |
CN104160381A (zh) * | 2012-03-08 | 2014-11-19 | 国际商业机器公司 | 多租户环境中租户特定数据集的管理 |
CN105359147A (zh) * | 2013-07-09 | 2016-02-24 | 甲骨文国际公司 | 在线数据库迁移 |
CN105393250A (zh) * | 2013-07-09 | 2016-03-09 | 甲骨文国际公司 | 动态迁移脚本的管理 |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002097664A1 (en) * | 2001-05-30 | 2002-12-05 | Sap Aktiengesellschaft | Method, system, and computer program for migrating content from source database to target database |
US7873684B2 (en) * | 2003-08-14 | 2011-01-18 | Oracle International Corporation | Automatic and dynamic provisioning of databases |
US8006056B2 (en) * | 2004-01-30 | 2011-08-23 | Hewlett-Packard Development Company, L.P. | Storage system including capability to move a virtual storage device group without moving data |
US8255373B2 (en) * | 2008-10-24 | 2012-08-28 | Microsoft Corporation | Atomic multiple modification of data in a distributed storage system |
US8798719B2 (en) | 2009-12-02 | 2014-08-05 | Qing X. Yang | Method of utilization of high dielectric constant (HDC) materials for reducing SAR and enhancing SNR in MRI |
US20110302277A1 (en) * | 2010-06-07 | 2011-12-08 | Salesforce.Com, Inc. | Methods and apparatus for web-based migration of data in a multi-tenant database system |
US8386431B2 (en) * | 2010-06-14 | 2013-02-26 | Sap Ag | Method and system for determining database object associated with tenant-independent or tenant-specific data, configured to store data partition, current version of the respective convertor |
WO2012033110A1 (ja) * | 2010-09-06 | 2012-03-15 | 日本電気株式会社 | アプリケーション構成システム、方法、及び、プログラム |
JP5775359B2 (ja) * | 2011-05-11 | 2015-09-09 | キヤノン株式会社 | システム管理サーバ、管理方法及びプログラム |
US8965921B2 (en) * | 2012-06-06 | 2015-02-24 | Rackspace Us, Inc. | Data management and indexing across a distributed database |
US10635674B2 (en) * | 2012-09-28 | 2020-04-28 | Oracle International Corporation | Migrating a pluggable database between database server instances with minimal impact to performance |
US9396220B2 (en) | 2014-03-10 | 2016-07-19 | Oracle International Corporation | Instantaneous unplug of pluggable database from one container database and plug into another container database |
US9727598B2 (en) * | 2012-12-19 | 2017-08-08 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for fixing logical or physical corruption in databases using LSM trees |
US9298521B1 (en) * | 2013-04-29 | 2016-03-29 | Seagate Technology Llc | Command sets and functions |
US9231871B2 (en) * | 2013-11-25 | 2016-01-05 | Versa Networks, Inc. | Flow distribution table for packet flow load balancing |
US10241709B2 (en) * | 2013-12-09 | 2019-03-26 | Vmware, Inc. | Elastic temporary filesystem |
US10089125B2 (en) * | 2014-07-23 | 2018-10-02 | Hitachi, Ltd. | Virtual machines accessing file data, object data, and block data |
WO2016032803A1 (en) * | 2014-08-27 | 2016-03-03 | Alibaba Group Holding Limited | Dynamic load-based merging |
WO2016088372A1 (ja) * | 2014-12-05 | 2016-06-09 | 日本電気株式会社 | アクセス装置、マイグレーション装置、分散ストレージシステム、アクセス方法及びコンピュータ読み取り可能記録媒体 |
US10684876B2 (en) * | 2015-05-14 | 2020-06-16 | Netapp, Inc. | Migration of virtual machine data using native data paths |
US11481440B2 (en) * | 2015-11-30 | 2022-10-25 | Salesforce.Com, Inc. | System and method for processing metadata to determine an object sequence |
US10460124B2 (en) * | 2016-06-20 | 2019-10-29 | Netapp, Inc. | Per-volume tenant encryption and external key manager |
US10432697B2 (en) * | 2016-07-26 | 2019-10-01 | Salesforce.Com, Inc. | Method and system for re-deploying metadata and associated data from a source organization to a destination organization |
US10169387B1 (en) * | 2016-07-28 | 2019-01-01 | EMC IP Holding Company LLC | Self-balancing tree data structure compression |
US10872066B2 (en) | 2017-06-27 | 2020-12-22 | Salesforce.Com, Inc. | Systems and methods of database tenant migration |
US10963435B1 (en) * | 2017-07-10 | 2021-03-30 | Amazon Technologies, Inc. | Data validation of data migrated from a source database to a target database |
US10733168B2 (en) * | 2017-10-26 | 2020-08-04 | Sap Se | Deploying changes to key patterns in multi-tenancy database systems |
-
2017
- 2017-06-27 US US15/634,779 patent/US10872066B2/en active Active
-
2018
- 2018-06-26 AU AU2018290745A patent/AU2018290745B2/en active Active
- 2018-06-26 EP EP23210945.4A patent/EP4357930A1/en active Pending
- 2018-06-26 JP JP2019570896A patent/JP7053682B2/ja active Active
- 2018-06-26 CN CN202311561060.6A patent/CN117609183A/zh active Pending
- 2018-06-26 WO PCT/US2018/039441 patent/WO2019005753A1/en unknown
- 2018-06-26 EP EP18743917.9A patent/EP3646204B1/en active Active
- 2018-06-26 CA CA3066250A patent/CA3066250A1/en active Pending
- 2018-06-26 CN CN201880043248.2A patent/CN110799960B/zh active Active
-
2020
- 2020-11-17 US US16/950,086 patent/US11797498B2/en active Active
-
2022
- 2022-03-31 JP JP2022059163A patent/JP7309005B2/ja active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101639835A (zh) * | 2008-07-30 | 2010-02-03 | 国际商业机器公司 | 多租户场景中应用数据库分区的方法和装置 |
CN102495857A (zh) * | 2011-11-21 | 2012-06-13 | 北京新媒传信科技有限公司 | 一种分布式数据库的负载均衡方法 |
CN104160381A (zh) * | 2012-03-08 | 2014-11-19 | 国际商业机器公司 | 多租户环境中租户特定数据集的管理 |
CN105359147A (zh) * | 2013-07-09 | 2016-02-24 | 甲骨文国际公司 | 在线数据库迁移 |
CN105393250A (zh) * | 2013-07-09 | 2016-03-09 | 甲骨文国际公司 | 动态迁移脚本的管理 |
Non-Patent Citations (1)
Title |
---|
一种SaaS交付平台的多租户数据迁移策略;孔兰菊,李庆忠,李晓娜;《计算机应用与软件》;全文 * |
Also Published As
Publication number | Publication date |
---|---|
JP2020525906A (ja) | 2020-08-27 |
EP4357930A1 (en) | 2024-04-24 |
AU2018290745B2 (en) | 2020-12-10 |
US20180373708A1 (en) | 2018-12-27 |
EP3646204B1 (en) | 2023-12-13 |
US10872066B2 (en) | 2020-12-22 |
JP2022095781A (ja) | 2022-06-28 |
CA3066250A1 (en) | 2019-01-03 |
WO2019005753A1 (en) | 2019-01-03 |
CN110799960A (zh) | 2020-02-14 |
US20210073189A1 (en) | 2021-03-11 |
JP7053682B2 (ja) | 2022-04-12 |
CN117609183A (zh) | 2024-02-27 |
EP3646204A1 (en) | 2020-05-06 |
JP7309005B2 (ja) | 2023-07-14 |
AU2018290745A1 (en) | 2020-01-02 |
US11797498B2 (en) | 2023-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110799960B (zh) | 数据库租户迁移的系统和方法 | |
JP7090606B2 (ja) | データベース・システムにおけるテスト・データの形成及び動作 | |
US11099771B2 (en) | System and method for early removal of tombstone records in database | |
US10963454B2 (en) | System and method for bulk removal of records in a database | |
US10621071B2 (en) | Formation and manipulation of test data in a database system | |
CN110799961B (zh) | 在数据库中创建和删除租户的系统和方法 | |
US10990571B1 (en) | Online reordering of database table columns | |
US20200201745A1 (en) | Formation and manipulation of test data in a database system | |
US10909091B1 (en) | On-demand data schema modifications | |
US10719554B1 (en) | Selective maintenance of a spatial index |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: California, USA Applicant after: Shuo Power Co. Address before: California, USA Applicant before: SALESFORCE.COM, Inc. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |