ブラウザ上からSQLをいじって学べる学習サイト『Sqlzoo』
たま~に、リアルなデータが入っておらず、適当なデータしか入ってないテーブルに対してSQLを実行し、どういう感じに書けばうまく動作するのかを確認したりしたいことがある。...
View ArticlePostgreSQLでテーブル・ビューの作成時のSQLを確認する
ときたま、既存のPostgreSQL環境でテーブルやビューの作成時のSQLを確認することがある。 MySQLとかだと「SHOW CREATE ~」で確認できるのだけど、PostgreSQLでテーブル定義文を確認する場合はSQLからは確認ができず、pg_dumpでバックアップデータを取得してCREATE TABLEを抽出することで対応する。 pg_dump DB名 -s -t テーブル名 | awk...
View ArticleSQLで数字をカンマ区切りにして読みやすく表示させる(PostgreSQL/MariaDB/Oracle)
集計結果で数字を見る際に桁数がよくわからないことが会ったので、SQLで集計出力時に3桁ごとにカンマ区切りで見やすく表示させる対応をしたので備忘で残しておく。 各DBごとにSQLの記述が異なるのでひとまずよく使用されるMariaDB、PostgreSQL、OracleDB、SQL Serverごとで調べてみることにした。 1.MySQL/MariaDBの場合...
View ArticlemysqldumpでsshごしにリモートサーバにMariaDBのバックアップを取得する
MariaDBで手元のPC上で動作しているDBから、リモートサーバにssh越しにバックアップする必要があったので、備忘で残しておく。 mysqldump -u ユーザ名 -p パスワード DB名 | gzip | ssh リモートサーバ 'cat > ~/BackupPATH.sql.gz' mysqldump --single-transaction -u ユーザ名 -p パスワード DB名...
View ArticleCentOS 7でrsyslogのログをMariaDBに出力させる
個人的には、ログはテキストファイルの方が色々と都合が良い(後からの統計取得だったり検知・加工してエラー確認とかシェル芸でできるので)のだが、諸々の事情(セキュリティ的な色々だったり、コマンド操作があまりできない人でも使える状態にしたいなど)によって、テキストファイルでの出力や保管、閲覧が都合が悪い事がある。で、rsyslogではログをDBに出力可能なので、今回は、OSにはCentOS...
View ArticleMariaDBでrootのパスワードをリセットする
MariaDBで、rootのパスワードを失念してしまってその後の操作ができなくなってしまった。で、初期化をしたので備忘として残しておく。 なお、MariaDBのバージョンは5.5を用いている。 やり方は簡単で、一旦MariaDBのプロセスを落としてからセーフモードで起動、パスワードを設定してMariaDBのプロセスを再度起動させてやるだけだ。 systemctl stop mariadb...
View ArticleCentOS 7にMicrosoft SQL Serverをインストールする
最近、あのMicrosoftがOSSに歩み寄ってきており、先日にはLinux Foundationのプラチナメンバーにまでなった。何があるかわからないものだなぁ…。 で、先日知ったのだがどうやらMicrosoft SQL ServerもLinuxにインストールできるようになってたようだ。一体どういうことなんだ…。 というわけで、せっかくなのでCentOS 7にMicrosoft SQL...
View ArticleCentOS 7にRedisサーバをインストールする
CentOS 7にRedisサーバをインストールする場合、epelおよびremiからインストールをすると簡単だ。 まず、以下のコマンドでepelおよびremiをインストールする。 yum install -y epel-release rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi rpm -ivh...
View Articlepsqlコマンドから複数のSQLを一括で実行させる
psqlコマンドから複数のSQLを一発で流す方法を忘れてたので、備忘として残しておく。 「-e」オプションではなく、EOFで流してやればよい。 psql -U postgres -h << EOF SELECT * FROM AAA; SELECT * FROM BBB; EOF 内部構造から学ぶPostgreSQL 設計・運用計画の鉄則 (Software Design plus)
View ArticleMariaDB Galera Cluster 10.1系でSSLを利用する
MariaDB Galera Clusterで、クライアントとの接続にSSLを利用することができるようなので、設定してみることにした。 調べていると、Galera Clusterのバージョンが10.0系と10.1系で設定方法が違うようだったが、今回は10.1系での設定を行う。 1.鍵ファイルの作成 まずは、Galera Cluster側で以下のコマンドを実行し、公開鍵の作成を行う。 openssl...
View ArticlePostgreSQLでDBサーバのバージョンを確認する
動作しているPostgreSQLのバージョンを調べるには、以下の方法がある。 1.コンソール上から確認する コンソール上からのバージョン確認は、以下のコマンドで行える。 /usr/pgsql-*/bin/pg_config --version /usr/pgsql-*/bin/postgres -V -bash-4.2$ /usr/pgsql-*/bin/pg_config --version...
View ArticleMaxscaleのバージョンを1.2.1→1.4.3にアップデートする
会社の検証機でMaxscaleのバージョンを1.2.1→1.4.3へ上げたところ、ちょっと引っかかったのでその備忘。 MaxscaleはCentOS 7にインストールしていたので、そのまま「yum update...
View ArticleアプリケーションサーバとMaxscaleを同居させる場合はローカルのTCPソケットポートの食いつぶしに注意しよう
Maxscaleとアプリケーションサーバが同居したサーバで負荷テストを行ったところ、どうも途中でDBとの通信が失敗したりする部分があった。 で、なんでなんだろと調べていく際にssコマンドを実行したところ… [root@test-server01 ~]# ss -nap | grep ':3306' | wc -l 24299 …えっΣ(゚д゚ )...
View ArticleCentOS 7にCockroachDBをインストールしてみる
以前、仕事中の負荷テスト時の調べ物でCockroachDBなるものを知ったので、試しにCentOS 7に入れてみることにする。...
View ArticleCentOS 7にRethinkDBをインストールしてみる
先日、仕事で負荷テストを行っていた際、RethinkDBなるNoSQL(JSONデータベース)があることを知ったので、試しに入れてみる事にした。...
View ArticleMaxscaleで「Too many open files. Failed to accept new client...
会社のシステム(Maxscale経由でDBに接続)で負荷テストをしていたところ、不可解な接続エラーが発生していた。どうも新しいセッションが作成出来ないとの事なのだが、後ろのMariaDB側のMax Connection値は余裕がある。で、いろいろと調べていたところ、Maxscaleのエラーログに以下のようなエラーが出ていた。 2016-04-26 16:53:56 Error 24, Too...
View ArticlephpでSQLで取得した複数行・複数列の内容をそのまま出力させる(多次元連想配列)
仕事で何故かPHPを少し触る事になった。 で、その中でPHPで作られたコマンドラインツールでクエリの結果(複数行・複数列)をそのまま出力させたい箇所があり、以下のように多次元連想配列を利用すると簡単に書けたので備忘として残しておく。 ※以下の例では、PDOを使用してSQLiteに接続している。 ●test.php /* ==== 変数 ==== */ $dbfile = 'test.db'; //...
View ArticleSQLite3でテーブル一覧を取得する
sqlite3でテーブルの一覧を取得する場合、以下のようにコマンドを実行する。 .tables もしくは select name from sqlite_master where type='table'; で一覧が取得出来る。 sqlite> .table TEST sqlite> select name from sqlite_master where type='table';...
View ArticleMaxscale のRead Write Splittingでマスターも読み込みに利用する
MaxscaleのRead Write Splittingでは、通常ではマスターは書き込みのみが割り当てられ、通常のSELECT文は割り振られないようになっている。 これを、マスターにもSELECT文を割り当てたい場合は、以下の設定値を「/etc/maxscale.cnf」に追記する。 master_accept_reads=true...
View ArticleMaxscaleのLimitations and Knownを読んでみた
仕事でMaxscaleを利用しているのだが、Limitation and Knownを読んでなかったので読むことにした。 そんなに文章量も無いので、以下重要そうなトコだけ抜粋して記述していく。 MySQL Serverのハンドシェイクに圧縮は含まれない Compression is not included in MySQL server handshake Galera Cluster...
View Article