サーバーの更新。約5年使った。
バッチ処理が途中で止まるようになってしまい、思い切って更新した。


パソコン7で購入。
SR-ii7-9030D/S3/GF
CPU: Corei7-10700K
メモリー: Crucial DDR-4-266 8G(8GB×1枚)
HDD: SSD Crucial P1 500GB(m.2)
グラフィックボード: Geforce GTX1660 SUPER 6GB

CentOS8.1.1911
PostgreSQL-12.3

m.2接続のSSDを始めて使う。147,760円(税込み)、結構高いのを購入した。
今回は、USBからインストール。CentOS8のisoは8GBくらいあるので、DVDでは無理。
「最小限のインストール」
「最小限」だったせいか、手動でインストールするプログラムが増えた。

グラフィックボードは全く無駄なのだが、カスタマイズできないので仕方ない。
D-SUB、DVIは無く、HDMI、DisplayPort接続。会社ではD-SUBを使っているので接続できるディスプレイが無く、これで困った。
カスタマイズでグラフィックボードが外せれば、2.5万円は安くなるのだが、、、
サーバーで使っていたPCは将来Windowsをインストールして端末として使うので、まあその時のために。
トホホ。

ディレクトリ構成を自動ですると/homeに400Gも割り当てされてしまい、PostgreSQLのデータは/home/pgdataに保存することにした。

作業中、エラーがメッセージが「□□□」で表示される時はローケールを一時的に変更する。
どんなに調整しても日本語では表示されないらしいので、英語表示させて確認後、元に戻す。

使用可能なロケールのリスト表示
# localectl list-locales

ja_JP.UTF-8 → en_US.UTF-8 (2023/10/24 これが無かった。結局、エラーメッセージが表示できなかった)

# localectl set-locale LANG=en_US.UTF-8

エラーメッセージを確認したら、元に戻しておく

# localectl set-locale LANG=ja_JP.UTF-8



(1)CentOSをインストールする時、インストール先とネットワークの設定はしておく。
また、rootのパスワードを入力
(2023/10/14 Oracle Linux インストール時、ユーザpostgresを作成した)

(2)SELinuxを止める
/etc/sysconfig/selinuxを編集
SELINUX=disabled
#SELINUXTYPE=targeted コメントアウトした

(3)ファイアフォールを止める
# systemctl disable firewalld

(4)sambaのインストール
# yum -y install samba samba-common
# mkdir /home/pub
# chmod 777 /home/pub
# chown nobody:nobody /home/pub

/etc/samba/smb.confの編集
プリンター関係の設定は全てコメントアウトした。
また、どうせ使わないので[home]セクションもコメントアウト。

[global]
workgroup = DOMAIN
security = user (shareはサポートされなくなった!!!)
map to guest = Bad User(これがないと、ユーザー認証画面が表示されてしまう)
[pub]
path = /home/pub
public = yes
writeable = yes
printable = no
guest ok = yes
guest only = yes
create mask = 0777
directory mask = 0777

編集後
# systemctl enable smb
# systemctl enable nmb

再起動は
# service smb restart

(5)telnetサーバーのインストール
# yum -y install telnet-server
# systemctl enable telnet.socket


