db2資料庫的啟動和關閉

路途中的人2012發表於2018-04-22

在一個DB2 例項下,可以建立多個database(具體每個例項下可以建立多少個database,可以透過DB2 GET DBM CFG檢視.一旦建立了資料庫之後,就可以對其進行操作,然而,在向資料庫中建立物件或訪問資料庫中的物件(資料)之前,必須先知道如何啟動和停止資料庫.

本小節簡單介紹了db2 database透過command line的方式如何實現啟動和停止.

如果在database沒有啟用之前,就在應用中使用connect to database_name或隱式連線,那麼應用就必須要進行等待,知道資料庫管理器啟動了你要連線的資料庫.一般第一個應用會引發等待資料庫管理器執行資料庫啟動的所有開銷.

 

我們也可以使用activate database database_name這樣的命令啟動特定的資料庫.這個命令就會免除第一個應用程式連線上來的時候等候資料庫初始化所花費的時間。一般情況下,DB2 DBA會提前啟用所有必要的資料庫.

 

注意:1)如果發出activate database命令的應用已經與一個database建立了活動的資料庫連線,就回返回錯誤訊息.

2)如果需要重新啟動(restart)的資料庫接受了一個activate database命令,那麼這個activate database命令就會象connect to 或隱式連線一樣工作.

3)如果資料庫配置了

啟用的自動重新啟動 (AUTORESTART) = ON

那麼在activate database命令對其初始化之前,資料庫會重新啟動.

 

察看指定資料庫的配置引數
--預設
DB2 GET DB CFG FOR study

--分屏顯示
DB2 GET DB CFG FOR study | More

--將顯示結果存入study.txt 檔案中
DB2 GET DB CFG FOR study > study.txt

下面是一個示例,我在當前DB2例項下,建立了3個database,我利用activate命令挨個將他們啟用

    D:DB2BIN>db2 db2start
    DB20000I  DB2START命令成功完成。
    
    D:DB2BIN>db2 list database directory
    
     系統資料庫目錄
    
     目錄中的條目數 = 3
    
    資料庫 1 條目:
    
     資料庫別名                      = TEST
     資料庫名稱                      = TEST
     本地資料庫目錄                  = D:DB2test
     資料庫發行版級別                = c.00
     註釋                            = test
     目錄條目型別                    = 間接
     目錄資料庫分割槽號                = 0
     備用伺服器主機名                =
     備用伺服器埠號                =
    
    資料庫 2 條目:
    
     資料庫別名                      = BANK
     資料庫名稱                      = BANK
     本地資料庫目錄                  = D:db2bank
     資料庫發行版級別                = c.00
     註釋                            = bank
     目錄條目型別                    = 間接
     目錄資料庫分割槽號                = 0
     備用伺服器主機名                =
     備用伺服器埠號                =
    
    資料庫 3 條目:
    
     資料庫別名                      = STUDY
     資料庫名稱                      = STUDY
     本地資料庫目錄                  = D:db2study
     資料庫發行版級別                = c.00
     註釋                            = STUDY
     目錄條目型別                    = 間接
     目錄資料庫分割槽號                = 0
     備用伺服器主機名                =
     備用伺服器埠號                =
    
    
    D:DB2BIN>db2 list active databases
    SQL1611W  “資料庫系統監視器”沒有返回任何資料。
    
    D:DB2BIN>db2 activate database study
    DB20000I  ACTIVATE DATABASE命令成功完成。
    
    D:DB2BIN>db2 list active databases
    
                               活動資料庫
    
    資料庫名稱                      = STUDY
    當前連線的應用程式              = 0
    資料庫路徑                      = D:db2studyDB2NODE0000SQL00001
    
    
    D:DB2BIN>db2 activate database bank
    DB20000I  ACTIVATE DATABASE命令成功完成。
    
    D:DB2BIN>db2 list active databases
    
                               活動資料庫
    
    資料庫名稱                      = STUDY
    當前連線的應用程式              = 0
    資料庫路徑                      = D:db2studyDB2NODE0000SQL00001
    
    資料庫名稱                      = BANK
    當前連線的應用程式              = 0
    資料庫路徑                      = D:db2bankDB2NODE0000SQL00001
    
    
    D:DB2BIN>db2 activate database test
    DB20000I  ACTIVATE DATABASE命令成功完成。
    
    D:DB2BIN>db2 list active databases
    
                               活動資料庫
    
    資料庫名稱                      = STUDY
    當前連線的應用程式              = 0
    資料庫路徑                      = D:db2studyDB2NODE0000SQL00001
    
    資料庫名稱                      = BANK
    當前連線的應用程式              = 0
    資料庫路徑                      = D:db2bankDB2NODE0000SQL00001
    
    資料庫名稱                      = TEST
    當前連線的應用程式              = 0
    資料庫路徑                      = D:DB2testDB2NODE0000SQL00001
    
    
    D:DB2BIN>

