日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

備份和恢復DB2 Universal Database(1)

瀏覽:22日期:2023-11-10 14:07:13

動機

SQL 語言提供了模式的概念,用來對所有類型的 SQL 對象進行分組。可以將 SQL 語言中的模式 理解成文件系統中的目錄。DB2 UDB for Linux, UNIX, and Windows 很好地支持 SQL 模式概念,可以將 USER 與 CURRENT SCHEMA 隔離開,并為例程解析提供了 PATH。

使用模式很輕易,但是它們的治理就不同了。模式的重命名、模式級備份和恢復以及模式的復制等任務比較困難,因為必須手工進行腳本編程,而且對象及其依靠性可能很復雜。

本文提供一個具有簡單接口的過程庫,使用戶能夠將給定模式中的所有對象備份到文件系統中、在另一個模式下恢復備份以及刪除給定模式中的所有對象。

安裝

下載并解壓縮本文包含的 backupschema.zip 文件之后,會得到以下文件:

backupschema.sql

這個文件包含一些 DDL 語句,這些語句安裝過程以及各個 helper 例程和表。在默認情況下,所有對象使用的模式是 "ADMIN"。假如要改變這個模式,只需修改這個文件開頭的 SET SCHEMA 和 SET PATH 語句,將 "ADMIN" 替換為您選擇的模式名。

為了執行這個腳本,作為 DB2 治理員連接到數據庫,然后執行 db2 -tvf backupschema.sql。

這些過程使用 SYSPROC.ADMIN_CMD() 存儲過程進行導出并使用 SYSPROC.DB2LOAD() 存儲過程進行裝載。(SYSPROC.ADMIN_CMD() 是在 DB2 V8.2.2(FP 9)中引入的。因此,需要的最低版本是 V8.2.2。)SYSPROC.ADMIN_CMD() 在 sqllibadm.fenced 的所有者指定的 fenced 用戶 id 和組 之下執行。因此,導出的文件具有與 sqllibadm.fenced 相同的所有者和組。因此一定要確保這個用戶和組對指定的目錄有寫特權,而且用來訪問文件的用戶 id 也有訪問權。簡單的解決方案是將 sqllibadm.fenced 的所有者改為實例所有者。更安全的解決方案是讓這兩個 ID 成為同一個組的成員,然后只將 sqllibadm.fenced 的組所屬權改為這個組。這樣就能夠通過組成員關系訪問產生的文件。

規范

DROPSCHEMA()

這個過程將刪除模式中定義的所有對象,并最終刪除這個模式本身。

參數

要刪除的模式的名稱。SQL 標識符是大小寫敏感的。要刪除模式 "MYSCHEMA",模式名必須是大寫的:'MYSCHEMA'。

假如另一個模式中的對象依靠于要刪除的模式,那么應用刪除對象的常規規則。因此,在大多數情況下,依靠對象也會被刪除或失效。但是,一些對象(比如 SQL 函數)實施 RESTRICT 語義。假如碰到這種情況,那么這個過程將失敗。

DROPSCHEMA 過程在事務控制下執行,它自己不執行提交或回退。所以,要想讓模式的刪除持久化,必須提交刪除操作。同樣,假如發生錯誤,那么過程的調用者需要決定是否將過程回退。

BACKUPSCHEMA(,)

這個過程將模式中的所有對象邏輯備份到文件系統中。支持的對象是:

表,包括統計數據。不支持范圍簇表(RCT)、物化查詢表(MQT)和有類型的表。

視圖,但是不包括有類型的視圖。

函數,包括源、SQL 和外部函數。注重,對外部函數的可執行代碼不進行備份。函數的統計數據也不備份。

SQL 過程和外部過程。注重,對外部過程的可執行代碼不進行備份。

不同的數據類型。注重,不支持結構化數據類型。

索引,但是不包括索引擴展。

所有約束。

序列,包括它們的高水位標志。

支持的所有對象上的注釋。

支持的所有對象上的特權。

這個備份過程可以包括 PATH、SCHEMA 和 PREP 選項。

不支持聯邦對象(比如 NICKNAME)以及數據庫分區特性(DPF)。

參數

要備份的模式的大小寫敏感名。

對象要備份到的文件系統目錄。這個目錄必須存在,在 UNIX 或 Linux 上以斜線結尾,在 Windows 上以反斜線結尾;例如 'D:TEMPMYSCHEMA'。假如這個目錄是 NULL 或空字符串,那么不導出文件。這個過程只用 DDL 語句填充 DDLLOG 表。COPYSCHEMA 過程要使用這個方式。

