在一個DB2 執行個體下,可以建立多個database(具體每個執行個體下可以建立多少個database,可以通過DB2 GET DBM CFG查看.一旦建立了資料庫之後,就可以對其進行操作,然而,在向資料庫中建立對象或訪問資料庫中的對象(資料)之前,必須Crowdsourced Security Testing道如何啟動和停止資料庫.
本小節簡單介紹了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>