由activate database命令初始化的資料庫可以由deactivate database命令關閉,也可以透過stop database manager(或db2stop)命令終止資料庫管理器來關閉.

如果使用activate database命令初始化一個資料庫,那麼最後一個與資料庫斷開連線的應用就不會關閉資料庫.必須要使用deactivate database.在這種情況下,stop database manager(或db2stop)會關閉資料庫,也會終止例項.

 

如果使用connect to 或隱式地連線啟動資料庫,然後再由另外一個應用對相同的資料庫發出activate database命令,那麼就必須使用deactivate database命令關閉資料庫.如果沒有使用activate database啟動資料庫,那麼當最後一個應用斷開與資料庫連線的時候,資料庫就會關閉.

示例一:使用connect to方式啟動的資料庫


D:DB2BIN>db2 list active databases
SQL1611W “資料庫系統監視器”沒有返回任何資料。

D:DB2BIN>db2 connect to study --連線到study資料庫,將自動啟用study資料庫

資料庫連線資訊

資料庫伺服器 = DB2/NT 9.5.0
SQL 授權標識 = ZHANGRP
本地資料庫別名 = STUDY

D:DB2BIN>db2 list active databases

活動資料庫

資料庫名稱 = STUDY
當前連線的應用程式 = 1
資料庫路徑 = D:db2studyDB2NODE0000SQL00001

 

說明:資料庫被啟用,並有一個應用連線上來(就上面的connect to study操作)

D:DB2BIN>db2 connect reset --斷開連線
DB20000I SQL命令成功完成。

D:DB2BIN>

D:DB2BIN>db2 list active databases
SQL1611W “資料庫系統監視器”沒有返回任何資料。

D:DB2BIN>

說明:可以發現,上面的連線斷開後,資料庫study也自動停止(因為這個study資料庫是透過connect to 的方式啟用的)
示例二:使用activate database方式啟動的資料庫

    D:DB2BIN>db2 list active databases      --這個時候沒有啟動的資料庫
    SQL1611W  “資料庫系統監視器”沒有返回任何資料。
    
    
    D:DB2BIN>db2 activate database study    --用activate database啟用study資料庫
    DB20000I  ACTIVATE DATABASE命令成功完成。
    
    
    D:DB2BIN>db2 list active databases      --可以看到study資料已經啟用,但沒有應用連線上來
    
                               活動資料庫
    
    資料庫名稱                      = STUDY
    當前連線的應用程式              = 0
    資料庫路徑                      = D:db2studyDB2NODE0000SQL00001
    
    
    D:DB2BIN>db2 connect to study          --發起一個連線到study資料庫
    
       資料庫連線資訊
    
     資料庫伺服器         = DB2/NT 9.5.0
     SQL 授權標識         = ZHANGRP
     本地資料庫別名       = STUDY
     
    D:DB2BIN>db2 list active databases     --再看一下活動的資料庫,發現study 資料庫上有一個應用連線上來了
    
                               活動資料庫
    
    資料庫名稱                      = STUDY
    當前連線的應用程式              = 1
    資料庫路徑                      = D:db2studyDB2NODE0000SQL00001
    
    D:DB2BIN>db2 connect reset             --關閉剛才那個連線,看看資料庫是不是會自動關閉
    DB20000I  SQL命令成功完成。
    
    D:DB2BIN>db2 list active databases     --資料庫依然啟動,雖然沒有了任何連線
    
                               活動資料庫
    
    資料庫名稱                      = STUDY
    當前連線的應用程式              = 0
    資料庫路徑                      = D:db2studyDB2NODE0000SQL00001
    
    D:DB2BIN>db2 deactivate database study  --使用deactivate database命令關閉資料庫
    DB20000I  DEACTIVATE DATABASE命令成功完成。
    
    D:DB2BIN>
    
    D:DB2BIN>db2 list active databases
    SQL1611W  “資料庫系統監視器”沒有返回任何資料。
    
    D:DB2BIN>

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29067253/viewspace-2153190/,如需轉載,請註明出處,否則將追究法律責任。

相關文章