【oracle】 GI (11.2.0.4)インストールしようとするとホスト名に大文字が含まれていたらINS-06006エラー発生
Linux環境にGridInfrastructure(11.2.0.4)をOUIを利用してインストール・アップグレードしようとした場合に、インストール対象のホスト名には要注意です。
ホスト名に大文字が含まれていた場合、対象ホスト間をパスワードなしでSSH接続できる状態にあったとしてもNodeSelection画面でINS-06006エラーが発生して先に進めない状態になるバグあり。
当バグに関するMOS公式ドキュメントIDは1768391.1です。
環境
- Redhat6.5
- GI(11.2.0.4)
解決策
OUI起動コマンド実行時に、SSHのチェックを実行しないためのオプションを追加する。
./runInstaller
↓
./runInstaller -J-Doracle.install.ssh.setupCheckEnabled=false
【windows】 個人的にちょっと便利だと思っているショートカットキーメモ
キーボードのみで右クリックメニュー表示
操作対象のファイル/フォルダを選択している状態で[Shift]
+[F10]
(ちなみに、右クリックで表示されるメニューはコンテキストメニューというらしいです。)
地味ですが便利です。 自分はよくvagrantを利用して仮想環境を立ち上げる際に以下の操作をしています。
- エクスプローラより
Vagrantfile
を格納しているフォルダを選択 [Shift]
+[F10]
キーでコンテキストメニュー表示[w]
を押してコマンドウィンドウをここで表示
選択- 選択フォルダに移動している状態でコマンドプロンプトが立ち上がることを確認
vagrant up
実行- 仮想環境起動!!
これでキーボードだけで仮想環境起動まで実行できます。
(マウス使うのと大差ないかも?)
アクティブウィンドウ終了 / windowsのシャットダウンメニュー表示
[alt]
+[F4]
でアクティブウィンドウが閉じることができます。
(有無を言わさず閉じられるので要注意)
また、デスクトップ上で上記ショートカットキーを実行するとwindowsのシャットダウンメニューが表示されます。
スタートメニューからWindowsをシャットダウンさせようとした場合、WindowsUpdateが実行されて中々帰れない..という状況に陥って困った経験がある方もいるかと思います。
WindowsUpdateを適用しないで終了したい場合は上記コマンドを実行してwindowsのシャットダウンメニューよりシャットダウン
を選択すると幸せになれます。
※ Windows8以降からはwindowsのシャットダウンメニューからシャットダウン
が選択できず、更新プログラムをインストールしてシャットダウン
しか選択できないようになったみたいです。
検証環境が自分には用意できていないので未検証ですが。。
詳しくは下記をご参照ください。 Windows TIPS:Windows 7/8/8.1で更新プログラムのインストールをスキップしてシャットダウンさせる - @IT
【linux】 現在ログイン中ユーザーの利用状況を確認
コマンド
w [ユーザー名]
コマンドを実行することで現在ホストにログインしている指定ユーザーの利用状況を確認することができます。
また、ユーザー名を指定しないで実行することで、ログインしている全てのユーザーの利用状況が確認できます。
Show who is logged on and what they are doing.
実行ログ
[root@vagrant-centos65 ~]# w 21:50:11 up 2:27, 2 users, load average: 0.00, 0.00, 0.00 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT vagrant pts/0 192.168.33.1 18:39 21.00s 3.71s 0.18s sshd: vagrant [priv] root pts/1 192.168.33.1 21:50 1.00s 0.13s 0.02s w
各フィールド詳細
フィールド名 | 備考 |
---|---|
USER | ユーザー名 |
TTY | 端末 |
FROM | リモートホスト |
LOGIN@ | ログイン時刻 |
IDLE | 入力待ち状態時間 |
JCPU | 全てのプロセスの処理時間 |
PCPU | 実行中プロセスの処理時間 |
WHAT | 実行中のプロセス |
オプション
オプション | 備考 |
---|---|
-h | ヘッダを省略 |
-s | JCPU, PCPU, WHATフィールドを省略 |
-f | FROM(リモートホスト)フィールドを省略 |
-V | バージョンを確認 |
【postgresql】 yumを利用してインストール
環境
CentOS 6.5
リポジトリ追加
公式で配布している各環境用のRPMファイルを下記サイトよりダウンロードしてインストール
PostgreSQL RPM Repository (with Yum)
今回は下記RPMファイルをインストールしました
[root@vagrant-centos65 ~]# rpm -ivh /vagrant/pgdg-centos94-9.4-1.noarch.rpm warning: /vagrant/pgdg-centos94-9.4-1.noarch.rpm: Header V4 DSA/SHA1 Signature, key ID 442df0f8 : NOKEY Preparing... ########################################### [100%] 1:pgdg-centos94 ########################################### [100%] [root@vagrant-centos65 ~]# [root@vagrant-centos65 ~]# [root@vagrant-centos65 ~]# [root@vagrant-centos65 ~]# rpm -ql pgdg-centos94 /etc/pki/rpm-gpg /etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG-94 /etc/yum.repos.d/pgdg-94-centos.repo [root@vagrant-centos65 ~]# [root@vagrant-centos65 ~]# [root@vagrant-centos65 ~]# [root@vagrant-centos65 ~]# rpm -qi pgdg-centos94 Name : pgdg-centos94 Relocations: (not relocatable) Version : 9.4 Vendor: (none) Release : 1 Build Date: Thu 15 May 2014 09:29:57 PM JST Install Date: Tue 05 May 2015 07:07:43 PM JST Build Host: koji-sl6-x86-64-pg94 Group : System Environment/Base Source RPM: pgdg-centos94-9.4-1.src.rpm Size : 2168 License: BSD Signature : DSA/SHA1, Thu 15 May 2014 09:29:57 PM JST, Key ID 1f16d2e1442df0f8 URL : http://yum.postgresql.org Summary : PostgreSQL 9.4.X PGDG RPMs for CentOS - Yum Repository Configuration Description : This package contains yum configuration for CentOS, and also the GPG key for PGDG RPMs. [root@vagrant-centos65 ~]# [root@vagrant-centos65 ~]# [root@vagrant-centos65 ~]# [root@vagrant-centos65 ~]# cat /etc/yum.repos.d/pgdg-94-centos.repo [pgdg94] name=PostgreSQL 9.4 $releasever - $basearch baseurl=http://yum.postgresql.org/9.4/redhat/rhel-$releasever-$basearch enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG-94 [pgdg94-source] name=PostgreSQL 9.4 $releasever - $basearch - Source failovermethod=priority baseurl=http://yum.postgresql.org/srpms/9.4/redhat/rhel-$releasever-$basearch enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG-94
PostgreSQLインストール
下記パッケージをインストール
[root@vagrant-centos65 ~]# yum search postgresql94-server postgresql94-server.x86_64 : The programs needed to create and run a PostgreSQL server
postgresql94-serverをインストールすることで下記パッケージがインストールされます。
- postgresql94-server
- postgresql94
- postgresql94-libs
備考
各パッケージ詳細
postgresql94
PostgreSQLのクライアント機能群
postgresql94.x86_64 : PostgreSQL client programs and libraries
インストールすることで追加される機能
機能 | 備考 |
---|---|
/usr/pgsql-9.4/bin/clusterdb | PostgreSQLデータベースをクラスタ化する |
/usr/pgsql-9.4/bin/createdb | 新しいPostgreSQLデータベースを作成する |
/usr/pgsql-9.4/bin/createlang | PostgreSQLの手続き言語をインストールする ※廃止予定 |
/usr/pgsql-9.4/bin/createuser | 新しいPostgreSQLのユーザアカウントを定義する |
/usr/pgsql-9.4/bin/dropdb | PostgreSQLデータベースを削除する |
/usr/pgsql-9.4/bin/droplang | PostgreSQLの手続き言語を削除する ※廃止予定 |
/usr/pgsql-9.4/bin/dropuser | PostgreSQLのユーザアカウントを削除する |
/usr/pgsql-9.4/bin/pg_basebackup | PostgreSQLクラスタのベースバックアップを取得する |
/usr/pgsql-9.4/bin/pg_config | インストールしたバージョンのPostgreSQLに関する情報を提供する |
/usr/pgsql-9.4/bin/pg_dump | PostgreSQLデータベースをスクリプトファイルまたは他のアーカイブファイルへ抽出する |
/usr/pgsql-9.4/bin/pg_dumpall | PostgreSQLのデータベースクラスタをスクリプトファイルへ抽出する |
/usr/pgsql-9.4/bin/pg_isready | PostgreSQLサーバの接続状態を検査する |
/usr/pgsql-9.4/bin/pg_receivexlog | PostgreSQLサーバからトランザクションログをストリームする |
/usr/pgsql-9.4/bin/pg_restore | pg_dumpによって作成されたアーカイブファイルからPostgreSQLデータベースをリストアする |
/usr/pgsql-9.4/bin/pg_test_fsync | PostgreSQLの最も高速なwal_sync_methodを決定する |
/usr/pgsql-9.4/bin/psql | PostgreSQLの対話的ターミナル |
/usr/pgsql-9.4/bin/reindexdb | PostgreSQLデータベースのインデックスを再作成する |
/usr/pgsql-9.4/bin/vacuumdb | PostgreSQLデータベースの不要領域の回収と解析を行う |
ディレクトリ構成
役割 | パス |
---|---|
実行ファイル | /usr/bin and /usr/pgsql-9.4/bin |
ライブラリ | /usr/pgsql-9.4/lib |
ドキュメント | /usr/pgsql-9.4/doc |
コントリビューション関連ドキュメント | /usr/pgsql-9.4/doc |
データファイル | /var/lib/pgsql/9.4/data |
バックアップ領域 | /var/lib/pgsql/9.4/backups |
テンプレート | /usr/pgsql-9.4/share |
プロシージャ言語 | /usr/pgsql-9.4/lib |
共有ライブラリ | /usr/pgsql-9.4/include |
その他 | /usr/pgsql-9.4/share |
リグレッションテスト | /usr/pgsql-9.4/lib/test |
マニュアル
RPM FILE LOCATIONS. ----------------------------------------------------------------------------- To be in compliance with the Linux FHS, the PostgreSQL RPMs install files in a manner not consistent with most of the PostgreSQL documentation. According to the standard PostgreSQL documentation, PostgreSQL is installed under the directory /usr/local/pgsql, with executables, source, and data existing in various subdirectories. Different distributions have different ideas of some of these file locations. In particular, the documentation directory can be /usr/doc, /usr/doc/packages, /usr/share/doc, /usr/share/doc/packages, or some other similar path. However, the Red Hat / Scientific Linux ( CentOS / Fedora RPM's install the files like this: Executables: /usr/bin and /usr/pgsql-9.4/bin Libraries: /usr/pgsql-9.4/lib Documentation: /usr/pgsql-9.4/doc Contrib documentation: /usr/pgsql-9.4/doc Source: not installed Data: /var/lib/pgsql/9.4/data Backup area: /var/lib/pgsql/9.4/backups Templates: /usr/pgsql-9.4/share Procedural Languages: /usr/pgsql-9.4/lib Development Headers: /usr/pgsql-9.4/include Other shared data: /usr/pgsql-9.4/share Regression tests: /usr/pgsql-9.4/lib/test While it may seem gratuitous to place these files in different locations, the FHS requires it -- distributions should not ever touch /usr/local. It may also seem like more work to keep track of where everything is -- but, that's the beauty of RPM -- you don't have to keep track of the files, RPM does it for you. These RPMs are designed to be LSB-compliant -- if you find this not to be the case, please let us know by way of the pgsql-pkg-yum@postgresql.org mailing list.
リグレッションテストを実行する
下記パッケージをインストールすることでリグレッションテストを実行することが可能となります。
postgresql94-test.x86_64 : The test suite distributed with PostgreSQL
実行ログ
[root@vagrant-centos65 regress]# su - postgres -bash-4.1$ -bash-4.1$ cd /usr/pgsql-9.4/lib/test/regress/ -bash-4.1$ -bash-4.1$ -bash-4.1$-bash-4.1$ make check rm -rf testtablespace results mkdir testtablespace results ./pg_regress --inputdir=. --psqldir='/usr/bin' --dlpath=. --schedule=./parallel_schedule (using postmaster on Unix socket, default port) ============== dropping database "regression" ============== NOTICE: database "regression" does not exist, skipping DROP DATABASE ============== creating database "regression" ============== CREATE DATABASE ALTER DATABASE ============== running regression test queries ============== test tablespace ... ok parallel group (20 tests): name txid regproc oid pg_lsn char varchar money int2 float4 boolean text int4 float8 uuid int8 bit enum rangetypes numeric boolean ... ok char ... ok name ... ok varchar ... ok text ... ok int2 ... ok int4 ... ok int8 ... ok oid ... ok float4 ... ok float8 ... ok bit ... ok numeric ... ok txid ... ok uuid ... ok enum ... ok money ... ok rangetypes ... ok pg_lsn ... ok regproc ... ok test strings ... ok test numerology ... ok parallel group (20 tests): comments lseg path timetz time reltime line box polygon tinterval abstime circle tstypes macaddr point date interval inet timestamp timestamptz point ... ok lseg ... ok line ... ok box ... ok path ... ok polygon ... ok circle ... ok date ... ok time ... ok timetz ... ok timestamp ... ok timestamptz ... ok interval ... ok abstime ... ok reltime ... ok tinterval ... ok inet ... ok macaddr ... ok tstypes ... ok comments ... ok parallel group (6 tests): geometry regex horology type_sanity oidjoins opr_sanity geometry ... ok horology ... ok regex ... ok oidjoins ... ok type_sanity ... ok opr_sanity ... ok test insert ... ok test create_function_1 ... ok test create_type ... ok test create_table ... ok test create_function_2 ... ok parallel group (2 tests): copyselect copy copy ... ok copyselect ... ok parallel group (2 tests): create_operator create_misc create_misc ... ok create_operator ... ok parallel group (2 tests): create_view create_index create_index ... ok create_view ... ok parallel group (11 tests): create_cast create_aggregate typed_table create_function_3 drop_if_exists vacuum constraints create_table_like triggers inherit updatable_views create_aggregate ... ok create_function_3 ... ok create_cast ... ok constraints ... ok triggers ... ok inherit ... ok create_table_like ... ok typed_table ... ok vacuum ... ok drop_if_exists ... ok updatable_views ... ok test sanity_check ... ok test errors ... ok test select ... ok parallel group (20 tests): select_distinct_on btree_index select_distinct random select_having delete hash_index namespace update case select_implicit select_into prepared_xacts union portals transactions subselect aggregates arrays join select_into ... ok select_distinct ... ok select_distinct_on ... ok select_implicit ... ok select_having ... ok subselect ... ok union ... ok case ... ok join ... ok aggregates ... ok transactions ... ok random ... ok portals ... ok arrays ... ok btree_index ... ok hash_index ... ok update ... ok namespace ... ok prepared_xacts ... ok delete ... ok parallel group (6 tests): lock replica_identity security_label collate matview privileges privileges ... ok security_label ... ok collate ... ok matview ... ok lock ... ok replica_identity ... ok parallel group (4 tests): async psql alter_generic misc alter_generic ... ok misc ... ok psql ... ok async ... ok test rules ... ok test event_trigger ... ok parallel group (19 tests): combocid portals_p2 advisory_lock tsdicts xmlmap guc equivclass functional_deps dependency json select_views tsearch jsonb window cluster bitmapops foreign_data indirect_toast foreign_key select_views ... ok portals_p2 ... ok foreign_key ... ok cluster ... ok dependency ... ok guc ... ok bitmapops ... ok combocid ... ok tsearch ... ok tsdicts ... ok foreign_data ... ok window ... ok xmlmap ... ok functional_deps ... ok advisory_lock ... ok json ... ok jsonb ... ok indirect_toast ... ok equivclass ... ok parallel group (19 tests): limit prepare conversion plancache returning temp xml sequence without_oid copy2 rowtypes with polymorphism truncate domain largeobject rangefuncs alter_table plpgsql plancache ... ok limit ... ok plpgsql ... ok copy2 ... ok temp ... ok domain ... ok rangefuncs ... ok prepare ... ok without_oid ... ok conversion ... ok truncate ... ok alter_table ... ok sequence ... ok polymorphism ... ok rowtypes ... ok returning ... ok largeobject ... ok with ... ok xml ... ok test stats ... ok ======================= All 145 tests passed. ======================= -bash-4.1$
【oracle】 コネクションプーリング
以前、社内勉強会内で「コネクションプーリングについて説明できる人いる?」という部長からの質問があり、自分はまだ説明できるほど理解できていないなと実感したのでメモメモ。
まずは参考リンクを熟読して理解して、人に説明できるレベルにしなければ!
(参考リンクを載せているだけの薄っぺらい記事ですみません!)
参考
http://www.oracle.com/technetwork/jp/articles/chapter5-1-101584-ja.html
【linux】 xbuildで簡単rubyインストール
tagomorisさんが開発したxbuildというツールを使うことで、手軽にrubyをインストールできるようになっています。
その他にも、Go/PHP/Perl/Python/Node.js がサポートされています。
(tagomorisさん、xbuild開発に携わった皆様、ありがとうございます!)
xbuild & rubyインストール
xbuild では 各サポート言語別のインストーラが用意されており、各インストーラに [バージョン]、[インストール先パス]を渡して実行するだけで、指定の言語を指定先にインストールしてくれます。
インストールが完了したら、最後にPATHを通してあげるだけで利用できるようになります。
$ git clone https://github.com/tagomoris/xbuild.git $ ./xbuild/ruby-install 2.1.1 /path/to/local/ruby-2.1.1 $ echo 'export PATH=/path/to/local/ruby-2.1.1/bin:$PATH' >> ~/.bashrc
rubyビルド中のログなどは、/tmp
以下に出力されますので、それらをtailして進捗を確認できます。
$ ll /tmp/ total 140 -rw-r--r-- 1 root root 202 May 1 17:23 root-ruby-install-bundler.log -rw-r--r-- 1 root root 406 May 1 17:20 root-ruby-install.log -rw-r--r-- 1 root root 99626 May 1 17:20 ruby-build.20150501165219.18366.log
【linux】 ユーザーをグループに追加する際は gpasswd -a か usermod -aG を使う方がいい
ユーザーをあるグループに追加する場合はusermod -aG
コマンドかgpasswd -a
を利用した方がいいという話です。
ユーザーをグループに追加する手段
ユーザーを作成する場合に、そのユーザーをグループに所属させる方法として主に以下の手段が考えられる
- user作成時にオプションで所属させるグループを指定する
# useradd -g [主グループ名 or gid] -G [サブグループ名 or gid] [ユーザー名]
usermod
コマンドで所属グループ指定
# usermod -g [主グループ名 or gid] -G [サブグループ名 or gid] [ユーザー名]
usermod
コマンドに -aG オプションを付けて追加グループ指定
# usermod -aG [グループ名] [ユーザー名]
gpasswd
コマンドで特定のグループに指定ユーザーを追加する
# gpasswd -a [ユーザー名] [グループ名]
usermodを使用する場合の注意点
usermod
コマンドを使用する際、-a
オプションをつけない状態で-G
オプションで所属グループを指定した場合、指定したグループにのみ所属する状態に変更されます。そのため、指定によっては元々所属していたグループから外れる恐れがありますので注意が必要です。
マニュアル
# man usermod -a, --append Add the user to the supplementary group(s). Use only with the -G option. -G, --groups GROUP1[,GROUP2,...[,GROUPN]]] A list of supplementary groups which the user is also a member of. Each group is separated from the next by a comma, with no intervening whitespace. The groups are subject to the same restrictions as the group given with the -g option. If the user is currently a member of a group which is not listed, the user will be removed from the group. This behaviour can be changed via the -a option, which appends the user to the current supplementary group list.
実行ログ
わかり辛いかもですが、redmine というユーザーに対して gpasswd -a
、usermod -G
、usermod -aG
でグループ追加操作を行った操作ログです。
[root@vagrant-centos65 ~]# [root@vagrant-centos65 ~]# id redmine uid=502(redmine) gid=502(redmine) groups=502(redmine) [root@vagrant-centos65 ~]# [root@vagrant-centos65 ~]# [root@vagrant-centos65 ~]# gpasswd -a redmine wheel Adding user redmine to group wheel [root@vagrant-centos65 ~]# [root@vagrant-centos65 ~]# [root@vagrant-centos65 ~]# [root@vagrant-centos65 ~]# [root@vagrant-centos65 ~]# id redmine uid=502(redmine) gid=502(redmine) groups=502(redmine),10(wheel) [root@vagrant-centos65 ~]# [root@vagrant-centos65 ~]# [root@vagrant-centos65 ~]# [root@vagrant-centos65 ~]# usermod -G redmine redmine [root@vagrant-centos65 ~]# [root@vagrant-centos65 ~]# [root@vagrant-centos65 ~]# [root@vagrant-centos65 ~]# [root@vagrant-centos65 ~]# id redmine [uid=502(redmine) gid=502(redmine) groups=502(redmine) [root@vagrant-centos65 ~]# [root@vagrant-centos65 ~]# [root@vagrant-centos65 ~]# [root@vagrant-centos65 ~]# [root@vagrant-centos65 ~]# usermod -aG wheel redmine [root@vagrant-centos65 ~]# [root@vagrant-centos65 ~]# [root@vagrant-centos65 ~]# id redmine uid=502(redmine) gid=502(redmine) groups=502(redmine),10(wheel)