DB2 - Veritabanları

Bu bölümde, ilgili sözdizimi ile veritabanlarının oluşturulması, etkinleştirilmesi ve devre dışı bırakılması açıklanmaktadır.

Veritabanı mimarisi

Bir veritabanı, veritabanı işlemlerini verimli bir şekilde yürütmek için birlikte çalışan Tablolar, Şemalar, Arabellek havuzları, Günlükler, Depolama grupları ve Tablo Alanları koleksiyonudur.

Veritabanı dizini

Veritabanı dizini, veritabanlarının organize edilmiş bir deposudur. Bir veritabanı oluşturduğunuzda, veritabanı hakkındaki tüm ayrıntılar, varsayılan depolama cihazlarının ayrıntıları, yapılandırma dosyaları ve geçici tablo listesi vb. Gibi bir veritabanı dizininde saklanır.

Örnek klasörde bölüm genel dizini oluşturulur. Bu dizin, veritabanıyla ilgili tüm genel bilgileri içerir. Bu bölüm genel dizini NODExxxx / SQLyyy olarak adlandırılır; burada xxxx veri bölüm numarasıdır ve yyy veritabanı belirtecidir.

Bölüm genel dizininde üyeye özel bir dizin oluşturulur. Bu dizin yerel veritabanı bilgilerini içerir. Üyeye özel dizin MEMBERxxxx olarak adlandırılır, burada xxxx bir üye numarasıdır. DB2 Enterprise Server Edition ortamı tek bir üye üzerinde çalışır ve yalnızca bir üyeye özel dizine sahiptir. Bu üyeye özel dizin benzersiz bir şekilde ÜYE0000 olarak adlandırılır.

Bölümlendirilmiş genel dizin

Dizin Konumu: <örnek> / NODExxx / SQLxxx

Bölüm genel dizini, aşağıda listelenen veritabanıyla ilgili dosyaları içerir.

  • Global kilitlenme dosyaya yazma olay izleme dosyaları
  • Tablo alanı bilgi dosyaları [SQLSPCS.1, SQLSPCS.2]
  • Depolama grubu kontrol dosyaları [SQLSGF.1, SQLSGF.2]
  • Geçici tablo alanı kapsayıcı dosyaları. [/ depolama yolu / /T0000011/C000000.TMP/SQL00002.MEMBER0001.TDA]
  • Global Yapılandırma dosyası [SQLDBCONF]
  • Geçmiş dosyaları [DB2RHIST.ASC, DB2RHIST.BAK, DB2TSCHG.HIS, DB2TSCHG.HIS]
  • Günlük kaydı ile ilgili dosyalar [SQLOGCTL.GLFH.1, SQLOGCTL.GLFH.2]
  • Dosyaları kilitleme [SQLINSLK, SQLTMPLK]
  • Otomatik Saklama kapları

Üyeye özel dizin

Dizin konumu: / NODExxxx / SQLxxxx / MEMBER0000

Bu dizin şunları içerir:

  • Veritabanları ile ilişkili nesneler
  • Arabellek havuzu bilgi dosyaları [SQLBP.1, SQLBP.2]
  • Yerel olay izleme dosyaları
  • Günlük kaydı ile ilgili dosyalar [SQLOGCTL.LFH.1, SQLOGCTL.LFH.2, SQLOGMIR.LFH].
  • Yerel yapılandırma dosyaları
  • Deadlocks olay izleme dosyası. Ayrıntılı kilitlenme olayları izleme dosyaları, ESE ve bölümlenmiş veritabanı ortamında katalog düğümünün veritabanı dizininde saklanır.

Veritabanı oluşturma

“CREATE DATABASE” komutunu kullanarak bir veritabanı oluşturabilirsiniz. Tüm veritabanları, bir eşgörünüm yaratılırken oluşturulan varsayılan depolama grubu "IBMSTOGROUP" ile oluşturulur. DB2'de, tüm veritabanı tabloları, ilgili depolama gruplarını kullanan "tablo alanında" saklanır.

Veritabanı ayrıcalıkları otomatik olarak KAMU [CREATETAB, BINDADD, CONNECT, IMPLICIT_SCHEMA ve SELECT] olarak ayarlanır, ancak, RESTRICTIVE seçeneği mevcutsa, ayrıcalıklar KAMU olarak verilmez.

Kısıtlayıcı olmayan veritabanı oluşturma

Bu komut, kısıtlayıcı olmayan bir veritabanı oluşturmak için kullanılır.

Syntax: [Yeni bir Veritabanı oluşturmak için. 'veritabanı_adı' oluşturmak istediğiniz yeni bir veritabanı adını belirtir.]

db2 create database <database name>

Example: ['Bir' adıyla yeni bir kısıtlayıcı olmayan veritabanı oluşturmak için]

db2 create database one

Output:

DB20000I The CREATE DATABASE command completed successfully.

Kısıtlayıcı veritabanı oluşturma

Bu komutun çalıştırılmasıyla kısıtlayıcı veritabanı oluşturulur.

Syntax: [Aşağıdaki sözdiziminde, "db_name" veritabanı adını belirtir.]

db2 create database <db_name> restrictive

Example: ['İki' adıyla yeni bir kısıtlayıcı veritabanı oluşturmak için]

db2 create database two restrictive

Farklı kullanıcı tanımlı lokasyon ile veri tabanı oluşturma

Farklı yolda varsayılan depolama grubu “IBMSTOGROUP” ile bir veritabanı oluşturun. Daha önce, veritabanını belirli bir konumda depolamak veya oluşturmak için kullanıcı tanımlı bir konum olmadan "veritabanı oluştur" komutunu çalıştırmıştınız. Veritabanını kullanıcı tanımlı veritabanı konumunu kullanarak oluşturmak için aşağıdaki prosedür izlenir:

