.bashrc と .bash_profile
postgreSQLをrpmでインストールしたところ、pg_ctlなどのコマンドがパスが通っておらず使えなかった。
パスを通したさいのメモ。
-------
-bash-4.1$ diff .bash_profile .bash_profile_20161026
4,5d3
< PATH="$PATH":/usr/pgsql-9.4/bin/
<
-------
-------
[ -f /etc/profile ] && source /etc/profile
PGDATA=/var/lib/pgsql/9.4/data
export PGDATA
PATH="$PATH":/usr/pgsql-9.4/bin/
# If you want to customize your settings,
# Use the file below. This is not overridden
# by the RPMS.
[ -f /var/lib/pgsql/.pgsql_profile ] && source /var/lib/pgsql/.pgsql_profile
--------
--------
[root@yukinon bin]# su postgres
bash-4.1$
bash-4.1$
bash-4.1$ pg_
pg_basebackup pg_dump pg_dumpall pg_restore
--------
--------
[root@yukinon bin]# su - postgres
-bash-4.1$ pg_
pg_basebackup pg_controldata pg_dump pg_isready pg_resetxlog pg_test_fsync
pg_config pg_ctl pg_dumpall pg_receivexlog pg_restore
--------
sshでログインすると、.bash_profile
-> bashrc
の順に実行されます。
.bashrc :シェル起動時に読み込まれる。
.bash_profile :ログイン時のみ読み込まれる。
su - :ログインし、シェルを起動する。
su :シェルをきどうするのみ。
■参考にさせていただいたもの
postgresqlのバックアップ/リストア(実機)
表題について、実機で確認しながら勉強。
以下、メモと理解。
○バックアップ(スクリプト形式)
-----
pg_dump postgres > dump_postgres_`date +%Y%m%d_%H%M%S`
pg_dumpall > dump_all_`date +%Y%m%d_%H%M%S`
-----
○バックアップ(アーカイブ形式)
-----
pg_dump -Fc db3 > dump_db3_Fc_`date +%Y%m%d_%H%M%S`
-----
○リストア
-----
・成功
pg_restore -v -C -d postgres dump_db3_Fc_20161010_222326
-v:進捗状況を詳細表示
-C:リストア前にDBを作成する。
-d:DB作成の際に接続するDBを指定する(作成するDBを指定するのではない。)
・失敗
-bash-4.1$ pg_restore -C -d db3 dump_db3_Fc_20161010_222326
pg_restore: [アーカイバ(db)] データベース"db3"への接続が失敗しました: FATAL: データベース"db3"は存在しません
-----
○「pg_dump」
・データベースを指定してダンプする。
・スクリプト形式(デフォルト)
テキスト形式。SQL文。psqlでのみリストア可能。dbはcreateされない?。
・アーカイブ形式
バイナリ形式。pg_restoreでのみリストア可能。
○「pg_dumpall」
・データベースクラスタ全体をダンプする。
・スクリプト形式のみ。アーカイブ形式はない。
○テンプレートDBは削除できない。
template0とtemplate1は、createdbやcreate databaseをした時のひな形として利用されるそう。
-----
postgres=# DROP DATABASE template1;
ERROR: テンプレートデータベースを削除できません
postgres=# DROP DATABASE template0;
ERROR: テンプレートデータベースを削除できません
-bash-4.1$ dropdb template0
dropdb: データベースの削除に失敗しました: ERROR: テンプレートデータベースを削除できません
-bash-4.1$ dropdb template1
dropdb: データベースの削除に失敗しました: ERROR: テンプレートデータベースを削除できません
-----
○DB作成、削除に専用コマンドがある。
テンプレートを指定するオプションがある。デフォルトは「template1」
-----
-bash-4.1$ createdb --template template0 db3;
-bash-4.1$
-bash-4.1$ dropdb db3
-bash-4.1$
-----
次回、pg_basebackup
コマンドについて。
今回実施したpg_dumpやpg_dumpallとの違いについて調べたいです。
■参考にさせていただいたもの
PostgreSQL/template0とtemplate1の違いについて - 調べる.db
PostgreSQLのバックアップ/リカバリ
oracleとposgresqlは似ているようです。
MySQLだけ、ログが二種類あったり、一貫性のあるバックアップしかできなかったりと特殊なようです。
以下、postgresql部分についての理解、書いていきます。
○ベースバックアップ
リカバリを実行してPITRを実施できるバックアップのこと。
orcleと同様に一貫性が取れていない状態。
○分離ブロック
ホットバックアップ(オンラインバックアップ)取得中、
データファイルのと、バックアップによるデータファイル読み取りが競合する可能性がある。
ブロックのIO単位と、OSレベルのIO単位が異なることに起因して、分離ブロックが発生する。←いまいちよくわからない。
分離ブロックは不正なブロックなので、修正する必要あり。
○物理バックアップ
cpコマンド、rsyncコマンドなどで、データファイルをコピーしてバックアップすること。
オンラインでもオフラインでも実施できる。
○論理バックアップ
pg_dumpコマンドなどで、SQL形式などに出力するバックアップ
■参考にさせていただいたもの。
postgresql DB監視
web系は一旦お休み。
近頃、DBアーキテクチャの理解はまずまず進み、話もわかるようになりました。
しかし、オペレーションが全くできないのでそこを改善したいです。
OSSでお手軽なpostgresqlで勉強します。
○監視
PDCAを回すために監視する。
システムに対してもPDCAを回す、というのが今までになかった観点。
・OSレベルの監視
vmstat
iostat
mpstat
sar
ps
free
・DBレベルの監視
眠くてまとめ切れていませんが、監視寒天だけでなく
全体を把握しやすいslideでした。
次回は「PostgreSQL運用管理入門 」のsllide
■参考にさせていただいたもの
HTML5とは
昨日に引き続きWeb系の調べ物。
以下、自分の理解。
結局、HTML5と聞かれても、答えられるレベルにはならなかった。
○HTML5とは
2014/10/28勧告。正式な仕様となる。
狭義のHTML5は、新しいHTMLと新しいJavaScript API。よくわからん。
ブラウザの互換性の問題をHTML5は解決する。
○HTML5の大まかなカテゴリ
・Semantics
・OFFline & Strage
・Multimedia
・3D, Graphics & Effects
・Connectivity
・Device Access
・Performance & Intergration
・Styling(CSS3)
○W3C( )
Webの標準化団体。
W3C勧告となった文書は、他業界での工業規格と同等。
元はXHTMLを推していた。
○WHATWG(ワットダブルジー)
Apple、Mozilla、Operaに所属するメンバーにより立ち上げられた。のちにgoogleも参加。
元はHTMLの拡張を要求していた。
○CSS3
広義のHTML5に含まれる。
全体がモジュール化されたらしい。
○MIMEタイプ
URLのついているもの全てにある、どう表示・処理すればいいかの唯一の指標。
へー。
次回はネイティブアプリ、Webアプリ、Webページについて調べる。
■今後調べたいワード
・MIMEタイプ
■参考にさせていただいたもの
フロントエンドエンジニアとは
Webやらhttpについて知りたいと思い、適当にslideshareをあさっていると、フロントエンドエンジニアという言葉を見かけました。
よく耳にはしていましたが、意味がわかっていなかったので簡単に調べてみました。
以下、自分の理解。
○フロントエンドエンジニア
ユーザがいじるところ、ユーザが見るところを開発するエンジニア。
技術的には、HTML CSS JavaScriptとか。
クライアントサイドとnearly equalなのかな。
画面開発する人。
○バックエンドエンジニア
ユーザから見えないところ、裏で処理しているところを開発するエンジニア。
技術的には、Javaとかなのかな。よくわからなかった。PHP、Rubyもこっち?
サーバサイドとnearly equalなのかな。
○DOM
プログラムでHTML(やXML)を扱うための仕様だそう。
次回はhtml5について調べたいと思います。
■参考にさせていただいたもの