SELECT "A","B","C" FROM "テーブルB"
EXCEPT
SELECT "A","B","C" FROM "テーブルA"
■不要領域の回収とデータベースの解析
→ VACUUM "テーブル名";
■統計を収集
→ ANALYZE "テーブル名";
■インデックスの再構築
→ REINDEX TABLE "テーブル名";
説明:
CドライブにpostgreSQLがインストールされており
Dドライブにバックアップに日付フォルダを作成し
その中にバックアップし2回分だけキープさせる仕組みです。
プログラム例:
set datetime=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%
set datetime=%datetime: =0%
D:
md "D:\Backup Files\PostgreSQL\"%datetime%
cd C:\Program Files\PostgreSQL\9.5\bin
pg_dump.exe -h localhost -p 5432 -U postgres データベース名 > "D:\Backup Files\PostgreSQL\"%datetime%\データベース名.sql
cd "D:\Backup Files\PostgreSQL\"
for /F "skip=2" %%A in ('dir /b /o-n') do rd /s /q "%%A"
説明:
バックアップされているデータから最新のデータを選択し
データベースの復元作業をおこなう
プログラム例:
set TARGET=D:\
if not exist "%TARGET%\" goto NotFolder
cd /d %TARGET%
for /F %%a in ('dir /B /A:D / ON') do (set fname=%%a)
xcopy "D:\Backup Files\%fname%" /I "C:\Temp Files\%fname%"
D:
cd "C:\Temp Files\%fname%"
set fpath="C:\Temp Files\%fname%"
psql.exe -h localhost -p 5432 -U postgres -c "SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = 'データベース名' AND pid <> pg_backend_pid();"
psql.exe -h localhost -p 5432 -U postgres -c "drop database ""データベース名"";"
psql.exe -h localhost -p 5432 -U postgres -c "create database ""データベース名"";"
psql.exe -h localhost -p 5432 -U postgres -d データベース名 -f %fpath%\データベース名.sql
cd /d C:\Temp Files\
for /F "skip=3" %%A in ('dir /b /o-n') do rd /s /q "%%A"
SHOW max_connections;
SELECT * FROM pg_stat_activity ORDER BY state_change DESC;
「postgresql.conf」の中にある「max_connections = 100」の「100」を増やしたり減らしたりした後
postgreSQLのサービスを再起動させます。
パス例:C:\Program Files\PostgreSQL\9.5\data
SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE pid <> pg_backend_pid() AND state_change <='2021-05-10 08:30:00';
WHERE coalesce(trim("項目名"),'')=''
TRANSLATE("項目名",TRANSLATE(”項目名”,'0123456789',''),'')