在成功地備份之后,這個目錄包含以下對象的 IXF 文件:

備份的模式中的表。

SYSSTAT 視圖,包含表、列和索引統計數據。

DDL 日志,包含重建所有對象所需的信息。

用戶可以在這個目錄中添加其他文件,比如外部例程的可執行代碼。完成之后,可以根據需要用 zip 和 tar 對這個目錄進行壓縮、打包或傳輸。

RESTORESCHEMA(,,,)

這個過程恢復以前用 BACKUPSCHEMA 備份的模式。使用當前用戶的 ID 創建所有對象。假如恢復的任何對象引用另一個模式中的對象,而被引用的對象在目標數據庫中不存在,那么這個過程將失敗。這個過程執行內部提交。

假如恢復到與 BACKUPSCHEMA 不同的模式中,那么所有包含 SQL 體(比如視圖、SQL 例程和檢查約束)的 SQL 對象在它們的定義中必須沒有顯式地引用源模式。例如,CHECK (MYSCHEMA.MYTABLE.C1 > 0) 無法成功地恢復到 "MYSCHEMA" 之外的模式中,而 CHECK (MYTABLE.C1 > 0) 可以。為了能夠在 RESTORESCHEMA 中指定其他模式,建議在定義 SQL 對象時利用非凡寄存器 CURRENT PATH 和 CURRENT SCHEMA,而不是顯式地指定局部模式。

參數

要將對象恢復到的模式的大小寫敏感名。假如這個模式已經存在,那么先刪除它。假如模式是 NULL 或空字符串,那么這個過程采用備份時的模式名進行恢復。COPYSCHEMA 過程采用這種方式。

包含要添加到每個表定義中的表空間信息的字符串。這個子句可能包含 IN 、LONG IN 和 INDEX IN 子句。假如應該使用默認值,那么這個參數可以是空字符串或 NULL。例如:'IN DATA8K INDEX IN INDEX4K'

文件系統中存放 BACKUPSCHEMA 生成的文件的目錄。這個目錄在 UNIX 或 Linux 上必須以斜線結尾,在 Windows 上必須以反斜線結尾;例如 'D:TEMPMYSCHEMA'。 文件系統中的一個目錄,這個過程將把裝載消息文件寫到這個目錄中。這個目錄必須根據操作系統以適當的斜線或反斜線結尾。

COPYSCHEMA(,,) 這個過程在相同的數據庫中創建模式的副本。

參數

新模式的大小寫敏感名。

包含要添加到每個表定義中的表空間信息的字符串。假如是 NULL 或 '',那么使用默認值。

要復制的模式的大小寫敏感名。

REBINDPROCEDURES()

這個過程對一個模式中的所有 SQL 過程進行重新綁定。在為模式中過程使用的表收集新的統計數據之后,應該調用這個過程。這個過程將重新優化 SQL 過程中使用的所有 SQL 語句。

參數

模式的大小寫敏感名。

示例

CALL ADMIN.DROPSCHEMA('SAMPLE')

這個過程調用會刪除模式 "SAMPLE" 中的所有對象。

CALL ADMIN.BACKUPSCHEMA('UTIL', 'D:TEMPUTIL_SCHEMA')

這個過程調用將模式 "UTIL" 中的所有對象存儲在目錄 D:TEMPUTIL_SCHEMA 中。

CALL ADMIN.RESTORESCHEMA(NULL, NULL, 'D:TEMPUTIL_SCHEMA', 'D:TEMP')

這個過程調用從 D:TEMPUTIL_SCHEMA 中獲取對象,并使用默認表空間將它們恢復到原來的模式中。來自裝載過程的消息寫入 D:TEMP 中。

CALL ADMIN.RESTORESCHEMA('SRIELAU', 'IN "DATA" INDEX IN "INDEX"', 'D:TEMPUSER_SCHEMA', 'D:TEMP')

這個過程調用從 D:TEMPUSER_SCHEMA 中獲取對象,并將它們恢復到 "SRIELAU" 模式中,對于表數據使用表空間 "DATA",對于索引使用 "INDEX"。來自裝載過程的消息寫入 D:TEMP 中。

CALL ADMIN.COPYSCHEMA('SRIELAU', 'IN "DATA" INDEX IN "INDEX" LONG IN "LONG"', 'STOLZE')

