UbuntuServer18.04にPostgreSQL9.5をインストールする

標準のリポジトリにはないので、公式wikiを参考にインストールする。

リポジトリキーをインポートする。

# curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -

リポジトリを追加する。

# echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list
# apt update

インストール。

# apt install postgresql-9.5

サービスを起動する。

# systemctl start postgresql@9.5-main

postgresのパスワードを設定する。

# su postgres
$ psql
postgres=# alter user postgres with password 'password';
postgres=# \q

CentOS7にPHP7.3とMariaDB5.5をインストール

前提条件

今回の環境はCentOS7.6をクリーンインストールして、SELinuxを無効化してある環境で行う手順です。また、mariadbはローカルからのみ利用する。

手順

EPELリポジトリとRemiリポジトリを追加する。

# yum install epel-release
# yum install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

Apacheとmariadbをインストールする。

# yum install httpd php73-php mariadb-server php73-php-mysqlnd

mariadbの文字コードをutf8にする。

[mysqld]
character-set-server = utf8

mariadbの初期設定をする。

systemctl enable mariadb
systemctl start mariadb
mysql_secure_installation

CentOS7+Smart-UPS750で停電時の自動シャットダウン設定

環境

・ CentOS7 × 2台
・ APC Smart-UPS 750 LCD 100V SMT750J E × 1台
・ USBケーブルで接続

プライマリー設定

UPSをUSBで接続しているサーバーにapcupsdをインストールする。

# yum install epel-release
# yum install apcupsd

認識されているデバイスを確認する。
※hiddev0〜15

$ dmesg

設定ファイルの下記の箇所を編集する。DEVICEの番号は前の手順で確認した番号に。

UPSCABLE usb
UPSTYPE usb
DEVICE /dev/usb/hiddev0〜15
NISIP 0.0.0.0
TIMEOUT 90

ファイアウォールに例外を登録する。

# firewall-cmd --permanent --add-port=3551/tcp
# firewall-cmd --reload

サービスを有効化して起動する。

# systemctl enable apcupsd
# systemctl start apcupsd

状態を確認してSTATUSがONLINEとなっていれば正常。

$ apcaccess

セカンダリー設定

セカンダリーサーバーにもapcupsdをインストールする。

# yum install epel-release
# yum install apcupsd

設定ファイルの下記の箇所を編集する。DEVICEにはプライマリーのIPアドレスとポート番号を指定。

UPSCABLE ether
UPSTYPE net
DEVICE 192.168.0.10:3551
TIMEOUT 60

サービスを有効化して起動する。

# systemctl enable apcupsd
# systemctl start apcupsd

状態を確認してSTATUSがONLINEとなっていれば正常。

$ apcaccess

PostgreSQLでクラスタ全体をバックアップする

実際に試した環境

・ Ubuntu 20.04
・ PostgreSQL 12

バックアップする。

# pg_dumpall -U postgres -f /mnt/backup/test.sql

「Peer authentication failed for user “postgres”」が発生する場合、下記ファイルを編集してpeer認証を無効(サービス再起動が必要)にする。

#local    all    postgres            peer
local    all    postgres            md5

もしcronなどで利用するためにパスワード認証をスキップしたい場合は、実行ユーザー(ここではroot)のホームディレクトリに下記を作成する。

*:*:*:postgres:ぱすわーど

バックアップからリストアする。

# su postgres
$ psql -f /mnt/backup/test.sql

補足

圧縮しながらバックアップする。

# pg_dumpall -U postgres | gzip -c /mnt/backup/test.sql.gz

パスワードをつける場合はzipを使用するぐらいしか思いつかない。

# cd /mnt/backup/
# pg_dumpall -U postgres -f test.sql
# zip --encrypt --password ぱすわーど test.sql.zip test.sql

Ubuntu20.04でのHDDの追加

追加するHDDを接続した上で現在のデバイスを確認する。

$ lsblk --fs --paths

下記のような結果なので、sdaに対して設定を行う。

NAME             FSTYPE LABEL UUID                                 FSAVAIL FSUSE% MOUNTPOINT
/dev/sda                                                                          
/dev/nvme0n1                                                                      
├─/dev/nvme0n1p1 vfat         4252-A60B                             502.1M     2% /boot/efi
└─/dev/nvme0n1p2 ext4         f4b866f5-224e-4a1b-9b19-14d15c9e6f09  117.6G    44% /

fdiskで設定を開始する。

# fdisk /dev/sda

コマンドpやiで既存パーティションを確認する。必要であればdでパーティションを削除する。

コマンド (m でヘルプ): p
ディスク /dev/sda: 931.53 GiB, 1000204886016 バイト, 244190646 セクタ
Disk model: 003-1ER162      
単位: セクタ (1 * 4096 = 4096 バイト)
セクタサイズ (論理 / 物理): 4096 バイト / 4096 バイト
I/O サイズ (最小 / 推奨): 4096 バイト / 4096 バイト
ディスクラベルのタイプ: dos
ディスク識別子: 0x92db83f8

コマンド (m でヘルプ): i
パーティションは何も設定されていません!

コマンドnで新しいパーティションを作成する。

コマンド (m でヘルプ): n
パーティションタイプ
   p   基本パーティション (0 プライマリ, 0 拡張, 4 空き)
   e   拡張領域 (論理パーティションが入ります)
選択 (既定値 p): 
パーティション番号 (1-4, 既定値 1): 
最初のセクタ (256-244190645, 既定値 256): 
Last sector, +/-sectors or +/-size{K,M,G,T,P} (256-244190645, 既定値 244190645): 

新しいパーティション 1 をタイプ Linux、サイズ 931.5 GiB で作成しました。

コマンドwでディスクに対して書き込みを行う。

コマンド (m でヘルプ): w
パーティション情報が変更されました。
ioctl() を呼び出してパーティション情報を再読み込みします。
ディスクを同期しています。

改めてlsblkを実行して作成したパーティションのデバイスパスを確認する。

$ lsblk --fs --paths

下記のような結果なので/dev/sda1に対してファイルシステムの作成を行う。

NAME             FSTYPE LABEL UUID                                 FSAVAIL FSUSE% MOUNTPOINT
/dev/sda                                                                          
└─/dev/sda1                                                                       
/dev/nvme0n1                                                                      
├─/dev/nvme0n1p1 vfat         4252-A60B                             502.1M     2% /boot/efi
└─/dev/nvme0n1p2 ext4         f4b866f5-224e-4a1b-9b19-14d15c9e6f09  117.6G    44% /

ファイルシステムをext4で作成する。

# mkfs -t ext4 /dev/sda1

fstabに追加して自動マウントさせる。

/dev/sda1               /data               ext4    defaults        0 0