石井 達夫 監修
笠原 辰仁 著
北川 俊広 著
坂井 潔 著
坂本 昌彦 著
佐藤 友章 著
ホットスタンバイ/ストリーミングレプリケーションを徹底解説。本書は、代表的なオープンソースのデータベース(RDBMS)である「PostgreSQL」の入門書です。Windows/Linux、どちらのユーザーでも気軽にPostgreSQLを始められるように、両環境でのインストール・操作を丁寧に解説しているほか、管理・運用マニュアルとしても長く利用できる情報をまとめています。
この第3版では、最新バージョン9.0で追加された、本体組み込みのレプリケーション(ホットスタンバイ、ストリーミングレプリケーション)などの各種新機能や、PHP+PostgreSQLによるアプリケーション作り、Java/Perl/Python/Ruby/.NET Framework/Excelからのアクセス方法な ど、大幅な加筆・修正を行っています。第一線で活躍する執筆陣による充実した解説により、最新のPostgreSQLの世界の扉をぜひ開いてみてください。
1 PostgreSQLについて知ろう
1.1 データベースとは
1.1.1 データベースの役割
1.1.2 データモデル
1.2 PostgreSQLの歴史
1.2.1 postgres
1.2.2 Postgres95
1.2.3 PostgreSQL
1.3 PostgreSQL 9.0は何が違うのか
1.3.1 本体組み込みのレプリケーション
1.3.2 アクセス権限設定の拡張
1.3.3 DO文による関数のインライン実行
1.3.4 64ビットWindowsへのネイティブ対応
1.4 WindowsユーザーのためのPostgreSQL
1.5 PostgreSQLユーザー会と情報収集の方法
2 インストール(Windows編/Linux編)
2.1 インストールの準備
2.2 Windowsへのインストール
2.2.1 動作環境
2.2.2 one click installerのダウンロード
2.2.3 PostgreSQLのインストール
2.2.4 スタックビルダによるソフトウェアのインストール
2.2.5 パスの設定
2.2.6 アンインストール
2.3 LinuxへのYumによるインストール
2.3.1 共有メモリの設定
2.3.2 Yumリポジトリの設定
2.3.3 PostgreSQLのインストール
2.3.4 環境設定
2.3.5 アンインストール
2.4 Linuxへのソースコードからのインストール
2.4.1 必要なツール
2.4.2 アカウントの作成
2.4.3 PostgreSQLのインストール
2.4.4 環境設定
2.4.5 アンインストール
2.5 PostgreSQLの起動
2.5.1 データベースクラスタの作成
2.5.2 サーバーの設定
2.5.3 サーバーの起動/停止
2.6 サーバーの自動起動
2.6.1 Windowsでの自動起動
2.6.2 Linuxでの自動起動
2.7 PostgreSQL操作入門
2.7.1 ユーザーの作成
2.7.2 データベースの作成
2.7.3 データベースへのログイン
3 WindowsでPostgreSQLを使う~かんたんpgAdminマニュアル
3.1 pgAdmin III
3.2 サーバーの追加
3.3 データベースの構築
3.4 データの編集
3.4.1 テーブルの作成
3.4.2 データビューを使ったデータ編集
3.4.3 制約違反を試す
3.4.4 データの削除
3.4.5 データの検索
3.5 管理コマンドの実行
3.5.1 メンテナンス
3.5.2 テーブルスペースの管理
3.5.3 ログインロールとグループロールの管理
3.5.4 サービスの起動/停止
3.5.5 バックアップ/リストア
4 SQL入門
4.1 RDBMSを操作するための言語―SQL
4.2 psql
4.2.1 psqlの起動
4.2.2 データベースへの接続
4.2.3 psqlのバックスラッシュコマンド
4.3 DDL(CREATE/DROP)
4.3.1 スキーマの作成(CREATE SCHEMA)
4.3.2 スキーマの削除(DROP SCHEMA)
4.3.3 テーブルの作成(CREATE TABLE)
4.3.4 テーブルの削除(DROP TABLE)
4.3.5 シーケンスの作成(CREATE SEQUENCE)
4.3.6 シーケンスの削除(DROP SEQUENCE)
4.4 DML(INSERT/SELECT/UPDATE/DELETE)
4.4.1 挿入(INSERT)
4.4.2 検索(SELECT)
4.4.3 更新(UPDATE)
4.4.4 削除(DELETE)
4.5 DML(SELECTのオプション)
4.5.1 SELECT...AS
4.5.2 SELECT INTO
4.5.3 LIMIT...OFFSET
4.5.4 GROUP BY/HAVING
4.6 DDL(インデックスと制約)
4.6.1 インデックスとは
4.6.2 インデックスの作成(CREATE INDEX)
4.6.3 インデックスの削除(DROP INDEX)
4.6.4 制約とは
4.6.5 NOT NULL制約
4.6.6 ユニーク(UNIQUE)制約
4.6.7 主キー(PRIMARY KEY)制約
4.6.8 チェック(CHECK)制約
4.6.9 デフォルト(DEFAULT)制約
4.6.10 外部キー(FOREIGN KEY)制約
4.7 トランザクション
4.7.1 トランザクションの開始(BEGIN)
4.7.2 トランザクションのコミット(COMMIT)
4.7.3 トランザクションのロールバック(ROLLBACK/ABORT)
4.7.4 セーブポイント(SAVEPOINT)
4.7.5 ロック
4.8 その他のSQLコマンド
4.8.1 COPY
4.8.2 TRUNCATE
4.8.3 CLUSTER
5 PHPでPostgreSQLを使う~PHPアプリケーションの作成
5.1 開発環境のセットアップ
5.1.1 one click installerによるPostgreSQLのインストールとセットアップ
5.1.2 スタックビルダによるApache/PHPのインストール
5.1.3 PHPの設定
5.2 データベースプログラムを書いてみよう
5.2.1 データベースとテーブルの作成
5.2.2 データベースへの接続と切断
5.2.3 テーブルの内容の表示
5.2.4 テーブルへのデータ挿入
5.2.5 テーブルのデータの変更/削除
5.2.6 データベースプログラミングの要点
5.3 ひとりTwitterを作ってみよう
5.3.1 ひとりTwitterの機能
5.3.2 ひとりTwitterの大まかな流れ
5.3.3 テーブルの設計
5.3.4 ユーザー情報の登録とログイン処理
5.3.5 タイムラインの表示
5.3.6 ツイートの書き込み処理/削除処理
5.3.7 フォロー/アンフォローの処理
5.3.8 ログアウトと退会処理
5.3.9 まとめ
6 いろいろなプログラミング言語でPostgreSQLを使う
6.1 データベースの準備
6.2 Java
6.2.1 JavaからPostgreSQLにアクセスするには
6.2.2 Javaのインストール
6.2.3 JDBCドライバのダウンロード
6.2.4 コマンドパス、クラスパスの設定
6.2.5 サンプルプログラムの作成と解説
6.3 Perl
6.3.1 PerlからPostgreSQLにアクセスするには
6.3.2 Perlのインストール
6.3.3 perl-DBI、perl-DBD-Pgのインストール
6.3.4 サンプルプログラムの作成と解説
6.4 Python
6.4.1 PythonからPostgreSQLにアクセスするには
6.4.2 Pythonのインストール
6.4.3 PyGreSQLのインストール
6.4.4 サンプルプログラムの作成と解説
6.5 Ruby
6.5.1 RubyからPostgreSQLにアクセスするには
6.5.2 Rubyのインストール
6.5.3 Ruby / DBI、dbd-pgのインストール
6.5.4 サンプルプログラムの作成と解説
6.6 .NET Framework
6.6.1 .NET FrameworkからPostgreSQLにアクセスするには
6.6.2 Visual Studio 2010のインストール
6.6.3 Npgsqlのダウンロード
6.6.4 サンプルプログラムの作成と解説
6.7 ExcelからPostgreSQLにアクセスする
6.7.1 psqlODBCのインストール
6.7.2 psqlODBCの設定
6.7.3 Excelからテーブルのデータを参照する
7 PostgreSQLをきちんと使う
7.1 起動と停止
7.1.1 起動
7.1.2 停止
7.1.3 設定ファイルの再読み込みと再起動
7.2 設定ファイルの変更
7.2.1 設定の変更方法
7.2.2 設定の例
7.3 PostgreSQLのプロセス
7.3.1 フロントエンドとバックエンド
7.3.2 バックエンドの役割
7.3.3 フロントエンド
7.3.4 メモリ構造
7.4 PostgreSQLのデータ
7.4.1 データベースファイルの格納場所
7.4.2 データの一覧
7.5 日本語の扱いについて
7.5.1 ロケール
7.5.2 文字コード
7.5.3 日本語とデータ型、関数、演算子
7.5.4 EUC_JPとSJIS
8 PostgreSQLをセキュアに使う
8.1 ネットワークからのアクセスの制御
8.1.1 postgresql.confのlisten_addresses
8.1.2 pg_hba.conf―ホストベース認証
8.2 データベースオブジェクトへのアクセス権限
8.2.1 所有者とスーパーユーザー
8.2.2 権限の付与/剥奪
8.2.3 権限の参照
8.2.4 UPDATE/DELETE権限とSELECT権限
8.2.5 列/行の参照の許可
8.2.6 特定の操作の許可
9 PostgreSQLを運用する
9.1 PostgreSQL で必要となる運用項目
9.1.1 DB の状態を把握する
9.1.2 DB の状態を最適に保つ
9.1.3 DB を守る
9.2 ログの監視
9.2.1 ログの設定
9.2.2 深刻度レベル
9.2.3 有用なログ関連の設定
9.3 稼働統計情報の収集
9.3.1 稼働統計情報とは
9.3.2 運用上重要な稼働統計情報
9.3.3 オブジェクトサイズの確認
9.3.4 OS のリソースやログの確認
9.4 VACUUM
9.4.1 PostgreSQL は追記型
9.4.2 VACUUMとは
9.4.3 自動VACUUM
9.4.4 FSMとVM
9.5 ANALYZE
9.5.1 ANALYZE コマンド
9.6 REINDEX
9.6.1 インデックスとは?
9.6.2 REINDEX について
9.7 CLUSTER とVACUUM FULL
9.7.1 物理サイズの肥大化
9.7.2 CLUSTER
9.7.3 VACUUM FULL
9.8 バックアップとリストア
9.8.1 物理バックアップと論理バックアップ
9.8.2 pg_dump について
9.8.3 pg_dump の使い方
9.8.4 pg_dump のオプション
9.8.5 pg_restore
9.8.6 pg_dumpall
9.9 PostgreSQL のバージョンアップ
9.9.1 メジャーバージョンアップの実施
10 PITRを使ってデータを高信頼化する
10.1 WAL
10.2 PITRを使ったリカバリの概要
10.3 トランザクションログを待避するための設定
10.4 バックアップの手順
10.5 リカバリの基本的な手順
10.6 任意の時点へのリカバリ
10.6.1 タイムラインを使ったリカバリ
11 レプリケーションを使う
11.1 レプリケーションとは
11.1.1 PostgreSQL でのレプリケーション
11.1.2 PostgreSQL のレプリケーションの特徴
11.2 レプリケーションの構成と手順の概要
11.2.1 レプリケーションの構成
11.2.2 レプリケーションの手順の概要
11.2.3 プライマリ/スタンバイの設定ファイルに記載する項目
11.3 ホットスタンバイによる負荷分散
11.3.1 ホットスタンバイとは
11.3.2 ホットスタンバイを利用するための手順
11.3.3 アーカイブログの転送設定
11.3.4 データベースクラスタの作成
11.3.5 プライマリのデータベースバックアップの取得
11.3.6 ホットスタンバイの設定
11.3.7 ホットスタンバイの確認
11.4 ストリーミングレプリケーションによる高可用化
11.4.1 ストリーミングレプリケーションとは
11.4.2 ストリーミングレプリケーションを利用するための手順
11.4.3 ストリーミングレプリケーションの設定(プライマリ)
11.4.4 ストリーミングレプリケーションの設定(スタンバイ)
11.4.5 ストリーミングレプリケーションの確認
11.5 フェイルオーバー
11.5.1 フェイルオーバーシナリオ
11.5.2 フェイルオーバーの実施
11.5.3 スタンバイの再構成
11.6 レプリケーションにおける注意点
11.6.1 スタンバイでできる処理の詳細
11.6.2 スタンバイにおける参照性とリカバリの競合
11.6.3 PostgreSQL でのレプリケーションの使いどころ
11.7 レプリケーションのまとめ
12 PostgreSQLを便利に使う
12.1 PostgreSQLを使った全文検索
12.1.1 準備
12.1.2 PostgreSQLによる全文検索方法
12.1.3 PostgreSQLマニュアル検索システムの構築
12.1.4 まとめ
12.2 GUIデバッグツール [PL/pgSQLデバッガ]
12.2.1 PL/pgSQLデバッガを利用するための準備(Windowsの場合)
12.2.2 PL/pgSQLデバッガを利用するための準備(UNIX系OSの場合)
12.2.3 デバッグの実行
12.2.4 PL/pgSQLデバッガの使いどころ
索引
内容についてのお問い合わせは、正誤表、追加情報をご確認後に、お送りいただくようお願いいたします。
正誤表、追加情報に掲載されていない書籍内容へのお問い合わせや
その他書籍に関するお問い合わせは、書籍のお問い合わせフォームからお送りください。
本書の書影(表紙画像)をご利用になりたい場合は書影許諾申請フォームから申請をお願いいたします。
書影(表紙画像)以外のご利用については、こちらからお問い合わせください。
刷数は奥付(書籍の最終ページ)に記載されています。
書籍の種類:
書籍の刷数:
本書に誤りまたは不十分な記述がありました。下記のとおり訂正し、お詫び申し上げます。
対象の書籍は正誤表がありません。
発生刷 | ページ数 | 書籍改訂刷 | 電子書籍訂正 | 内容 | 登録日 | ||||
---|---|---|---|---|---|---|---|---|---|
1刷 | 004 「1.2.1 postgres」項の7~8行目 |
2刷 | 未 |
|
2011.07.25 | ||||
1刷 | 109 本文7行目のコマンド構文 |
2刷 | 未 |
|
2011.07.25 | ||||
1刷 | 123 本文8行目 |
2刷 | 未 |
|
2011.07.25 | ||||
1刷 | 247 下から4行目 |
2刷 | 未 |
|
2011.05.26 | ||||
1刷 | 267 上部コードリストの2つ目のSELECT文(コードリスト5行目) |
2刷 | 未 |
|
2011.07.25 | ||||
1刷 | 275 下から4行目 |
2刷 | 未 |
|
2011.07.25 | ||||
1刷 | 279 「また、pg_size_pretty関数を使うと」の下のコードリスト |
2刷 | 未 |
|
2011.07.25 | ||||
1刷 | 279 下から1行目 |
2刷 | 未 |
|
2011.07.25 | ||||
1刷 | 296 本文4行目 |
2刷 | 未 |
|
2011.07.25 | ||||
1刷 | 297 本文3行目 |
2刷 | 未 |
|
2011.07.25 |