Comments
Description
Transcript
DB2 第1章 のアーキテクチャ
<2009年12月> 第1章 DB2のアーキテクチャ 本書に含まれている情報は、正式なIBMのテストを受けていません。また、明記にしろ、暗黙的にしろ、なんらの保証もなしに配布されるものです。 この情報の使用またはこれらの技術の実施は、いずれも、使用先の責任において行われるべきものであり、それらを評価し、実際に使用する環境に統合する 使用先の判断に依存しています。それぞれの項目は、ある特定の状態において正確であることがIBMによって調べられていますが、他のところで同じまたは同 様の結果が得られる保証はありません。これらの技術を自身の環境に適用することを試みる使用先は、自己の責任において行う必要があります。 © Copyright IBM Japan Co., Ltd. 2009 内容 • DB2 ファミリー製品 ファミリー製品 • Oracle、 、DB2の の用語の 用語の比較 • DB2と とOracleの のアーキテクチャ比較 アーキテクチャ比較 • • • メモリー • プロセス • ファイルシステム構造 • データ、カタログ領域 • セキュリティ DB2の の基本、 基本、ツール • インスタンス管理 • ストレージ管理 • 接続管理 • 管理ツール 基本操作の 基本操作の違い 2 © 2009 IBM Corporation DB2 ファミリー製品 DB2 Enterprise 9 • DB2 9.7 DB2 Enterprise Server Edition • DB2 Data Server の最新Version • 2009年5月にアナウンス 2009年6月リリース DB2 Workgroup 9 Linux (64bit) Linux Power (64bit) Linux zSeries (64bit) Windows (32bit/64bit) AIX (64bit) HP-UX (64bit) Solaris (64bit) DB2 Workgroup Server Edition DB2 Express 9 DB2 Express Edition DB2 Personal 9 Linux (32bit/64bit) Linux Power (64bit) Windows (32bit/64bit) AIX (64bit) Solaris (64bit) HP-UX (64bit) Linux (32bit/64bit) Linux Power (64bit) Windows (32bit/64bit) Solaris (x86-64) DB2 Personal Edition Linux (32bit/64bit) Windows (32bit/64bit) For Developer Database Enterprise Developer Edition All Servers and clients supported by DB2 3 © 2009 IBM Corporation DB2 9.7 エディション • IBM DB2 Enterprise Server Edition 9.7 • DB2 Enterprise 9.7 は、中規模企業から大企業向けのデータベース・サーバー • プロセッサー数やメモリー等の制限なし • 以下の機能を含む • PL/SQL、pureXML, HADR, オンライン再編成, 拡張コピーサービス, MQT, MDC, テー ブル・パーティショニング機能など • IBM DB2 Workgroup Server Edition 9.7 • DB2 Workgroup 9.7 は中小企業向けのデータベース・サーバー • 最大480 PVU(*1) メモリー16GB以下 • Value Unit課金、許可ユーザー課金のほかに、V9.7よりLimited Use Socket 課金(4ソケッ ト搭載サーバーまで) • PL/SQL、pureXML, HADR,オンライン再編成機能を含む (*) PVU: プロセッサー Value Unit 4 © 2009 IBM Corporation DB2 9.7 エディション • IBM DB2 Express Server Edition 9.7 • DB2 Express 9.7は、中規模ビジネス(SMB)市場向けに、DB2のフルファンクションを 低価格で提供 • 最大200 PVU メモリー 4GB 以内 • pureXML機能を含む • IBM DB2 Express-C • ライセンス無償で使用可能 • 最大 2コア メモリー2 GB以内 • pureXML機能を含む 5 © 2009 IBM Corporation DB2 9.7 クライアント • IBM Data Server Client • アプリケーション開発、DB管理、クライアント/サーバー構成のための機能を提供 • IBM Data Server Runtime Client • JDBC, ADOODBC, DB2 CLI, .NET, ADO.NET, OLE DB, PHP ,Ruby をサポート • GUIツールは含まれていないが、DB2 CLP機能を含む • IBM Data Server Driver for ODBC, CLI, and .NET • DB2 CLI API、ODBC API、.NET API を使用するアプリケーションに対するランタイム・ サポートを提供するWindowsプラットフォーム用のクライアント • IBM Data Server Driver for JDBC and SQLJ • Java ストアード・プロシージャーおよびユーザー定義関数のデフォルトのドライバー • JDBC 3 および JDBC 4 準拠アプリケーションのサポート、SQLJのサポートを提供 6 © 2009 IBM Corporation DB2 V9.7 フィーチャー DB2 V9.7 Features Enterprise Workgroup DB2 High Availability Feature (HAF) (組込み) (組込み) Express 課金単位 含まれる機能 許可ユーザー HADR, オンライン再編成、 TSA, 拡張コピー・サービス ● PVU Base/Enterprise Warehouse Feature ● DB2 Performance Optimization Feature (POF) ● PVU SMP/MPPシステムのクラ スターにわたるデータベー スの区分化機能(DPF)& ウェアハウス機能 許可ユーザー DB2 ワークロード管理, PVU Performance Expert, Query Patroller DB2 Storage Optimization Feature (SOF) ● DB2 Advanced Access Control Feature (AACF) ● PVU データ行圧縮、索引圧縮、 一時表圧縮 許可ユーザー ラベル・ベースのアクセス 制御 (LBAC) PVU DB2 Geodetic Data Management Feature 許可ユーザー 空間情報管理 ● PVU Homogeneous Replication PVU ● DB2間のQレプリケーショ ン Feature ※ Featureは●の箇所のみになります 7 © 2009 IBM Corporation ブランク・ ブランク・ページ 8 © 2009 IBM Corporation Oracle、DB2用語の比較 Oracle DB2 Comment インスタンス インスタンス プロセスと プロセスと共有メモリー 共有メモリーから メモリーから構成 から構成され 構成され る。DB2インスタンス インスタンスは インスタンスは、データベー ス・マネージャー( )とも呼 マネージャー(DBM) とも呼ばれる。 ばれる。 DB2は は1インスタンス インスタンスに インスタンスに複数DBをもつ 複数 をもつ ことが可能 ことが可能。 インスタンスは 可能。Oracleインスタンス インスタンスは、1 インスタンス1DB。 。 インスタンス データベース データベース DB2:1インスタンス インスタンスに インスタンスに複数DB作成可 複数 作成可 能 パラメータファイル データベース・ データベース・マネージャー構成 マネージャー構成 ファイル Oracle: インスタンス、 のパラメー インスタンス、DBの ターを ターを格納する 格納するファイル するファイル データベース構成 データベース構成ファイル 構成ファイル DB2: DB毎 毎にDB構成 構成ファイル 構成ファイルを ファイルを持つ データ・ データ・ブロック ページ データ格納 データ格納の 格納の最小単位 エクステント エクステント 連続した 連続したデータ したデータ・ データ・ブロック/ページ ブロック ページの ページの セット セグメント オブジェクト 9 Oracle: エクステントの エクステントの集合で 集合で論理記 憶構造に 憶構造に割り当てられる © 2009 IBM Corporation Oracle、DB2用語の比較 Oracle DB2 Comment 表スペース 表スペース データを データを格納する 格納する領域 する領域 データ・ データ・ファイル DMS コンテナー データを データを格納する 格納する物理領域 する物理領域 Redo ログファイル トランザクションログ リカバリーログ PL/SQL SQL/PL SQLを を拡張した 拡張したプログラミング したプログラミング言 プログラミング言 語 データ・ データ・バッファー バッファープール 表スペースへの スペースへのI/Oを への を減らすため のバッファー SGA インスタンス共有 インスタンス共有メモリー 共有メモリー インスタンス起動時 インスタンス起動時に 起動時に割り当てら れるメモリー れるメモリー領域 メモリー領域 データ・ データ・ディクショナリ システム・ システム・カタログ データベースの データベースのメタデータ ライブラリー・ ライブラリー・キャッシュ パッケージ・ パッケージ・キャッシュ コンパイルした をキャッシュ コンパイルしたSQLを した するために使用 するために使用される 使用される領域 される領域 ラージ・ ラージ・プール ユーテリティ・ ユーテリティ・ヒープ バックアップ等 バックアップ等のヒープ領域 ヒープ領域 データ・ データ・ディクショナリキャッシュ カタログキャッシュ システムカタログ情報 システムカタログ情報の 情報のキャッ シュ領域 シュ領域 SYSTEM表領域 表領域 カタログ表 カタログ表スペース データ・ データ・ディクショナリや ディクショナリやカタログ 情報を 情報を格納する 格納する表領域 する表領域 10 © 2009 IBM Corporation DB2とOracleのアーキテクチャ比較 • アーキテクチャ概要 アーキテクチャ概要 • メモリー・ メモリー・アーキテクチャ • プロセス • ファイル、 ファイル、ディレクトリ構造 ディレクトリ構造 • データ・ データ・ディレクトリ、 ディレクトリ、カタログ • セキュリティ 11 © 2009 IBM Corporation アーキテクチャ概要– Oracle • Oracle : 3層構造 層構造 OracleArchitecture • 上位層は、メモリーアキテク チャ • 中間層は、プロセスコンポーネ ント • 下位層は、データベースコン ポーネント Instance Instance P P G G A A SGA SGA Streams Pool Database Buffer Cache Redo Log Buffer Shared Pool Java Pool Oracle Oracle Processes Processes RECO Large Pool Library Cache Data Dictionary Cache Init. Ora User User User User Processes Processes Processes Processes SMON PMON DBWn CKPT LGWR ARCn Oracle Oracle Database Database Data Files 12 Control Files Redo Log Files Archive Log Files © 2009 IBM Corporation アーキテクチャ概要 – DB2 • DB2:クライアント クライアント/サーバーモデル クライアント サーバーモデル • DB2は全てのプラットフォームで、 スレッドベースで実装されている • DBMSとしての としての基本的 としての基本的な 基本的な動きは Oracleと と同様 • 例 • 更新データは必ずログに書き込ま れ、COMMITのタイミングでディス クに書き出される • 表スペースへの反映はBFPを介し て非同期に行われる 13 © 2009 IBM Corporation メモリー・アーキテクチャ– Oracle • SGA と PGA • Oracleのメモリー構造はシステム・グローバル領域(SGA)とプログラム・グ ローバル領域(PGA)から構成される • SGA • インスタンス起動時に割り当てられる共有メモリー領域 • SGAは共有プール、データベース・バッファー・キャッシュ、REDOログ・バッ ファーとして使用される • PGA Instance • 特定のサーバー・ プロセスだけで使用 SGA PGA PGA PGA Library Cache される非共有領域 Server Process 14 Shared Pool Data Dict cache Data Buffer Cache Redo Log Buffer © 2009 IBM Corporation メモリー・アーキテクチャ– DB2 • DB2 は大きく3つの きく つの共有 つの共有メモリー 共有メモリー領 メモリー領 域がある • インスタンス・メモリー Instance_memory DBMS Memory • データベース・メモリー • データベース・メモリーの例: • バッファー・プール • ロック・リスト • データベース・ヒープ • ユーティリティ・ヒープ • パッケージ・キャッシュ • カタログ・キャッシュ Database_A Database_B Database_ memory Database_ memory Appl_memory Appl_memory • アプリケーション・メモリー Agent Private Memory 15 © 2009 IBM Corporation プロセス – Oracle • バックグラウンド・ バックグラウンド・プロセス • • • • • • • • データベース・ライター (DBWR) ログ・ライター(LGWR) システム・モニター (SMON) プロセス・モニター (PMON) チェックポイント (CKPT) リカバラ・プロセス(RECO) アーカイバ ・プロセス(ARCn) ディスパッチャー・プロセス (Dnnn) • ユーザー・ ユーザー・プロセスと プロセスとサーバープロセス • アプリケーションとOracle間の通信に 使用される • アプリケーションの接続の毎に、ユーザープロセスと サーバープロセスのペアが作成される • リスナー • 接続要求をリスニングする 16 © 2009 IBM Corporation プロセス – DB2 • サーバー側 サーバー側では、 では、アクティビティーは アクティビティーはエンジン・ エンジン・ ディスパッチ可能単位 )で制御される ディスパッチ可能単位( 可能単位(EDU) 制御される • データベースサーバー スレッド及 スレッド及びプロセス • db2sysc、メイン・システム・コントローラ EDUは、重要な DB2 データベース・サー バー・イベントを処理する • db2pfchr、バッファー・プール・プリフェッ チャー用 • db2pclnr、バッファー・プール・ページ・ク リーナー用 • db2logmgr、ログ・マネージャ用。リカバ リー可能なデータベースのログファイルを 管理 • クライアント • クライアント EDUやプロセスは、データベース との最初の接触を、リスナーを通じて行う • db2agent • db2fmp 17 © 2009 IBM Corporation ファイル・ディレクトリ構造 – Oracle • Oracle データベースファイル Instance Parameter file Database Password file Alert and trace log file Control file Datafiles Redo log files • Oracle ディレクトリ構造 基準) ディレクトリ構造( 構造(OFA基準 基準) 18 © 2009 IBM Corporation ファイル・ディレクトリ構造– DB2 Instance directory • DB2 ディレクトリ構造 ディレクトリ構造 • DB2コピーディレクトリー • インスタンスディレクトリ: Drive/Directory sqllib db2dump Error log file • エラーログファイル (db2dump) function • サーバーサイドプログラム (function) など etc... • データベースディレクトリ: Database directory • データベースファイル (SQL0000n) • トランザクションログ (SQLOGDIR) • 自動ストレージパス (Nodennnn/DBNAME) • 表スペースコンテナー • 以下のパスは、任意のパスに設定 • • • • 19 db2dump トランザクションログディレクトリ 自動ストレージパス 表スペースコンテナー (非自動ストレージ) All the external stored procedures and executable programs are stored in here Drive/Directory DB2 instance name Node0000 The partition number of the database, 0 for a non-partitioned database SQL00001 The database id starts at 1 and increases for all subsequent database SQLDBCONF The database configuration file SQLOGDIR The directory for default log files DBNAME T0000000 C0000000.CAT T0000001 C0000000.CAT T0000002 C0000000.LRG The DMS container for catalog tablespace The SMS container for default system temporary tablespace The DMS container for default user tablespace © 2009 IBM Corporation データ・ディクショナリ、カタログ Oracle: データ・ データ・ディクショナリ • User_xxx ビュー • 現在のユーザーが所有するオブジェクトに関する情報を表示するビュー • ALL_xxx ビュー • 現在のユーザーがアクセス可能な全てのオブジェクトに関する情報を表示するビュー • DBA_xxx ビュー • データベース管理ビュー • データベース内の全オブジェクトに関する情報を表示するビュー • DB2: Catalog • SYSCAT ビュー • 参照のみ可能なDBのオブジェクト情報のビュー • SYSSTAT ビュー • 更新可能な統計情報のビュー DB2 9.7 では、Oracleデータディクショナリを、DB2のカタログ表のエントリーに マッピングするビューが提供されている 20 © 2009 IBM Corporation セキュリティ – Oracle • Oracle • データベースを使用するユーザーは、事前にOracle内でユーザーとして作成されて いる必要がある • データベース内の情報でユーザーを認証 • パスワードは、データ・ディクショナリに暗号化されて格納される I'm ken USER ken PASSWORD a@x?s Authentication OK/NG 21 Oracle Database .... .... .... © 2009 IBM Corporation セキュリティ – DB2 • DB2 • DB2は、ユーザー認証はOSに依存するため、データベース内への登録は不要 • OSのログインIDとデータベース・ユーザー名の区別はない • OSにデータベースに接続するユーザーを作成しておく必要がある I'm ken USER ken PASSWORD a@x?s Authentication OK/NG .... .... .... DB2 Data Server SYSADM NO Can I access? DBADM SYSCTRL SYSMAINT ACCESS DB2 は特権の情報は データベース内で持つ OK 22 © 2009 IBM Corporation DB2基本操作と管理 • DB2 管理タスク 管理タスク • インスタンス管理 • データベース • 構成パラメーター • ストレージ • 表スペース • 管理ツール 管理ツール • IBM Optim Database Administrator 23 © 2009 IBM Corporation DB2 インスタンス管理 • • DB2製品 製品の という 製品のインストールされた インストールされたコードセット されたコードセットを コードセットを、 “DB2 copy”という • 1つのOS上に複数のDB2コピーを作成可能 • DB2 コピーのコードレベル (バージョンや、fix pack レベル) が同一でも異なっていてもよい DB2インストール インストール後 インストール後に、インスタンスが インスタンスが作成される 作成される • 1インスタンスは、1DB2コピーと対応する • 1DB2コピーは複数のインスタンスを持つことが可能 • DB2 インスタンスはDB2コピー間を移動させることが可能 Operating System DB2 Copy A DB2 Copy B /opt/IBM/db2/V9.7_GA /opt/IBM/db2/V9.7_FP1 db2inst1 db2inst2 db2inst2 db2iupdt コマンドでインスタンスを移行 24 © 2009 IBM Corporation DB2 インスタンス管理 • インスタンス作成 インスタンス作成 • • • db2inst1 インスタンス起動 インスタンス起動 • • • rootユーザーでインスタンス作成を実行 db2icrt -u db2fenc1 • インスタンスを作成 : db2icrt 現在あるインスタンスをリストし、インスタンスが作成されたことを確認 • インスタンスをリスト: db2ilist • 現在のDB2コピーのインスタンス・ディレクトリーでコマンドを実行 インスタンス作成後、インスタンス・ユーザーでインスタンスの起動を実行 • インスタンスを開始: db2start • インスタンスを停止: db2stop インスタンスが活動状態かどうか調べる db2_ps • DB2インスタンスが活動状態かどうか調べる • インスタンスのプロセスが存在しているかどうか、db2_psコマンドで確認することが可能 (Linux/UNIX only) インスタンス作成 インスタンス作成・ 作成・削除・ 削除・更新 • • • 25 インスタンスを削除: db2idrop インスタンスを更新: db2iupdt • 新しいDB2コピー側でコマンドを実行 インスタンスを移行: db2iupgrade (旧:db2imigr) ) • 新しいDB2コピー側でコマンドを実行 © 2009 IBM Corporation DB2 データベース • データベース • DB2では、1インスタンスに複数DBを作成、実行可能 • DB2はスレッドモデルで実行されるため、複数DB環境でも、1つのdb2syscプロセスで実 行される • アクティブなスレッド(EDU)は“db2pd -edus” コマンドで確認可能 • データベース作成 db2 create database DB1 on /db2/db1 • DB1 という名前のデータベースを作成 • DBを作成するパスを “on <full path>” オプションで指定可能 • データベース削除 db2 drop database DB1 • データベースへの接続がある場合は、データベースの削除が失敗する DB1 db2inst1 TablespaceA TablespaceB 26 DB2 Tablespace1 Tablespace2 © 2009 IBM Corporation DB2 構成パラメーター • DB2の DB2の構成パラメーター 構成パラメーターは パラメーターは以下の 以下のレベルで レベルで構成 システム 環境変数でレジストリー変数を上書きできる 環境変数 DB2 レジストリー変数(g) プロファイル・レジストリー(g) (グローバル) 影響範囲:システム全体(g) インスタンス プロファイル・レジストリー(i) (インスタンス) レジストリー変数(i) 影響範囲:インスタンス内(i) DBM CFG データベース データベース・マネージャー構成パラメーター 影響範囲:インスタンス内の全DBに適用 DB CFG データベース構成パラメーター 影響範囲:単体のDB内に適用 27 © 2009 IBM Corporation DB2 ストレージ • 表スペース • データを格納する論理的な領域 • 表や索引などのデータが、表スペースに格納される • ストレージ管理方法 ストレージ管理方法 • 自動ストレージ管理 • 表スペース作成時、DB2がデータベース作成時に指定したストレージ・パスに自動的 にコンテナを作成する • 表スペース、コンテナーの管理が必要なくなる • 手動でのストレージ管理 • 表スペース作成時にパスを指定する Non-Automatic Storage Database “X” Table Space “A” Table Space “B” Table Space “C” Automatic Storage Database “Y” Table Space “A” Table Space “B” Table Space “C” Storage paths on file systems 28 © 2009 IBM Corporation DB2 ストレージ • 自動ストレージ 自動ストレージへの ストレージへの変更方法 への変更方法 • DB作成時に指定 • デフォルトでは、自動ストレージデータベースとして作成される • デフォルトの自動ストレージパスはデータベースパスに作成される (<instance name>/<Node000n>/<database name>/T000000n) • 既存のDBに指定 • DBへ自動ストレージパスを削除、または追加することが可能 alter database add/drop automatic storage on '<storage path>' • 変更を反映するためには表スペースのリバランスが必要 29 © 2009 IBM Corporation DB2 表スペース • 表スペース作成 スペース作成の 作成のシンタックス例 シンタックス例 CREATE TABLESPACE TS1 PAGESIZE 16K MANAGED BY DATABASE USING ( FILE '/db2/ts1.dat' 1000M) • 表スペースの スペースの属性を 属性を選択 • 表スペースタイプ • ユーザー表スペース (1つ以上) • ユーザー定義の表を全て含む • デフォルトでは、 USERSPACE1という表スペースが作成される • システム一時表スペース (各ページサイズ毎に必要) • ソートやJOINなど、データベース・マネージャーが必要としたときにデータを格納 • ユーザー一時表スペース (1つ以上) • DECLARE GLOBAL TEMPORARY TABLEで作成された表の一時データを格納 • カタログ表スペース (作成の必要はない) • データベースのシステムカタログ表を全て含む • デフォルトで作成されるSYSCATSPACEは削除することは出来ない 30 © 2009 IBM Corporation DB2 表スペース • 表スペース属性 スペース属性を 属性を選択 • ストレージ・タイプ • System Managed Storage (SMS) • OSによってストレージ領域を管理 • データへのアクセスはOSによって制御される • 領域は必要に応じて割り当てられる • 小規模データベースに向いている(データ量の増加に伴って、自動的に ファイルサイズが大きくなる) • Database Managed Storage (DMS) • ファイルかraw デバイスの2種類がある • DB2が管理するため処理が高速になる • パフォーマンスを重視する場合に向いている • 自動表スペースの場合はDMS FILEとなる 31 © 2009 IBM Corporation DB2 表スペース • 表スペース属性 スペース属性の 属性の選択 • ページサイズ • ページサイズは、4KB / 8KB / 16KB / 32KB から選択 • レコード長はページ・サイズより小さくなければならない • 表スペースのページ・サイズは以下のページ・サイズを合わせる必要がある • バッファー・プール • システム一時表スペース Page Size Row Size Limit Column Count Limit Table space size Limit (Large)* 4KB 4005 500 8TB 8KB 8101 1012 16TB 16KB 16293 1012 32TB 32KB 32677 1012 64TB *DMS表スペースの場合 • ファイルシステム・キャッシング • SMS 、DMS File の表スペースはファイルシステム・キャッシュを使用することができる(デフォル トでは使用しない) • Large object (CLOB/BLOB)のI/Oを減らすことが可能 32 © 2009 IBM Corporation DB2 表スペース • 表スペース作成 スペース作成 : コマンド例 コマンド例 • SMS表スペースを作成 CREATE TABLESPACE TS1 MANAGED BY SYSTEM USING ('d:¥TS1_CONT1', 'e:¥TS1_CONT1') • 16KBのページ・サイズのDMS表スペースを作成 • デフォルト以外のページサイズを指定する場合は、同じページ・サイズのバッファプー ル名を指定する必要がある CREATE TABLESPACE TS2 PAGESIZE 16K MANAGED BY DATABASE USING ( FILE '/db2/cont1/ts1_1.dat 500MB, FILE '/db2/cont2/ts1_2.dat 500MB) BUFFERPOOL BP16K • 自動ストレージの表スペース作成 CREATE TABLESPACE TS3 MANAGED BY AUTOMATIC STORAGE 33 © 2009 IBM Corporation DB2 管理ツール : IBM Optim Database Administrator • DB2や やInformix IDSデータベース データベースを ベー データベースを、設計、 設計、開発、 開発、管理、 管理、モニタリングする モニタリングする、 する、Eclipseベー スのツール • 試用版の 試用版のダウンロードはこちらから ダウンロードはこちらから http://www-01.ibm.com/software/data/optim/ 34 © 2009 IBM Corporation DB2、Oracleの管理コマンド • インスタンスの インスタンスの起動・ 起動・停止 • データベース作成 データベース作成 • データベースの データベースのバックアップ/リストア バックアップ リストア • 表データの データのExport/Import • モニタリング • 基本SQL操作 操作 基本 35 © 2009 IBM Corporation インスタンスの起動・停止 Oracle DB2 • インスタンスの インスタンスの開始 db2start startup • インスタンスの インスタンスの停止 • 全てのセッションが切断されるまで待つ db2stop shutdown • インスタンスの インスタンスの強制停止 • 実行中の全てのトランザクションをロール バックし、接続を切断する db2stop force shutdown immediate • インスタンスを インスタンスをメンテナンスモードで メンテナンスモードで起動 db2start db2 quiesce instance <instance name> immediate force connections 36 Startup restrict open © 2009 IBM Corporation データベースの作成 • サンプルデータベースの サンプルデータベースの作成 • サンプル表やデータを含むデータベースを作成 SQLやXqueryを実行可能 db2sampl • データベースの データベースの作成 Create database <db name> • 主なオプション: • “on” は自動ストレージパスを指定し、“dbpath on” はデータベースパスを指定 on <path> dbpath on <path> • デフォルトのページサイズを指定 pagesize <4K / 8K / 16K / 32K > • データベースの データベースの活動化 • データベースは明示的なActivateもしくは、接続によって活動化される activate db <db name> • 非活動化するためには、Deactivateコマンドを実行するか、もしくは全ての接続を切断する deactivate db <db name> 37 © 2009 IBM Corporation データベースのバックアップ • DB2バックアップユーテリティ バックアップユーテリティを バックアップユーテリティを使用した 使用したバックアップ したバックアップ • “/backup” ディレクトリへのバックアップを実行 backup db <database name> to /backup • オンラインのバックアップを実行 backup db <database name> online to /backup • リカバリー・ )を使用した データベースの リカバリー・マネージャ( マネージャ(rman) 使用したOracleデータベース した データベースのバックアップ • rmanにログイン rman target / nocatalog • バックアップ先のパスを “/backup”に指定 configure channel device type disk format='/backup/full_db_%U' • バックアップを実行 backup as backupset database plus archivelog 38 © 2009 IBM Corporation データベースのリストア • DB2バックアップユーテリティ バックアップユーテリティを バックアップユーテリティを使用した 使用したリストア したリストア • “/backup”ディレクトリからのリストア restore db <database name> from /backup taken at <backup timestamp> • 最後のトランザクションログまで適用 rollforward database <database name> to end of logs and complete • リカバリー・ )を使用した データベースの リカバリー・マネージャ( マネージャ(rman) 使用したOracleデータベース した データベースのリストア • rmanにログイン rman target / nocatalog • チャネルデバイスを “/backup”に指定 (必要に応じて) configure channel device type disk format='/backup/full_db_%U' • リストア、リカバリーを実行 RMAN> restore database; RMAN> recover database; • データベースをオープンにする RMAN> alter database open; 39 © 2009 IBM Corporation データのExport/Import • DB2 • CSVファイルにSQLステートメントで指定したデータを抽出 export to <export file> of del select * from <table name> • 表にデータを投入 ( replace または insert) import from <data file> of del [replace | insert] into <table name> • Oracle • Oracleオリジナルのフォーマットでデータを抽出 (CSV形式ではない) exp "<UID>/<password>@<database name> file<export file> tables=(<table name>)" • exp toolを使用してexportしたデータをimport imp "<UID>/<password>@<database name> file<export file> tables=(<table name>)" 40 © 2009 IBM Corporation モニタリング (1) DB2 Oracle • パラメーター設定情報 パラメーター設定情報を 設定情報を取得 select * from sysibmadm.dbcfg select * from sysibmadm.dbmcfg select * from v$parameter • メモリー状況 メモリー状況の 状況の情報を 情報を取得 select * from sysibmadm.SNAPDBM_MEMORY_POOL select * from sysibmadm.SNAPDB_MEMORY_POOL" select * from v$sga select * from v$pgastat • 接続している 接続しているアプリケーション しているアプリケーションの アプリケーションの情報を 情報を取得 select * from sysibmadm.SNAPAPPL_INFO select * from v$session • データベースの データベースの表名を 表名を取得 list tables select * from dict • データベースの データベースの表スペース情報 スペース情報を 情報を取得 select * from table(mon_get_tablespace('',-2)) 41 select * from v$tablespace; © 2009 IBM Corporation モニタリング (2) DB2 Oracle • 認証に 認証に使用された 使用されたユーザー されたユーザー名 ユーザー名を確認 select current user from sysibm.sysdummy1 show user • 詳細な 詳細な表の情報を 情報を取得 select * from sysibmadm.admintabinfo select * from dba_segments admintabinfo viewを を使用することで 使用することで、 することで、以下のよ 以下のよ うな情報 うな情報を 情報を入手することが 入手することが出来 することが出来る 出来る • 表の属性 • データ、索引、LOBやXMLオブジェクトの実 際のサイズ • LOAD,REORG,CLEANUP処理等のペン ディング状態 42 © 2009 IBM Corporation 基本SQL操作 (1) • データベースへの データベースへの接続 への接続 • DB2 connect <UID>/<password>[@connect_identifier] • Oracle connect to <database name> user <UID> using <password> • ダミー表 ダミー表を使用 • DB2(~9.5) select current date from sysibm.sysdummy1 • Oracle DB2 9.7 select sysdate from DUAL • 指定した 指定した行 した行の結果セット 結果セットを セットを取得 • DB2(~9.5) • Oracle DB2 9.7 select * from sysibmadm.dbcfg fetch first 10 rows only select * from v$parameter where rownum < 10 • 現在の 現在のタイムスタンプを タイムスタンプを取得 select current timestamp from sysibm.sysdummy1 (or dual) • DB2 • Oracle 43 select systimestamp from dual © 2009 IBM Corporation 基本SQL操作(2) • 日付の ヶ月前の 日付の操作 (4ヶ 月前の次の日) • DB2(~9.5) select current date - 4 months + 1 days from sysibm.sysdummy1 • Oracle DB2 9.7 • 時間の 時間の操作 • DB2 • Oracle select add_months(sysdate, -4) + 1 from dual select current timestamp + 5 HOURS - 3 MINUTES + 10 SECONDS from sysibm.sysdummy1 select systimestamp + INTERVAL '0 5:3:10' DAY TO SECOND from dual • 高速な 高速なデータ削除 データ削除 • DB2(~9.5) import from /dev/null of del replace into <table name> • Oracle DB2 9.7 44 truncate table <table name> © 2009 IBM Corporation Let’s go Lab1!! 45 © 2009 IBM Corporation