Syntax: [Aşağıdaki sözdiziminde, 'db_name', 'veritabanı adını' ve 'veri_konumu', verilerin klasörlerde nerede depolanması gerektiğini ve 'db_path_location', 'veri_konumu'nun sürücü konumunu belirtir.]

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

Example: [Verilerin "veri1" de depolandığı ve bu klasörün "dbpath1" de depolandığı "dört" adlı veritabanı oluşturmak için]

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

Yerel veya sistem veritabanı dizin dosyalarını görüntüleme

Geçerli örnekte mevcut olan dizinlerin listesini görmek için bu komutu yürütürsünüz.

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         =

Veritabanının etkinleştirilmesi

Bu komut, belirli bir veritabanı için gerekli tüm hizmetleri başlatır, böylece veritabanı uygulama için kullanılabilir olur.

Syntax: ['db_name' veritabanı adını belirtir]

db2 activate db <db_name>

Example: ['Bir' veritabanının etkinleştirilmesi]

db2 activate db one

Veritabanının devre dışı bırakılması

Bu komutu kullanarak veritabanı hizmetlerini durdurabilirsiniz.

Syntax:

db2 deactivate db <db_name>

Example: [Veritabanı 'bir'i devre dışı bırakmak için]

db2 deactivate db one

Veritabanına bağlanma

Bir veritabanı oluşturduktan sonra, onu kullanmak için, veritabanına bağlanmanız veya veritabanını başlatmanız gerekir.

Syntax:

db2 connect to <database name>

Example: [Veritabanı Birini mevcut CLI'ye Bağlamak İçin]

db2 connect to one

Output:

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

Veritabanının kısıtlayıcı olup olmadığını doğrulama

Bu veritabanının kısıtlayıcı olup olmadığını kontrol etmek için sözdizimi şöyledir:

Syntax: [Aşağıdaki söz diziminde 'db' Veritabanını, 'cfg' yapılandırmayı, 'db_name' veritabanı adını belirtir]

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

Example: ['Bir' veritabanının kısıtlı olup olmadığını kontrol etmek için]

db2 get db cfg for one | grep -i restrict

Output:

Restrict access                       = NO

Veritabanı yöneticisini ve veritabanını yapılandırma

Örnek yapılandırması (Veritabanı yöneticisi yapılandırması) "db2system" adlı bir dosyada saklanır ve veritabanıyla ilgili yapılandırma "SQLDBCON" adlı bir dosyada saklanır. Bu dosyalar doğrudan düzenlenemez. API'yi çağıran araçları kullanarak bu dosyaları düzenleyebilirsiniz. Komut satırı işlemcisini kullanarak bu komutları kullanabilirsiniz.

Veritabanı Yöneticisi Yapılandırma Parametreleri

Syntax: [Örnek Veritabanı yöneticisi bilgilerini almak için]

db2 get database manager configuration
VEYA
db2 get dbm cfg

Syntax: [Örnek veritabanı yöneticisini güncellemek için]

db2 update database manager configuration
VEYA
db2 update dbm cfg

Syntax: [Önceki yapılandırmaları sıfırlamak için]

db2 reset database manager configuration
VEYA
db2 reset dbm cfg

Veritabanı Yapılandırma Parametreleri

Syntax: [Veritabanı bilgilerini almak için]

db2 get database configuration
VEYA
db2 get db cfg

Syntax: [Veritabanı yapılandırmasını güncellemek için]

db2 update database configuration
VEYA
db2 update db cfg

Syntax: [Veritabanı yapılandırmasında önceden yapılandırılmış değerleri sıfırlamak için

db2 reset database configuration
VEYA
db2 reset db cfg

Syntax: [Mevcut Aktif Veritabanının boyutunu kontrol etmek için]

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

Example: [Şu Anda Etkinleştirilen Veritabanının boyutunu doğrulamak için]

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

Veritabanı için gerekli alanı tahmin etme

Bir veritabanının boyutunu tahmin etmek için aşağıdaki faktörlerin katkısı dikkate alınmalıdır:

  • Sistem Katalog Tabloları
  • Kullanıcı Tablosu Verileri
  • Uzun Alan Verileri
  • Büyük Nesne (LOB) Verileri
  • Dizin Alanı
  • Geçici Çalışma Alanı
  • XML verileri
  • Günlük dosyası alanı
  • Yerel veritabanı dizini
  • Sistem dosyaları

Veritabanı yetkililerinin kontrol edilmesi

Kısıtlayıcı olmayan veritabanında PUBLIC'e hangi veritabanı yetkilerinin verildiğini kontrol etmek için aşağıdaki sözdizimini kullanabilirsiniz.

Step 1: kimlik doğrulama kullanıcı kimliği ve örnek parolası ile veritabanına bağlanın.

Syntax: [Kullanıcı adı ve şifre ile veritabanına bağlanmak için]

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

Example: ['Db2inst4' kullanıcı kimliği ve 'db2inst4' şifresiyle "bir" Veritabanına bağlanmak için]

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: Veritabanının yetkilerini doğrulamak için.

Syntax: [Aşağıdaki sözdizimi, mevcut veritabanı için yetki hizmetlerinin sonucunu gösterir]

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.

Veritabanı Bırakılıyor

Drop komutunu kullanarak veritabanımızı örnek veritabanı dizininden kaldırabilirsiniz. Bu komut tüm nesnelerini, tablosunu, boşluklarını, kapsayıcılarını ve ilişkili dosyalarını silebilir.

Syntax: [Bir örnekten herhangi bir veritabanını bırakmak için]

db2 drop database <db_name>

Example: ['Altı' veritabanını örnekten çıkarmak için]

db2  drop database six

Output:

DB20000I The DROP DATABASE command completed successfully