2012年3月21日水曜日
2012年1月20日金曜日
2011年8月17日水曜日
2011年1月25日火曜日
2010年11月24日水曜日
PostgreSQL:自分メモ
前述の記事に書いた続き。
これで2日間、157500円也。
------------------------------------------------
トレーニングの前に
内部構造
メモリ・プロセス・ストレージの構成、サーバへの接続処理、SQL の実行処理、データベースクラスタの構造、ブロックの構造、データの読み取り・書き込み
デプロイメント
システム構成の設計、ディスク容量の見積もり、インストール、データベースクラスタの作成、テーブルスペース、フィルファクタ、性能検証
セキュリティ管理
通信経路の暗号化、データの暗号化、クライアント認証、データベースオブジェクトの暗号化、監査ログ
メンテナンス
ログの取得、バックアップ、PITR、ホットスタンバイとストリーミングレプリケーション、バキューム、統計情報の更新、インデックスの再構築、ディスク容量の監視、システムカウンタの監視
性能分析
ボトルネックの調査、実行時統計情報 (統計情報ビュー)、実行計画 (EXPLAIN、auto_explain、計画タイプ)、統計情報 (pg_class テーブル、pg_stats ビュー)
性能チューニング
バキューム (maintenance_work_mem、max_fsm_pages)、読み取り・書き込み (shared_buffers、wal_buffers)、実行計画 (インデックス、work_mem)
障害対応
起動できない場合 (pg_resetxlog)、反応しない場合、停止してしまう場合 (セグメンテートン違反、OOM Killer)、データが破損した場合 (インデックスの再構築、zero_damaged_pages)
これで2日間、157500円也。
------------------------------------------------
トレーニングの前に
内部構造
メモリ・プロセス・ストレージの構成、サーバへの接続処理、SQL の実行処理、データベースクラスタの構造、ブロックの構造、データの読み取り・書き込み
デプロイメント
システム構成の設計、ディスク容量の見積もり、インストール、データベースクラスタの作成、テーブルスペース、フィルファクタ、性能検証
セキュリティ管理
通信経路の暗号化、データの暗号化、クライアント認証、データベースオブジェクトの暗号化、監査ログ
メンテナンス
ログの取得、バックアップ、PITR、ホットスタンバイとストリーミングレプリケーション、バキューム、統計情報の更新、インデックスの再構築、ディスク容量の監視、システムカウンタの監視
性能分析
ボトルネックの調査、実行時統計情報 (統計情報ビュー)、実行計画 (EXPLAIN、auto_explain、計画タイプ)、統計情報 (pg_class テーブル、pg_stats ビュー)
性能チューニング
バキューム (maintenance_work_mem、max_fsm_pages)、読み取り・書き込み (shared_buffers、wal_buffers)、実行計画 (インデックス、work_mem)
障害対応
起動できない場合 (pg_resetxlog)、反応しない場合、停止してしまう場合 (セグメンテートン違反、OOM Killer)、データが破損した場合 (インデックスの再構築、zero_damaged_pages)
PostgreSQL:自分メモ
適当にPostgreSQL9.0について見ていたら、
次のような内容で2日間トレーニングを行うというのを見つけまして。
2日間で84000円らしいです。
なんか高くない?と思いましたが、
これくらいが普通なのかもしれませんね。
この内容がマスターできたら、脱初心者になれるのでしょうか。
まぁ、自分への指標ということで、勝手にメモ。
-------------------------------------------------------
トレーニングの前に
RDBMS、テーブルの正規化、PostgreSQL の特徴
インストールと設定
データベースクラスタの作成、データベースサーバの起動・停止、ロールの作成、データベースの作成
基本的なSQL
psql、基本的な SQL (CREATE TABLE、INSERT、SELECT、UPDATE、DELETE)、データ型、インデックス
CREATE
制約、デフォルト値、ドメイン、テーブル定義の変更、一時テーブル、ビュー、継承、スキーマ
SELECT
ORDER BY、LIMIT / OFFSET、DISTINCT、GROUP BY / HAVING、CASE、結合、副問い合わせ、集合演算 (UNION、INTERSECT、EXCEPT)、カーソル
トランザクション
トランザクション (BEGIN、COMMIT、ROLLBACK、SAVEPOINT)、トランザクション隔離レベル (READ COMMITTED、SERIALIZABLE)、トランザクション同時実行制御 (行ロック、テーブルロック、デッドロック)
関数
関数の定義、SQL 関数、PL/pgSQL 関数、トリガ、プリペアードステートメント
運用管理基礎
クライアント認証、テーブルのアクセス権限、バックアップ、ログの取得、バキューム、統計情報の更新
次のような内容で2日間トレーニングを行うというのを見つけまして。
2日間で84000円らしいです。
なんか高くない?と思いましたが、
これくらいが普通なのかもしれませんね。
この内容がマスターできたら、脱初心者になれるのでしょうか。
まぁ、自分への指標ということで、勝手にメモ。
-------------------------------------------------------
トレーニングの前に
RDBMS、テーブルの正規化、PostgreSQL の特徴
インストールと設定
データベースクラスタの作成、データベースサーバの起動・停止、ロールの作成、データベースの作成
基本的なSQL
psql、基本的な SQL (CREATE TABLE、INSERT、SELECT、UPDATE、DELETE)、データ型、インデックス
CREATE
制約、デフォルト値、ドメイン、テーブル定義の変更、一時テーブル、ビュー、継承、スキーマ
SELECT
ORDER BY、LIMIT / OFFSET、DISTINCT、GROUP BY / HAVING、CASE、結合、副問い合わせ、集合演算 (UNION、INTERSECT、EXCEPT)、カーソル
トランザクション
トランザクション (BEGIN、COMMIT、ROLLBACK、SAVEPOINT)、トランザクション隔離レベル (READ COMMITTED、SERIALIZABLE)、トランザクション同時実行制御 (行ロック、テーブルロック、デッドロック)
関数
関数の定義、SQL 関数、PL/pgSQL 関数、トリガ、プリペアードステートメント
運用管理基礎
クライアント認証、テーブルのアクセス権限、バックアップ、ログの取得、バキューム、統計情報の更新
2010年8月13日金曜日
覚書:起動または利用中にDVD等のメディアを要求される場合
個人で利用するソフトの場合、
最近は、いったんインストールしてしまえば、
起動時や利用中にCDやDVD等に読みに行く仕様のソフトウェアは少ないと思います。
ただ、ちょっと前のソフトや企業が頒布しているソフトの場合、
まだまだこのパターンはあるようですね。
これ、
ちょっと知識のあるヒトから、
仮想ドライブをマウントすればいいじゃん、とか言われそう。
はい、そうです。その通り(笑)。
CDやDVDのイメージを「DVD Decrypter」等のソフトでISOイメージなんかで
まるっと保存してやって、
「DAEMON Tools Lite」等の仮想ドライブソフトでマウント、と。
最近は、いったんインストールしてしまえば、
起動時や利用中にCDやDVD等に読みに行く仕様のソフトウェアは少ないと思います。
ただ、ちょっと前のソフトや企業が頒布しているソフトの場合、
まだまだこのパターンはあるようですね。
これ、
ちょっと知識のあるヒトから、
仮想ドライブをマウントすればいいじゃん、とか言われそう。
はい、そうです。その通り(笑)。
CDやDVDのイメージを「DVD Decrypter」等のソフトでISOイメージなんかで
まるっと保存してやって、
「DAEMON Tools Lite」等の仮想ドライブソフトでマウント、と。
2010年7月20日火曜日
access vba:カーソルがある位置のコントロール名取得
タイトルがなんか変ですが。
例えばフォーカス取得時のイベントで、
Dim ctlName As String, ctlValue As Variant
ctlName = Me.ActiveControl.Name
ctlValue = Me.ActiveControl
でctlNameにコントロール名格納。
ctlValueに値取得。
サブフォームの場合は、http://www.accessclub.jp/bbs2/0095/beginter29204.htmlにあるように、
Dim ctlName As String, ctlValue As Variant
ctlName = Me!サブフォームコントロール名.Form.ActiveControl.Name
ctlValue = Me!サブフォームコントロール名.Form(ctlName)
ですね。
予断ですが、例えばコントロール名とテーブルのフィールド名が一緒だったら、
sql="select * from test where " & ctlName & " = " & ctlValue & ";"
とかいけるんでしょうかね(未検証)。
一緒じゃなくても
Select Case ctlName
Case ほにゃらら
sql="select * from test where id = " & ctlValue & ";"
Case ふもふも
sql="select * from test where name = " & ctlValue & ";"
End Select
みたいに対応するテーブルのフィールド名と一致したときに対応するsql文を組む、とか。
例えばフォーカス取得時のイベントで、
Dim ctlName As String, ctlValue As Variant
ctlName = Me.ActiveControl.Name
ctlValue = Me.ActiveControl
でctlNameにコントロール名格納。
ctlValueに値取得。
サブフォームの場合は、http://www.accessclub.jp/bbs2/0095/beginter29204.htmlにあるように、
Dim ctlName As String, ctlValue As Variant
ctlName = Me!サブフォームコントロール名.Form.ActiveControl.Name
ctlValue = Me!サブフォームコントロール名.Form(ctlName)
ですね。
予断ですが、例えばコントロール名とテーブルのフィールド名が一緒だったら、
sql="select * from test where " & ctlName & " = " & ctlValue & ";"
とかいけるんでしょうかね(未検証)。
一緒じゃなくても
Select Case ctlName
Case ほにゃらら
sql="select * from test where id = " & ctlValue & ";"
Case ふもふも
sql="select * from test where name = " & ctlValue & ";"
End Select
みたいに対応するテーブルのフィールド名と一致したときに対応するsql文を組む、とか。
2010年5月28日金曜日
SonicWallのMTU値
一度は経験しないと覚えない類のこと。
マニュアルには記載があるようですけどね。
SonicWALLにPPPoEの設定をしてネットに接続させようとしたのですが、
どうもWEBページが表示されず・・・。
WAN側はIPも取れているし、
IPアドレスを直接指定しているVPNクライアントは、
外部のVPNサーバにちゃんと接続できている・・・と。
久しぶりに自分一人で現場の機器設置を行っているので、
すっかり忘れていました。
MTUの存在を(笑)。
試しに数値を下げてみたら問題解決。
過去に何度か同じ箇所で躓いておいて良かったです。
なにごとも無駄にはならんなぁ(笑)。
マニュアルには記載があるようですけどね。
SonicWALLにPPPoEの設定をしてネットに接続させようとしたのですが、
どうもWEBページが表示されず・・・。
WAN側はIPも取れているし、
IPアドレスを直接指定しているVPNクライアントは、
外部のVPNサーバにちゃんと接続できている・・・と。
久しぶりに自分一人で現場の機器設置を行っているので、
すっかり忘れていました。
MTUの存在を(笑)。
試しに数値を下げてみたら問題解決。
過去に何度か同じ箇所で躓いておいて良かったです。
なにごとも無駄にはならんなぁ(笑)。
2009年8月22日土曜日
PostgreSQL8.3.7 Windows PostgreSQL自体が起動しない?!
お客様から(機械的に)サーバは動いているけどデータベースに接続できないと連絡が。
ファイルサーバなどにはアクセスできていること、
どのクライアントからもデータベースに接続できないとのこと、
からPostgreSQL自体の起動が怪しい・・・かな、と。
でも前日伺ったときには確かに動いてましたしねぇ。
さて、原因は実は、
今さらウィルス対策ソフトのパーソナルファイアウォールに止められていたこと(爆)
だったのですが、
現場に伺うまえにあれこれと試してみたことをメモ。
Windows版だけの変化球というか、
技術者としてそれってどうなの?的な方法ですが。
前提として、もしデータベースが動いているのであれば停止する。
1.dataフォルダのバックアップを取る。
2.ユーザーpostgesを削除してしまう。
3.PostgeSQLをアンインストールしてしまう。>dataフォルダは残りますね。
4.PostgreSQLをインストールする。>このときdataフォルダが残っているので、データベース・クラスタの初期化は行わない(行われない)。
5.必要があればバックアップを取ってあったdataフォルダを元の位置に戻す。
6.dataフォルダのアクセス権は、ユーザーpostgresでフルアクセスにしてしまう。
7.データベースが起動し、データベースへの接続が可能か確認する。
んん~?
これって他のサーバに移行したい場合には使えるんだろうか?
試してみよう。
ファイルサーバなどにはアクセスできていること、
どのクライアントからもデータベースに接続できないとのこと、
からPostgreSQL自体の起動が怪しい・・・かな、と。
でも前日伺ったときには確かに動いてましたしねぇ。
さて、原因は実は、
今さらウィルス対策ソフトのパーソナルファイアウォールに止められていたこと(爆)
だったのですが、
現場に伺うまえにあれこれと試してみたことをメモ。
Windows版だけの変化球というか、
技術者としてそれってどうなの?的な方法ですが。
前提として、もしデータベースが動いているのであれば停止する。
1.dataフォルダのバックアップを取る。
2.ユーザーpostgesを削除してしまう。
3.PostgeSQLをアンインストールしてしまう。>dataフォルダは残りますね。
4.PostgreSQLをインストールする。>このときdataフォルダが残っているので、データベース・クラスタの初期化は行わない(行われない)。
5.必要があればバックアップを取ってあったdataフォルダを元の位置に戻す。
6.dataフォルダのアクセス権は、ユーザーpostgresでフルアクセスにしてしまう。
7.データベースが起動し、データベースへの接続が可能か確認する。
んん~?
これって他のサーバに移行したい場合には使えるんだろうか?
試してみよう。
2009年8月3日月曜日
ACCESS VBA 親フォームから子フォーム(サブフォーム)のレコードソース変更
Dim cBaseQuery as String
cBaseQuery = "select * from table01"
Forms!親フォーム名!サブフォーム名.Form.RecordSource = cBaseQuery
//場合によって
Me.Requery
みたいな。
sql文は自由に組み立て可能でしょ。
cBaseQuery = "select * from table01"
Forms!親フォーム名!サブフォーム名.Form.RecordSource = cBaseQuery
//場合によって
Me.Requery
みたいな。
sql文は自由に組み立て可能でしょ。
2009年7月29日水曜日
2009年7月2日木曜日
windows server 2003 PostgreSQL8.3.7 インストール
PostgreSQL8.4.0がリリースされましたね。
Windows版を少しだけ触ってみましたが、
インストール時にスタックビルダだけ選択してインストール、という選択肢がなくなりました(泣)。
ODBCドライバだけインストールしたいんですが・・・(笑)。
まぁ8.3.xのもので間に合うんでしょうかね。
さて、
必要があってWindowsServer2003にPostgreSQL8.3.7をインストールしてみました。
ちなみにサービスパック等は当たっていません。
インストール途中で止まる・・・。
サービスが開始出来なくてインストール途中で止まっちゃいます。
あーでもないこーでもないとやっていたんですが、
結局、事前にユーザーpostgresを作っていたのが原因でした(爆)。
XPなどではPostgreSQLインストール前にユーザーpostgresを作っておくのになんの疑問も持っていなかったんですよね。
悩んだ末、試しに消してやってみたらどーなーん??
という感じでインストールを試してみたら、問題なく終わりました。
マイコンピュータ右クリックの管理から普通にpostgresに任意のユーザー権限も与えられます。
当たり前か(笑)。
あ~長かった(笑)。
追記:
ファイアウォール(SP当たっていないので、ICFですかね)の必要なポートも開けないとダメですね。
追記:
ファイアウォールは自分自身のアドレスに対してポートを開放してあげればいいみたいです。
いまいち謎ですが、localhostではない端末からのアクセスについては、configファイルを編集するので、
そちらで制御。
Windows版を少しだけ触ってみましたが、
インストール時にスタックビルダだけ選択してインストール、という選択肢がなくなりました(泣)。
ODBCドライバだけインストールしたいんですが・・・(笑)。
まぁ8.3.xのもので間に合うんでしょうかね。
さて、
必要があってWindowsServer2003にPostgreSQL8.3.7をインストールしてみました。
ちなみにサービスパック等は当たっていません。
インストール途中で止まる・・・。
サービスが開始出来なくてインストール途中で止まっちゃいます。
あーでもないこーでもないとやっていたんですが、
結局、事前にユーザーpostgresを作っていたのが原因でした(爆)。
XPなどではPostgreSQLインストール前にユーザーpostgresを作っておくのになんの疑問も持っていなかったんですよね。
悩んだ末、試しに消してやってみたらどーなーん??
という感じでインストールを試してみたら、問題なく終わりました。
マイコンピュータ右クリックの管理から普通にpostgresに任意のユーザー権限も与えられます。
当たり前か(笑)。
あ~長かった(笑)。
追記:
ファイアウォール(SP当たっていないので、ICFですかね)の必要なポートも開けないとダメですね。
追記:
ファイアウォールは自分自身のアドレスに対してポートを開放してあげればいいみたいです。
いまいち謎ですが、localhostではない端末からのアクセスについては、configファイルを編集するので、
そちらで制御。
2009年6月30日火曜日
PostgreSQL8.3.7ならスタックビルダのみインストール可能。
インストール時にスタックビルダのみインストール可能。
以前も同じ仕様でしたが、一時期本体をインストールしないとスタックビルダが使えない、
というバージョンもあったはず。
これでODBCドライバもインストールし易くなりました。
(ってちょっと古い話題ですね;笑)
ユーザーpostgresを作る必要もないし、
どこかからODBCドライバを落としてくることもないのでいいのです。
以前も同じ仕様でしたが、一時期本体をインストールしないとスタックビルダが使えない、
というバージョンもあったはず。
これでODBCドライバもインストールし易くなりました。
(ってちょっと古い話題ですね;笑)
ユーザーpostgresを作る必要もないし、
どこかからODBCドライバを落としてくることもないのでいいのです。
2009年6月29日月曜日
ACCESS VBA タブコントロール 任意のページを開く。
タブコントロールで任意のページを開く方法。
Me.(タブコントロールのページ名).SetFocus
当然、この記述だと現在のフォームでしか反映されませよね。
(タブコントロール自体の名前).Value = i
iはタブコントロールのページ番号で一番左から0、1、2・・・。
iは他のフォームからでも指定可能ですね。
ほかにもありそうですが。
Me.(タブコントロールのページ名).SetFocus
当然、この記述だと現在のフォームでしか反映されませよね。
(タブコントロール自体の名前).Value = i
iはタブコントロールのページ番号で一番左から0、1、2・・・。
iは他のフォームからでも指定可能ですね。
ほかにもありそうですが。
2009年6月25日木曜日
ACCESS VBA Excelの操作(保存と終了)
Dim objE As Object
Set objE = CreateObject("Excel.Application")
objE.Visible = True
objE.UserControl = True
With objE
.Workbooks.Open Filename:= _
"ファイルのパス"
.Range("A3").Select
.Range("A3").Value = ”TEST"
'**保存部分
.ActiveWorkBook.SaveAs Filename:= _
"ファイルのパス"
'**閉じる部分
.ActiveWorkBook.Close SaveChanges:=False
.Quit
End With
こんな感じですかね。
とりあえず動きますが、
この記述がいいのか悪いのかまではわかりません(--;
Set objE = CreateObject("Excel.Application")
objE.Visible = True
objE.UserControl = True
With objE
.Workbooks.Open Filename:= _
"ファイルのパス"
.Range("A3").Select
.Range("A3").Value = ”TEST"
'**保存部分
.ActiveWorkBook.SaveAs Filename:= _
"ファイルのパス"
'**閉じる部分
.ActiveWorkBook.Close SaveChanges:=False
.Quit
End With
こんな感じですかね。
とりあえず動きますが、
この記述がいいのか悪いのかまではわかりません(--;
ACCESS VBA Excelの操作(セルに入力)
ファイルを開くところは前回をそのまま流用。
例えばB3セルにTESTと入力。
Dim objE As Object
Set objE = CreateObject("Excel.Application")
objE.Visible = True
objE.UserControl = True
With objE
.Workbooks.Open Filename:= _
"ファイルのパス"
.Range("B3").Select
.Range("B3").Value = "TEST"
End With
みたいな。
Excelでは、入力部分は
ActiveCell.FormulaR1C1 = "TEST"
て書いてありますが。
例えばB3セルにTESTと入力。
Dim objE As Object
Set objE = CreateObject("Excel.Application")
objE.Visible = True
objE.UserControl = True
With objE
.Workbooks.Open Filename:= _
"ファイルのパス"
.Range("B3").Select
.Range("B3").Value = "TEST"
End With
みたいな。
Excelでは、入力部分は
ActiveCell.FormulaR1C1 = "TEST"
て書いてありますが。
ACCESS VBA Excelの操作(ファイルを開く)
http://www.ken3.org/index.html様
http://www.nurs.or.jp/~ppoy/access/index.html様
などなどを参考にさせて頂きました。
ご存知のように、
Excelにはマクロの記録、という機能がありますよね。
記録したマクロは編集を選んでやると、
エディターが起動して、どんなコードが書かれているのか確認できます。
たとえば既存のファイルを開く、という操作を記録して覗いてみると
Workbooks.Open Filename:= _
"ファイルのパス"
といったように。
ACCESSのほうでは、
Dim objE As Object
Set objE = CreateObject("Excel.Application")
objE.Visible = True
objE.UserControl = True
With objE
.Workbooks.Open Filename:= _
"ファイルのパス"
End With
などと記述してやってフォームに設置したボタンのクリック時などに設定してやれば、
自分で配置したボタンをクリックしたときにファイルが開きます。
基本はExcelで記録したマクロの命令文の頭に、
ACCEESSで作成したオブジェクトをくっつける、ということらしいですね。
http://www.nurs.or.jp/~ppoy/access/index.html様
などなどを参考にさせて頂きました。
ご存知のように、
Excelにはマクロの記録、という機能がありますよね。
記録したマクロは編集を選んでやると、
エディターが起動して、どんなコードが書かれているのか確認できます。
たとえば既存のファイルを開く、という操作を記録して覗いてみると
Workbooks.Open Filename:= _
"ファイルのパス"
といったように。
ACCESSのほうでは、
Dim objE As Object
Set objE = CreateObject("Excel.Application")
objE.Visible = True
objE.UserControl = True
With objE
.Workbooks.Open Filename:= _
"ファイルのパス"
End With
などと記述してやってフォームに設置したボタンのクリック時などに設定してやれば、
自分で配置したボタンをクリックしたときにファイルが開きます。
基本はExcelで記録したマクロの命令文の頭に、
ACCEESSで作成したオブジェクトをくっつける、ということらしいですね。
登録:
投稿 (Atom)