postgres常用的查询语句

1、查询配置文件的位置

show config_file;

2、查询当前参数值和该参数可以配置哪些值

eg:

select name, setting, enumvals, context  from pg_settings where name = 'archive_mode';

postgres=# select name, setting, enumvals, context  from pg_settings where name = 'archive_mode';
     name     | setting |    enumvals     |  context   
--------------+---------+-----------------+------------
 archive_mode | off     | {always,on,off} | postmaster

其中enumvals是参数可以的配置选项,context代表了参数的生效方式

postgres=# select distinct context from pg_settings;
      context     
-------------------
 backend
 user
 internal
 postmaster
 superuser
 sighup
 superuser-backend
(7 rows)

其中
internal: 编译期间的设置,只有重新编译才能生效。
postmaster: 只有服务重启才能生效。
sighup: 不需要重启数据库,但要向postmaster进程发送sighup信号,即需要pg_ctl reload命令
backend:无需重启数据库,只需向postmaster进程发送sighup信号。但新的配置值只能在之后的新连接中生效,已有连接中这些参数值不会改变
superuser: 使用superuser(如postgres)才能更改,不用重新加载所有配置即可生效。这类参数可以由超级用户使用set修改。参数设置后只会影响超级用户自身的session配置,不会影响其他用户。
user: 单个会话用户可以在任意时间做修改,只会影响该会话。
superuser-backend


其中重新加载生效的方式如下:
2.1. 用超级用户运行
postgres=# SELECT pg_reload_conf();

2.2. 用UNIX的kill手动发起HUP信号
$kill -HUP PID

2.3.使用pg_ctl命令触发SIGHUP信号
$pg_ctl reload

 

3、查询主备库角色的方法

3.1 查询pg_is_in_recovery视图,返回f表示主库, 返回t表示从库

3.2 pg_controldata 命令,查看Database cluster state的值,如果是"in production"代表主库,"in archive recovery" 代表是备库的意思

3.3 查询pg_stat_replication视图,如果有返回值的是主库,无返回值的为备库

3.4 查询后台进程,如果有walsender为主库,walreceiver的为备库

4、显示备库最近接收的WAL日志位置(备库查询)

select pg_last_wal_receive_lsn();

5、显示备库最近应用的WAL日志位置(备库查询)

select pg_last_wal_replay_lsn();

6、显示备库最近事物的应用时间(备库查询)

select pg_last_xact_replay_timestamp();

7、显示主库WAL当前的写入位置(主库查询)

select pg_current_wal_lsn();

8、计算两个WAL日志位置的偏移量

select pg_wal_lsn_diff('0/3033760','0/3033759');

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL和PostgreSQL是两种常用的关系型数据库管理系统(RDBMS),虽然在SQL语法上存在一些不同,但是可以用一些方法将MySQL的语句转换为PostgreSQL的语句。 首先,需要注意的是,不是所有的MySQL语句都可以直接转换为PostgreSQL语句,因为两种数据库在一些细节上有所差异。转换的关键在于了解两种数据库的特性和语法规则。 一些常见的语句转换包括: 1. 数据类型转换:MySQL中的INT在PostgreSQL中对应的是INTEGER,VARCHAR对应的是TEXT等。需要将MySQL的数据类型转换为PostgreSQL的数据类型。 2. 索引创建语法转换:MySQL使用的是KEY关键字,而PostgreSQL使用的是INDEX关键字。需要将MySQL中的索引创建语法转换为PostgreSQL的语法。 3. 字符串连接:MySQL中使用的是CONCAT函数,而PostgreSQL使用的是||操作符。需要将MySQL的字符串连接函数转换为PostgreSQL的操作符。 4. 日期和时间函数:MySQL和PostgreSQL在日期和时间函数上有所不同,需要将MySQL中使用的函数替换为PostgreSQL中对应的函数。 此外,还需要注意一些语法上的差异,比如对于LIMIT语句,MySQL使用的是LIMIT关键字,而PostgreSQL使用的是LIMIT和OFFSET关键字的组合。 总体而言,将MySQL的语句转换为PostgreSQL的语句需要对两种数据库的特性和语法规则有一定的了解,同时还需要针对具体的语句进行逐一转换。在转换过程中,可以参考MySQL和PostgreSQL的官方文档,或者使用一些专门的转换工具来辅助转换。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值