CN107918668B - 一种k-db数据库表空间元数据本地存储方法 - Google Patents
一种k-db数据库表空间元数据本地存储方法 Download PDFInfo
- Publication number
- CN107918668B CN107918668B CN201711215908.4A CN201711215908A CN107918668B CN 107918668 B CN107918668 B CN 107918668B CN 201711215908 A CN201711215908 A CN 201711215908A CN 107918668 B CN107918668 B CN 107918668B
- Authority
- CN
- China
- Prior art keywords
- database
- metadata
- user
- custom
- space
- 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
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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2291—User-Defined Types; Storage management thereof
-
- 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
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (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
本发明特别涉及一种K‑DB数据库表空间元数据本地存储方法。该K‑DB数据库表空间元数据本地存储方法,将所有用户自定义表空间的元数据都存储到该自定义表空间中,实现用户自定义表空间元数据从SYSTEM表空间中剥离;同时,在自定义表空间设计热插拔SQL命令,实现自定义表空间从数据库中分离和向数据库插入。该K‑DB数据库表空间元数据本地存储方法,可以避免由于SYSTEM表空间故障时因为数据库无法启动造成自定义表空间数据不可用,使得任何一个自定义表空间的损坏不影响数据库及其它自定义表空间的正常使用;并且可以方便实现自定义表空间从数据库中分离和向数据库插入,实现了表空间之间数据的隔离以及自定义表空间数据快速的迁移。
Description
技术领域
本发明涉及元数据存储技术领域,特别涉及一种K-DB数据库表空间元数据本地存储方法。
背景技术
K-DB数据库是浪潮自主研发的一种关系型数据库,采用通过共享存储方式实现多个实例同时访问存储中数据库数据,各实例并行运行的集群模式。K-DB数据库拥有System、Syssub、用户自定义表空间等若干表空间,这些表空间存储着数据库本身的所有元数据以及用户业务对象和元数据,用于保证数据库的正常运行。
目前,K-DB数据库用户自定义表空间的元数据以及用户自定义表空间中存储对象的元数据都存储在SYSTEM表空间中。这种元数据集中存储在SYSTEM表空间中的方式存在一定安全隐患:当SYSTEM表空间的数据文件丢失或损坏时,可能造成数据库无法启动、表空间数据无法访问,需要通过恢复SYSTEM表空间或整个数据库的方式才能恢复数据库的访问;如果数据库没有备份,那么可能造成数据库数据全部无法读/写。SYSTEM表空间数据文件损坏造成数据库无法启动的故障时有发生,若数据库无法启动则其中的数据无法访问,等同于数据丢失,这种损失是无法估量的。
为了避免SYSTEM空间损坏影响用户自定义表空间的使用以及自定义表空间损坏影响其它自定义表空间的使用,本发明提出了一种K-DB数据库表空间元数据本地存储方法。
发明内容
本发明为了弥补现有技术的缺陷,提供了一种简单高效的K-DB数据库表空间元数据本地存储方法。
本发明是通过如下技术方案实现的:
一种K-DB数据库表空间元数据本地存储方法,其特征在于:将所有用户自定义表空间的元数据都存储到该自定义表空间中,即用户自定义表空间存储着该自定义表空间以及其中各种对象的元数据,并且也存储该自定义表空间中对象数据,实现了用户自定义表空间元数据从SYSTEM表空间中剥离;同时,在自定义表空间设计热插拔SQL命令,实现自定义表空间从数据库中分离和向数据库插入;
当需要对数据进行迁移时,准备一个与源库软件版本相同的目标数据库,将相应自定义表空间从原数据库中拆离,然后将自定义表空间所有数据文件拷贝到目标主机目录,修改数据文件属主和权限后,执行热插拔SQL命令将自定义表空间及数据文件插入到新的数据库,整个迁移过程不需要将元数据导出再导入。
所述自定义表空间的元数据包括表空间名称,表空间的数据文件名称,数据文件大小和路径、表空间分配信息,表空间中存放的表和索引对象的名称、对象类型、对象大小、对象的存储位置信息。
所述自定义表空间的元数据存储区空间不低于50M空间。
数据库启动时首先检查各自定义表空间元数据是否完整;然后读取各个自定义表空间的元数据到内存区;数据库负责维护各自定义表空间的元数据,将元数据的变更写入到自定义表空间对应的数据文件中,同时将所有对元数据的变更都记录到REDO文件中,以便在数据库CRASH或恢复时恢复表空间数据。
当在自定义表空间上创建表或索引对象时,从该自定义表空间中分配所需空间大小和位置,将空间大小和位置以及对象信息记录到元数据中;当在自定义表空间上删除表或索引对象时,从元数据中将相应对象信息删除并且释放回收自定义表空间中被对象占用的空间;当在自定义表空间上增加或删除数据文件时同样会对元数据的数据文件名称、路径、大小和存储起止位置进行修改。
当需要将自定义表空间从数据库中分离出来时,执行热插拔SQL命令:alterdatabase remove tablespace mydata,其中mydata为自定义表空间名称;数据库冻结对该自定义表空间中元数据和表索引对象的读/写,不允许新的读/写操作;如果此时有对元数据和表索引的读/写未完成,则等待读/写完成后热插拔SQL命令才会返回命令行;当热插拔SQL命令执行完毕返回到命令行后,表示该自定义表空间已经从数据库中移除,dba_data_files,dba_tablespaces和v$datafile视图中自定义表空间和该自定义表空间数据文件信息已经被移除;该被数据库移除的自定义表空间中保存有完整的元数据和表索引对象数据信息。
当需要将自定义表空间重新插入数据库时,执行热插拔SQL命令:alter databaseplus tablespace mydata datafiles ‘/u01/kdbdata’,其中mydata为自定义表空间名称;指定自定义表空间名称和该自定义表空间所有数据文件所在目录,数据库在指定的目录中查找属于自定义表空间mydata的所有数据文件;当数据文件确定无误后将该自定义表空间插入数据库,在dba_data_files,dba_tablespaces和v$datafile视图中增加该自定义表空间和该自定义表空间数据文件的信息,并读取该自定义表空间的元数据到内存区以便于数据库查询和维护元数据。
当存在如下一些情况时自定义表空间插入将失败:
(1)热插拔SQL命令中指定的自定义表空间名称不正确,无法在指定的目录数据文件中找到相应名称的自定义表空间;
(2)指定自定义表空间名称已经存在,首先会检查自定义表空间名称是否已经存在,如果存在则返回失败;
(3)检查数据库操作系统用户是否有指定目录中自定义表空间对应的数据文件的读/写权限,以及数据文件实际大小和数量信息;若没有了读/写权限,或者数据文件实际大小和数量信息与数据文件大小和数量不一致,则数据库无法对数据文件进行操作。
本发明的有益效果是:该K-DB数据库表空间元数据本地存储方法,可以实现自定义表空间与SYSTEM表空间数据逻辑上的隔离,避免由于SYSTEM表空间故障时因为数据库无法启动造成自定义表空间数据不可用,使得任何一个自定义表空间的损坏不影响数据库及其它自定义表空间的正常使用;并且可以方便实现自定义表空间从数据库中分离和向数据库插入,实现了表空间之间数据的隔离以及自定义表空间数据快速的迁移。
具体实施方式
为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合实施例,对本发明进行详细的说明。应当说明的是,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
该K-DB数据库表空间元数据本地存储方法,将所有用户自定义表空间的元数据都存储到该自定义表空间中,即用户自定义表空间存储着该自定义表空间以及其中各种对象的元数据,并且也存储该自定义表空间中对象数据,实现了用户自定义表空间元数据从SYSTEM表空间中剥离;同时,在自定义表空间设计热插拔SQL命令,实现自定义表空间从数据库中分离和向数据库插入;
当需要对数据进行迁移时,准备一个与源库软件版本相同的目标数据库,将相应自定义表空间从原数据库中拆离,然后将自定义表空间所有数据文件拷贝到目标主机目录,修改数据文件属主和权限后,执行热插拔SQL命令将自定义表空间及数据文件插入到新的数据库,整个迁移过程不需要将元数据导出再导入。
所述自定义表空间的元数据包括表空间名称,表空间的数据文件名称,数据文件大小和路径、表空间分配信息,表空间中存放的表和索引对象的名称、对象类型、对象大小、对象的存储位置信息。
所述自定义表空间的元数据存储区空间不低于50M空间。
数据库启动时首先检查各自定义表空间元数据是否完整;然后读取各个自定义表空间的元数据到内存区;数据库负责维护各自定义表空间的元数据,将元数据的变更写入到自定义表空间对应的数据文件中,同时将所有对元数据的变更都记录到REDO文件中,以便在数据库CRASH或恢复时恢复表空间数据。
REDO为数据库中使用的记录数据库表变更的条目,用于数据恢复。
元数据(METADATA),为描述数据的数据,比如表和列的定义信息称为元数据。
当在自定义表空间上创建表或索引对象时,从该自定义表空间中分配所需空间大小和位置,将空间大小和位置以及对象信息记录到元数据中;当在自定义表空间上删除表或索引对象时,从元数据中将相应对象信息删除并且释放回收自定义表空间中被对象占用的空间;当在自定义表空间上增加或删除数据文件时同样会对元数据的数据文件名称、路径、大小和存储起止位置进行修改。
当需要将自定义表空间从数据库中分离出来时,执行热插拔SQL命令:alterdatabase remove tablespace mydata,其中mydata为自定义表空间名称;数据库冻结对该自定义表空间中元数据和表索引对象的读/写,不允许新的读/写操作;如果此时有对元数据和表索引的读/写未完成,则等待读/写完成后热插拔SQL命令才会返回命令行;当热插拔SQL命令执行完毕返回到命令行后,表示该自定义表空间已经从数据库中移除,dba_data_files,dba_tablespaces和v$datafile视图中自定义表空间和该自定义表空间数据文件信息已经被移除;该被数据库移除的自定义表空间中保存有完整的元数据和表索引对象数据信息。
当需要将自定义表空间重新插入数据库时,执行热插拔SQL命令:alter databaseplus tablespace mydata datafiles ‘/u01/kdbdata’,其中mydata为自定义表空间名称;指定自定义表空间名称和该自定义表空间所有数据文件所在目录,数据库在指定的目录中查找属于自定义表空间mydata的所有数据文件;当数据文件确定无误后将该自定义表空间插入数据库,在dba_data_files,dba_tablespaces和v$datafile视图中增加该自定义表空间和该自定义表空间数据文件的信息,并读取该自定义表空间的元数据到内存区以便于数据库查询和维护元数据。
当存在如下一些情况时自定义表空间插入将失败:
(1)热插拔SQL命令中指定的自定义表空间名称不正确,无法在指定的目录数据文件中找到相应名称的自定义表空间;
(2)指定自定义表空间名称已经存在,首先会检查自定义表空间名称是否已经存在,如果存在则返回失败;
(3)检查数据库操作系统用户是否有指定目录中自定义表空间对应的数据文件的读/写权限,以及数据文件实际大小和数量信息;若没有了读/写权限,或者数据文件实际大小和数量信息与数据文件大小和数量不一致,则数据库无法对数据文件进行操作。
自定义表空间是有多个数据文件组成的,只有拥有了读/写权限,数据库才可以对数据文件进行操作;检查数据文件大小的作用是确定数据文件是否有损坏,如果一个数据文件正常情况下是100M,而在指定目录里该文件是90M,这种情况下表明数据文件已经损坏;一个自定义表空间由多个数据文件组成,如果缺少了某个数据文件将造成自定义表空间不完整,所以要检查数据文件数量。
该K-DB数据库表空间元数据本地存储方法,可以实现自定义表空间与SYSTEM表空间数据逻辑上的隔离,避免由于SYSTEM表空间故障时因为数据库无法启动造成自定义表空间数据不可用,使得任何一个自定义表空间的损坏不影响数据库及其它自定义表空间的正常使用;并且可以方便实现自定义表空间从数据库中分离和向数据库插入,实现了表空间之间数据的隔离以及自定义表空间数据快速的迁移。
Claims (8)
1.一种K-DB数据库表空间元数据本地存储方法,其特征在于:将所有用户自定义表空间的元数据都存储到该自定义表空间中,即用户自定义表空间存储着该自定义表空间以及其中各种对象的元数据,并且也存储该自定义表空间中对象数据,实现了用户自定义表空间元数据从SYSTEM表空间中剥离;同时,在自定义表空间设计热插拔SQL命令,实现自定义表空间从数据库中分离和向数据库插入;
当需要对数据进行迁移时,准备一个与源库软件版本相同的目标数据库,将相应自定义表空间从原数据库中拆离,然后将自定义表空间所有数据文件拷贝到目标主机目录,修改数据文件属主和权限后,执行热插拔SQL命令将自定义表空间及数据文件插入到新的数据库,整个迁移过程不需要将元数据导出再导入。
2.根据权利要求1所述的K-DB数据库表空间元数据本地存储方法,其特征在于:所述自定义表空间的元数据包括表空间名称,表空间的数据文件名称,数据文件大小和路径、表空间分配信息,表空间中存放的表和索引对象的名称、对象类型、对象大小、对象的存储位置信息。
3.根据权利要求1所述的K-DB数据库表空间元数据本地存储方法,其特征在于:所述自定义表空间的元数据存储区空间不低于50M空间。
4.根据权利要求1所述的K-DB数据库表空间元数据本地存储方法,其特征在于:数据库启动时首先检查各自定义表空间元数据是否完整;然后读取各个自定义表空间的元数据到内存区;数据库负责维护各自定义表空间的元数据,将元数据的变更写入到自定义表空间对应的数据文件中,同时将所有对元数据的变更都记录到REDO文件中,以便在数据库CRASH或恢复时恢复表空间数据。
5.根据权利要求4所述的K-DB数据库表空间元数据本地存储方法,其特征在于:当在自定义表空间上创建表或索引对象时,从该自定义表空间中分配所需空间大小和位置,将空间大小和位置以及对象信息记录到元数据中;当在自定义表空间上删除表或索引对象时,从元数据中将相应对象信息删除并且释放回收自定义表空间中被对象占用的空间;当在自定义表空间上增加或删除数据文件时同样会对元数据的数据文件名称、路径、大小和存储起止位置进行修改。
6.根据权利要求1所述的K-DB数据库表空间元数据本地存储方法,其特征在于:当需要将自定义表空间从数据库中分离出来时,执行热插拔SQL命令:alter database removetablespace mydata,其中mydata为自定义表空间名称;数据库冻结对该自定义表空间中元数据和表索引对象的读/写,不允许新的读/写操作;如果此时有对元数据和表索引的读/写未完成,则等待读/写完成后热插拔SQL命令才会返回命令行;当热插拔SQL命令执行完毕返回到命令行后,表示该自定义表空间已经从数据库中移除,dba_data_files,dba_tablespaces和v$datafile视图中自定义表空间和该自定义表空间数据文件信息已经被移除;该被数据库移除的自定义表空间中保存有完整的元数据和表索引对象数据信息。
7.根据权利要求1所述的K-DB数据库表空间元数据本地存储方法,其特征在于:当需要将自定义表空间重新插入数据库时,执行热插拔SQL命令:alter database plustablespace mydata datafiles ‘/u01/kdbdata’,其中mydata为自定义表空间名称;指定自定义表空间名称和该自定义表空间所有数据文件所在目录,数据库在指定的目录中查找属于自定义表空间mydata的所有数据文件;当数据文件确定无误后将该自定义表空间插入数据库,在dba_data_files,dba_tablespaces和v$datafile视图中增加该自定义表空间和该自定义表空间数据文件的信息,并读取该自定义表空间的元数据到内存区以便于数据库查询和维护元数据。
8.根据权利要求7所述的K-DB数据库表空间元数据本地存储方法,其特征在于,当需要将自定义表空间重新插入数据库时,避免存在以下情况造成自定义表空间插入将失败:
(1)热插拔SQL命令中指定的自定义表空间名称不正确,无法在指定的目录数据文件中找到相应名称的自定义表空间;
(2)指定自定义表空间名称已经存在,首先会检查自定义表空间名称是否已经存在,如果存在则返回失败;
(3)检查数据库操作系统用户是否有指定目录中自定义表空间对应的数据文件的读/写权限,以及数据文件实际大小和数量信息;若没有了读/写权限,或者数据文件实际大小和数量信息与数据文件大小和数量不一致,则数据库无法对数据文件进行操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711215908.4A CN107918668B (zh) | 2017-11-28 | 2017-11-28 | 一种k-db数据库表空间元数据本地存储方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711215908.4A CN107918668B (zh) | 2017-11-28 | 2017-11-28 | 一种k-db数据库表空间元数据本地存储方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107918668A CN107918668A (zh) | 2018-04-17 |
CN107918668B true CN107918668B (zh) | 2020-01-31 |
Family
ID=61897949
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711215908.4A Active CN107918668B (zh) | 2017-11-28 | 2017-11-28 | 一种k-db数据库表空间元数据本地存储方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107918668B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113778978B (zh) * | 2020-11-20 | 2024-08-16 | 北京沃东天骏信息技术有限公司 | 一种大数据质量管控方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1836232A (zh) * | 2003-08-14 | 2006-09-20 | 甲骨文国际公司 | 数据库的自动和动态提供 |
CN104850569A (zh) * | 2014-02-19 | 2015-08-19 | 腾讯科技(北京)有限公司 | 数据迁移方法和装置 |
CN107045530A (zh) * | 2017-01-20 | 2017-08-15 | 华中科技大学 | 一种将对象存储系统实现为本地文件系统的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101489466B1 (ko) * | 2008-12-17 | 2015-02-03 | 삼성전자 주식회사 | 프로세스 마이그레이션을 관리하는 장치 및 방법 |
-
2017
- 2017-11-28 CN CN201711215908.4A patent/CN107918668B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1836232A (zh) * | 2003-08-14 | 2006-09-20 | 甲骨文国际公司 | 数据库的自动和动态提供 |
CN104850569A (zh) * | 2014-02-19 | 2015-08-19 | 腾讯科技(北京)有限公司 | 数据迁移方法和装置 |
CN107045530A (zh) * | 2017-01-20 | 2017-08-15 | 华中科技大学 | 一种将对象存储系统实现为本地文件系统的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107918668A (zh) | 2018-04-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8626717B2 (en) | Database backup and restore with integrated index reorganization | |
US7200621B2 (en) | System to automate schema creation for table restore | |
CN100565530C (zh) | 一种快照系统及其使用方法 | |
US8667033B1 (en) | Persistent file system objects for management of databases | |
US20140310245A1 (en) | Partition level backup and restore of a massively parallel processing database | |
US8818950B2 (en) | Method and apparatus for localized protected imaging of a file system | |
US20130124559A1 (en) | Method and system for inserting data records into files | |
CN104657382A (zh) | 用于MySQL主从服务器数据一致性检测的方法和装置 | |
CN103617277A (zh) | 一种还原误删除的数据表内容的方法 | |
CN106445416B (zh) | 一种数据记录的存储、查询和检索的方法及装置 | |
CN105988895B (zh) | 快照处理方法及装置 | |
CN103617097A (zh) | 文件恢复方法及装置 | |
CN114968966A (zh) | 分布式元数据远程异步复制方法、装置和设备 | |
US20090030954A1 (en) | Management of multiple virtual data copies | |
CN107918668B (zh) | 一种k-db数据库表空间元数据本地存储方法 | |
CN111444114B (zh) | 一种非易失性内存中数据的处理方法、装置及系统 | |
CN111078719A (zh) | 数据的恢复方法及装置、存储介质和处理器 | |
AU664763B2 (en) | Entity-relation database | |
US20120317384A1 (en) | Data storage method | |
US7831564B1 (en) | Method and system of generating a point-in-time image of at least a portion of a database | |
CN115858252B (zh) | 一种数据恢复方法、装置及存储介质 | |
CN111026783A (zh) | 一种防卡死的数据存储方法、系统及装置 | |
KR100775141B1 (ko) | 저널링이 적용된 fat 파일 시스템의 구현 방법 | |
CN111221801A (zh) | 一种数据库迁移方法、系统及相关装置 | |
CN106155837B (zh) | 一种主备库数据修复的方法以及装置 |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20191227 Address after: 215100 No. 1 Guanpu Road, Guoxiang Street, Wuzhong Economic Development Zone, Suzhou City, Jiangsu Province Applicant after: Suzhou Wave Intelligent Technology Co., Ltd. Address before: 450000 Henan province Zheng Dong New District of Zhengzhou City Xinyi Road No. 278 16 floor room 1601 Applicant before: Zhengzhou Yunhai Information Technology Co. Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |