DB2 - डेटाबेस

यह अध्याय संबंधित सिंटैक्स के साथ डेटाबेस को बनाने, सक्रिय करने और निष्क्रिय करने का वर्णन करता है।

डेटाबेस आर्किटेक्चर

एक डेटाबेस टेबल्स, स्कीमा, बफ़रपल्स, लॉग्स, स्टोरेज ग्रुप्स और टेबल्सस्पेस का एक संग्रह है जो डेटाबेस ऑपरेशंस को कुशलतापूर्वक संभालने के लिए एक साथ काम करते हैं।

डेटाबेस निर्देशिका

डेटाबेस निर्देशिका डेटाबेस का एक संगठित भंडार है। जब आप एक डेटाबेस बनाते हैं, तो डेटाबेस के बारे में सभी विवरण डेटाबेस डायरेक्टरी में जमा हो जाते हैं, जैसे कि डिफॉल्ट स्टोरेज डिवाइसेस, कॉन्फिगरेशन फाइल्स, और टेबल टेबल लिस्ट आदि का विवरण।

उदाहरण फ़ोल्डर में विभाजन वैश्विक निर्देशिका बनाई गई है। इस निर्देशिका में डेटाबेस से संबंधित सभी वैश्विक जानकारी शामिल है। इस विभाजन वैश्विक निर्देशिका को NODExxxx / SQLyyy के रूप में नामित किया गया है, जहां xxxx डेटा विभाजन संख्या है और yyy डेटाबेस टोकन है।

विभाजन-वैश्विक निर्देशिका में, एक सदस्य-विशिष्ट निर्देशिका बनाई जाती है। इस निर्देशिका में स्थानीय डेटाबेस जानकारी है। सदस्य-विशिष्ट निर्देशिका को Komxxxx नाम दिया गया है, जहां xxxx एक सदस्य संख्या है। DB2 एंटरप्राइज सर्वर संस्करण पर्यावरण एक एकल सदस्य पर चलता है और इसमें केवल एक सदस्य विशिष्ट निर्देशिका है। इस सदस्य विशिष्ट निर्देशिका को विशिष्ट रूप से Kom0000 नाम दिया गया है।

विभाजन वैश्विक निर्देशिका

निर्देशिका स्थान: <उदाहरण> / NODExxx / SQLxxx

विभाजन-वैश्विक निर्देशिका में नीचे सूचीबद्ध डेटाबेस से संबंधित फाइलें हैं।

  • ग्लोबल डेडलॉक राइट-टू-फ़ाइल इवेंट मॉनिटरिंग फ़ाइलें
  • टेबल स्पेस इंफॉर्मेशन फाइल्स [SQLSPCS.1, SQLSPCS.2]
  • संग्रहण समूह नियंत्रण फ़ाइलें [SQLSGF.1, SQLSGF.2]
  • अस्थायी टेबल स्पेस कंटेनर फ़ाइलें। [/ भंडारण पथ //T0000011/C000000.TMP/SQL00002.MEMBER0001.TDA]
  • वैश्विक कॉन्फ़िगरेशन फ़ाइल [SQLDBCONF]
  • इतिहास की फाइलें [DB2RHIST.ASC, DB2RHIST.BAK, DB2TSCHG.HIS, DB2TSCHG.HIS]
  • लॉगिंग से संबंधित फाइलें [SQLOGCTL.GLFH.1, SQLOGCTL.GLFH.2]
  • लॉकिंग फाइलें [SQLINSLK, SQLTMPLK]
  • स्वचालित भंडारण कंटेनर

सदस्य विशिष्ट निर्देशिका

निर्देशिका स्थान: / NODExxxx / SQLxxxx / Kom0000

इस निर्देशिका में शामिल हैं:

  • डेटाबेस से जुड़ी वस्तुएं
  • बफ़र पूल जानकारी फ़ाइलें [SQLBP.1, SQLBP.2]
  • स्थानीय घटना निगरानी फ़ाइलें
  • लॉगिंग-संबंधित फाइलें [SQLOGCTL.LFH.1, SQLOGCTL.LFH.2, SQLOGMIR.LFH]।
  • स्थानीय कॉन्फ़िगरेशन फ़ाइलें
  • डेडलॉक इवेंट मॉनिटर फ़ाइल। ईएसई और विभाजन डेटाबेस वातावरण के मामले में विस्तृत गतिरोध की घटनाओं की निगरानी फाइलें कैटलॉग नोड के डेटाबेस निर्देशिका में संग्रहीत की जाती हैं।

डेटाबेस बनाना

आप "क्रिएट डेटा" कमांड का उपयोग करके एक डेटाबेस बना सकते हैं। सभी डेटाबेस डिफ़ॉल्ट स्टोरेज ग्रुप “IBMSTOGROUP” के साथ बनाए जाते हैं, जो एक उदाहरण बनाते समय बनाया जाता है। DB2 में, सभी डेटाबेस तालिकाओं को "टेबलस्पेस" में संग्रहीत किया जाता है, जो अपने संबंधित भंडारण समूहों का उपयोग करते हैं।

डेटाबेस के लिए विशेषाधिकार स्वचालित रूप से सार्वजनिक [CREATETAB, BINDADD, CONNECT, IMPLICIT_SCHEMA, और SELECT] के रूप में सेट किए जाते हैं, हालाँकि, यदि RESTRICTIVE विकल्प मौजूद है, तो विशेषाधिकार PUBLIC के रूप में प्रदान नहीं किए जाते हैं।

गैर-प्रतिबंधक डेटाबेस बनाना

इस आदेश का उपयोग एक गैर-प्रतिबंधक डेटाबेस बनाने के लिए किया जाता है।

Syntax: [एक नया डेटाबेस बनाने के लिए। 'database_name' एक नए डेटाबेस नाम को इंगित करता है, जिसे आप बनाना चाहते हैं।]

db2 create database <database name>

Example: ['एक' नाम के साथ एक नया गैर-प्रतिबंधक डेटाबेस बनाने के लिए]

db2 create database one

Output:

DB20000I The CREATE DATABASE command completed successfully.

प्रतिबंधात्मक डेटाबेस बनाना

इस आदेश को लागू करने पर प्रतिबंधात्मक डेटाबेस बनाया गया है।

Syntax: [नीचे दिए गए सिंटैक्स में, "db_name" डेटाबेस के नाम को दर्शाता है।]

db2 create database <db_name> restrictive

Example: ['दो' नाम के साथ एक नया प्रतिबंधक डेटाबेस बनाने के लिए]

db2 create database two restrictive

विभिन्न उपयोगकर्ता परिभाषित स्थान के साथ डेटाबेस बनाना

अलग-अलग पथ पर डिफ़ॉल्ट भंडारण समूह "IBMSTOGROUP" के साथ एक डेटाबेस बनाएं। इससे पहले, आपने किसी विशेष स्थान पर डेटाबेस को स्टोर करने या बनाने के लिए बिना किसी उपयोगकर्ता-निर्धारित स्थान के कमांड "डेटाबेस बनाएं" का आह्वान किया था। उपयोगकर्ता परिभाषित डेटाबेस स्थान का उपयोग कर डेटाबेस बनाने के लिए, निम्नलिखित प्रक्रिया का पालन किया जाता है:

Syntax: [नीचे दिए गए वाक्यविन्यास में, 'db_name' 'डेटाबेस नाम' और 'data_location' को इंगित करता है, जहां फ़ोल्डरों में डेटा संग्रहीत करना होता है और 'db_path_location' 'data_location' के ड्राइवर स्थान को इंगित करता है।]

db2 create database '<db_name>' on '<data location>' dbpath on '<db_path_location>'

Example: ['चार' नाम का डेटाबेस बनाने के लिए, जहाँ डेटा 'data1' में संग्रहीत किया जाता है और यह फ़ोल्डर 'dbp1' में संग्रहित होता है]

db2 create database four on '/data1' dbpath on '/dbpath1'

स्थानीय या सिस्टम डेटाबेस निर्देशिका फ़ाइलों को देखना

वर्तमान उदाहरण में उपलब्ध निर्देशिकाओं की सूची देखने के लिए आप इस कमांड को निष्पादित करते हैं।

Syntax:

db2 list database directory

Example:

db2 list database directory

Output:

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         =

सक्रिय डेटाबेस

यह कमांड किसी विशेष डेटाबेस के लिए सभी आवश्यक सेवाएं शुरू करता है ताकि डेटाबेस आवेदन के लिए उपलब्ध हो।

Syntax: ['db_name' डेटाबेस नाम दर्शाता है]

db2 activate db <db_name>

Example: [डेटाबेस 'एक' को सक्रिय करना]

db2 activate db one

डेटाबेस को निष्क्रिय करना

इस आदेश का उपयोग करके, आप डेटाबेस सेवाओं को रोक सकते हैं।

Syntax:

db2 deactivate db <db_name>

Example: [डेटाबेस 'एक' को निष्क्रिय करने के लिए]

db2 deactivate db one

डेटाबेस से जुड़ना

एक डेटाबेस बनाने के बाद, इसे उपयोग में लाने के लिए, आपको डेटाबेस को कनेक्ट करने या शुरू करने की आवश्यकता है।

Syntax:

db2 connect to <database name>

Example: [डेटाबेस को वर्तमान सीएलआई से जोड़ने के लिए]

db2 connect to one

Output:

Database Connection Information  
 Database server        = DB2/LINUXX8664 10.1.0  
 SQL authorization ID   = DB2INST4  
 Local database alias   = ONE

यदि डेटाबेस प्रतिबंधात्मक है, तो सत्यापित करना

यह जाँचने के लिए कि यह डेटाबेस प्रतिबंधात्मक है या नहीं, यहाँ वाक्यविन्यास है:

Syntax: [निम्नलिखित सिंटैक्स में, 'db' डेटाबेस को इंगित करता है, 'cfg' कॉन्फ़िगरेशन को इंगित करता है, 'db_name' डेटाबेस डेटाबेस को दर्शाता है]

db2 get db cfg for <db_name> | grep -i restrict

Example: [जाँचने के लिए कि 'एक' डेटाबेस प्रतिबंधित है या नहीं]

db2 get db cfg for one | grep -i restrict

Output:

Restrict access                       = NO

डेटाबेस प्रबंधक और डेटाबेस को कॉन्फ़िगर करना

इंस्टेंस कॉन्फ़िगरेशन (डेटाबेस प्रबंधक कॉन्फ़िगरेशन) 'db2system' नाम की फ़ाइल में संग्रहीत है और डेटाबेस से संबंधित कॉन्फ़िगरेशन 'SQLDBCON' नामक फ़ाइल में संग्रहीत है। इन फ़ाइलों को सीधे संपादित नहीं किया जा सकता है। आप इन फ़ाइलों को टूल का उपयोग करके संपादित कर सकते हैं जो एपीआई कहते हैं। कमांड लाइन प्रोसेसर का उपयोग करके, आप इन कमांड का उपयोग कर सकते हैं।

डेटाबेस प्रबंधक कॉन्फ़िगरेशन पैरामीटर

Syntax: [उदाहरण डेटाबेस प्रबंधक की जानकारी प्राप्त करने के लिए]

db2 get database manager configuration
या
db2 get dbm cfg

Syntax: [उदाहरण डेटाबेस प्रबंधक को अद्यतन करने के लिए]

db2 update database manager configuration
या
db2 update dbm cfg

Syntax: [पिछले कॉन्फ़िगरेशन रीसेट करने के लिए]

db2 reset database manager configuration
या
db2 reset dbm cfg

डेटाबेस कॉन्फ़िगरेशन पैरामीटर

Syntax: [डेटाबेस की जानकारी प्राप्त करने के लिए]

db2 get database configuration
या
db2 get db cfg

Syntax: [डेटाबेस विन्यास को अद्यतन करने के लिए]

db2 update database configuration
या
db2 update db cfg

Syntax: [डेटाबेस कॉन्फ़िगरेशन में पहले से कॉन्फ़िगर किए गए मानों को रीसेट करने के लिए

db2 reset database configuration
या
db2 reset db cfg

Syntax: [वर्तमान सक्रिय डेटाबेस के आकार की जांच करने के लिए]

db2 "call get_dbsize_info(?,?,?,-1)"

Example: [वर्तमान में सक्रिय डेटाबेस के आकार को सत्यापित करने के लिए]

db2 "call get_dbsize_info(?,?,?,-1)"

Output:

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

डेटाबेस के लिए आवश्यक स्थान का अनुमान लगाना

डेटाबेस के आकार का अनुमान लगाने के लिए, निम्नलिखित कारकों के योगदान पर विचार किया जाना चाहिए:

  • सिस्टम कैटलॉग टेबल्स
  • उपयोगकर्ता तालिका डेटा
  • लॉन्ग फील्ड डेटा
  • बड़ी वस्तु (LOB) डेटा
  • सूचकांक स्थान
  • अस्थायी कार्य स्थान
  • XML डेटा
  • लॉग फ़ाइल स्थान
  • स्थानीय डेटाबेस निर्देशिका
  • सिस्टम फ़ाइलें

डेटाबेस अधिकारियों की जाँच करना

आप निम्न सिंटैक्स का उपयोग यह जांचने के लिए कर सकते हैं कि गैर-प्रतिबंधक डेटाबेस पर कौन से डेटाबेस प्राधिकरण PUBLIC को दिए गए हैं।

Step 1: प्रमाणीकरण उपयोगकर्ता-आईडी और उदाहरण के पासवर्ड के साथ डेटाबेस से कनेक्ट करें।

Syntax: [यूजरनेम और पासवर्ड के साथ डेटाबेस से जुड़ने के लिए]

db2 connect to <db_name> user <userid> using <password>

Example: [यूजर आईडी 'db2inst4' और पासवर्ड 'db2inst4' के साथ "एक" डेटाबेस कनेक्ट करने के लिए]

db2 connect to one user db2inst4 using db2inst4

Output:

Database Connection Information  
 Database server        = DB2/LINUXX8664 10.1.0  
 SQL authorization ID   = DB2INST4  
 Local database alias   = ONE

Step2: डेटाबेस के अधिकारियों को सत्यापित करने के लिए।

Syntax: [नीचे दिया गया सिंटैक्स वर्तमान डेटाबेस के लिए प्राधिकरण सेवाओं का परिणाम दिखाता है]

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"

Example:

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"

Output:

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.

गिराने वाला डेटाबेस

ड्रॉप कमांड का उपयोग करके, आप हमारे डेटाबेस को इंस्टेंस डेटाबेस डायरेक्टरी से हटा सकते हैं। यह कमांड उसके सभी ऑब्जेक्ट्स, टेबल, स्पेस, कंटेनर और संबंधित फाइलों को डिलीट कर सकता है।

Syntax: [किसी भी डेटाबेस को एक उदाहरण से छोड़ने के लिए]

db2 drop database <db_name>

Example: [उदाहरण के लिए 'छह' डेटाबेस को छोड़ने के लिए]

db2  drop database six

Output:

DB20000I The DROP DATABASE command completed successfully