postgres pg-xlog日志满如何设置自动清理

嗯...2 02 2 年...遇到这种事...挺烦人的...
我在某公司...服务器在杭州...有一次pg_xlog满了...快2 00G了...数据库直接卡住了...
后来才意识到...我得赶快处理...我查了文档...
文件postgresql.conf...我得改几个地方...
先看看archive_mode...这个得 被设置为on...之前可能已经关闭了...
然后archive_command...这个很重要...路径一定要写正确...比如'/usr/local/bin/archive_wal %p'...还必须保证这个脚本可以运行...
wal_keep_segments...你还必须看看这个...默认可能是1 0...我觉得应该更大...比如设置为5 0...
checkpoint_segments 还有checkpoint_timeout...这两个也有关系...checkpoint_segments设置为2 0...
设置checkpoint_timeout为1 0分钟...这样检查点的频率会更高...WAL生成会更慢...
然后...备份...一定要备份...postgresql.conf备份...数据库也要备份...
先试试测试环境...如果不行再试...杭州的服务器... 折腾了两天...
终于好了...已经不饱了...
就这样了...

postgresql中怎么用psql命令

PostgreSQL 用起来很有趣。

连接数据库,默认用户为postgres。
使用 psql -U user -d dbname 命令进行连接。
这和MySQL的use db类似,但是PostgreSQL需要全名。

如果您想查看它是哪个数据库,请使用 \l。
这与MySQL的显示数据库相同。

桌子呢?使用 \dt 列出。
也和MySQL的显示表一样。

看看表结构? \d 表名。
类似于MySQL的desc表名。

指数怎么样? \di 表名。

创建数据库非常简单,create database dbname;。
例如,进行数据库销售;会做。

删除数据库?删除数据库 dbname;。
例如,下降数据库销售额;。

更改表名,将表tableA更改名称为tableB;。
例如,将表A更改为表B。

表已删除?删除表表名;。
例如删除表tableA;。

向表添加字段?更改表表名添加列列名类型;。
例如,alter table sales 添加列 new_col int;。

字段已删除?更改表表名删除列列名;。
例如,更改表 sales drop 列 new_col;。

更改字段名称? alter table tablename 将列 old_name 重命名为 new_name;。
例如,更改表 sales 将列 old_column 重命名为 new_column;。

为字段设置默认值?更改表表名更改列列名设置默认新值;。
例如,alter table sales alter column id set default 1 ;。

默认值已被删除?更改表表名更改列列名删除默认值;。

插入数据?插入表名(col1 ,col2 )值(val1 ,val2 );。
例如插入 sales(name,price)values('apple', 1 0);。

更改数据?更新表名 set col1 = val1 where 条件;。
例如,更新销售集价格 = 1 5 ,其中名称 = 'apple';。

删除数据?从表名 where 条件删除;。
例如,从 sales where name = 'apple'; 删除。
您想删除整个表吗?从表名中删除;。

建一张桌子怎么样? create table 表名(col1 类型,col2 类型,主键(col1 ));。
例如创建表sales(id序列主键,name文本);。

\copyright 显示条款。
\encoding 设置编码。
\h 帮助。
\提示提示。
\password 更改密码。
\q 退出。
哪个备份?使用 pg_dump sales > /opt/Postgresql/backup/1 .bak。

说实话,如果你把这些命令写下来,用几次就会熟悉了。