PostgreSQLのメタコマンド
PostgreSQLのよく使うメタコマンドについて備忘録。
なお、メタコマンドはSQLコマンドと異なり、改行で終わりが判断される。
メタコマンド | 説明 |
---|---|
\q | psqlを切断する |
\l | データベースの一覧を表示する |
\d | テーブル、ビュー、シーケンスの一覧を表示する |
\d テーブル名 | テーブルの項目(フィールド)確認する |
\dt | テーブルの一覧を表示する |
\di | インデックスの一覧を表示する |
\dv | ビューの一覧を表示する |
\ds | シーケンスの一覧を表示する |
\copy | PostgreSQLとpsqlの間でテーブルデータをコピーする |
\i sqlファイル名 | SQL(スクリプト)ファイルの実行する |
scott/tiger @ Oracle11g
Oracleの検証において、scott/tigerを使いたい時があるが、Oracle11gで使おうとすると、アカウントロックされている旨のエラーが出る。
ERROR:
ORA-28000: the account is locked
このエラーを解決するためには、以下の通り、Oracle側で用意されているsqlを実行すればOK。
$ cd $ORACLE_HOME/rdbms/admin
$ sqlplus /nolog
SQL> conn / as sysdba
SQL> @utlsampl.sql
sqlを実行すると、
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
と出力され、接続が切れる。
その後、scott/tigerで接続できることを確認する。
$ sqlplus /nolog
SQL> conn scott/tiger
NoSQL on CentOS7
はじめに
NoSQLを勉強しようとして、以下の書籍を買った。
- 作者: 渡部徹太郎,河村康爾,北沢匠,佐伯嘉康,佐藤直生,原沢滋,平山毅,李昌桓
- 出版社/メーカー: 秀和システム
- 発売日: 2016/02/24
- メディア: 単行本
- この商品を含むブログ (1件) を見る
すぐに新しくなってしまう分野のため、鉄は熱いうちに打ての精神で読んでみた。
簡単に言えば、NoSQLに該当するプロダクトの特徴、使いどころ(ユースケース)、限界について綺麗に書かれてる印象。
ただ、各プロダクトのインストールの仕方までは書籍では取り扱われていない。
そのため、ここではCentOS7に各プロダクトのインストール方法について、自分の環境で試して見た結果をメモしてみようと試みた。
なお、ユースケースより自分の興味の持ったNoSQLは以下の通り。
(めんどくさそうなのを削除したともいう…)
- MongoDB
- Cassandra
- Redis
- Neo4j
上記4つのインストール手順について、CentOSの最小インストール + Firewalld無効化 + SELinux無効化 以降の手順を以下の通り示す。
MongoDB 3.2
インストール
/etc/yum.repos.d/mongodb-org-3.2.repoを以下の内容で作成する。
[mongodb-org-3.2]
name=MongoDB Repository
baseurl=http://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/
gpgcheck=0
enabled=1
yumコマンドでインストールする。
# yum install mongodb-org
起動と自動起動
起動は以下の通り行う。
# systemctl start mongod
なお、自動起動についてだが、mongodはCentOS7のネイティブデーモンではないため、従来通りchkconfigを用いる。
# chkconfig mongod on
Cassandra 3.0
事前準備
Cassandraを動かすためには、最新版のJava8(Oracle Java SE 8 か OpenJDK 8)をインストールするように求められているため、OpenJDKを事前に入れておく。
# yum install java
インストール
/etc/yum.repos.d/datastax.repoを以下の内容で作成し、Datastaxのリポジトリを追加する。
[datastax]
name=DataStax Repo for Apache Cassandra
baseurl=http://rpm.datastax.com/community
enabled=1
gpgcheck=0
以下のコマンドを実行し Cassandra をインストールする。
なお、インストールによりCassandraユーザーが作成され、Cassandraの起動時に使用されます。
# yum install cassandra30
起動と自動起動
systemctlでやろうとするとこけるので、旧来の方法で行う。
# service cassandra start
# chkconfig cassandra on
Redis 3.2
書籍で取り扱われているRedisのバージョンは、3.0系である。
しかし、2016年8月25日現在、Redisは、REMIリポジトリには3.2系しかなく、EPELリポジトリには2.8系が最新の状況である。
そのため、3.0系以降のバージョンであるREMIリポジトリからパッケージを取得する方針を取ることにする。
インストール
Redisの最新版を取得するために、REMIリポジトリを追加する。
# yum install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
yumコマンドでインストールする。
ここで直接REMIリポジトリを指定することを忘れないこと。
# yum install --enablerepo=remi redis
起動と自動起動
お決まりのパターンで行う。
# systemctl start redis
# systemctl enable redis
Neo4j 2.3
Neo4jにはCommunityバージョンとEnterpriseバージョンがあるが、今回はCommunityバージョンをインストールすることにした。
また、ここでインストールするバージョンは2.3.6とする。
事前準備
Neo4jは、サーバーでオープンできるファイル数について、40000以上を推奨している。
今回作成するのは検証環境なので、最大の65536にする。
/etc/security/limits.confに以下の通り追記する。
* soft nofile 65536
* hard nofile 65536
.bash_profile に以下を追加する。
export NEO4J_HOME=/usr/neo4j
ここで設定を反映させるため、再起動をする。
Neo4jを動かすためには、JDK7以上が必要なので、JDKを事前に入れておく。 また、lsofも入れておく。
# yum install java lsof
インストール
ブラウザで https://neo4j.com/download/other-releases/ にアクセスし、「Linux/Mac Neo4j 2.3.6 (tar)」を選択すると、「neo4j-community-2.3.6-unix.tar.gz」をダウンロードする。
そして、tarファイルを/rootに配置し、展開を行う。
# tar -xf neo4j-community-2.3.6-unix.tar.gz
# mv neo4j-community-2.3.6 /usr/neo4j
起動
標準設定では、外部からの接続はできない。
外部からブラウザでNeo4jに接続するためには、${NEO4J_HOME}/conf/neo4j-server.propertiesの標準設定を変更する必要がある。
org.neo4j.server.webserver.address=0.0.0.0
以下のコマンドにより起動する。
# ${NEO4J_HOME}/bin/neo4j console
ブラウザより、以下の通りアクセスを行う。
Neo4jのログイン画面で、初期ユーザーとパスワードを入力し、Neo4に接続する。
初期ユーザーはneo4jであり、そのパスワードはneo4jである。
なお、初回ログイン時にパスワードの変更が求められるので、変更を行う。
CentOS7のシステムバックアップに導入する必要のあるパッケージ一覧
はじめに
以下の要件を満たすシステムイメージのバックアップを行うオープンソースソフトウェアを調査した。
- 導入が容易である。
- データの配置先として、「ローカルディスク」「NFSサーバ」「USB メモリ」「テープ」「CD/DVD」「LVM」に対応している。
- LVMに対応している。
その結果として、有名なものにRelax and RecoverとMondo Rescueがあがった。
Relax and Recover
Relax and Recover とは、NFSサーバなどバックアップデータの保存先と、レスキューイメージを使って簡単にシステムイメージのバックアップ・リストアができるオープンソースソフトウェアである。
Relax-and-Recoverには以下のような特徴がある。
- RHEL 7.2から同梱されるようになった(yumで簡単にインストール可能)
- Bashのみから成る
- バックアップ、リストアの手順が非常に簡単
- バックアップデータとレスキューイメージを使ったリストアを行う
参考
Relax and Recoverでのシステム回復
https://oss.sios.com/redhat-ch/blog/rear
Mondo Rescue
Mondo Rescue とは、システムイメージのバックアップ・リストアができるオープンソースソフトウェアである。
パッケージが用意されているため、簡単に導入が可能。
Mondo Rescueには以下のような特徴がある。
この記事の目的
機能面も大事だが、あんまりパッケージを入れないで使えるほうが望ましい。
最小インストールが行われたCentOS7.2に対して、どれだけのパッケージのインストールが必要になるかの検証を行う。
結果
ほとんど入れる必要のないRelax and Recoverと、リポジトリの登録が必要なうえに大量のパッケージの導入が必要になるMondo Rescueと、結果が明確に分かれた。
以降、検証結果を示す。
検証
Relax and Recoverのインストール
本体のインストール
# yum install rear
【中略】
========================================================================================================================
Package アーキテクチャー バージョン リポジトリー 容量
========================================================================================================================
インストール中:
rear noarch 1.17.2-1.el7 base 354 k
依存性関連でのインストールをします:
attr x86_64 2.4.46-12.el7 base 66 k
トランザクションの要約
========================================================================================================================
インストール 1 パッケージ (+1 個の依存関係のパッケージ)
総ダウンロード容量: 419 k
インストール容量: 1.1 M
【以下略】
関連パッケージのインストール
以下の通りインストールする。
# yum install mkisofs syslinux
【中略】
========================================================================================================================
Package アーキテクチャー バージョン リポジトリー 容量
========================================================================================================================
インストール中:
genisoimage x86_64 1.1.11-23.el7 base 298 k
syslinux x86_64 4.05-12.el7 base 990 k
依存性関連でのインストールをします:
libusal x86_64 1.1.11-23.el7 base 135 k
mtools x86_64 4.0.18-5.el7 base 203 k
トランザクションの要約
========================================================================================================================
インストール 2 パッケージ (+2 個の依存関係のパッケージ)
総ダウンロード容量: 1.6 M
インストール容量: 4.1 M
【以下略】
Mondo Rescueのインストール
本体のインストール
# cd /etc/yum.repos.d
# wget http://www.mondorescue.org/ftp/centos/7/x86_64/mondorescue.repo
# yum install mondo
【中略】
========================================================================================================================
Package アーキテクチャー バージョン リポジトリー 容量
========================================================================================================================
インストール中:
mondo x86_64 3.2.2-1.centos7 mondorescue 902 k
依存性関連でのインストールをします:
afio x86_64 2.5-1.centos7 mondorescue 75 k
buffer x86_64 1.19-8.centos7 mondorescue 23 k
bzip2 x86_64 1.0.6-13.el7 base 52 k
dosfstools x86_64 3.0.20-9.el7 base 101 k
gdbm-devel x86_64 1.10-8.el7 base 47 k
genisoimage x86_64 1.1.11-23.el7 base 298 k
glibc-devel x86_64 2.17-106.el7_2.8 updates 1.0 M
glibc-headers x86_64 2.17-106.el7_2.8 updates 663 k
kernel-headers x86_64 3.10.0-327.28.2.el7 updates 3.2 M
libdb-devel x86_64 5.3.21-19.el7 base 38 k
libusal x86_64 1.1.11-23.el7 base 135 k
mindi x86_64 3.0.2-1.centos7 mondorescue 202 k
mindi-busybox x86_64 1.21.1-1.centos7 mondorescue 276 k
mtools x86_64 4.0.18-5.el7 base 203 k
net-tools x86_64 2.0-0.17.20131004git.el7 base 304 k
perl x86_64 4:5.16.3-286.el7 base 8.0 M
perl-CPAN-Meta noarch 2.120921-5.el7 base 113 k
perl-CPAN-Meta-Requirements noarch 2.122-7.el7 base 24 k
perl-CPAN-Meta-YAML noarch 0.008-14.el7 base 24 k
perl-Carp noarch 1.26-244.el7 base 19 k
perl-Data-Dumper x86_64 2.145-3.el7 base 47 k
perl-Digest noarch 1.17-245.el7 base 23 k
perl-Digest-MD5 x86_64 2.52-3.el7 base 30 k
perl-Encode x86_64 2.51-7.el7 base 1.5 M
perl-Exporter noarch 5.68-3.el7 base 28 k
perl-ExtUtils-CBuilder noarch 1:0.28.2.6-286.el7 base 67 k
perl-ExtUtils-Install noarch 1.58-286.el7 base 73 k
perl-ExtUtils-MakeMaker noarch 6.68-3.el7 base 275 k
perl-ExtUtils-Manifest noarch 1.61-244.el7 base 31 k
perl-ExtUtils-ParseXS noarch 1:3.18-2.el7 base 77 k
perl-File-Path noarch 2.09-2.el7 base 26 k
perl-File-Temp noarch 0.23.01-3.el7 base 56 k
perl-Filter x86_64 1.49-3.el7 base 76 k
perl-Getopt-Long noarch 2.40-2.el7 base 56 k
perl-HTTP-Tiny noarch 0.033-3.el7 base 38 k
perl-IO-Interface x86_64 1.05-2.el7 mondorescue 26 k
perl-IPC-Cmd noarch 1:0.80-4.el7 base 34 k
perl-JSON-PP noarch 2.27202-2.el7 base 55 k
perl-Locale-Maketext noarch 1.23-3.el7 base 93 k
perl-Locale-Maketext-Simple noarch 1:0.21-286.el7 base 49 k
perl-Module-Build noarch 2:0.40.05-2.el7 base 281 k
perl-Module-CoreList noarch 1:2.76.02-286.el7 base 84 k
perl-Module-Load noarch 1:0.24-3.el7 base 11 k
perl-Module-Load-Conditional noarch 0.54-3.el7 base 18 k
perl-Module-Metadata noarch 1.000018-2.el7 base 26 k
perl-Module-ScanDeps noarch 1.10-3.el7 base 45 k
perl-MondoRescue noarch 3.2.2-1.centos7 mondorescue 82 k
perl-Net-IPv4Addr noarch 0.10-6.el7 mondorescue 16 k
perl-Params-Check noarch 1:0.38-2.el7 base 18 k
perl-Parse-CPAN-Meta noarch 1:1.4404-5.el7 base 14 k
perl-PathTools x86_64 3.40-5.el7 base 82 k
perl-Perl-OSType noarch 1.003-3.el7 base 20 k
perl-Pod-Escapes noarch 1:1.04-286.el7 base 50 k
perl-Pod-Perldoc noarch 3.20-4.el7 base 87 k
perl-Pod-Simple noarch 1:3.28-4.el7 base 216 k
perl-Pod-Usage noarch 1.63-3.el7 base 27 k
perl-ProjectBuilder noarch 0.14.1-1.centos7 mondorescue 133 k
perl-Scalar-List-Utils x86_64 1.27-248.el7 base 36 k
perl-Socket x86_64 2.010-3.el7 base 49 k
perl-Storable x86_64 2.45-3.el7 base 77 k
perl-Test-Harness noarch 3.28-3.el7 base 302 k
perl-Text-ParseWords noarch 3.29-4.el7 base 14 k
perl-Time-HiRes x86_64 4:1.9725-3.el7 base 45 k
perl-Time-Local noarch 1.2300-2.el7 base 24 k
perl-constant noarch 1.27-2.el7 base 19 k
perl-devel x86_64 4:5.16.3-286.el7 base 452 k
perl-libs x86_64 4:5.16.3-286.el7 base 687 k
perl-macros x86_64 4:5.16.3-286.el7 base 43 k
perl-parent noarch 1:0.225-244.el7 base 12 k
perl-podlators noarch 2.5.1-3.el7 base 112 k
perl-threads x86_64 1.87-4.el7 base 49 k
perl-threads-shared x86_64 1.43-6.el7 base 39 k
perl-version x86_64 3:0.99.07-2.el7 base 84 k
pyparsing noarch 1.5.6-9.el7 base 94 k
syslinux x86_64 4.05-12.el7 base 990 k
systemtap-sdt-devel x86_64 2.8-10.el7 base 65 k
wodim x86_64 1.1.11-23.el7 base 320 k
依存性関連での更新をします:
glibc x86_64 2.17-106.el7_2.8 updates 3.6 M
glibc-common x86_64 2.17-106.el7_2.8 updates 11 M
トランザクションの要約
========================================================================================================================
インストール 1 パッケージ (+77 個の依存関係のパッケージ)
更新 ( 2 個の依存関係のパッケージ)
総ダウンロード容量: 38 M
【以下略】
関連パッケージのインストール
- lzo(高速圧縮ライブラリ)
- lzop(高速圧縮ユーティリティ)
以下の通りインストールする。
# yum install lzo lzop
【中略】
パッケージ lzo-2.06-8.el7.x86_64 はインストール済みか最新バージョンです
【中略】
========================================================================================================================
Package アーキテクチャー バージョン リポジトリー 容量
========================================================================================================================
インストール中:
lzop x86_64 1.03-10.el7 base 54 k
トランザクションの要約
========================================================================================================================
インストール 1 パッケージ
総ダウンロード容量: 54 k
インストール容量: 99 k
【以下略】
Oracle Database 12c を CentOS7にインストールしたときの備忘録
インストール手順は、以下のサイトを参考に行った。
CentOS 7 : Oracle Database 12c : インストール環境の設定 : Server World
その際のインストール時の備忘録として記載する。
インストールパッケージについて
インストール要件にkshがあるが、これに対応するパッケージはpdkshである。
これは実際には、mkshをインストールすることにより、pdkshがインストールされる。
# yum search pdksh
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: ftp.iij.ad.jp
* extras: ftp.iij.ad.jp
* updates: ftp.iij.ad.jp
===================================================== 一致: pdksh ======================================================
mksh.x86_64 : MirBSD enhanced version of the Korn Shell
Oracle Database 12c インストール時の文字化け
Oracle Database 12c をインストールするとき、文字化けが発生し、日本語が「□□□」になった。
対応方法は、
JREは /usr/lib配下にあるので、以下のように検索を行う。
$ find /usr/lib -name jre
そこで出てきたPATHを指定してrunInstallerを起動する。
$ ./runInstaller -jreLoc /usr/lib/jvm/java-1.8.0.71-.b15.el7_2.x86_64/jre
これで日本語でインストーラが起動する。
「PRVF-0002:ローカル・ノード名を取得できませんでした」のエラー
/etc/hostsファイルに、自ホスト名を追記すればOK。
自ホスト名が「ora12c」とする場合は、以下のようになる。
127.0.0.1 ora12c localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 ora12c localhost localhost.localdomain localhost6 localhost6.localdomain6
DBCAでも文字化けが発生
DBCAでも、文字化けが発生し、日本語が「□□□」になった。
対応方法は、
- 端末から「export LANG=C」と入力して、英語でDBCAを起動する。
- ${ORACLE_HOME}/bin/dbcaのJRE_DIRをOS標準の日本語フォントに対応したjreに書き換えてDBCAを起動する。
JREは /usr/lib配下にあるので、以下のように検索を行う。
$ find /usr/lib -name jre
そこで出てきたPATHを指定に書き換える。
(71行目)
# JRE_DIR=/u01/app/oracle/product/12.1.0/dbhome_1/jdk/jre
JRE_DIR=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-3.b17.el7.x86_64/jre
そして、DBCAを起動する。
$ dbca
これで日本語でインストーラが起動する。
おまけ
Oracleが公表してるガイドは以下のものがある。
CentOS7にGuest Additionsのインストール
GUEST ADDITIONS
Guest Additionsのなかでも特に以下の機能を使用したい。
GUEST ADDITIONSをインストール
必要なパッケージとそのパッケージのインストール
必要なパッケージは以下の通り。
- Development Tools (開発ツール)
- kernel-devel
- kernel-headers
以下の様にパッケージをインストールする。
# yum groupinstall "Development Tools"
# yum install kernel-devel kernel-headers
ゲストマシン上のメニュー「デバイス」→「Guest AdditionsのCDイメージを挿入」をクリックする。
次にゲストマシン上のターミナルを開いて、作業ディレクトリを作成して、GuestAdditionsのマウント先に移動する。
# mkdir /mnt/cdrom
# mount -r /dev/cdrom /mnt/cdrom/
# cd /mnt/cdrom
CentOSなので、対応するインストールスクリプトを実行する。
# ./VBoxLinuxAdditions.run
すると、こんなエラーメッセージを吐き出した。
The missing package can be probably installed with
yum install kernel-devel-3.10.0-327.el7.x86_64
なので、
# yum install kernel-devel-3.10.0-327.el7.x86_64
を実行した。
その後再度以下を実行。
# ./VBoxLinuxAdditions.run
インストールスクリプトが終了し、プロンプトが戻ってきたらOSを一度リブートする。 以上でGuest Additionsのインストールは終了。
スライスと逆順が同時に使うとき気をつけないといけない件
Python3の話。
文字列sの3文字目から5文字目までの部分文字列は、スライスを用いてs[2:5]
で取得が可能。
文字列sの逆の文字列は、s[::-1]
で取得が可能。
文字列sの2文字目から4文字目までの部分文字列を取得し、その取得した部分文字列の逆の文字列は、スライスを用いてs[2:5:-1]
で取得ができそうだが、結果は''
となってしまい、うまくいかない。
実際はs[2:5][::-1]
やs[4:1:-1]
で取得することが可能。
以下のサンプルを見れば、なんとなく理解できるかと思われる。
>>> s = "abcdefg"
>>> s[2:5]
'cde'
>>> s[2:5:-1]
''
>>> s[2:5][::-1]
'edc'
>>> s[4:1:-1]
'edc'