(6)その他のインストール
# yum -y install unzip
# yum -y install gcc (「開発ツール」がインストールされていないので)
# yum -y install readline
# yum -y install readline-devel (PostgreSQLのコンパイルに必要)
# yum -y install zlib
# yum -y install zlib-devel  (PostgreSQLのコンパイルに必要)
# yum -y install tar (これは初めて)
# yum -y install make (これは初めて)
(#yum -y install icu 2023/10/24 通らなかった Oracle Linux Server 9.2)


(7)不要なサービスの停止
とりあえず
# systemctl disable crond

(8)usbメモリーのマウント(必要ないか?)
/etc/fstabに下記を追加
/dev/sdb /mnt auto noauto,user 0 0

(9)PostgreSQLのインストール
ソースをmakeしてインストール
データフォルダは/home/pgdata

・アカウントの作成
rootでログイン
# /usr/sbin/adduser postgres
# /usr/bin/passwd postgres

・フォルダーの作成
# mkdir /home/pgdata
# chown postgres:potgres /home/pgdata
# mkdir /usr/local/pgsql
# chown postgres:postgres /usr/local/pgsql
# chown posrgres:postgres /usr/local/src (フォルダーは既にあるので、オーナーだけ変更)

・ソースの展開
sambaで共有した/home/pubにダウンロードしてきたPostgreSQLのソース、tar.gzを用意して

# su postgres
$ cd /usr/local/src
$ tar xfz /home/pub/ソースファイル

・コンパイル
$ cd /usr/local/src/p*
$ ./configure オプション無し
----------------------------------------------------------------------------------------------------
2023/10/24 Oracle Linux Server 9.2 postgresql9.2
$ ./configure --without-icu
yumでicuがインストールできなかったので
----------------------------------------------------------------------------------------------------
$ make all
$ make install

・初期化
postgresで/home/postgres/.bashrcに下記を追加
PATH="$PATH":/usr/local/pgsql/bin
export PGDATA=/home/pgdata

$source ~/.bashrc

PGDATAが環境変数として設定されているか確認
$ printenv


$ initdb --no-locale --encoding=UTF8 

(2017/4/6
オプション無しで使ってみるとソートした時に並びが変だった)

/home/pgdata/pg_hba.confの編集、編集前に元ファイルを.bkを付けて保存しておく
$ cd /home/pgdata
$ cp pg_hba.conf pg_hba.conf.bk
下記を追加
host all all 0.0.0.0/0 trust

/home/pgdata/postgresql.confの編集(編集前に元ファイルを.bkを付けて保存しておく)
listen_addresses = '*'
max_connection = 32
shared_buffers = 160MB
temp_buffers = 40MB
work_mem = 10MB

・postgresql.serviceの自動起動
下記を/lib/systemd/systemディレクトリに作成し"postgresql.service"というファイル名で保存

[Unit]
Description=PostgreSQL database server
After=network.target

[Service]
Type=forking
PIDFile=/home/pgdata/postmaster.pid
User=postgres
ExecStart=/usr/local/pgsql/bin/pg_ctl -s -D /home/pgdata start
ExecStop=/usr/local/pgsql/bin/pg_ctl -s -D /home/pgdata stop -m fast

[Install]
WantedBy=multi-user.target

# chown postgres:postgres /lib/systemd/system/postgresql.service
# systemctl enable postgresql.service

として登録。再起動してpostgresql.serviceが起動しているか確認。

# systemctl --type service

・データベースの作成
$ createdb DataBaseMei -E UTF-8 -l ja_JP.UTF-8 -T template0
$ psql DataBaseMei -e < ダンプデータ

----------------------------------------------------------------------------------------------------
ここで失敗してしまった場合は一度、postgresql をアンインストールしてinitdbし直す

サービスを止める
# systemctl stop postgresql.service
postgresqlをアンインストール
$ cd /usr/local/src/p*
$ make uninstall
データフォルダーを削除
# rm -rf /home/pgdata
再作成
# mkdir /home/pgdata
# chown postgres:postgres /home/data
postgresqlを再インストール
$ cd /usr/local/src/p*
$ make install
環境変数PGDATAを確認して初期化
$ printenv
$ initdb --no-locale --encoding=UTF8
後、同様に下記を編集
/home/pgdata/pg_hba.conf
/home/pgdata/postgresql.conf
----------------------------------------------------------------------------------------------------

・ユーザーの作成(スーパーユーザーとして)
ユーザーは手動で登録、データベースを取り込んでもユーザーは登録されない。

ユーザー一覧
$ psql nhs
nhs=# select * from pg_user;

スーパーユーザーでユーザー登録
$ createuser -s Namae

・ユーザーの削除
$ dropuser Namae

------------------------------------------------------------

2019/8/21
1.sambaが開かなかった、telnetがつながらなかったので、
# systemctl disable firewalld

2.ホスト名の変更
# hostnamectl set-hostname [ホスト名]

3.IPアドレスの変更
デバイスを確認
# nmcli d

IPアドレス、サブネットマスクを変更
/etc/sysconfig/network-scripts/ifcfg-enp6s0 (例えば)を修正
----------------------------------------------------------------------------------------------------
2023/10/24 ifcfgの場所が変わった
/etc/NetworkManager/system-connections/
コメントアウトは#を付ける
----------------------------------------------------------------------------------------------------
--修正前--
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=enp2s0
UUID=37c4c2cc-df4b-4a3a-9b0b-1528640553a0
DEVICE=enp2s0
ONBOOT=yes

--修正後--
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO="static"
DNS1="192.168.1.254"
IPADDR="192.168.1.30"
NETMASK="255.255.255.0"
GATEWAY="192.168.1.254"
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
NAME=enp2s0
UUID=37c4c2cc-df4b-4a3a-9b0b-1528640553a0
DEVICE=enp2s0
ONBOOT=yes

IPV6関係は削除してしまった。
インストール終了後、テスト環境ではピアツーピアでクライアントPC接続している。その場合にクラアントPCからの接続が遅くなってしまう時
は設定したDNSは見えなくなっているので。コメントアウト(#を付ける)する。
それでも遅い場合は/hostsにクライアントPCを追加する。

4.サービスの状態確認
起動中のサービス一覧を見たい場合は、以下のようにコマンドを実行します。
# systemctl list-units --type=service
サービスの自動起動を無効にしたい場合は、以下のようにコマンドを実行します。
# systemctl disable SeviceMei

5.ブートダンプ
$ dmesg | less

6.ホスト名の変更
ホスト名の確認
# hostnamectl
ホスト名の変更
# hostnamectl set-hostname AtarasiiNamae