資料庫問題總結

2021-08-29 21:42:22 字數 2040 閱讀 5853

我對昨晚資料庫公升級出現的問題現在總結一下:

下邊是錯誤:

sql0668n 原因碼為 "1",所以不允許操作 sqlstate=57016

1. 最根本的問題是load的問題:

copy yes/ nonrecoverable

對於dms表空間,load預設為copy no 模式,此模式下,load完成後,表空間會處於暫掛狀態,這時候只能查表中的資料,需要對錶空間進行一次備份,才可以對錶進行update、insert等操作,那麼我們可以使用如上2個命令,對於copy yes,load完成以後會自動進行一次備份操作;nonrecoverable 指出load不可恢復,此命令符不會產生表空間暫掛,也不會自動進行表空間備份,但是他有乙個缺點就是,不能恢復,當資料庫進行回滾的時候,不能還原,危險等級還是比較高一點,不過個人覺得也nonrecoverable比較實用。

例:load client from 'f:s1.del' of del insert into db2admin.zxtables nonrecoverable

load client from 'f:s1.del' of del insert into db2admin.zxtables copy yes

2.list tablespaces show detail 看到的ox0200 找個狀態就是表空間暫掛了。

tablespace id = 2

name = userspace1

type = system managed space

contents = any data

state = 0x0020

detailed explanation:

backup pending

3.load導致表空間掛起深入分析:

首先是因為資料庫的日誌的設定方式引起的。我們平常使用的資料庫的日誌方式是迴圈日誌,而這次使用的歸檔日誌,這就是以前我們load 每次都是正常的,而這次為什麼出現了這個原因。

設定資料庫歸檔日誌:

>db2 update db cfg for test using logarchmeth1 "disk:e:\db2log"

這時要備份資料庫

db2_all "<<+0db2_all "<<-0重新連線資料庫,可以訪問了。下來開始實驗:

load client from d:\mobile_product_inst_200812.del of del insert into mobile_product_inst_200812

load 完成後,我們看一下表空間的狀態,發現表空間已經掛起了。這時我們只能去備份找個表空間

db2_all "<<+0db2_all "<<-0備份完成後,可以訪問這個表了。

接下來看正確的load的方式:

load client from d:\mobile_product_inst_200812.del of del insert into mobile_product_inst_200812 nonrecoverable;

注意加了個引數nonrecoverable 意思是:不可恢復。

4.總結:

當你的資料庫處在archivelog模式下,用load倒數時就會出現備份暫掛,因為load不寫日誌,自然會要求你備份的.或者用import,或用帶copy yes,norecovery的load。

當 db2的資料庫啟用了前滾恢復模式,即將日誌由迴圈日誌方式改為歸檔日誌,以便使用者在進行恢復操作時,可在恢復了資料庫或表空間的備份後,再通過前滾歸檔日誌中的事務,恢復資料庫備份時間點之後提交的事務,最大程度的保護資料庫的資料。

而 db2 的 load 實用程式為實現快速匯入資料的功能,除採用了通過直接向資料庫中寫入格式化的資料頁裝載資料,匯入過程中不啟用觸發器,不會檢查參考完整性和表檢查約束當等方式外,還最小化了記錄事務日誌的操作。在 load 的 load、build、delete 和 index copy 四個處理階段中,僅在 delete 階段記錄對每個刪除事件記日誌,即只對每個違反唯一約束的行的刪除操作記日誌,因此整個 load 操作僅記錄了極少的日誌。

copy no(預設)

copy yes

nonreverable

資料庫問題總結

1 mysql資料庫儲存原理 儲存的過程是乙個可程式設計的函式,在資料庫中建立並儲存,有以下優點 1 儲存過程能實現較快的執行速度 2 儲存過程允許標準元件是程式設計。3 儲存過程可以用流程控制語句編寫,有很強的靈活性,可以完成複雜的判斷 和較複雜的運算。4 儲存過程可被作為一種安全機制來充分利用。...

MySQL資料庫亂碼問題總結

解決mysql資料庫亂碼問題總結 解決辦法 1 修改安裝檔案根目錄下的my.ini檔案 搜尋欄位default character set,設定其值為utf8 gbk之一 注意設定utf8的時候不能設成utf 8 注意 這個檔案裡不止一處要修改的,如果你把這個檔案裡default character...

資料庫連線問題的總結

對資料庫連線問題的一點總結 1.odbc,oledb,ado,adox的關係 odbc 曾經的資料庫通訊標準 oledb 在一切物件化的趨勢下,ms打算用它取代odbc.oledb分兩種 直接的oledb和面向odbc的oledb,後者架構在odbc上,這 樣沒有自己的oledb提供者的資料庫也可以...