專利名稱:重啟內(nèi)存數(shù)據(jù)庫的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明實(shí)施例涉及通信技術(shù),尤其涉及一種重啟內(nèi)存數(shù)據(jù)庫的方法和裝置。
背景技術(shù):
內(nèi)存數(shù)據(jù)庫能夠提供微秒級的實(shí)時(shí)響應(yīng)時(shí)間,因此,在電信、金融等領(lǐng)域中越來越多地使用內(nèi)存數(shù)據(jù)庫存儲要實(shí)時(shí)訪問的業(yè)務(wù)數(shù)據(jù)。內(nèi)存數(shù)據(jù)庫在重啟時(shí),第一步:關(guān)閉數(shù)據(jù)庫服務(wù),需停止所有正在運(yùn)行的事務(wù),將重做日志數(shù)據(jù)從內(nèi)存中拷貝到磁盤中,退出數(shù)據(jù)庫服務(wù);第二步,啟動(dòng)數(shù)據(jù)庫服務(wù),需要將磁盤中存儲的表空間數(shù)據(jù)加載到內(nèi)存中,并從磁盤中讀取重做日志數(shù)據(jù),以完成內(nèi)存數(shù)據(jù)庫的恢復(fù),對外提供內(nèi)存數(shù)據(jù)庫訪問服務(wù)。然而,采用現(xiàn)有技術(shù)的重啟方法,在重啟過程中需要從磁盤中讀寫數(shù)據(jù),磁盤的讀寫速度較慢,因此,內(nèi)存數(shù)據(jù)庫的重啟時(shí)間較長。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供一種重啟內(nèi)存數(shù)據(jù)庫的方法和裝置,以縮短內(nèi)存數(shù)據(jù)庫的重啟時(shí)間。本發(fā)明實(shí)施例第一方面提供一種重啟內(nèi)存數(shù)據(jù)庫的方法,包括:獲取待重啟內(nèi)存數(shù)據(jù)庫所對應(yīng)的系統(tǒng)啟動(dòng)控制文件,并從所述系統(tǒng)啟動(dòng)控制文件中獲取關(guān)鍵值,所述關(guān)鍵值唯一標(biāo)識用于存儲所述待重啟內(nèi)存數(shù)據(jù)庫的數(shù)據(jù)的共享內(nèi)存段,所述數(shù)據(jù)包括表空間數(shù)據(jù)和系統(tǒng)運(yùn)行環(huán)境數(shù)據(jù);根據(jù)所述關(guān)鍵值確定所述共享內(nèi)存段,根據(jù)所述共享內(nèi)存段中存儲的所述表空間數(shù)據(jù)和系統(tǒng)運(yùn)行環(huán)境數(shù)據(jù),在所述共享內(nèi)存段中恢復(fù)所述待重啟內(nèi)存數(shù)據(jù)庫。結(jié)合第一方面,在第一種可能的實(shí)現(xiàn)方式中,所述方法還包括:從所述系統(tǒng)啟動(dòng)控制文件中獲取第一特征信息;對應(yīng)地,所述根據(jù)所述共享內(nèi)存段中存儲的所述表空間數(shù)據(jù)和系統(tǒng)運(yùn)行環(huán)境數(shù)據(jù),在所述共享內(nèi)存段中恢復(fù)所述待重啟內(nèi)存數(shù)據(jù)庫包括:獲取所述共享內(nèi)存段中存儲的第二特征信息,若判斷獲知所述第一特征信息與所述第二特征信息一致,則根據(jù)所述共享內(nèi)存段中存儲的所述表空間數(shù)據(jù)和系統(tǒng)運(yùn)行環(huán)境數(shù)據(jù),在所述共享內(nèi)存段中恢復(fù)所述待重啟內(nèi)存數(shù)據(jù)庫。結(jié)合第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,所述第一特征信息和所述第二特征信息為存儲在所述共享內(nèi)存段頭部的數(shù)據(jù)庫身份標(biāo)識。結(jié)合第一方面或第一種可能的實(shí)現(xiàn)方式或第二種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,所述關(guān)鍵值根據(jù)操作系統(tǒng)用戶標(biāo)識、創(chuàng)建所述共享內(nèi)存段的時(shí)間以及內(nèi)存數(shù)據(jù)庫內(nèi)部模塊序列號生成。結(jié)合第一方面,在第四種可能的實(shí)現(xiàn)方式中,所述方法還包括:在接收到關(guān)閉內(nèi)存數(shù)據(jù)庫的指令后,將所述表空間數(shù)據(jù)和系統(tǒng)運(yùn)行環(huán)境數(shù)據(jù)存儲在所述共享內(nèi)存段內(nèi)。本發(fā)明實(shí)施例第二方面提供一種重啟內(nèi)存數(shù)據(jù)庫的裝置,包括:獲取模塊,用于獲取待重啟內(nèi)存數(shù)據(jù)庫所對應(yīng)的系統(tǒng)啟動(dòng)控制文件,并從所述系統(tǒng)啟動(dòng)控制文件中獲取關(guān)鍵值,所述關(guān)鍵值唯一標(biāo)識用于存儲所述待重啟內(nèi)存數(shù)據(jù)庫的數(shù)據(jù)的共享內(nèi)存段,所述數(shù)據(jù)包括表空間數(shù)據(jù)和系統(tǒng)運(yùn)行環(huán)境數(shù)據(jù);處理模塊,用于根據(jù)所述關(guān)鍵值確定所述共享內(nèi)存段,根據(jù)所述共享內(nèi)存段中存儲的所述表空間數(shù)據(jù)和系統(tǒng)運(yùn)行環(huán)境數(shù)據(jù),在所述共享內(nèi)存段中恢復(fù)所述待重啟內(nèi)存數(shù)據(jù)庫。結(jié)合第二方面,在第一種可能的實(shí)現(xiàn)方式中,所述獲取模塊還用于從所述系統(tǒng)啟動(dòng)控制文件中獲取第一特征信息;對應(yīng)地,所述處理模塊具體用于獲取所述共享內(nèi)存段中存儲的第二特征信息,若判斷獲知所述第一特征信息與所述第二特征信息一致,則根據(jù)所述共享內(nèi)存段中存儲的所述表空間數(shù)據(jù)和系統(tǒng)運(yùn)行環(huán)境數(shù)據(jù),在所述共享內(nèi)存段中恢復(fù)所述待重啟內(nèi)存數(shù)據(jù)庫。結(jié)合第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,所述第一特征信息和所述第二特征信息為存儲在所述共享內(nèi)存段頭部的數(shù)據(jù)庫身份標(biāo)識。結(jié)合第二方面或第一種可能的實(shí)現(xiàn)方式或第二種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,所述關(guān)鍵值根據(jù)操作系統(tǒng)用戶標(biāo)識、創(chuàng)建所述共享內(nèi)存段的時(shí)間以及內(nèi)存數(shù)據(jù)庫內(nèi)部模塊序列號生成。結(jié)合第二方面,在第四種可能的實(shí)現(xiàn)方式中,所述處理模塊還用于在接收到關(guān)閉內(nèi)存數(shù)據(jù)庫的指令后,將所述表空間數(shù)據(jù)和系統(tǒng)運(yùn)行環(huán)境數(shù)據(jù)存儲在所述共享內(nèi)存段內(nèi)。本發(fā)明實(shí)施例提供的重啟內(nèi)存數(shù)據(jù)庫的方法和裝置,通過獲取待重啟內(nèi)存數(shù)據(jù)庫所對應(yīng)的系統(tǒng)啟動(dòng)控制文件,并從所述系統(tǒng)啟動(dòng)控制文件中獲取關(guān)鍵值,根據(jù)所述關(guān)鍵值確定存儲待重啟內(nèi)存數(shù)據(jù)庫的數(shù)據(jù)的共享內(nèi)存段,根據(jù)所述共享內(nèi)存段中存儲的表空間數(shù)據(jù)和系統(tǒng)運(yùn)行環(huán)境數(shù)據(jù),在所述共享內(nèi)存段中恢復(fù)所述待重啟內(nèi)存數(shù)據(jù)庫,由于在重啟過程中,是根據(jù)共享內(nèi)存段中存儲的表空間和系統(tǒng)運(yùn)行環(huán)境數(shù)據(jù)在共享內(nèi)存段中恢復(fù)待重啟內(nèi)存數(shù)據(jù)庫,無需再從磁盤中獲取表空間數(shù)據(jù)和系統(tǒng)運(yùn)行環(huán)境數(shù)據(jù),節(jié)省了獲取表空間數(shù)據(jù)和系統(tǒng)運(yùn)行環(huán)境數(shù)據(jù)的時(shí)間,因此,縮短了內(nèi)存數(shù)據(jù)庫的重啟時(shí)間。
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明重啟內(nèi)存數(shù)據(jù)庫的方法實(shí)施例一的流程示意圖;圖2為本發(fā)明重啟內(nèi)存數(shù)據(jù)庫的方法實(shí)施例二的流程示意圖;圖3為本發(fā)明重啟內(nèi)存數(shù)據(jù)庫的方法實(shí)施例三的流程示意圖;圖4為本發(fā)明重啟內(nèi)存數(shù)據(jù)庫的裝置實(shí)施例一的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。本發(fā)明實(shí)施例將內(nèi)存數(shù)據(jù)庫的數(shù)據(jù)存儲在共享內(nèi)存段,利用了共享內(nèi)存段讀寫速度快及共享內(nèi)存段的駐留特性,縮短內(nèi)存數(shù)據(jù)庫的重啟時(shí)間。圖1為本發(fā)明內(nèi)存數(shù)據(jù)庫重啟方法實(shí)施例一的流程示意圖,如圖1所示,本實(shí)施例的方法包括:SlOl:獲取待重啟內(nèi)存數(shù)據(jù)庫所對應(yīng)的系統(tǒng)啟動(dòng)控制文件,并從系統(tǒng)啟動(dòng)控制文件中獲取關(guān)鍵值。其中,關(guān)鍵值唯一標(biāo)識用于存儲待重啟內(nèi)存數(shù)據(jù)庫的數(shù)據(jù)的共享內(nèi)存段,內(nèi)存數(shù)據(jù)庫的數(shù)據(jù)包括表空間和系統(tǒng)運(yùn)行環(huán)境。具體地,系統(tǒng)運(yùn)行環(huán)境包括數(shù)據(jù)庫服務(wù)進(jìn)程運(yùn)行上下文信息、數(shù)據(jù)庫事務(wù)、檢查點(diǎn)(checkpoint)、事務(wù)執(zhí)行過程中記錄的加鎖以及重做緩沖區(qū)數(shù)據(jù)上下文信息等,表空間包括存放數(shù)據(jù)表的記錄數(shù)據(jù)以及數(shù)據(jù)字典信息,一個(gè)內(nèi)存數(shù)據(jù)庫可以由多個(gè)表空間組成,一個(gè)表空間由多個(gè)設(shè)備(device)組成,每個(gè)device為一段連續(xù)的共享內(nèi)存段,每一個(gè)device對應(yīng)一個(gè)checkpoint文件。共享內(nèi)存段的駐留特性,是指在創(chuàng)建共享內(nèi)存段后,如果不顯式刪除該共享內(nèi)存段,即便進(jìn)程退出,該共享內(nèi)存段仍然存在。在創(chuàng)建內(nèi)存數(shù)據(jù)庫之前,還包括創(chuàng)建內(nèi)存數(shù)據(jù)庫對應(yīng)的共享內(nèi)存段。在創(chuàng)建共享內(nèi)存段時(shí),生成共享內(nèi)存段對應(yīng)的關(guān)鍵值,作為一種實(shí)現(xiàn)方式,關(guān)鍵值根據(jù)操作系統(tǒng)用戶標(biāo)識(Identity,以下簡稱:ID)、創(chuàng)建共享內(nèi)存段的時(shí)間以及內(nèi)存數(shù)據(jù)庫內(nèi)部模塊序列號生成。例如,可采用如下關(guān)鍵值的生成規(guī)則,確保關(guān)鍵值的唯一性。關(guān)鍵值的生成規(guī)則:關(guān)鍵值由操作系統(tǒng)用戶ID、創(chuàng)建共享內(nèi)存段的時(shí)間以及內(nèi)存數(shù)據(jù)庫內(nèi)部模塊序列號組成。其中,創(chuàng)建共享內(nèi)存段的時(shí)間精確到毫秒,通過上述三者的組合可確保關(guān)鍵值的唯一性,上述關(guān)鍵值的生成規(guī)則只是一個(gè)舉例說明,本發(fā)明并不限制關(guān)鍵值的生成規(guī)則,只要生成的關(guān)鍵值具有唯一性即可。將關(guān)鍵值存儲在系統(tǒng)啟動(dòng)控制文件中,以在系統(tǒng)重啟時(shí)從系統(tǒng)啟動(dòng)控制文件中獲取上述關(guān)鍵值,由于關(guān)鍵值與共享內(nèi)存段一一對應(yīng),因此,可根據(jù)上述關(guān)鍵值獲取共享內(nèi)存段。每一個(gè)內(nèi)存數(shù)據(jù)庫對應(yīng)一個(gè)系統(tǒng)啟動(dòng)控制文件。S102:根據(jù)關(guān)鍵值確定共享內(nèi)存段,根據(jù)共享內(nèi)存段中存儲的表空間數(shù)據(jù)和系統(tǒng)運(yùn)行環(huán)境數(shù)據(jù),在共享內(nèi)存段中恢復(fù)待重啟的內(nèi)存數(shù)據(jù)庫。由于關(guān)鍵值與共享內(nèi)存段一一對應(yīng),因此,可根據(jù)上述關(guān)鍵值獲取共享內(nèi)存段,并且共享內(nèi)存段中存儲了表空間和系統(tǒng)運(yùn)行環(huán)境數(shù)據(jù),因此,可以根據(jù)共享內(nèi)存段中存儲的表空間和系統(tǒng)運(yùn)行環(huán)境數(shù)據(jù),在共享內(nèi)存段中恢復(fù)待重啟的內(nèi)存數(shù)據(jù)庫。本實(shí)施例中,通過獲取待重啟內(nèi)存數(shù)據(jù)庫所對應(yīng)的系統(tǒng)啟動(dòng)控制文件,并從所述系統(tǒng)啟動(dòng)控制文件中獲取關(guān)鍵值,根據(jù)所述關(guān)鍵值確定存儲待重啟內(nèi)存數(shù)據(jù)庫的數(shù)據(jù)的共享內(nèi)存段,根據(jù)所述共享內(nèi)存段中存儲的表空間數(shù)據(jù)和系統(tǒng)運(yùn)行環(huán)境數(shù)據(jù),在所述共享內(nèi)存段中恢復(fù)所述待重啟內(nèi)存數(shù)據(jù)庫,由于在重啟過程中,是根據(jù)共享內(nèi)存段中存儲的表空間和系統(tǒng)運(yùn)行環(huán)境數(shù)據(jù)在共享內(nèi)存段中恢復(fù)待重啟內(nèi)存數(shù)據(jù)庫,無需再從磁盤中獲取表空間數(shù)據(jù)和系統(tǒng)運(yùn)行環(huán)境數(shù)據(jù),節(jié)省了獲取表空間數(shù)據(jù)和系統(tǒng)運(yùn)行環(huán)境數(shù)據(jù)的時(shí)間,因此,縮短了內(nèi)存數(shù)據(jù)庫的重啟時(shí)間。圖2為本發(fā)明重啟內(nèi)存數(shù)據(jù)庫的方法實(shí)施例二的流程示意圖,圖2是在圖1所示實(shí)施例的基礎(chǔ)上,為了提高可靠性,在重啟內(nèi)存數(shù)據(jù)庫服務(wù)時(shí),還包括:從系統(tǒng)啟動(dòng)控制文件中獲取第一特征信息,并在根據(jù)關(guān)鍵值獲取對應(yīng)的共享內(nèi)存段之后,獲取共享內(nèi)存段中存儲的第二特征信息,若判斷獲知第一特征信息與第二特征信息一致,則根據(jù)共享內(nèi)存段中存儲的表空間和系統(tǒng)運(yùn)行環(huán)境數(shù)據(jù),在共享內(nèi)存段中恢復(fù)待重啟內(nèi)存數(shù)據(jù)庫。如圖2所示,本實(shí)施例的方法包括:S201:獲取待重啟內(nèi)存數(shù)據(jù)庫所對應(yīng)的系統(tǒng)啟動(dòng)控制文件,并從系統(tǒng)啟動(dòng)控制文件中獲取關(guān)鍵值。本步驟與SlOl類似,在此不再贅述。S202:從系統(tǒng)啟動(dòng)控制文件中獲取第一特征信息。在創(chuàng)建共享內(nèi)存段時(shí),還包括,生成第一特征信息與第二特征信息,第一特征信息與第二特征信息相同,將第一特征信息存儲在系統(tǒng)控制文件中,將第二特征信息存儲在共享內(nèi)存段中,作為一種可行的實(shí)現(xiàn)方式,將共享內(nèi)存段的頭部信息作為第一特征信息和第二特征信息,分別存儲在系統(tǒng)啟動(dòng)控制文件與共享內(nèi)存段的頭部區(qū)域中,以在獲取共享內(nèi)存段時(shí),確定系統(tǒng)啟動(dòng)控制文件中存儲的第一特征信息與共享內(nèi)存段的存儲的第二特征信息是否一致,驗(yàn)證所獲取的共享內(nèi)存段是否正確。例如,可以將數(shù)據(jù)庫標(biāo)識(DatebaseIdentity,以下簡稱:DBID)作為上述第一特征信息和第二特征信息。在重啟內(nèi)存數(shù)據(jù)庫服務(wù)時(shí),從系統(tǒng)啟動(dòng)控制文件中獲取第一特征信息。上述獲取關(guān)鍵值與獲取第一特征信息的獲取順序不做限制。S203:根據(jù)關(guān)鍵值確定共享內(nèi)存段。由于關(guān)鍵值能夠唯一標(biāo)識用于存儲待重啟內(nèi)存數(shù)據(jù)庫的數(shù)據(jù)的共享內(nèi)存段,因此,可根據(jù)關(guān)鍵值確定共享內(nèi)存段。S204:獲取共享內(nèi)存段中存儲的第二特征信息。由于在創(chuàng)建共享內(nèi)存段時(shí),還在共享內(nèi)存段中存儲了第二特征信息,因此,在獲取共享內(nèi)存段后,可進(jìn)一步地獲取共享內(nèi)存段中存儲的第二特征信息。S205:判斷第一特征信息與第二特征信息是否一致,若一致,執(zhí)行S206,若不一致,執(zhí)行S207。在S202創(chuàng)建共享內(nèi)存段時(shí),將第一特征信息存儲在系統(tǒng)啟動(dòng)控制文件,將第二特征信息存儲在共享內(nèi)存段中,第一特征信息與第二特征信息相同,因此,可從系統(tǒng)啟動(dòng)控制文件中獲取存儲的第一特征信息,并與共享內(nèi)存段存儲的第二特征信息進(jìn)行比較,確定系統(tǒng)啟動(dòng)控制文件中存儲的第一特征信息是否與共享內(nèi)存段的存儲的第二特征信息一致,進(jìn)一步驗(yàn)證通過關(guān)鍵值獲取到的共享內(nèi)存段是否正確,從而提高可靠性。S206:根據(jù)共享內(nèi)存段中存儲的表空間和系統(tǒng)運(yùn)行環(huán)境數(shù)據(jù),在共享內(nèi)存段中恢復(fù)待重啟內(nèi)存數(shù)據(jù)庫。S207:流程結(jié)束。值得說明的是,系統(tǒng)在接收到關(guān)閉內(nèi)存數(shù)據(jù)庫的指令后,還包括將表空間數(shù)據(jù)和系統(tǒng)運(yùn)行環(huán)境數(shù)據(jù)存儲在共享內(nèi)存段中,以使在重啟時(shí)從共享內(nèi)存段中獲取表空間數(shù)據(jù)和系統(tǒng)運(yùn)行環(huán)境數(shù)據(jù)。本實(shí)施例中,通過獲取待重啟內(nèi)存數(shù)據(jù)庫所對應(yīng)的系統(tǒng)啟動(dòng)控制文件,并從所述系統(tǒng)啟動(dòng)控制文件中獲取關(guān)鍵值,根據(jù)所述關(guān)鍵值確定存儲待重啟內(nèi)存數(shù)據(jù)庫的數(shù)據(jù)的共享內(nèi)存段,根據(jù)所述共享內(nèi)存段中存儲的表空間數(shù)據(jù)和系統(tǒng)運(yùn)行環(huán)境數(shù)據(jù),在所述共享內(nèi)存段中恢復(fù)所述待重啟內(nèi)存數(shù)據(jù)庫,由于在重啟過程中,是根據(jù)共享內(nèi)存段中存儲的表空間和系統(tǒng)運(yùn)行環(huán)境數(shù)據(jù)在共享內(nèi)存段中恢復(fù)待重啟內(nèi)存數(shù)據(jù)庫,無需再從磁盤中獲取表空間數(shù)據(jù)和系統(tǒng)運(yùn)行環(huán)境數(shù)據(jù),節(jié)省了獲取表空間數(shù)據(jù)和系統(tǒng)運(yùn)行環(huán)境數(shù)據(jù)的時(shí)間,因此,縮短了內(nèi)存數(shù)據(jù)庫的重啟時(shí)間。并且,由于在重啟數(shù)據(jù)庫服務(wù)時(shí),通過第一特征值與第二特征值的一致性對獲取的共享內(nèi)存段進(jìn)行了驗(yàn)證,確保了獲取到的共享內(nèi)存段的正確性,進(jìn)一步提聞了系統(tǒng)的可罪性。圖3為本發(fā)明內(nèi)存數(shù)據(jù)庫重啟方法實(shí)施例三的流程示意圖,如圖3所示,本實(shí)施例的步驟包括:其中,關(guān)閉內(nèi)存數(shù)據(jù)庫服務(wù)包括S301 S303,開啟內(nèi)存數(shù)據(jù)庫服務(wù)包括S304 S306:S301:停止所有正在運(yùn)行的內(nèi)存數(shù)據(jù)庫事務(wù)。S302:保存內(nèi)存數(shù)據(jù)庫服務(wù)快照在共享內(nèi)存段中。上述內(nèi)存數(shù)據(jù)庫服務(wù)快照是指內(nèi)存數(shù)據(jù)庫服務(wù)當(dāng)前的系統(tǒng)運(yùn)行環(huán)境數(shù)據(jù)和表空間數(shù)據(jù)。S303:退出。S304:連接共享內(nèi)存段并進(jìn)行檢測。該步驟與圖2所示實(shí)施例的S203 S205步驟類似,其中S203,即為根據(jù)獲取到的關(guān)鍵值,連接共享內(nèi)存段,S204、S205即為根據(jù)第一特征信息與第二特征信息對共享內(nèi)存段進(jìn)行檢測。參見S203 S205,此處不再贅述。S305:恢復(fù)重做緩沖區(qū)數(shù)據(jù)和檢查點(diǎn)上下文。該步驟與圖2所示實(shí)施例的S205類似,即根據(jù)共享內(nèi)存段中存儲的表空間數(shù)據(jù)和系統(tǒng)運(yùn)行環(huán)境數(shù)據(jù),恢復(fù)重做緩沖區(qū)數(shù)據(jù)和檢查點(diǎn)上下文。S306:運(yùn)行?;謴?fù)完之后,即可對外提供內(nèi)存數(shù)據(jù)庫服務(wù)。圖4為本發(fā)明內(nèi)存數(shù)據(jù)庫重啟裝置實(shí)施例一的結(jié)構(gòu)示意圖,如圖4所示,本實(shí)施例的裝置包括獲取模塊401和處理模塊402,其中,獲取模塊401用于獲取待重啟內(nèi)存數(shù)據(jù)庫所對應(yīng)的系統(tǒng)啟動(dòng)控制文件,并從系統(tǒng)啟動(dòng)控制文件中獲取關(guān)鍵值,關(guān)鍵值唯一標(biāo)識用于存儲待重啟內(nèi)存數(shù)據(jù)庫的數(shù)據(jù)的共享內(nèi)存段,數(shù)據(jù)包括表空間數(shù)據(jù)和系統(tǒng)運(yùn)行環(huán)境數(shù)據(jù);處理模塊402用于根據(jù)關(guān)鍵值確定共享內(nèi)存段,根據(jù)共享內(nèi)存段中存儲的表空間數(shù)據(jù)和系統(tǒng)運(yùn)行環(huán)境數(shù)據(jù),在共享內(nèi)存段中恢復(fù)待重啟內(nèi)存數(shù)據(jù)庫。本實(shí)施例的裝置,可用于執(zhí)行圖1所示方法實(shí)施例的技術(shù)方案,其實(shí)現(xiàn)原理和技術(shù)效果類似,此處不再贅述。在上述實(shí)施例中,獲取模塊401還用于從系統(tǒng)啟動(dòng)控制文件中獲取第一特征信息;對應(yīng)地,處理模塊402具體用于獲取共享內(nèi)存段中存儲的第二特征信息,若判斷獲知第一特征信息與第二特征信息一致,則根據(jù)共享內(nèi)存段中存儲的表空間數(shù)據(jù)和系統(tǒng)運(yùn)行環(huán)境數(shù)據(jù),在共享內(nèi)存段中恢復(fù)待重啟內(nèi)存數(shù)據(jù)庫。在上述實(shí)施例中,第一特征信息和第二特征信息為存儲在共享內(nèi)存段頭部的數(shù)據(jù)庫身份標(biāo)識。在上述實(shí)施例中,關(guān)鍵值根據(jù)操作系統(tǒng)用戶標(biāo)識、創(chuàng)建共享內(nèi)存段的時(shí)間以及內(nèi)存數(shù)據(jù)庫內(nèi)部模塊序列號生成。在上述實(shí)施例中,處理模塊402還用于在接收到關(guān)閉內(nèi)存數(shù)據(jù)庫的指令后,將表空間數(shù)據(jù)和系統(tǒng)運(yùn)行環(huán)境數(shù)據(jù)存儲在共享內(nèi)存段內(nèi)。本實(shí)施例的裝置,可用于執(zhí)行圖2所示方法實(shí)施例的技術(shù)方案,其實(shí)現(xiàn)原理和技術(shù)效果類似,此處不再贅述。本發(fā)明另一個(gè)實(shí)施例提供一種重啟內(nèi)存數(shù)據(jù)庫的裝置,包括處理器,所述處理器用于獲取待重啟內(nèi)存數(shù)據(jù)庫所對應(yīng)的系統(tǒng)啟動(dòng)控制文件,并從所述系統(tǒng)啟動(dòng)控制文件中獲取關(guān)鍵值,所述關(guān)鍵值唯一標(biāo)識用于存儲所述待重啟內(nèi)存數(shù)據(jù)庫的數(shù)據(jù)的共享內(nèi)存段,所述數(shù)據(jù)包括表空間數(shù)據(jù)和系統(tǒng)運(yùn)行環(huán)境數(shù)據(jù);根據(jù)所述關(guān)鍵值確定所述共享內(nèi)存段,根據(jù)所述共享內(nèi)存段中存儲的所述表空間數(shù)據(jù)和系統(tǒng)運(yùn)行環(huán)境數(shù)據(jù),在所述共享內(nèi)存段中恢復(fù)所述待重啟內(nèi)存數(shù)據(jù)庫。本實(shí)施例的裝置,可用于執(zhí)行圖1所示方法實(shí)施例的技術(shù)方案,其實(shí)現(xiàn)原理和技術(shù)效果類似,此處不再贅述。在上述實(shí)施例中,處理器還用于從系統(tǒng)啟動(dòng)控制文件中獲取第一特征信息;對應(yīng)地,處理器具體用于獲取共享內(nèi)存段中存儲的第二特征信息,若判斷獲知第一特征信息與第二特征信息一致,則根據(jù)共享內(nèi)存段中存儲的表空間數(shù)據(jù)和系統(tǒng)運(yùn)行環(huán)境數(shù)據(jù),在共享內(nèi)存段中恢復(fù)待重啟內(nèi)存數(shù)據(jù)庫。在上述實(shí)施例中,第一特征信息和第二特征信息為存儲在共享內(nèi)存段頭部的數(shù)據(jù)庫身份標(biāo)識。在上述實(shí)施例中,關(guān)鍵值根據(jù)操作系統(tǒng)用戶標(biāo)識、創(chuàng)建共享內(nèi)存段的時(shí)間以及內(nèi)存數(shù)據(jù)庫內(nèi)部模塊序列號生成。在上述實(shí)施例中,處理器還用于在接收到關(guān)閉內(nèi)存數(shù)據(jù)庫的指令后,將表空間數(shù)據(jù)和系統(tǒng)運(yùn)行環(huán)境數(shù)據(jù)存儲在共享內(nèi)存段內(nèi)。本實(shí)施例的裝置,可用于執(zhí)行圖2所示方法實(shí)施例的技術(shù)方案,其實(shí)現(xiàn)原理和技術(shù)效果類似,此處不再贅述。在本發(fā)明所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的裝置和方法,可以通過其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用硬件加軟件功能單元的形式實(shí)現(xiàn)。上述以軟件功能單元的形式實(shí)現(xiàn)的集成的單元,可以存儲在一個(gè)計(jì)算機(jī)可讀取存儲介質(zhì)中。上述軟件功能單元存儲在一個(gè)存儲介質(zhì)中,包括若干指令用以使得一臺計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)或處理器(processor)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的部分步驟。而前述的存儲介質(zhì)包括:U盤、移動(dòng)硬盤、只讀存儲器(Read-Only Memory, ROM)、隨機(jī)存取存儲器(Random Access Memory, RAM)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。本領(lǐng)域技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,僅以上述各功能模塊的劃分進(jìn)行舉例說明,實(shí)際應(yīng)用中,可以根據(jù)需要而將上述功能分配由不同的功能模塊完成,即將裝置的內(nèi)部結(jié)構(gòu)劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。上述描述的裝置的具體工作過程,可以參考前述方法實(shí)施例中的對應(yīng)過程,在此不再贅述。最后應(yīng)說明的是:以上各實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述各實(shí)施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍。
權(quán)利要求
1.一種重啟內(nèi)存數(shù)據(jù)庫的方法,其特征在于,包括: 獲取待重啟內(nèi)存數(shù)據(jù)庫所對應(yīng)的系統(tǒng)啟動(dòng)控制文件,并從所述系統(tǒng)啟動(dòng)控制文件中獲取關(guān)鍵值,所述關(guān)鍵值唯一標(biāo)識用于存儲所述待重啟內(nèi)存數(shù)據(jù)庫的數(shù)據(jù)的共享內(nèi)存段,所述數(shù)據(jù)包括表空間數(shù)據(jù)和系統(tǒng)運(yùn)行環(huán)境數(shù)據(jù); 根據(jù)所述關(guān)鍵值確定所述共享內(nèi)存段,根據(jù)所述共享內(nèi)存段中存儲的所述表空間數(shù)據(jù)和系統(tǒng)運(yùn)行環(huán)境數(shù)據(jù),在所述共享內(nèi)存段中恢復(fù)所述待重啟內(nèi)存數(shù)據(jù)庫。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括:從所述系統(tǒng)啟動(dòng)控制文件中獲取第一特征信息; 對應(yīng)地,所述根據(jù)所述共享內(nèi)存段中存儲的所述表空間數(shù)據(jù)和系統(tǒng)運(yùn)行環(huán)境數(shù)據(jù),在所述共享內(nèi)存段中恢復(fù)所述待重啟內(nèi)存數(shù)據(jù)庫包括: 獲取所述共享內(nèi)存段中存儲的第二特征信息,若判斷獲知所述第一特征信息與所述第二特征信息一致,則根據(jù)所述共享內(nèi)存段中存儲的所述表空間數(shù)據(jù)和系統(tǒng)運(yùn)行環(huán)境數(shù)據(jù),在所述共享內(nèi)存段中恢復(fù)所述待重啟內(nèi)存數(shù)據(jù)庫。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述第一特征信息和所述第二特征信息為存儲在所述共享內(nèi)存段頭部的數(shù)據(jù)庫身份標(biāo)識。
4.根據(jù)權(quán)利要求1-3任一所述的方法,其特征在于,所述關(guān)鍵值根據(jù)操作系統(tǒng)用戶標(biāo)識、創(chuàng)建所述共享內(nèi)存段的時(shí)間以及內(nèi)存數(shù)據(jù)庫內(nèi)部模塊序列號生成。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括: 在接收到關(guān)閉內(nèi)存數(shù)據(jù)庫的指令后,將所述表空間數(shù)據(jù)和系統(tǒng)運(yùn)行環(huán)境數(shù)據(jù)存儲在所述共享內(nèi)存段內(nèi)。
6.一種重啟內(nèi)存數(shù)據(jù)庫的裝置,其特征在于,包括: 獲取模塊,用于獲取待重啟內(nèi)存數(shù)據(jù)庫所對應(yīng)的系統(tǒng)啟動(dòng)控制文件,并從所述系統(tǒng)啟動(dòng)控制文件中獲取關(guān)鍵值,所述關(guān)鍵值唯一標(biāo)識用于存儲所述待重啟內(nèi)存數(shù)據(jù)庫的數(shù)據(jù)的共享內(nèi)存段,所述數(shù)據(jù)包括表空間數(shù)據(jù)和系統(tǒng)運(yùn)行環(huán)境數(shù)據(jù); 處理模塊,用于根據(jù)所述關(guān)鍵值確定所述共享內(nèi)存段,根據(jù)所述共享內(nèi)存段中存儲的所述表空間數(shù)據(jù)和系統(tǒng)運(yùn)行環(huán)境數(shù)據(jù),在所述共享內(nèi)存段中恢復(fù)所述待重啟內(nèi)存數(shù)據(jù)庫。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述獲取模塊還用于從所述系統(tǒng)啟動(dòng)控制文件中獲取第一特征信息; 對應(yīng)地,所述處理模塊具體用于獲取所述共享內(nèi)存段中存儲的第二特征信息,若判斷獲知所述第一特征信息與所述第二特征信息一致,則根據(jù)所述共享內(nèi)存段中存儲的所述表空間數(shù)據(jù)和系統(tǒng)運(yùn)行環(huán)境數(shù)據(jù),在所述共享內(nèi)存段中恢復(fù)所述待重啟內(nèi)存數(shù)據(jù)庫。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述第一特征信息和所述第二特征信息為存儲在所述共享內(nèi)存段頭部的數(shù)據(jù)庫身份標(biāo)識。
9.根據(jù)權(quán)利要求6-8任一所述的裝置,其特征在于,所述關(guān)鍵值根據(jù)操作系統(tǒng)用戶標(biāo)識、創(chuàng)建所述共享內(nèi)存段的時(shí)間以及內(nèi)存數(shù)據(jù)庫內(nèi)部模塊序列號生成。
10.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述處理模塊還用于在接收到關(guān)閉內(nèi)存數(shù)據(jù)庫的指令后,將所述表空間數(shù)據(jù)和系統(tǒng)運(yùn)行環(huán)境數(shù)據(jù)存儲在所述共享內(nèi)存段內(nèi)。
全文摘要
本發(fā)明實(shí)施例提供一種重啟內(nèi)存數(shù)據(jù)庫的方法和裝置,通過獲取待重啟內(nèi)存數(shù)據(jù)庫所對應(yīng)的系統(tǒng)啟動(dòng)控制文件,并從所述系統(tǒng)啟動(dòng)控制文件中獲取關(guān)鍵值,根據(jù)所述關(guān)鍵值確定存儲待重啟內(nèi)存數(shù)據(jù)庫的數(shù)據(jù)的共享內(nèi)存段,根據(jù)所述共享內(nèi)存段中存儲的表空間數(shù)據(jù)和系統(tǒng)運(yùn)行環(huán)境數(shù)據(jù),在所述共享內(nèi)存段中恢復(fù)所述待重啟內(nèi)存數(shù)據(jù)庫,由于在重啟過程中,是根據(jù)共享內(nèi)存段中存儲的表空間和系統(tǒng)運(yùn)行環(huán)境數(shù)據(jù)在共享內(nèi)存段中恢復(fù)待重啟內(nèi)存數(shù)據(jù)庫,無需再從磁盤中獲取表空間數(shù)據(jù)和系統(tǒng)運(yùn)行環(huán)境數(shù)據(jù),節(jié)省了獲取表空間數(shù)據(jù)和系統(tǒng)運(yùn)行環(huán)境數(shù)據(jù)的時(shí)間,因此,縮短了內(nèi)存數(shù)據(jù)庫的重啟時(shí)間。
文檔編號G06F17/30GK103198122SQ201310113609
公開日2013年7月10日 申請日期2013年4月2日 優(yōu)先權(quán)日2013年4月2日
發(fā)明者彭勇飛, 姚理 申請人:華為技術(shù)有限公司