Postgres-xl 运维相关

2022-05-06 00:00:00 数据 数据库 查看 机制 清理

Postgres-XL 运维相关

psql 命令客户端使用

命令格式: psql -h -U -p  (更多参考: psql --help)

#数据库连接参数
  -h, --host=HOSTNAME      database server host or socket directory (default: "local socket")
  -p, --port=PORT          database server port (default: "5432")
  -U, --username=USERNAME  database user name (default: "postgres")
  -w, --no-password        never prompt for password
  -W, --password           force password prompt (should happen automatically)
#登录后常见语法使用
\l:查看库
\c:切换库
\d:查看库具体信息(表、函数、序列等)
\d+ 表名:表结构详细信息
\?:更多命令查看及使用
复制代码

常见运维SQL使用

#查看集群节点信息
select * from pgxc_node
#查看数据库信息
select * from pg_database
#查看数据库磁盘占有量(使用pg_size_pretty进行大小格式查看)
select pg_database.datname, pg_size_pretty(pg_database_size(pg_database.datname)) AS size from pg_database;
#查看数据库表结构大小
SELECT table_schema || '.' || table_name AS table_full_name, pg_size_pretty(pg_total_relation_size('"' || table_schema || '"."' || table_name || '"')) AS size
FROM information_schema.tables ORDER BY pg_total_relation_size('"' || table_schema || '"."' || table_name || '"') DESC
#数据库事务xid
select age(datfrozenxid),datname from pg_database;
#数据库表事务xid查看
SELECT relname, age(relfrozenxid) as xid_age, pg_size_pretty(pg_table_size(oid)) as table_size FROM pg_class WHERE relkind = 'r' and pg_table_size(oid) > 1073741824
ORDER BY age(relfrozenxid) DESC LIMIT 20;

复制代码

vacuum 清理机制配置

vacuum 简介

Postgresql的MVCC机制

postgresql的MVCC机制,我们知道,postgresql是没有undo表空间的,它通过数据的多版本来实现mvcc,一条数据的delete并不会释放数据占用空间,同理update是通过delete+insert的方式实现,通过这种方式减少了锁的使用,提高了并发性能。但是这种设计天然带来一个问题:旧数据的清理,如果清理不及时就会造成数据膨胀,这也是在频繁更新的oltp系统中数据膨胀问题的原因 MVCC:Multiversion concurrency control,多版本控制机制。应对高并发事务, MVCC 比单纯的加行锁更有效, 开销更小。

关键词说明

OLTP/OLAP:OLTP(on-line transaction processing) OLAP(On-Line Analytical Processing)翻译为联机分析处理,从字面上来看OLTP是做事务处理,OLAP是做分析处理。从对数据库操作来看,OLTP主要是对数据的增删改,OLAP是对数据的查询

Vacuum命令介绍

清理机制配置

#1.清理脚本配置
vim vacuum.sh
注意:
1.其中目录替换为实际目录
2.命令脚本路径自行替换
--------------------------
#!/bin/sh
echo "开始数据库清理:$(date +%H:%M:%S)" >> /data/vacuum/vacuumdb_$(date +%F).log
/usr/local/pgxl10/bin/vacuumdb -h 192.168.0.183 -p 5432 -d data_center -f -z -v >> /data/vacuum/vacuumdb_$(date +%F).log 2>&1
echo "结束数据库清理:$(date +%H:%M:%S)" >> /data/vacuum/vacuumdb_$(date +%F).log
-------------------------

#2.定时任务配置
常见情况会创建postgres Linux用户进行pg的管理
sudo su - postgres
#定时任务执行脚本
crontab -e 
20 2 15 * * /bin/sh /data/vacuum.sh  #每月15号 上午2点20分执行(具体根据实际业务调整执行时间及频率等)

#3.观察磁盘占用情况

df -h  #1.直接查看磁盘使用情况

#4.pg关于vacuum相关参数优化调整配置

复制代码

数据库备份与还原

数据库备份

全量备份

增量备份

数据库还原

相关文章