這個過程調用將模式 "STOLZE" 中的所有對象復制到模式 "SRIELAU" 中,對于表數據使用表空間 "DATA",對于索引使用 "INDEX",對于 LOB 數據使用 "LONG"。 CALL ADMIN.REBINDPROCEDURES('SRIELAU'') 這個過程調用對模式 SRIELAU 中的所有 SQL 過程進行重新綁定,獲取新的統計數據。

實現

本節在較高的層面上概述本文前面討論的過程的實現。

成功地恢復一個模式中的所有對象的主要困難是,處理模式中不同對象之間的依靠性。例如,表可能依靠于用戶定義的不同類型;檢查約束依靠于函數;視圖依靠于視圖、別名和函數;等等。

因為 DB2 UDB 不能創建依靠于不存在的實體的對象,所以正確的執行次序是非常重要的。但是,假如仔細考慮一下這個問題,就會發現依靠圖的深度一般不大,而且某些對象是自然的端點。比如,用戶定義的類型不能依靠于其他 DDL 對象,而且表(不包括約束)只依靠于不同的類型。意識到這一情況,就可以分三個階段實現恢復:

恢復所有不同的類型,然后恢復所有表及其索引。

將數據復制到表中并獲取統計數據。這樣做是為了確保 SQL 過程的執行計劃是正確的。

在一個循環中恢復所有其他對象。因此,假如任何給定對象的創建失敗了,那么不必擔心,只要能夠繼續遍歷要恢復的對象的列表。只有當過程進行不下去時,才會返回錯誤。

利用這種基本的恢復算法,很輕易實現一種簡單的基礎設施。

BACKUPSCHEMA 過程使用 DDLLOG 表記錄 DDL 語句。第一行(編號為 0)包含源模式。后面是不同類型的 DDL 語句,然后是表的 DDL 語句。這個階段的末尾由一個空行表示,空行后面是所有其他對象。

這個表包含一個 SUCCESS 列,RESTORESCHEMA 使用這一列記錄一個對象是否成功創建了。

DDL 對象的組成完全基于文檔記錄的 SYSCAT 編目視圖,只有一個例外。IDENTITY 列的高水位標志需要從 SYSIBM.SYSSEQUENCES.LASTASSIGNVAL 中獲得,在 DB2 UDB V8 中沒有提供這個值。

與文件系統的交互是通過 SYSPROC.ADMIN_CMD 過程實現的,這個過程支持導出,用于將 DDLLOG 表、用戶數據和統計數據寫到文件中。對于裝載,要使用 SYSPROC.DB2LOAD。

用來恢復模式的強制性方式也用于刪除模式。DROPSCHEMA 過程簡單地不斷嘗試刪除對象,直到這個過程進行不下去或者所有對象都被刪除為止。

結束語

本文提供了一組強大的過程,可以執行模式級操作,比如對給定模式中的所有對象進行邏輯備份、恢復和復制。除了用這個庫幫助 ISV 和最終用戶之外,本文還演示了如何利用 DB2 UDB 中豐富的 SQL API 為用戶提供更多功能。

標簽: DB2 數據庫
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
视频一区二区三区在线| 久久精品免费一区二区三区| 国产精品毛片在线看| 日本在线高清| 国产伦久视频在线观看| 国产精品久久久久久久免费观看| 老司机精品视频在线播放| 国产精品va| 国产精品久久久久蜜臀 | 久久精品免费一区二区三区| 福利一区二区| 桃色一区二区| 激情婷婷欧美| 免费观看不卡av| 久久国产成人午夜av影院宅| 亚洲精品亚洲人成在线观看| 国产精品精品| 亚洲青青久久| 欧美午夜精彩| 亚洲精品美女91| 九九99久久精品在免费线bt| 91精品观看| 国产精品3区| 伊人久久成人| 日日夜夜免费精品| 日本国产精品| 亚洲成人二区| 91视频一区| 91免费精品| 亚洲精品永久免费视频| 日韩精品成人| 国产美女精品| 国产精品日韩久久久| 日韩中出av| 麻豆精品视频在线观看免费| 欧美片第1页| 日韩中文字幕av电影| 国产亚洲久久| 岛国av在线播放| 亚洲一区二区网站| 国产精品玖玖玖在线资源| 日韩伦理福利| 喷白浆一区二区| 国产精久久一区二区| 日本高清不卡一区二区三区视频| 日韩一区二区三区免费播放| 欧美日韩精品一本二本三本 | 99视频精品全国免费| 久久一区二区三区喷水| 伊人影院久久| 国产精品成人一区二区网站软件| 一区二区高清| 久久中文字幕av一区二区不卡| 色婷婷色综合| 麻豆中文一区二区| 国产精品羞羞答答在线观看| 婷婷综合社区| 97欧美在线视频| 在线日韩视频| 日韩高清在线观看一区二区| 国产日韩欧美| 成人自拍av| 日韩一区二区三区高清在线观看| 蜜桃tv一区二区三区| 涩涩av在线| 蜜桃视频在线观看一区二区| 久久99精品久久久野外观看| 亚洲午夜91| 国产精品tv| 伊人精品视频| 精品黄色一级片| 中文字幕日韩欧美精品高清在线| 日韩av电影一区| 久久精品av| 国产精品综合色区在线观看| 夜夜精品视频| 国产在线看片免费视频在线观看| 精品亚洲精品| 日韩精品亚洲专区| 伊人久久亚洲影院| 国产一区日韩| 亚洲一区二区成人| 国产亚洲精品精品国产亚洲综合| 国产精品一在线观看| 蜜桃精品在线| 日本一不卡视频| 粉嫩av一区二区三区四区五区 | 热三久草你在线| 国产精品毛片| 91亚洲一区| 国产精品xvideos88| 日韩专区在线视频| 欧美不卡视频| 日韩伦理在线一区| 国产精品老牛| 国产毛片久久久| 免费在线观看视频一区| 亚洲播播91| 国产激情欧美| 日韩在线黄色| 日韩一区二区免费看| 日本精品影院| 老牛影视精品| 精品精品久久| 视频一区二区三区入口| 成人片免费看| 欧美香蕉视频| 美女视频网站久久| 国产探花一区| 久久精品国产99国产| 青草国产精品| 国产精品一区二区av交换| 亚洲一区二区日韩| 婷婷中文字幕一区| 亚洲精品黄色| 久久久久观看| 亚洲免费激情| 四虎8848精品成人免费网站| 91九色精品| 国产精品白丝av嫩草影院| 亚洲v在线看| 日日摸夜夜添夜夜添国产精品| 九九99久久精品在免费线bt| 欧美午夜精彩| 国产va免费精品观看精品视频| 激情五月综合| 97精品视频在线看| 97精品久久| 亚洲一区二区av| 国产精品一区亚洲| 日韩视频在线一区二区三区| 国产精品久久久免费| 日韩精品一卡二卡三卡四卡无卡| 国产一区二区三区四区五区| 国产精品日韩久久久| 欧美羞羞视频| 久久影院午夜精品| 日产精品一区二区| 国产免费av一区二区三区| 99国产精品视频免费观看一公开| 激情不卡一区二区三区视频在线| 日韩精品一区二区三区中文| 亚洲女同一区| 亚洲a在线视频| 日韩精品水蜜桃| 国产一区精品福利| 911精品国产| 日韩黄色在线观看| 亚洲精品乱码日韩| 男人的天堂久久精品| 99在线精品免费视频九九视| 久久亚洲道色| 精品国产乱码久久久久久樱花 | 欧美黑人做爰爽爽爽| 亚洲欧美在线综合| 日韩综合一区二区| 亚洲精品免费观看| 亚洲日本免费电影| 国产欧美日韩在线观看视频| 亚洲精选91| 久久av日韩| 日韩欧美午夜| 国产一区视频在线观看免费| 激情欧美一区二区三区| 婷婷丁香综合| 亚洲一级大片| 国产精品调教| 国产精品视频一区二区三区综合| 久久国产尿小便嘘嘘| 美女精品视频在线| 亚洲欧洲高清| 免费国产自久久久久三四区久久| 综合国产精品| 国产亚洲观看| 久久精品国产999大香线蕉| 国模大尺度视频一区二区| 色婷婷狠狠五月综合天色拍| 国产午夜精品一区二区三区欧美| 日韩精品亚洲专区| 国产白浆在线免费观看| 午夜亚洲一区| 日韩电影免费网站| 亚洲精品一区二区在线播放∴| 麻豆视频观看网址久久| 欧美一区三区| 美日韩一区二区三区| 米奇777超碰欧美日韩亚洲| 中文字幕乱码亚洲无线精品一区| 成人日韩av| 亚洲精品大片| 久久高清免费| 国产精品久一| 亚洲aa在线| 亚洲制服少妇| 四虎影视精品| 欧美激情福利| 日韩欧乱色一区二区三区在线| 精品视频高潮| 国产精品九九| 日韩欧美中文字幕在线视频|