IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ▲騰▼▲訊▼科技(深▲セン▼)有限公司の特許一覧

特許7395227データバックアップ方法、装置、サーバ及びコンピュータプログラム
<>
  • 特許-データバックアップ方法、装置、サーバ及びコンピュータプログラム 図1
  • 特許-データバックアップ方法、装置、サーバ及びコンピュータプログラム 図2
  • 特許-データバックアップ方法、装置、サーバ及びコンピュータプログラム 図3
  • 特許-データバックアップ方法、装置、サーバ及びコンピュータプログラム 図4
  • 特許-データバックアップ方法、装置、サーバ及びコンピュータプログラム 図5
  • 特許-データバックアップ方法、装置、サーバ及びコンピュータプログラム 図6
  • 特許-データバックアップ方法、装置、サーバ及びコンピュータプログラム 図7
  • 特許-データバックアップ方法、装置、サーバ及びコンピュータプログラム 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-01
(45)【発行日】2023-12-11
(54)【発明の名称】データバックアップ方法、装置、サーバ及びコンピュータプログラム
(51)【国際特許分類】
   G06F 16/11 20190101AFI20231204BHJP
【FI】
G06F16/11
【請求項の数】 15
(21)【出願番号】P 2021518656
(86)(22)【出願日】2019-11-29
(65)【公表番号】
(43)【公表日】2022-01-06
(86)【国際出願番号】 CN2019122015
(87)【国際公開番号】W WO2020108623
(87)【国際公開日】2020-06-04
【審査請求日】2021-04-02
(31)【優先権主張番号】201811459580.5
(32)【優先日】2018-11-30
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】517392436
【氏名又は名称】▲騰▼▲訊▼科技(深▲セン▼)有限公司
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【弁理士】
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】李 ▲海▼翔
【審査官】原 秀人
(56)【参考文献】
【文献】特開2007-317186(JP,A)
【文献】特開2012-146301(JP,A)
【文献】米国特許第09817834(US,B1)
【文献】特開2008-225693(JP,A)
【文献】PART 3 事例 テーマ別、想定外への対処法 データ連係 編,ITインフラマガジン クラウド実践活用 ,日本,日経BP社,2015年09月10日,pp. 58-59
【文献】亀澤 寛之,PART4 注目の次世代技術 メモリー管理、ファイルシステムに見るカーネル開発の最先端,日経Linux,日本,日経BP社,2014年08月08日,第16巻第9号通巻180号,pp. 54-59
【文献】長原 宏治,セットアップからSSD併用の高速化まで FreeBSDを使用した快速ZFSストレージ構築,月刊アスキードットテクノロジーズ ,日本,株式会社アスキー・メディアワークス,2010年12月24日,第16巻 第2号,pp. 100-111
【文献】小田 圭二 ,44のアンチパターンに学ぶDBシステム ,第1版,日本,株式会社翔泳社 佐々木 幹夫,2009年11月27日,pp.118-119
【文献】坂田 哲夫 外,オープンソースソフトウェア活用に向けた取り組み,NTT技術ジャーナル,日本,社団法人電気通信協会,2017年03月01日,第19巻第3号(通巻216号),pp. 63-67
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
(57)【特許請求の範囲】
【請求項1】
サーバが実行するデータバックアップ方法であって、
ターゲットデータテーブルのデータ項目をバックアップするためのバックアップタスクを受信するステップと、
前記バックアップタスクのバックアップタイミングが履歴時間帯である場合、第1履歴トランザクションスナップショットと第2履歴トランザクションスナップショットとの間の第1スナップショット差分を取得するステップと、
前記第1スナップショット差分に基づいて、前記バックアップタスクを実行し、少なくとも前記ターゲットデータテーブルにおけるデータ項目の可視バージョンが含まれるバックアップデータを取得するステップであって、前記バックアップデータは、少なくとも前記ターゲットデータテーブルにおける前記データ項目の履歴状態データ及び遷移状態データを含み、
前記ターゲットデータテーブルの履歴状態データが記憶されている第1データブロックを特定するサブステップと、
前記第1スナップショット差分に基づいて、前記第1データブロックにおける可視バージョンの割合が第1所定割合以上であると特定した場合、ブロックコピーの形式で前記第1データブロックをバックアップし、前記第1データブロックにおける不可視の履歴状態データをマークし、前記バックアップデータを取得するサブステップを含む、ステップとを含み、
前記第1履歴トランザクションスナップショット及び前記第2履歴トランザクションスナップショットは、それぞれ前記履歴時間帯の開始時点及び終了時点におけるトランザクションスナップショットであることを特徴とする方法。
【請求項2】
前記第1スナップショット差分に基づいて、前記バックアップタスクを実行し、少なくとも前記ターゲットデータテーブルにおけるデータ項目の可視バージョンが含まれるバックアップデータを取得するステップが、
前記第1スナップショット差分に基づいて、前記第1データブロックに記憶されている履歴状態データのうちの可視バージョンの割合が前記第1所定割合よりも小さいと特定した場合、論理読み取りの形式で前記第1データブロックにおける可視バージョンを読み取り、前記バックアップデータを取得するサブステップをさらに含むことを特徴とする請求項1に記載の方法。
【請求項3】
前記バックアップタスクのバックアップタイミングが現時点である場合、前記現時点における通常トランザクションスナップショットを取得するステップと、
前記通常トランザクションスナップショットに基づいて、現在状態データの所在しているデータブロックをブロックコピーの形式でバックアップし、前記バックアップデータを取得するステップとをさらに含むことを特徴とする請求項1に記載の方法。
【請求項4】
前記バックアップタスクのバックアップターゲットが現在状態データを含む場合、バックアッププロセスの開始時点から前記バックアッププロセスの終了時点まで、前記現在状態データのログファイルをセグメント化してバックアップするステップをさらに含むことを特徴とする請求項3に記載の方法。
【請求項5】
前記バックアップタスクのバックアップタイミングが1つの履歴時点である場合、前記履歴時点のトランザクションスナップショットである第3履歴トランザクションスナップショットを取得するステップと、
前記第3履歴トランザクションスナップショットに基づいて、前記バックアップタスクを実行し、少なくとも前記ターゲットデータテーブルにおけるデータ項目の可視バージョンが含まれるバックアップデータを取得するステップとをさらに含むことを特徴とする請求項1に記載の方法。
【請求項6】
前記バックアップタスクのバックアップタイミングが、現時点を終了点とする時間帯を含む場合、第4履歴トランザクションスナップショットと第5履歴トランザクションスナップショットとの間の第2スナップショット差分を取得するステップと、
前記第2スナップショット差分に基づいて、現在状態データ及び前記ターゲットデータテーブルにおける可視バージョンをバックアップするステップとをさらに含み、
前記第4履歴トランザクションスナップショット及び前記第5履歴トランザクションスナップショットは、それぞれ前記時間帯の開始時点におけるトランザクションスナップショット及び前記現時点における通常トランザクションスナップショットであり、
前記バックアップデータには少なくとも前記ターゲットデータテーブルにおけるデータ項目の可視バージョンが含まれることを含むことを特徴とする請求項1に記載の方法。
【請求項7】
前記バックアップタスクのバックアップターゲットに履歴状態データ及び遷移状態データを含む場合、前記バックアップデータに、前記履歴状態データ及び遷移状態データのメタ情報ファイル及びデータファイルを含み、
前記バックアップタスクのバックアップターゲットが現在状態データを含む場合、前記バックアップデータに、さらに、前記現在状態データのメタ情報ファイル、データファイル及びログファイルを含むことを特徴とする請求項1~6の何れか1項に記載の方法。
【請求項8】
前記バックアップデータのうちの履歴状態データと遷移状態データとのメタ情報が関連付けられ、関連付けられたメタ情報は、ファイル命名が関連付けられたメタ情報ファイルに記憶されることを特徴とする請求項1~7の何れか1項に記載の方法。
【請求項9】
前記第1スナップショット差分に基づいて、前記バックアップタスクを実行し、バックアップデータを取得するステップは、
メタ情報をバックアップする場合、バックアップターゲットのメタ情報及び前記バックアップターゲットの関連付けられたメタ情報に基づいてメタ情報リストを作成し、前記メタ情報リストに基づいてバックアップし、メタ情報ファイルを取得するサブステップを含むことを特徴とする請求項1~8の何れか1項に記載の方法。
【請求項10】
バックアッププロセスにおいて、前記ターゲットデータテーブルにおける第1データファイルのデータ項目の全てが前記バックアップタスクのバックアップ条件を満たしている場合、前記第1データファイルをバックアップするステップと、
前記ターゲットデータテーブルにおける第1データファイルの一部のデータ項目が前記バックアップタスクのバックアップ条件を満たしており、且つ前記一部のデータ項目の割合が第2所定割合の以上である場合、前記第1データファイルをバックアップし、前記第1データファイルにおける無効データをマークするステップとをさらに含むことを特徴とする請求項1~9の何れか1項に記載の方法。
【請求項11】
前記ターゲットデータテーブルにおける第1データファイルの一部のデータ項目が前記バックアップタスクのバックアップ条件を満たしており、且つ前記一部のデータ項目の割合が前記第2所定割合よりも小さい場合、論理読み取りの形式で前記第1データファイルにおけるデータ項目を読み取るステップをさらに含むことを特徴とする請求項10に記載の方法。
【請求項12】
前記バックアップタスクを実行する際に、
前記バックアップタスクのバックアップターゲットが複数のデータテーブルを含む場合、前記複数のデータテーブルを並行にバックアップすることをサポートする方式と
前記バックアップタスクのバックアップターゲットが複数のデータファイルを含む場合、前記複数のデータファイルを並行にバックアップすることをサポートする方式と
前記バックアップタスクのバックアップターゲットが複数のデータブロックを含む場合、前記複数のデータブロックを並行にバックアップすることをサポートする方式のうちの少なくとも1つの方式で実現することを特徴とする請求項1~11の何れか1項に記載の方法。
【請求項13】
データバックアップ装置であって、
ターゲットデータテーブルのデータ項目をバックアップするためのバックアップタスクを受信するための受信モジュールと、
前記バックアップタスクのバックアップタイミングは履歴時間帯である場合、第1履歴トランザクションスナップショットと第2履歴トランザクションスナップショットとの間の第1スナップショット差分を取得するための取得モジュールと、
前記第1スナップショット差分に基づいて、前記バックアップタスクを実行し、少なくとも前記ターゲットデータテーブルにおけるデータ項目の可視バージョンが含まれるバックアップデータを取得するためのバックアップモジュールであって、前記バックアップデータは、少なくとも前記ターゲットデータテーブルにおける前記データ項目の履歴状態データ及び遷移状態データを含み、
前記ターゲットデータテーブルの履歴状態データが記憶されている第1データブロックを特定することと、
前記第1スナップショット差分に基づいて、前記第1データブロックにおける可視バージョンの割合が第1所定割合以上であると特定した場合、ブロックコピーの形式で前記第1データブロックをバックアップし、前記第1データブロックにおける不可視の履歴状態データをマークし、前記バックアップデータを取得することを行う、バックアップモジュールとを含み、
前記第1履歴トランザクションスナップショット及び前記第2履歴トランザクションスナップショットはそれぞれ前記履歴時間帯の開始時点及び終了時点におけるトランザクションスナップショットであることを特徴とする装置。
【請求項14】
プロセッサーとメモリとを有するサーバであって、
前記メモリには少なくとも1つのコマンドが記憶され、前記少なくとも1つのコマンドは当該プロセッサーによってロードされて実行されると、
ターゲットデータテーブルのデータ項目をバックアップするためのバックアップタスクを受信するステップと、
前記バックアップタスクのバックアップタイミングは履歴時間帯である場合、第1履歴トランザクションスナップショットと第2履歴トランザクションスナップショットとの間の第1スナップショット差分を取得するステップと、
前記第1スナップショット差分に基づいて、前記バックアップタスクを実行し、少なくとも前記ターゲットデータテーブルにおけるデータ項目の可視バージョンが含まれるバックアップデータを取得するステップであって、前記バックアップデータは、少なくとも前記ターゲットデータテーブルにおける前記データ項目の履歴状態データ及び遷移状態データを含み、
前記ターゲットデータテーブルの履歴状態データが記憶されている第1データブロックを特定するステップと、
前記第1スナップショット差分に基づいて、前記第1データブロックにおける可視バージョンの割合が第1所定割合以上であると特定した場合、ブロックコピーの形式で前記第1データブロックをバックアップし、前記第1データブロックにおける不可視の履歴状態データをマークし、前記バックアップデータを取得するステップを含む、ステップとを、前記サーバに実行させ、
前記第1履歴トランザクションスナップショット及び前記第2履歴トランザクションスナップショットはそれぞれ前記履歴時間帯の開始時点及び終了時点のトランザクションスナップショットであることを特徴とするサーバ。
【請求項15】
コンピュータにより実行されると、請求項1~12の何れか1項に記載のデータバックアップ方法を実施することを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は2018年11月30日にて中国特許庁に提出した、出願番号が2018114595805であり、発明名称が「データバックアップ方法、装置、サーバ及び記憶媒体」である中国特許出願に基づく優先権を主張して、その全ての内容は援用により本出願に結合される。
【0002】
本出願はデータベースという技術分野に関し、特に、データバックアップ方法、装置、サーバ及びコンピュータプログラムに関する。
【背景技術】
【0003】
データ処理システムにおいて、特にOLAP(Online Analytical Processing、オンライン分析)処理システム、データベース、ビッグデータ分析などのシナリオにおいて、データベースに大量のデータを保存することに係る。サービスは常に更新される可能性があるため、1つのデータ項目には、複数の状態に対応するバージョンのデータを論理的に含む。このように、一つのデータ項目の全状態(現在状態、遷移状態及び履歴状態)データが保存されたことで、システムが履歴状態データを便利に追跡し、データの価値(いずれのデータも価値があるため、履歴状態のデータが紛失不可) を十分に発掘することに寄与する。前記複数の状態データのセキュリティを保証するために、前記全状態データをバックアップする必要がある。ただし、データ量が急増することにより、必ずバックアップの効率に影響を与える。従って、データ量が急増する場合に全状態データのバックアップの効率を向上することは、当面大きな挑戦である。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本出願の各実施例によれば、データバックアップ方法、装置、サーバ及びコンピュータ可読記憶媒体を提供する。
【課題を解決するための手段】
【0005】
サーバにより実行されるデータバックアップ方法であって、当該方法は、
ターゲットデータテーブルのデータ項目をバックアップするための、バックアップタスクを受信するステップと、
当該バックアップタスクのバックアップタイミングは履歴時間帯である場合、第1履歴トランザクションスナップショットと第2履歴トランザクションスナップショットとの間の第1スナップショット差分を取得するステップであって、当該第1履歴トランザクションスナップショットと当該第2履歴トランザクションスナップショットとはそれぞれ、当該履歴時間帯の開始時点と終了時点とのトランザクションスナップショットであるステップと、
当該第1スナップショット差分に応じて、当該バックアップタスクを実行することで、少なくとも当該ターゲットデータテーブルのうちのデータ項目の可視バージョンが含まれたバックアップデータを取得するステップと、を有する。
【0006】
データバックアップ装置であって、当該装置は、
ターゲットデータテーブルのデータ項目をバックアップするための、バックアップタスクを受信する受信ためのモジュールステップと、
当該バックアップタスクのバックアップタイミングは履歴時間帯である場合、第1履歴トランザクションスナップショットと第2履歴トランザクションスナップショットとの間の第1スナップショット差分を取得するための取得モジュールであって、当該第1履歴トランザクションスナップショットと当該第2履歴トランザクションスナップショットとはそれぞれ、当該履歴時間帯の開始時点と終了時点とのトランザクションスナップショットである取得モジュールと、
当該第1スナップショット差分に応じて、当該バックアップタスクを実行することで、少なくとも当該ターゲットデータテーブルのうちのデータ項目の可視バージョンが含まれたバックアップデータを取得するためのバックアップモジュールと、を備える。
【0007】
前記バックアップデータのデータ形式は、ディレクトリで各類のファイルが記憶され、または複数のtarパッケージとして記憶される。
【0008】
当該プロセッサーとメモリとを有するサーバであって、当該メモリには少なくとも1つのコマンドが記憶され、当該少なくとも1つのコマンドは当該プロセッサーによりロードされるとともに、実行されることで、前記データバックアップ方法により実行される操作を実現する。
【0009】
コンピュータ可読記憶媒体であって、当該記憶媒体には少なくとも1つのコマンドが記憶され、当該少なくとも1つのコマンドはプロセッサーによりロードされるとともに、実行されることで、前記データバックアップ方法により実行される操作を実現する。
【0010】
本出願の1つまたは複数の実施例の細部は以下の図面及び記載から提出される。本出願の他の特徴及び利点は、明細書、図面及び請求項により明らかになる。
【図面の簡単な説明】
【0011】
図1】本出願の実施例に係るデータバックアップ方法の実施環境の模式図である。
図2】本出願の実施例に係るデータバックアップ方法のフロチャートである。
図3】本出願の実施例に係るデータバックアップ方法のフロチャートである。
図4】本出願の実施例に係るデータバックアップ方法のフロチャートである。
図5】本出願の実施例に係るデータバックアップ方法のフロチャートである。
図6】本出願の実施例に係るページ比較図である。
図7】本出願の実施例に係るデータバックアップ装置の構成模式図である。
図8】本出願の実施例に係るサーバの構成模式図である。
【発明を実施するための形態】
【0012】
本出願のターゲット、技術案及び利点をより明確にするために、以下は図面を結合して本出願の実施形態をより詳細に説明する。
【0013】
本出願の実施例に係るデータベースには、データ項目を記憶するための複数のデータテーブルが記憶され、データ項目は1つまたは複数のバージョンを有してもよい。当該データベースはMVCC(Multi-Version Concurrency Control、マルチバージョン同時並行性制御)に基づく任意のタイプのデータベースであってもよい。本出願の実施例において、当該データベースのタイプを具体的に限定していない。なお、前記データベースにおけるデータは、状態属性に応じて、現在状態、遷移状態及び履歴状態の3つの状態を含み、当該3つの状態をまとめて「データの全状態」と称し、全状態データと略称し、全状態データにおける異なる状態属性のそれぞれはデータのライフサイクルの軌跡における状態を表記することに利用できる。
【0014】
現在状態(Current State)は、データ項目の最新バージョンのデータであって、現段階にあるデータである。現段階にあるデータの状態は、現在状態と呼ばれる。
【0015】
遷移状態(Transitional State)は、データ項目の最新のバージョンでもなければ、履歴状態のバージョンでもなく、現在状態から履歴状態への遷移過程にあり、遷移状態にあるデータは、半減データと呼ばれる。
【0016】
履歴状態(Historical state)は、履歴におけるデータ項目の1つの状態であり、その値が現在値ではなく、旧い値である。履歴段階にあるデータの状態は、履歴状態と呼ばれる。1つのデータ項目の履歴状態は複数を有してもよく、データの状態変遷の過程が反映される。履歴状態にあるデータは、読み取りのみが可能であり、変更又は削除は許容されない。
【0017】
なお、データは、MVCCメカニズムにおいては、前記3つの状態が存在し、非MVCCメカニズムにおいては、履歴状態及び現在状態のみ存在してもよい。MVCCまたはロック同時アクセス制御メカニズムにおいては、トランザクションが提出されたデータの新値は、現在状態にある。MVCCメカニズムを例として、現在アクティブなトランザクションリストにおける最小のトランザクションの前のトランザクションによって生成されたデータは、その状態が履歴状態にある。ロック同時アクセス制御メカニズムにおいては、トランザクションが提出されると、その提出前のデータの値が履歴状態の値になり、即ち、データ項目の旧い値が履歴状態にある。読み取られたバージョンにおいてまだアクティブなトランザクション(最新の関連トランザクションではない)が使用されるが、最新の関連トランザクションは、データ項目の値が変更され、その最新の値が既に現在状態にあり、読み取られた値は、現在状態に対して既に履歴状態にある。よって、そのデータ状態は現在状態と履歴状態との間にあるため、遷移状態と称される。
【0018】
例えば、MVCCメカニズムにおいて、UserテーブルのAアカウントの残高は、10元から20元にチャージされ、そして、15元が消費されて5元になる。この場合、金融機関Bは、データを読み取ってトランザクションをチェックすることは常に行っている。その後、Aはさらに20元をチャージして25元になる。この25元は、現在状態データであり、Bにより読み取られた5元は、遷移状態にあり、残りの2つの値である20、10のそれぞれは、過去に存在していた状態であり、履歴状態データである。
【0019】
いずれかの状態属性を記憶するデータベースにとって、データベースのうちのデータをバックアップする場合、1つのデータ項目に対して、当該データベースには少なくとも1つのバージョンが記憶されるため、バックアッププロセスにおいて、関わるデータ量が巨大であり、例えば、1つのタプルは、一定の期間において、平均10回更新されるとして、更新されたデータ量が11個のタプル、即ち、初始データ量の11倍になる。これによって、バックアップすべき履歴状態が携帯されているデータ量が膨大になり、バックアップの効率が問題になる。そのため、本出願の実施例は、バックアップのデータ量を低減させ、バックアップの効率を向上させるために、全状態データのバックアップを行うように物理バックアップが混合されたバックアップ方法を提供する。
【0020】
データベースは、そのバックアップタスクはバックアップコマンドによりトリガされることができ、以下の例示は、バックアップコマンドの具体的な形式であり、
BEGIN;
Set BACKUPNAME=‘/usr/bak/my_first_backup_01’READVIEW'20180109000000';//履歴トランザクションスナップショットのバックアップに基づき、論理バックアップを行う
BACKUP TYPE LO FROM my_table;
Set BACKUPNAME=‘/usr/bak/my_first_backup_02’READVIEW FROM'20180109000000'TO'20180119000000';//スナップショット差分の方式で論理バックアップを行う
BACKUP TYPE LO FROM my_table;
Set BACKUPNAME=‘/usr/bak/my_first_backup_03’READVIEW default;//通常トランザクションスナップショットに基づき、論理バックアップを行う
BACKUP TYPE LO FROM my_table WHERE pk>10;
END;
ただし、BACKUPNAMEは、バックアップデータパケットの名称を指定し、my_tableは、今回のバックアップタスクのバックアップターゲットデータテーブルを指定し、BACKUPフィールド後のTYPE LOは、バックアップのタイプが論理バックアップであることを示し、TYPE PHは、バックアップのタイプが物理バックアップであることを示し、デフォルトは、バックアップのタイプが物理バックアップであることを示し、WHEREステートメントは、バックアップタスクのバックアップ条件を指定するために用いる。
【0021】
好ましくは、本実施例において、前記データバックアップ方法は、図1に示される複数のサーバ101を有するハードウェア環境に適用され得る。図1に示すように、複数のサーバ101はネットワークを介して接続したり、データが分離されたりすることができる、前記ネットワークは、広域エリアネットワーク、メトロポリタンエリアネットワークまたはローカルエリアネットワークを含むが、これらに限定されない。本出願の実施例にかかるデータバックアップ方法は、いずれかのサーバ101または複数のサーバ101に実行されて得る。サーバ101において、データベースシステムが運転することができる。これにより、例えば、データ格納、データ照合などのデータサービスを提供することができる。当該データベースシステムは、サーバにおいて運転されているデータベースエンジンにより作動することができる。
【0022】
本出願の実施例に係るデータバックアップ方法によれば、全状態データのバックアップが実現される。理解され易くように、以下に、まず論理的バックアップ及び物理的バックアップをそれぞれ説明する。
一、論理バックアップ
論理バックアップは、履歴トランザクションスナップショットまたは/及び通常トランザクションスナップショットに基づき、全状態データのうちのある時点におけるデータ値を便利に読み取ることができ、その具体的な実現ポリシーは、以下の3種のポリシー、即ち、(1)通常トランザクションスナップショットに基づき、現在状態データをバックアップする策、(2)履歴トランザクションスナップショットに基づき、履歴状態データと遷移状態データをバックアップする策、及び、(3)履歴トランザクションスナップショットと通常トランザクションスナップショットに基づき、同一のデータ項目の複数のバージョンに対する同時バックアップを実現する策である。
【0023】
論理バックアップの3種のポリシーに基づいて取得されたデータ形式は、バックアップコマンドのフォーマットに基づいて構成されたデータである。そのため、このようなバックアップを論理バックアップと称す。例えば、当該バックアップコマンドはSQLステートメントであってもよく、その具体的なデータ構成フォーマットは、INSERTフォーマットに従って構成してもよい。なお、バックアップデータパケットにおける各ファイルの命名は、バックアップのタイプによって異なってもよく、例えば、論理バックアップのファイル名は、LoData_00000001などの方式で命名されてもよく、その対応するメタ情報ファイルは、LoMeta_00000001などの方式で命名されてもよい。
【0024】
前記論理バックアップのデータバックアップ方法は、システム全体をバックアップすることができない。即ち、前記データバックアップ方法により、1つのバックアップパッケージを取得することができるが、制御ファイルなどの情報は、メタ情報ファイルに記録されていなくてもよい。
【0025】
本出願の実施例に係る論理バックアップは、伝統的なバックアップ方式との差異が以下の三点にある。即ち、第一に、全状態データのバックアップをサポートすること、第二に、バックアップの方式はCLI(コマンドライン)の方式ではなく、SQLステートメントの方式で原子的にバックアップをサポートすること、物理バックアップの方式に類似するように、物理バックアップパッケージを生成することを含む。
【0026】
二、物理バックアップ
当該物理バックアップは、伝統的なデータベースシステムにおける物理バックアップを指し、バックアップタスクのために、履歴時間帯におけるトランザクションスナップショットを指定することができない。そのため、現在状態データしかバックアップすることできない。つまり、そのバックアップにより取得されたデータは、履歴状態データを含まず、現在状態データのみを含む。物理バックアップにより取得されたバックアップデータパケットにおいて、データファイル名はPhData_00000001などの方式で命名してもよく、その対応しているメタ情報ファイルはPhMeta_00000001などの方式で命名してもよい。
【0027】
三、混合バックアップ
前述した第1の部分及び第2の部分での説明を踏まえて、以下に、本出願の実施例にかかる混合バックアップ方法を説明する。なお、バックアップタスクによっては、バックアップターゲットデータが異なってもよく、バックアップターゲットデータに応じて、以下の4タイプに分けることができる。
第1のタイプは、現在状態データ点値のバックアップであって、即ち、通常トランザクションスナップショットに基づいて、現在状態データをバックアップすることができ、そのバックアップデータパケットにメタ情報ファイル、現在状態のデータファイル、及びREDOログファイルを含む。以下に、図2に示されたデータバックアップ方法のフロチャートを利用して、現在状態データ点値に対するバックアップを例として説明し、具体的に、当該データバックアップ方法は以下のプロセスを含む。即ち、
201において、サーバはターゲットデータテーブルにおけるデータ項目をバックアップするためのバックアップタスクを受信する。
前記バックアップタスクにより指示されたバックアップタイミングは、現時点である。
【0028】
202において、当該バックアップタスクのバックアップタイミングは現時点である場合、当該現時点における通常トランザクションスナップショットを取得する。
【0029】
前記ステップ201及び202において、サーバは、バックアップコマンドを受信することで、バックアップタスクを受信することができ、当該バックアップコマンドには、バックアップターゲットに関する情報が携帯されている。本出願の実施例は、バックアップタイミングが現時点であることのみを例として説明し、例えば、バックアップコマンドにおいて当該現時点を「default」として示してもよい。つまり、当該バックアップコマンドのターゲットデータは現時点における現在状態データである。
【0030】
203において、当該通常トランザクションスナップショットに基づいて、当該バックアップタスクを実行して、少なくとも、当該ターゲットデータテーブルにおけるデータ項目の現在状態データが含まれるバックアップデータを取得する。
【0031】
本出願の実施例において、トランザクションスナップショットは、当該トランザクションスナップショットの作成時点で、現在システムにおいてどれらのデータが読み取可能であるか、どれらがアクティブなトランザクション(そのデータはトランザクションにより読み取り不可)であるかことを示すことにより、現時点でどれらのタプルのどれらのバージョンが可視であることを取得する。従って、通常トランザクションスナップショットにより、ターゲットデータテーブルにおけるデータ項目の現在状態バージョンが可視であることを特定することができる。つまり、バックアップによって得られたバックアップデータは、当該ターゲットデータテーブルにおけるデータ項目の現在状態データを含む。
【0032】
可能な実施形態において、前記現在状態データに対して、サーバはブロックバックアップの方式で行ってもよい。即ち、当該ターゲットデータテーブルに対応しているいずれかのデータブロックに対して、前記通常トランザクションスナップショットに基づき、現在状態データの所在しているデータブロックをブロックコピーの形式でバックアップして、バックアップデータを取得する。このような現在状態データをブロックコピーの形式でバックアップすることは、バックアップの速度を加速した。現在状態データ、遷移状態データ、履歴状態データとは物理的に分離しているため、このようなブロックコピーの形式が実現可能にされている。
【0033】
なお、本出願の実施例に係るバックアップデータは、完全且つデータの一致性が保持されるバックアップデータパケットを含む。バックアップデータパケットごとに、1つのディレクトリに各種のファイルが保存される形式と、複数のtarパッケージからなる1つのバックアップパッケージ形式との2つ選択可能な形式がある、
なお、ディレクトリに各種のファイルが保存されるバックアップデータパケット形式において、ファイルはタイプに応じて、それぞれ異なるファイル名に命名される。例えば、メタ情報ファイルはMeta_00000001、Meta_00000002などで命名され、データファイルはData_00000001、Data_00000002などで命名され、ログファイルはLog_00000001、Log_00000002などで命名される。「00000002」などのフォーマットにおいて、文字毎に十六進法で示され、示されるファイルの数は最多、「16^8=4 294 967 296」である。
【0034】
なお、メタ情報は通常小さくて、1つのファイルで記憶さればよく、データファイルは、一定のサイズに定義されてもよく、例えば、データファイル毎のサイズは1Tに定義されば、4EBのデータ量が記憶され得る。また、異なるオペレーティングシステムにおいて、データファイルの最大ファイルサイズが異なり、例えば、Ext2/Ext3(8kB block size)の単一のファイルの最大サイズは64TBであれば、より多いデータが記憶され得る。当該ログファイルの具体的なサイズなどの管理形式は、データファイルと同様であるため、ここで、重複な説明を省略する。本出願の実施例において、「00000002」フォーマットは、ビット数を拡張することで、より大きいデータ量がサポートされ得る。
【0035】
複数のtarパッケージからなる1つのバックアップデータパケットの形式において、ファイルの記憶は同上、統合に管理され易いように、ファイルサイズに応じてファイルをパケットするに過ぎない。さらに、記憶空間を節約するように、圧縮アルゴリズムの導入をサポートしてもよい。
【0036】
前記バックアップタスクのバックアップターゲットが現在状態データを含む場合、前記バックアップデータに、さらに前記現在状態データのメタ情報ファイル、データファイル及びログファイルが含まれる。1つの好ましい実施形態において、バックアップに基づいてリカバリする際の一致性を保証するために、ログファイルをバックアップする場合、バックアップ過程の開始時点から前記バックアップ過程の終了時点まで、前記現在状態データのログファイルをセグメント化してバックアップすることができる。例えば、バックアップ過程の開始時点から取得されたREDOログの位置をLoc1と仮定し、その同時、新たなトランザクションによる操作がサポートし、バックアップ過程の終了時点まで取得されたREDOログの位置をLoc2と仮定し、そしてLoc1からLoc2までのREDOログをファイリングしてバックアップデータパケットにバックアップする。前記ログファイルのバックアップは、即時バックアップポリシーが採択され、1つのログ情報が生成されるごとに、1つをバックアップしたり、1セグメントのログ情報を生成する毎に1セグメントをバックアップしたりしている。ログ管理は、セグメントファイルの方式で行われることができるため、ログファイルには複数のスモールセグメントのファイルがあり、例えば、PostgreSQLのログファイルは複数の1Gファイルからなるため、前記ログのバックアップ方式が実現される。
【0037】
第2のタイプは、履歴状態データの点値のバックアップであり、つまり、履歴トランザクションスナップショットに基づき、履歴状態データ及び遷移状態データに対するバックアップであり、そのバックアップデータパケットには、メタ情報ファイル、履歴状態データ及び遷移状態データのデータファイルが含まれる。以下は、図3に示されるデータバックアップ方法のフロチャートを利用して、履歴状態データの点値に対するバックアップを例として説明し、具体的に当該データバックアップ方法は以下のプロセスを含む。即ち、
301において、サーバは、ターゲットデータテーブルのデータ項目をバックアップするためのバックアップタスクを受信する。
【0038】
前記バックアップタスクに指示されたバックアップタイミングは、1つの履歴時点を含む。
【0039】
302において、当該バックアップタスクのバックアップタイミングは1つの履歴時点である場合、当該履歴時点におけるトランザクションスナップショットである第3履歴トランザクションスナップショットを取得する。
【0040】
303において、当該第3履歴トランザクションスナップショットに基づいて当該バックアップタスクを実行して、少なくとも当該ターゲットデータテーブルにおけるデータ項目の可視バージョンが含まれるバックアップデータを取得する。
【0041】
本出願の実施例において、第3履歴トランザクションスナップショットにより、第3履歴トランザクションスナップショットに応じて、ターゲットデータテーブルにおけるデータ項目の各バージョンに対して可視性判定を行うことで、当該スナップショットの作成タイミングの可視バージョンを特定してからバックアップする。つまり、バックアップにより取得されたバックアップデータには、少なくとも当該ターゲットデータテーブルにおけるデータ項目の履歴状態データ及び遷移状態データが含まれる。前記バックアップにより、ログファイルのバックアップが必要なくなり、バックアップされたデータは、データ項目における1つの点値であり、論理的方式によりデータ項目を取得することで、データファイルなどのバックアップデータを生成する。
【0042】
可視性判定のステップは以下の通りである。
(一):当該バージョンは挿入操作による生成であり、当該作成タイミングと当該提出タイミングとも当該履歴時間帯にある場合、当該バージョンが可視であると特定する。
【0043】
(二):当該バージョンは削除操作による生成であり、当該削除タイミングと当該提出タイミングとも当該履歴時間帯にある場合、当該バージョンが可視であると特定する。
【0044】
(三):当該バージョンは更新操作による生成であり、当該作成タイミングが当該履歴時間帯における開始時点の後にあり、当該提出タイミングが当該履歴時間帯にある場合、当該バージョンは可視であると特定する。
【0045】
前記図2及び図3は、データ項目の点値に対するバックアップを示し、本出願の実施例はさらに全状態データ帯値に対するバックアップ、及び履歴状態データ帯値に対するバックアップといった2つの帯値に対するバックアップに関し、この2つのバックアップは、いずれもスナップショット差分に基づき行われたものであり、それぞれ以下のように説明する。
第3つのタイプは、全状態データ帯値に対するバックアップであって、履歴トランザクションスナップショット及び通常トランザクションスナップショットに基づいて、同一のデータ項目の複数のバージョンの同時バックアップを実現し、そのバックアップデータパケットには、メタ情報ファイル、履歴状態データ、遷移状態データのデータファイル、現在状態データ及びログファイルが含まれる。以下に図4に示されるデータバックアップ方法のフロチャートにより、全状態データ帯値のバックアップに対するバックアップを例として説明し、具体的には、当該データバックアップ方法は以下のプロセスを含む。
401において、サーバはターゲットデータテーブルにおけるデータ項目をバックアップするためのバックアップタスクを受信する。
【0046】
前記バックアップタスクにより指示されたバックアップタイミングは、現時点を終了点とする時間帯を含む。
【0047】
402において、当該バックアップタスクのバックアップタイミングは、現時点を終了点とする時間帯を含む場合に、第4履歴トランザクションスナップショットと第5履歴トランザクションスナップショットとの間の第2スナップショット差分を取得し、当該第4履歴トランザクションスナップショット及び当該第5履歴トランザクションスナップショットはそれぞれ当該時間帯の開始時点のトランザクションスナップショットと、当該現時点の通常トランザクションスナップショットである。
【0048】
403において、当該第2スナップショット差分に応じて、現在状態データと当該ターゲットデータテーブルにおける可視バージョンをバックアップし、当該バックアップデータには少なくとも当該ターゲットデータテーブルにおけるデータ項目の可視バージョンが含まれる。
【0049】
現在状態データに対するバックアップは、図2に示される現在状態データのバックアップ方法と同様であるため、ここで重複な説明を省略する。第2スナップショット差分に基づいて、履歴状態データと遷移状態データに対するバックアップは、論理的読取方式で行われてもよい。つまり、当該第2スナップショット差分に基づいて、ターゲットデータテーブルにおけるデータ項目の各バージョンに対して可視性判定を行って、可視バージョンをバックアップする。
【0050】
1つの実施形態においては、履歴状態データはブロックとして記憶されいるため、1つのブロックの全てのデータは「履歴トランザクションスナップショットセグメント」の範囲内にあれば、ブロックコピーが行われ、バックアップの速度が速い。1つのブロックの一部のデータは「履歴トランザクションスナップショットセグメント」の範囲内にあれば、一定の割合閾値、例えば、第1所定割合に基づいて、具体的なバックアップ方式を特定することができ、例えば、データブロックにおける大部分のデータは「履歴トランザクションスナップショットセグメント」の範囲内にあれば、ブロックコピーを行って、バックアップの速度が速いが、無効のデータはメタ情報ファイルにおいてマークされる必要があり、例えば、HMeta_00000001系のファイルにおいてマークされる。これは、ブロックコピーの方式で実現されたものである。一方、小部分のデータは「履歴トランザクションスナップショットセグメント」の範囲にあれば、論理的読取方式でデータ項目の可視バージョンを読み出して、HData_00000001シリーズファイルのようなデータファイルに書き込む。ただし、履歴状態が所在している範囲の関連状況は、HMeta_00000001系のファイルに記録されてしまい、このようなバックアップ方式は本質的に論理バックアップの方式である。つまり、本出願の実施例において、バックアップの効率を向上させるために、さらに、ブロックバックアップによるバックアップ方式を採択してもよく、例えば、サーバはターゲットデータテーブルにおける第2データブロックを特定することができ、前記第2データブロックには前記ターゲットデータテーブルの履歴状態データが記憶される。前記第2スナップショット差分に基づいて、前記第2データブロックに記憶された履歴状態データの全ては可視バージョンであると特定すれば、ブロックコピーの形式で前記第2データブロックをバックアップし、バックアップデータを取得する。さらに、前記第2スナップショット差分に基づいて、前記第2データブロックにおける可視バージョンの割合は第1所定割合以上であると特定できれば、ブロックコピーの形式で前記第2データブロックをバックアップし、前記第2データブロックにおける不可視の履歴状態データをマークしてバックアップデータを取得する。前記第2スナップショット差分に基づいて前記第2データブロックに記憶される履歴状態データにおける可視バージョンの割合は前記第1所定割合より小さいと特定できれば、論理的読取形式で、前記第2データブロックにおける可視バージョンを読み取ってバックアップデータを取得する。
【0051】
前記プロセスでは、第1所定割合は、百分率の形式、または[0,1]範囲における小数で示され、例えば、当該第1所定割合のデフォルト値は0.2であり、値の範囲は[0,1]である。
【0052】
前記全状態データ帯値に対するバックアッププロセスとは、バックアップデータには現在状態、遷移状態、履歴状態のデータが存在し、且つ同一のデータ項目に対して、後ろの2つ状態は、1つの時間点における値だけではなく、1つの時間帯における複数の値であることを指す。バックアップされたデータは、指定されたスナップショットタイプ(本質的には時間点であるか、それとも時間帯であるか)に基づいて、以下の内容に分けられる。即ち、現在状態データのバックアップの場合、必ず点値のバックアップであり、その方式は第1バックアップ点と同様である。遷移状態データのバックアップ(点値、帯値)は、点値及び帯値の何れかのバックアップである。履歴状態データのバックアップ(点値、帯値)は、点値及び帯値の何れかのバックアップである。本出願の実施例は贅言していない。
【0053】
第4のタイプは、履歴状態データ点値のバックアップであって、履歴トランザクションスナップショットに通常トランザクションスナップショットが含まれていないことに基づいて、同一のデータ項目の複数のバージョンの同時バックアップを実現し、そのバックアップデータパケットにはメタ情報ファイル、履歴状態データ及び遷移状態データのデータファイルが含まれる。以下に、図5に示されるデータバックアップ方法のフロチャートを利用して、履歴状態データ点値のバックアップに対するバックアップを例として説明し、具体的には、当該データバックアップ方法は以下のプロセスを含む。
501において、サーバはターゲットデータテーブルにおけるデータ項目をバックアップするためのバックアップタスクを受信する。
【0054】
前記バックアップタスクは、ターゲットデータテーブルにおけるデータ項目をバックアップする。
【0055】
本出願の実施例において、サーバは、バックアップコマンドを受信することで、バックアップタスクを受信し、当該バックアップコマンドには、バックアップターゲットに関する情報が携帯されている。当該バックアップタスクは、指示されたバックアップタイミングによって、それぞれの具体的なバックアッププロセスを有してもよい。本出願の実施例はバックアップタイミングが履歴時間帯であることのみを例として説明する。つまり、当該バックアップコマンドには当該履歴時間帯の開始時点及び終了時点が含まれ、バックアップのターゲットデータは、現時点以前1つの履歴時間帯における履歴状態データと遷移状態データである。
【0056】
502において、当該バックアップタスクのバックアップタイミングは履歴時間帯である場合、第1履歴トランザクションスナップショットと第2履歴トランザクションスナップショットとの間の第1スナップショット差分を取得し、当該第1履歴トランザクションスナップショット及び当該第2履歴トランザクションスナップショットはそれぞれ当該履歴時間帯の開始時点及び終了時点におけるトランザクションスナップショットである。
【0057】
503において、当該第1スナップショット差分に基づいて、当該バックアップタスクを実行することで、少なくとも当該ターゲットデータテーブルにおけるデータ項目の可視バージョンが含まれるバックアップデータを取得する。
【0058】
本出願の実施例において、第1スナップショット差分に基づいてバックアップタスクを実行するプロセスは、前記ステップ303において第2スナップショット差分に基づいて履歴状態データ及び遷移状態データをバックアップするプロセスと同様であるため、ここで贅言していない。さらに、バックアッププロセスにおいて、データブロックに記憶された履歴状態データに基づいて、ブロックバックアップ、物理バックアップ及び論理バックアップのいずれかを採択するかを特定する。よって、バックアップの効率及びバックアップの柔軟性を向上させ、例えば、サーバはターゲットデータテーブルにおける第1データブロックを特定することができ、前記第1データブロックには、前記ターゲットデータテーブルの履歴状態データが記憶される。前記第1スナップショット差分に基づいて前記第1データブロックに記憶された履歴状態データの全ては可視バージョンであると特定した場合、ブロックコピーの形式で前記第1データブロックをバックアップして、バックアップデータを取得する。さらに、前記第1スナップショット差分に基づいて、前記第1データブロックにおける可視バージョンの割合が第1所定割合以上であると特定した場合、ブロックコピーの形式で前記第1データブロックをバックアップし、前記第1データブロックにおける不可視の履歴状態データをマークし、バックアップデータを取得し、前記第1スナップショット差分に基づいて、前記第1データブロックに記憶された履歴状態データにおける可視バージョンの割合が前記第1所定割合よりも小さいと特定した場合、論理的読取の形式で前記第2データブロックにおける可視バージョンを読み取って、バックアップデータを取得する。
【0059】
なお、前記何れの実施形態においては、遷移状態データをバックアップする場合、同一のデータ項目の、バックアップ条件を満たしている複数のバージョンに対して、バックアッププロセスにおいては、独立されたファイルに個別に保存されてもよく、ファイルはIData_00000001系で命名される。遷移状態データのバックアップ方式について、論理的読取の方式を採択することができる。
【0060】
なお、さらに、前記何れの実施形態においては、前記バックアップデータのうちの履歴状態データは、遷移状態データのメタ情報に関連付けられ、その関連付けられたメタ情報のそれぞれは、ファイル名が関連付けられたメタ情報ファイルに記憶されてもよい。例えば、リカバリの際に同一のデータ項目の、同一の履歴トランザクションスナップショット範囲に属するデータを、リカバリ段階でマージすることが容易に行われることを目的として、ある履歴トランザクションスナップショットセグメントまたは履歴トランザクションスナップショットの遷移状態データはファイルIDataに保存され、関連付けられた履歴状態データはHDataファイルに存在しているようにしている。他の好ましい実施形態において、前記関連付けられたメタ情報は、同時にメタ情報ファイルにバックアップされてもよく、例えば、HMeta_00000001系で命名されるファイルにバックアップされてもよい。データリカバリの際に遷移状態と履歴状態データとの関連が確認され、データの一致性が保証されるように、前記関連付けはファイル命名により関連付けられるようにしてもよい。
【0061】
さらに、メタ情報をバックアップする場合、バックアップデータのメタ情報及び前記バックアップデータの関連メタ情報に基づいてメタ情報リストを構築し、前記メタ情報リストに基づいてバックアップして、メタ情報ファイルを取得する。データ量が小さいため、当該メタ情報のバックアップは、1つのスレッドでバックアップすればよい。
【0062】
好ましい実施形態において、さらに、バックアップの異なる粒度に応じて、バックアップ効率をさらに向上させ、バックアップの粒度は、テーブル空間レベルのバックアップ、ファイルレベルのバックアップ、ファイルブロックレベルのバックアップ、データ項目レベルのバックアップ(例えば、前記論理バックアップ方式)を含む。データベースシステムにおいて、一般的に、テーブル空間の方式でデータを管理し、テーブル空間は論理概念であり、上層(アクチュエータとデータバッファゾーン)にとって、物理レベルの記憶詳細をシールドするための論理記憶層である。ただし、下層(オペレーティングシステム)にとって、複数の物理ファイル乃至ネットワークストレージを管理するための記憶管理器である。1つのテーブル空間には複数のデータファイルが存在可能であり、ファイルは動的に増加されたり、削除されたりすることができる。
【0063】
このように、テーブルの空間粒度に基づいてバックアップすることができ、バックアップタスクにはバックアップ条件、例えばWHERE条件が含まれていない場合、ターゲットデータテーブルのテーブル空間のメタ情報、テーブル空間により管理された全てのデータファイルを直接的にバックアップする(並行バックアップを利用して複数のデータファイルをバックアップしてもよい)。
【0064】
バックアップタスクにはバックアップ、例えばWHERE条件が含まれる場合、ファイル粒度からバックアップすることができる。つまり、バックアッププロセスにおいて、前記ターゲットデータテーブルにおける第1データファイルのデータ項目の全ては、前記バックアップタスクのバックアップ条件に満足する場合、前記第1データファイルをバックアップする。例えば、WHERE条件は1つのデータファイルの大部分をカバーすれば、対応するデータファイルを直接的にバックアップする。
【0065】
バックアッププロセスにおいて、前記ターゲットデータテーブルにおける全てのデータファイル、または一部のデータファイルは、前記バックアップタスクのバックアップ条件に満足しており、且つ当該一部のデータファイルは、ターゲットデータテーブルにおけるファイル数の所定割合を占める場合、当該複数のデータファイルまたは一部のデータファイルをバックアップする。例えば、WHERE条件は複数のデータファイルの大部分をカバーすれば、当該複数のデータファイルをバックアップする。WHERE条件は全てのデータファイルの大部分をカバーすれば、全てのデータファイルを並行にバックアップし、実質的にはテーブル空間粒度のバックアップを行うことである。
【0066】
前記ターゲットデータテーブルにおいて第1データファイルにおける一部のデータ項目は、前記バックアップタスクのバックアップ条件に満足し、且つ前記一部のデータ項目の割合が第2所定割合以上である場合、前記第1データファイルをバックアップし、前記第1データファイルにおける無効データをマークする。前記ターゲットデータテーブルにおいて第1データファイルの一部のデータ項目は、前記バックアップタスクのバックアップ条件に満足し、且つ前記一部のデータ項目の割合が前記第2所定割合よりも小さい場合、論理的読取の形式で前記第1データファイルにおけるデータ項目を読み取る。例えば、WHERE条件は1つのデータファイルの大部分をカバーすることができない場合、前記実施例にかかるデータブロックバックアップの方式を参照し、そのバックアップの方式は、ブロックバックアップまたは論理バックアップ方式を採択することができる。
【0067】
本出願の実施例において、バックアップの効率を向上させるために、前記いずれのバックアップ方法において、前記バックアップタスクのバックアップターゲットは複数のデータテーブルを含む場合、前記複数のデータテーブルを並行にバックアップするようにサポートする。つまり、異なるテーブルターゲットのバックアップに対して、並行バックアップの方式で行ってもよく、例えば、データテーブル毎に、1つのバックアップスレッドを起動させることで、バックアップを実行する。
【0068】
本出願の実施例において、バックアップの効率を向上させるために、前記いずれのバックアップ方法において、前記バックアップタスクのバックアップターゲットは複数のデータファイルを含む場合、前記複数のデータファイルを並行にバックアップするようにサポートする。
【0069】
本出願の実施例において、バックアップの効率を向上させるために、前記いずれかのバックアップ方法において、前記バックアップタスクのバックアップターゲットは複数のデータブロックを含む場合、前記複数のデータブロックを並行にバックアップするようにサポートする。
【0070】
前記3種の並行バックアップの方式について、最大程度でバックアップの効率を向上させるように、少なくとも2種の方式を結合することで、バックアッププロセスを実現することができる。例えば、複数のデータテーブル及び複数のデータファイルに対して、それぞれ、並行バックアップの方式を採択することができる。本出願の実施例は結合方式を具体的に限定しない。
【0071】
本出願の実施例に係る3種のバックアップ方法について、三者の間の区別例は、以下の通りである。
例示1:論理バックアップ方式
BEGIN;
Set BACKUPNAME=‘/usr/bak/my_first_backup_02’READVIEW FROM'20180109000000'TO'20180119000000';//スナップショット差分方式で論理バックアップを行う
BACKUP TYPE LO FROM my_table;
END;
【0072】
例示2:物理バックアップ方式
BEGIN;
Set BACKUPNAME=‘/usr/bak/my_first_backup_04’READVIEW default;//通常トランザクションスナップショットに基づき物理バックアップを行う
BACKUP ALL;//システム全体をバックアップし、あるテーブルをバックアップすれば、「BACKUP FROM my_table;」になる
END;
【0073】
例示3:混合バックアップ方式
BEGIN;
Set BACKUPNAME=‘/usr/bak/my_first_backup_04’READVIEW FROM'20180109000000'TO now();//スナップショット差分方式で混合バックアップを行って、履歴の時間'20180109000000'から、本トランザクションの可視の提出された全てのデータまで、バックアップする必要がある
BACKUP FROM my_table01,my_table02,my_table03;//指定された3つのテーブルをバックアップし、システム全体をバックアップしてもよい
【0074】
好ましくは、ブロックバックアップ方式でバックアップする場合、データブロックにおけるデータには以下の2つの状況がある。
第1の状況とは、ページに跨ることなく、あるデータブロックにおける条件に満足しているデータが、当該ページにおける空間において十分に記憶され得る場合を指す。
第2の状況とは、ページクに跨り、あるデータブロックにおける条件に満足しているデータが、当該ページにおける空間において十分に記憶され得ず、連続しているページに存在する場合を指す。
【0075】
前記状況に応じて、1つのデータブロックは、ページに跨らない場合、本ページの後のページは当該本ページと関連しないことを示すように、そのデータ構成におけるフッター部分に特別マークを付ける。図6に示すように、ページにデータの有効ビットを追加し、当該データの有効ビットは、当該ページデータがページに跨るか否かを示す。1つの好ましい実施形態において、当該データの有効ビットは以下の2部分に分けられる。即ち、一部はデータ可視マークビットであり(全部0にセットされる)、残りのbitビット(ページに跨るマークビットと呼ばれる)は、本ページデータがページに跨るか否かを示す。(1は、ページに跨ることを示し、0は、ページに跨らないことを示す)。ページに跨るマークビットが存在する場合、データ検索の際に、停止できず、次のページを引き続いて読み込む。
【0076】
本出願の実施例は、時制データベースを基に、時制データに基づくバックアップ方法を提案し、全状態データのうちのいずれの状態のデータに対しても多種の柔軟方式、例えば、論理方式や物理方式、論理と物理との結合の方式を利用して、バックアップが実現され、時制データの有効記憶及び安全確実性に対して有効保障を提供する。
【0077】
なお、前記実施例に係る物理バックアップ、例えばブロックコピー方式は、全ての状況におけるデータバックアップに適用され得る。前記実施例に係る論理バックアップ、即ち、論理的読取方式によるバックアップ、例えば、データ項目の可視バージョンの読取方式によるバックアップは、全ての状況のデータバックアップにも適用され得る。物理バックアップと論理バックアップとの柔軟結合に基づいてデータバックアップを実現することで、バックアップの効率を大幅に向上することができ、本出願の実施例は、前記物理バックアップと論理バックアップとの結合方式を限定していない。以下の実施シナリオを例として、前記物理バックアップと論理バックアップとの結合により、様々なバックアップポリシーを策定することができる。このように、運営中のバックアップニーズを満たすとともに、高効率のバックアップが保証される。
【0078】
1つの実施シナリオにおいては、前記3種のバックアップ方法を組み合わせて、バックアップポリシーを策定することができる。即ち、場合によっては、対応している手段(論理バックアップ、物理バックアップ)によりバックアップする。選択可能なバックアップポリシーは伝統のデータベースバックアップポリシーと同様、例えば、可能なバックアップポリシーは、以下の通りである。即ち、半年ごとにデータベースのフルバックアップを行い(全てのデータ、即ち全状態データを含む)、1ヶ月ごとにゼロレベルバックアップを1回行い(読み取り専用テーブル空間を含まない)、1週間ごとに一レベルのバックアップを1回行い、毎日、二レベルのバックアップを1回行う。当該バックアップレベルは実際の必要に応じて設定すればよい。他の可能なバックアップポリシーは以下の通りである。即ち、二重ポリシーでバックアップすることであって、論理バックアップと物理バックアップとの結合である。データ量、及びデータ紛失に対する許容度に応じて、まず、定期的に物理バックアップを行い、そして、完全な物理バックアップの2つずつの時間間隔において、論理バックアップを行い、前記バックアップポリシーを実行することで、データ安全性及び一致性を向上させる目的を実現することができ、さらに、高効率のバックアップが保証される。
【0079】
なお、本出願の実施例にかかるデータ項目の可視バージョンとは、バックアップタスクに対応するトランザクションスナップショットに対応するタイミングにおいて、トランザクションにより読み取られるバージョンを指す。データテーブルにおける任意のタプルの任意なバージョンに対して、トランザクションスナップショット及び前記バージョンの作成タイミング、削除タイミング及び前記バージョンの提出タイミングに応じて、前記バージョンは可視であるかを特定する。サーバはデータテーブルから1つのタプルを読み取るたびに、当該タプルの生命周期情報(当該バージョンの作成タイミング、削除タイミング及び前記バージョンの提出タイミングなどの情報)を読み取ることができる。履歴時間帯に基づく可視性の判定を例とする。
(一):当該バージョンは挿入操作による生成であり、当該作成タイミングは当該履歴時間帯の開始時点の前にあり、当該提出タイミングは当該履歴時間帯にある場合、当該バージョンは可視であると特定し、または、当該作成タイミングと当該提出タイミングとも当該履歴時間帯にある場合、当該バージョンは可視であると特定する。
(二):当該バージョンは削除操作による生成であり、当該削除タイミングは当該履歴時間帯の開始時点の前にあり、当該提出タイミングは当該履歴時間帯にある場合、当該バージョンは可視であると特定し、または、当該削除タイミングと当該提出タイミングとも当該履歴時間帯にある場合、当該バージョンは可視であると特定する。
(三):当該バージョンは更新操作による生成であり、当該作成タイミングは当該履歴時間帯の開始時点の前にあり、当該提出タイミングは当該履歴時間帯にある場合、当該バージョンは可視であると特定し、または、当該作成タイミングは当該履歴時間帯の開始時点の後にあり、当該提出タイミングは当該履歴時間帯にある場合、当該バージョンは可視であると特定する。
【0080】
図2~5のフロチャートにおける各ステップは矢印の指示に従って順に表示されるが、これらのステップは、必ず矢印の指示順序に従う順に実行されるわけではない。本明細書に明確な記載以外、これらのステップの実行は、厳しい順序の限定を有せず、これらのステップは、他の順序で実行されてもよい。そして、図2~5における少なくとも一部のステップは、複数のサブステップまたは複数の段階を有してもよく、これらのサブステップまたは段階は、必ず同一タイミングで実行され完成されず、異なるタイミングで実行されてもよく、これらのサブステップまたは段階の実行順序は、必ず順に行わず、他のステップまたは他のステップのサブステップ、或いは段階の少なくとも一部と、順番または交代に実行されてもよい。
【0081】
図7は本出願の実施例にかかるデータバックアップ装置の構成模式図であり、図7を参照し、当該装置は、
ターゲットデータテーブルのデータ項目をバックアップするためのバックアップタスクを受信するための受信モジュール701と、
当該バックアップタスクのバックアップタイミングは履歴時間帯である場合、第1履歴トランザクションスナップショットと第2履歴トランザクションスナップショットとの間の第1スナップショット差分を取得するための取得モジュール702と、
当該第1スナップショット差分に基づいて、当該バックアップタスクを実行し、少なくとも当該ターゲットデータテーブルにおけるデータ項目の可視バージョンが含まれるバックアップデータを取得するためのバックアップモジュール703と、を備え、
当該第1履歴トランザクションスナップショット及び当該第2履歴トランザクションスナップショットは、それぞれ当該履歴時間帯の開始時点と終了時点におけるトランザクションスナップショットである。
【0082】
本出願の実施例にかかる装置は、時制データベースを基に、時制データに基づくバックアップ方法を提出し、全状態データのうちのいずれの状態のデータに対しても多種の柔軟方式、例えば、論理方式や物理方式、論理と物理との結合方式により、バックアップを実現することができ、時制データの有効記憶及び安全確実性に有効保障を提供する。
【0083】
好ましい実施形態において、当該バックアップモジュール703は、さらに、
当該ターゲットデータテーブルの履歴状態データが記憶されている第1データブロックを特定し、
当該第1スナップショット差分に基づいて、当該第1データブロックに記憶されている履歴状態データの全ては可視バージョンであると特定した場合、ブロックコピーの形式で、当該第1データブロックをバックアップし、バックアップデータを取得する。
【0084】
好ましい実施形態において、図7の装置構成に基づき、当該装置は、さらに、
当該第1スナップショット差分に基づいて、当該第1データブロックにおける可視バージョンの割合が第1所定割合以上であると特定した場合、ブロックコピーの形式で当該第1データブロックをバックアップし、当該第1データブロックにおける不可視の履歴状態データをマークし、バックアップデータを取得するステップと、
当該第1スナップショット差分に基づいて、当該第1データブロックに記憶されている履歴状態データのうちの可視バージョンの割合が当該第1所定割合よりも小さいと特定した場合、論理的読取形式で、当該第1データブロックにおける可視バージョンを読み取って、バックアップデータを取得するステップとを含む。
【0085】
好ましい実施形態において、図7の装置構成に基づいて、当該装置は、さらに、
当該バックアップタスクのバックアップタイミングは現時点である場合、当該現時点における通常トランザクションスナップショットを取得するステップと、
当該通常トランザクションスナップショットに基づいて、ブロックコピーの形式で現在状態データの所在しているデータブロックをバックアップし、バックアップデータを取得するステップとを含む。
【0086】
好ましい実施形態において、図7の装置構成に基づいて、当該装置は、さらに、
当該バックアップタスクのバックアップターゲットには現在状態データが含まれる場合、バックアッププロセスの開始時点から当該バックアッププロセスの終了時点まで、当該現在状態データのログファイルをセグメント化してバックアップするステップを含む。
【0087】
好ましい実施形態において、図7の装置構成に基づいて、当該装置は、さらに、
当該バックアップタスクのバックアップタイミングは1つの履歴時点である場合、当該履歴時点におけるトランザクションスナップショットである第3履歴トランザクションスナップショットを取得するステップと、
当該第3履歴トランザクションスナップショットに基づいて、当該バックアップタスクを実行し、少なくとも当該ターゲットデータテーブルにおけるデータ項目の可視バージョンが含まれるバックアップデータを取得するステップとを含む。
【0088】
好ましい実施形態において、図7の装置構成に基づいて、当該装置は、さらに、
当該バックアップタスクのバックアップタイミングは、現時点を終了点とする時間帯を有する場合、第4履歴トランザクションスナップショット及び第5履歴トランザクションスナップショットとの間の第2スナップショット差分を取得するステップと、
当該第2スナップショット差分に基づいて、現在状態データと当該ターゲットデータテーブルにおける可視バージョンをバックアップするステップとを含み、
当該第4履歴トランザクションスナップショット及び当該第5履歴トランザクションスナップショットはそれぞれ当該時間帯の開始時点におけるトランザクションスナップショット、及び当該現時点における通常トランザクションスナップショットであり、
当該バックアップデータには少なくとも当該ターゲットデータテーブルにおけるデータ項目の可視バージョンが含まれる。
【0089】
好ましい実施形態において、当該バックアップタスクのバックアップターゲットには履歴状態データと遷移状態データが含まれる場合、当該バックアップデータには、当該履歴状態データ、遷移状態データのメタ情報ファイル、及びデータファイルが含まれる。
【0090】
好ましい実施形態において、当該バックアップタスクのバックアップターゲットには現在状態データが含まれる場合、当該バックアップデータにはさらに当該現在状態データのメタ情報ファイル、データファイル及びログファイルが含まれる。
【0091】
好ましい実施形態において、当該バックアップデータのうちの履歴状態データと遷移状態データとのメタ情報ファイルの間のファイル命名に関連付けられる。
【0092】
好ましい実施形態において、当該バックアップモジュール703はさらに、メタ情報をバックアップする場合、バックアップターゲットのメタ情報及び当該バックアップターゲットの関係メタ情報に基づいて、メタ情報リストを構築し、当該メタ情報リストに基づきバックアップして、メタ情報ファイルを取得する。
【0093】
好ましい実施形態において、当該バックアップデータのデータ形式は、ディレクトリで各類のファイルが記憶され、または複数のtarパッケージとして記憶される。
【0094】
好ましい実施形態において、図7の装置構成に基づき、当該装置はさらに、
バックアップ過程で、当当該ターゲットデータテーブルにおける第1データファイルのデータ項目の全ては当該バックアップタスクのバックアップ条件に満足する場合、当該第1 データファイルをバックアップするステップと、
当該ターゲットデータテーブルにおける第1データファイルの一部のデータ項目が当該バックアップタスクのバックアップ条件に満足し、且つ当該一部のデータ項目の割合が第2所定割合以上である場合、当該第1データファイルをバックアップし、当該第1データファイルにおける無効データをマークするステップと、
当該ターゲットデータテーブルにおける第1データファイルの一部のデータ項目が、当該バックアップタスクのバックアップ条件に満足し、且つ当該一部のデータ項目の割合が当該第2所定割合よりも小さい場合、論理的読取形式で当該第1データファイルにおけるデータ項目を読み取るステップとを含む。
【0095】
好ましい実施形態において、当該バックアップタスクを実行する場合、
当該バックアップタスクのバックアップターゲットには複数のデータテーブルが含まれる場合、当該複数のデータテーブルを並行にバックアップするようにサポートする方式と、
当該バックアップタスクのバックアップターゲットには複数のデータファイルが含まれる場合、当該複数のデータファイルを並行にバックアップするようにサポートする方式と、
当該バックアップタスクのバックアップターゲットには複数のデータブロックが含まれる場合、当該複数のデータブロックを並行にバックアップするようにサポートする方式とのうちの少なくとも1つの方式で実現される。
【0096】
前記全ての選択可能な技術案は、任意の結合を利用して、本開示の選択可能な実施例を形成できる。
【0097】
なお、前記実施例にかかるデータバックアップ装置は、データをバックアップする際、前記各機能モジュールの区画のみを例として説明し、実際応用において、必要に応じて異なる機能モジュールで完成されるように、前記機能を割り当て、即ち、装置の内部構成を、異なる機能モジュールに区画することで、前記記載の全てまたは一部の機能を完成させる。また、前記実施例が提供したデータバックアップ装置と、データバックアップ方法の実施例とは同一の構想に属して、その具体的な実現過程について、方法実施例を参照すればよい。
【0098】
前記データバックアップ装置は、コンピュータープログラムの形式として実現されてもよく、コンピュータープログラムは端末で運転することができる。端末での記憶媒体には、図7に示される受信モジュール701、取得モジュール702及びバックアップモジュール703のような当該データバックアップ装置を構成する各プログラムモジュールが記憶されてもよい。各プログラムモジュールからなるコンピュータープログラムはプロセッサーにより実行される場合、プロセッサーに、本出願の各実施例の推奨内容の表示方法におけるステップを実行させる。
【0099】
図8は本出願の実施例が提供したサーバの構成模式図であり、当該サーバ800は配置または性能の異なりのため、大きい相違が生じる可能性があり、1つまたは1つ以上のプロセッサー(central processing units、CPU)801と、1つまたは1つ以上のメモリ802とを有し、前記メモリ802には少なくとも1つのコマンドが記憶され、前記少なくとも1つのコマンドは前記プロセッサー801によりロードされるとともに、実行されることで、前記各方法の実施例が提供した方法を実現する。無論、入出力を便利にするために、当該サーバは、有線または無線ネットワークインタフェース、キーボード及び入出力インタフェースなどの部材を有してもよく、さらに機器機能を実現するための他の部材を有してもよい。
【0100】
当該メモリ802は不揮発性及び/または揮発性メモリであってもよい。不揮発性メモリは読み取り専用メモリ(ROM)、プログラム可能なROM(PROM)、電気的プログラム可能なROM(EPROM)、電気的に消去可能プログラム可能なROM(EEPROM)またはフラッシュメモリを有してもよい。揮発性メモリはランダムアクセスメモリ(RAM)または外部高速キャッシュメモリを有してもよい。限定ではなく、説明として、RAMは静的RAM(SRAM)、動的RAM(DRAM)、同期DRAM(SDRAM)、ダブルデータレートSDRAM(DDRSDRAM)、強化式SDRAM(ESDRAM)、同期リンク(Synchlink)DRAM(SLDRAM)、メモリバス(Rambus)直接RAM(RDRAM)、ダイレクトメモリバス動的RAM(DRDRAM)、及びメモリバス動的RAM(RDRAM)などのような、多種の形式で取得されてもよい。
【0101】
本出願の実施例はさらに、サーバに適用されるコンピュータ可読記憶媒体を提供し、当該コンピュータ可読記憶媒体には少なくとも1つのコマンド、少なくとも1セグメントのプログラム、コードセットまたはコマンドセットが記憶され、当該コマンド、当該プログラム、当該コードセットまたは当該コマンドセットは、プロセッサーによりロードされるとともに、実行されることで、前記実施例のデータバックアップ方法におけるサーバによる実行される操作を実現する。
【0102】
当業者が理解できるように、前記実施例の全てまたは一部のステップを実現することは、ハードウェアにより完成されてもよく、プログラムにより、関するハードウェアにコマンドするように完成されてもよく、前記プログラムはコンピュータ可読記憶媒体に記憶され、前記言及された記憶媒体は、読み取り専用メモリ、磁気ディスクまたは光ディスクなどであってもよい。
【0103】
以上の実施例の各技術特徴に対して、任意の組み合わせを行ってもよく、記載を簡潔にするために、前記実施例の各技術特徴の全ての可能な組み合わせを記載していないが、これらの技術特徴の組み合わせには矛盾が存在しないと、いずれも本明細書の記載範囲であると認められる。
【0104】
以上の実施例は、本出願のいくつかの実施形態のみを表現し、その記載は具体的且つ詳しいが、そのため、発明の特許範囲に対する限定と理解されることができない。指摘すべきのは、当業者にとって、本出願の構想から逸脱しない前提で、さらに、若干の変形及び改良を行ってもよく、これらはいずれも本出願の保護範囲に当該当すべきである。従って、本出願特許の保護範囲は、添付の請求項を基準とする。
【符号の説明】
【0105】
101 サーバ
800 サーバ
801 プロセッサー
802 メモリ
図1
図2
図3
図4
図5
図6
図7
図8