db2數(shù)據(jù)庫(kù)
本章介紹db2的創(chuàng)建,激活和停用數(shù)據(jù)庫(kù)的相關(guān)語(yǔ)法。
數(shù)據(jù)庫(kù)體系結(jié)構(gòu)
數(shù)據(jù)庫(kù)是表,模式,緩沖池,日志,存儲(chǔ)組和表空間合作有效地處理數(shù)據(jù)庫(kù)操作的集合。
數(shù)據(jù)庫(kù)目錄
數(shù)據(jù)庫(kù)目錄有組織的存儲(chǔ)數(shù)據(jù)庫(kù)。當(dāng)創(chuàng)建一個(gè)數(shù)據(jù)庫(kù),所有有關(guān)數(shù)據(jù)庫(kù)的詳細(xì)信息存儲(chǔ)在一個(gè)數(shù)據(jù)庫(kù)目錄,如默認(rèn)存儲(chǔ)設(shè)備,配置文件和臨時(shí)表清單等詳細(xì)信息
分區(qū)全局目錄是在實(shí)例文件夾中創(chuàng)建。該目錄包含關(guān)于數(shù)據(jù)庫(kù)中的所有全局信息。這個(gè)分區(qū)全局目錄被命名為nodexxxx/ sqlyyy,其中xxxx是數(shù)據(jù)分區(qū)號(hào),yyy是數(shù)據(jù)庫(kù)令牌。
在分區(qū)全局目錄,成員特定的目錄創(chuàng)建。該目錄包含本地?cái)?shù)據(jù)庫(kù)的信息。會(huì)員專(zhuān)用目錄被命名為memberxxxx其中xxxx是一個(gè)成員號(hào)。 db2企業(yè)服務(wù)器版環(huán)境中運(yùn)行在單一的成員,只有一個(gè)成員的具體目錄。這個(gè)成員的特定目錄唯一命名為member0000。
分區(qū)全局目錄
目錄位置:/nodexxx/sqlxxx
分區(qū)全局目錄包含下面列出的數(shù)據(jù)庫(kù)相關(guān)的文件。
成員指定的目錄
目錄位置: /nodexxxx/sqlxxxx/member0000
該目錄包含:
創(chuàng)建數(shù)據(jù)庫(kù)
可以創(chuàng)建實(shí)例的數(shù)據(jù)庫(kù)使用“create database”命令。所有數(shù)據(jù)庫(kù)都使用默認(rèn)的存儲(chǔ)組“ibmstogroup”,這是在創(chuàng)建實(shí)例時(shí)創(chuàng)建創(chuàng)建。在db2中,所有的數(shù)據(jù)庫(kù)表都存儲(chǔ)在“tablespace”,它利用各自的存儲(chǔ)組。
該權(quán)限的數(shù)據(jù)庫(kù)被自動(dòng)設(shè)置為public[createtab,bindadd,connect,implicit_schema,并選擇],但是,如果restrictive選項(xiàng),將不授予權(quán)限為public。
創(chuàng)建非限制性的數(shù)據(jù)庫(kù)。
該命令用來(lái)創(chuàng)建一個(gè)非限制性的數(shù)據(jù)庫(kù)。
語(yǔ)法:[要?jiǎng)?chuàng)建一個(gè)新的數(shù)據(jù)庫(kù)。 “database_name”表示一個(gè)新的數(shù)據(jù)庫(kù)名稱(chēng),要?jiǎng)?chuàng)建]
db2 create database <database name>
例如:要?jiǎng)?chuàng)建名為“one”新的非限制性數(shù)據(jù)庫(kù)]
db2 create database one
輸出:
db20000i the create database command completed successfully.
創(chuàng)建數(shù)據(jù)庫(kù)的限制
嚴(yán)格數(shù)據(jù)庫(kù)的調(diào)用此命令創(chuàng)建的。
語(yǔ)法: [在下面的語(yǔ)法中,“db_name”表示數(shù)據(jù)庫(kù)的名稱(chēng)。]
db2 create database <db_name> restrictive
例如:要?jiǎng)?chuàng)建一個(gè)名為“two”的新限制數(shù)據(jù)庫(kù)]
db2 create database two restrictive
用不同的用戶(hù)定義的位置創(chuàng)建數(shù)據(jù)庫(kù)
創(chuàng)建一個(gè)默認(rèn)的存儲(chǔ)組“ibmstogroup”在不同路徑的數(shù)據(jù)庫(kù)。此前,調(diào)用命令“create database”沒(méi)有存儲(chǔ)或在特定位置創(chuàng)建數(shù)據(jù)庫(kù),或用戶(hù)定義的任何位置。要使用用戶(hù)定義的數(shù)據(jù)庫(kù)位置創(chuàng)建數(shù)據(jù)庫(kù),如以下步驟:
語(yǔ)法: [在下面的語(yǔ)法中,“db_name'表示'數(shù)據(jù)庫(kù)名稱(chēng)'和'data_location”表示,其中有將數(shù)據(jù)存儲(chǔ)在文件夾和“db_path_location'表示'data_location”的驅(qū)動(dòng)程序位置。]
db2 create database '<db_name>' on '<data location>' dbpath on '<db_path_location>'
示例: [創(chuàng)建名為“four”,其中數(shù)據(jù)被存儲(chǔ)在“data1”數(shù)據(jù)庫(kù)和該文件夾'dbpath1'中存儲(chǔ)]
db2 create database four on '/data1' dbpath on '/dbpath1'
查看本地或系統(tǒng)數(shù)據(jù)庫(kù)目錄中的文件
執(zhí)行這個(gè)命令來(lái)查看當(dāng)前實(shí)例可用的目錄列表。
語(yǔ)法:
db2 list database directory
示例 :
db2 list database directory
輸出:
system database directory number of entries in the directory = 6 database 1 entry: database alias = four database name = four local database directory = /home/db2inst4/desktop/dbpath database release level = f.00 comment = directory entry type = indirect catalog database partition number = 0 alternate server hostname = alternate server port number = database 2 entry: database alias = six database name = six local database directory = /home/db2inst4 database release level = f.00 comment = directory entry type = indirect catalog database partition number = 0 alternate server hostname = alternate server port number =
激活數(shù)據(jù)庫(kù)
該命令啟動(dòng)了所有必要的服務(wù),為特定的數(shù)據(jù)庫(kù),這樣的數(shù)據(jù)庫(kù)是可用的應(yīng)用程序。
語(yǔ)法:[‘db_name’ 指示數(shù)據(jù)庫(kù)名稱(chēng)]
db2 activate db <db_name>
示例: [激活數(shù)據(jù)庫(kù) ‘one’]
db2 activate db one
停用數(shù)據(jù)庫(kù)
使用此命令,可以停止數(shù)據(jù)庫(kù)服務(wù)。
語(yǔ)法:
db2 deactivate db <db_name>
示例: [要停用數(shù)據(jù)庫(kù) ‘one’]
db2 deactivate db one
連接到數(shù)據(jù)庫(kù)
創(chuàng)建一個(gè)數(shù)據(jù)庫(kù),把它投入使用后,需要連接或啟動(dòng)數(shù)據(jù)庫(kù)。
語(yǔ)法:
db2 connect to <database name>
示例: [連接數(shù)據(jù)庫(kù)到當(dāng)前的一個(gè) cli]
db2 connect to one
輸出
database connection information database server = db2/linuxx8664 10.1.0 sql authorization id = db2inst4 local database alias = one
驗(yàn)證如果數(shù)據(jù)庫(kù)處于限制
要檢查這個(gè)數(shù)據(jù)庫(kù)是限制與否,這里是使用的語(yǔ)法:
語(yǔ)法: [在下面的語(yǔ)法中,“db”表示數(shù)據(jù)庫(kù),“cfg”表示的配置,'db_name'表示數(shù)據(jù)庫(kù)名稱(chēng)]
db2 get db cfg for <db_name> | grep -i restrict
例如:要檢查'one'數(shù)據(jù)庫(kù)是否處于限制]
db2 get db cfg for one | grep -i restrict
輸出:
restrict access = no
配置數(shù)據(jù)庫(kù)管理器和數(shù)據(jù)庫(kù)
實(shí)例配置(數(shù)據(jù)庫(kù)管理器配置)被存儲(chǔ)于命名為'db2system'文件和數(shù)據(jù)庫(kù)相關(guān)的配置被存儲(chǔ)于命名為'sqldbcon'文件。這些文件不能直接編輯??梢允褂迷揳pi調(diào)用的工具編輯這些文件。使用命令行處理器,可以使用這些命令。
數(shù)據(jù)庫(kù)管理器配置參數(shù)
語(yǔ)法:[獲得實(shí)例數(shù)據(jù)庫(kù)管理器的信息]
db2 get database manager configuration
或者
db2 get dbm cfg
語(yǔ)法:[更新實(shí)例數(shù)據(jù)庫(kù)管理器]
db2 update database manager configuration
或者
db2 update dbm cfg
語(yǔ)法:[重置以前的配置]
db2 reset database manager configuration
或者
db2 reset dbm cfg
數(shù)據(jù)庫(kù)配置參數(shù)
語(yǔ)法:[來(lái)獲得數(shù)據(jù)庫(kù)的信息] brush:db2
db2 get database configuration
或者
db2 get db cfg
語(yǔ)法:[要更新數(shù)據(jù)庫(kù)配置]
db2 update database configuration
或者
db2 update db cfg
語(yǔ)法:[重置數(shù)據(jù)庫(kù)配置以前配置的值]
db2 reset database configuration
或者
db2 reset db cfg
語(yǔ)法:[要檢查當(dāng)前的活動(dòng)數(shù)據(jù)庫(kù)的大小]
db2 "call get_dbsize_info(?,?,?,-1)"
例如:[要驗(yàn)證當(dāng)前激活數(shù)據(jù)庫(kù)的大小]
db2 "call get_dbsize_info(?,?,?,-1)"
輸出:
value of output parameters -------------------------- parameter name : snapshottimestamp parameter value : 2014-07-02-10.27.15.556775 parameter name : databasesize parameter value : 105795584 parameter name : databasecapacity parameter value : 396784705536 return status = 0
估計(jì)所需的空間數(shù)據(jù)庫(kù)
以估計(jì)數(shù)據(jù)庫(kù)的大小,下列因素的貢獻(xiàn)必須考慮:
檢查數(shù)據(jù)庫(kù)權(quán)限
可以使用下面的語(yǔ)法檢查的數(shù)據(jù)庫(kù)認(rèn)證對(duì)非限制數(shù)據(jù)庫(kù)授予public。
第一步:驗(yàn)證用戶(hù)名和實(shí)例的密碼連接到數(shù)據(jù)庫(kù)。
語(yǔ)法:[連接到數(shù)據(jù)庫(kù)的用戶(hù)名和密碼]
db2 connect to <db_name> user <userid> using <password>
例如:為了連接“one”數(shù)據(jù)庫(kù),用戶(hù)id'db2inst4'和密碼'db2inst4']
db2 connect to one user db2inst4 using db2inst4
輸出:
database connection information database server = db2/linuxx8664 10.1.0 sql authorization id = db2inst4 local database alias = one
第二步:驗(yàn)證數(shù)據(jù)庫(kù)的權(quán)限。
語(yǔ)法:[下面的語(yǔ)法顯示認(rèn)證服務(wù),為當(dāng)前數(shù)據(jù)庫(kù)的結(jié)果]
db2 "select substr(authority,1,25) as authority, d_user, d_group, d_public, role_user, role_group, role_public,d_role from table( sysproc.auth_list_authorities_for_authid ('public','g'))as t order by authority"
例如:
db2 "select substr(authority,1,25) as authority, d_user, d_group, d_public, role_user, role_group, role_public,d_role from table( sysproc.auth_list_authorities_for_authid ('public','g'))as t order by authority"
輸出:
authority d_user d_group d_public role_user role_group role_public d_role ------------------------- ------ ------- -------- --------- ---------- ----------- ------ accessctrl * * n * * n * bindadd * * y * * n * connect * * y * * n * createtab * * y * * n * create_external_routine * * n * * n * create_not_fenced_routine * * n * * n * create_secure_object * * n * * n * dataaccess * * n * * n * dbadm * * n * * n * explain * * n * * n * implicit_schema * * y * * n * load * * n * * n * quiesce_connect * * n * * n * secadm * * n * * n * sqladm * * n * * n * sysadm * * * * * * * sysctrl * * * * * * * sysmaint * * * * * * * sysmon * * * * * * * wlmadm * * n * * n * 20 record(s) selected.
刪除數(shù)據(jù)庫(kù)
使用 drop 命令,可以刪除我們從實(shí)例數(shù)據(jù)庫(kù)目錄數(shù)據(jù)庫(kù)。這個(gè)命令可以刪除所有對(duì)象,表,空間,集裝箱和相關(guān)文件。
語(yǔ)法:[若要從實(shí)例中刪除任何數(shù)據(jù)庫(kù)]
db2 drop database <db_name>
例子:[從實(shí)例中刪除'six'的數(shù)據(jù)庫(kù)]
db2 drop database six
輸出:
db20000i the drop database command completed successfully
- Oracle 12C安裝教程
- Oracle Distinct語(yǔ)句
- Oracle Where子句
- Oracle Fetch子句
- Oracle In子句
- Oracle 啟用外鍵
- Oracle Convert()函數(shù)
- Linux Memcached 安裝
- Windows Memcached 安裝
- Memcached prepend 命令
- DB2實(shí)例
- DB2存儲(chǔ)組
- DB2數(shù)據(jù)類(lèi)型
- PLSQL一些常用知識(shí)點(diǎn)梳理總結(jié)
- Oracle中的table()函數(shù)使用
- Oracle數(shù)據(jù)庫(kù)表空間超詳細(xì)介紹
- oracle數(shù)據(jù)庫(kù)id自增及生成uuid問(wèn)題
- Oracle實(shí)現(xiàn)豎表轉(zhuǎn)橫表的幾種常用方法小結(jié)
- Oracle中ROW_NUMBER()OVER()函數(shù)用法實(shí)例講解
- Oracle?range時(shí)間范圍自動(dòng)分區(qū)的創(chuàng)建方式