本教程解释如何使用psql在PostgreSQL服务器中显示数据库和表。 列出数据库 您可以使用该 psql 命令以任何系统用户身份连接到 PostgreSQL 服务器。...前两个是创建新数据库时使用的模板。 如果要获取有关数据库大小,默认表空间和描述的信息,请使用 \l+ 或 \list+ 。仅当当前用户可以连接到数据库时,才会显示数据库大小。...要在不访问 psql shell 的情况下获取所有数据库的列表,请使用 -c 如下所示的开关: sudo -u postgres psql -c "\l" 列出数据库的另一种方法是使用以下 SQL 语句...template1 template0 (4 rows) 列出表 要首先列出特定数据库的所有表,您需要使用 \c 或者 \connect meta-command 连接到它。...要获取有关表大小的信息,请使用说明 \dt+。 结论 您已经学习了如何使用该 psql 命令列出 PostgreSQL 数据库和表。
但是pg自带的 vacuum full 在回收的过程中会阻塞读写操作,不能在生产环境直接运行。 因此,在生产环境 我们常用的表空间收缩工具是pg_squeeze 和 pg_repack。...这里先贴 pg_repack 的用法: 项目地址: https://github.com/reorg/pg_repack 原理: 新建一个一模一样的影子表,然后拷贝原表的数据,最后rename替换原表... = 'pg_repack' 然后 ,重启pg进程 使用方法: create database db1; \c db1 create extension pg_repack; create table...然后,在外部使用pg_repack对 color表做空间回收: cd /home/postgres/pg_repack-ver_1.4.4/bin ....整个的文件大小又缩回到1.4G了(回收掉的200MB差不多就是一半的testdata表的空间大小) 最后, 我们可以使用脚本定时检测对超过某些阈值的表定时执行 pg_repack 操作,以便回收磁盘空间
生产环境除了手动使用vacuum之外,还有两个比较常用的工具:一个是pg_repack,另外一个是pg_squeeze。...使用pg_repack或pg_squeeze对表做重组时,比vacuum full对系统的影响小,且性能更高。...使用例子 对test数据库下的foo和bar表做在线vacuum full $ pg_repack --no-order --table foo --table bar test 转移foo表的索引到...tbs表空间 $ pg_repack -d test --table foo --only-indexes --tablespace tbs pg_squeeze使用例子 以注册表方式crontab定期运行...pg_squeeze当前版本1.3.1测试发现pg_show_plans不能同时使用。
要解决此问题,请使用 -p 选项选择不同的端口。您还需要在下面的 psql 命令中使用新端口。...为了添加这些信息,我们调用一个 UDF,它将节点信息添加到 pg_dist_node 目录表中。对于我们的示例,我们假设有两个 worker(名为 worker-101,worker-102)。...这个命令在 psql shell 中运行时应该输出我们添加到上面 pg_dist_node 表中的 worker 节点。...为了添加这些信息,我们调用一个 UDF,它将节点信息添加到 pg_dist_node 目录表中。对于我们的示例,我们假设有两个 worker(名为 worker-101,worker-102)。...这个命令在 psql shell 中运行时应该输出我们添加到上面 pg_dist_node 表中的 worker 节点。
cp /usr/local/etc/pgpool.conf.sample pgpool.conf 如果你打算使用 pgpool_setup,输入: pgpool_setup 这将创建一个具有流复制模式安装...从现在开始,我们假设您使用 pgpool_setup 在当前目录下创建安装。请注意,在执行 pgpool_setup 之前,当前目录必须是空的。 要启动整个系统,请输入: ....pgpool_setup 自动创建 test 数据库。我们使用数据库。注意端口号是 11000,这是 pgpool_setup 分配给 Pgpool-II 的默认端口号。...键入以下内容以创建基准表 $ pgbench -i -p 11000 test 要查看 replication 是否正常工作,请直接连接到主服务器和备用服务器,看看它们是否返回相同的结果。...= "true" ];then $psql -p $PORT -c "SELECT pg_stop_backup()" postgres fi if [ $pg_rewind_failed = "false
('default', ARRAY['public']); 复制集default的表都必需要primary key 3.3、订阅者节点配置 1、创建节点 在另一个数据库创建订阅者节点 SELECT pglogical.create_node.../delete/truncate操作是否同步;所以创建的表要有主键。...若使用第一种方法;还需要在subscriber 节点同步表的操作。...', now(); # subscriber节点创建表; 可以只创建复制的列的数据表 create table tbl_lottu02 (id int primary key, name text,...| pg 8 | lottu8 | pg 9 | lottu9 | pg (9 rows) 4.3、为新表自动分配复制集 事件触发器工具可用于描述为新创建的表定义复制集的规则。
,或数据表 连接cn进行相关数据库和表的创建 psql -h172.21.16.28 -p11345 -U tbase -d postgres postgres=# create database testdb...: 连接dn001 tbase@VM-16-28-centos ~$ psql -h172.21.32.2 -p11000 -Utbase -dpostgres psql (PostgreSQL 10.0...---------+----------+--------------+-----------+-----------+----------- (0 rows) 为什么我们在postgres库中,使用...[配置完DN002白名单如图] 第三四步:TBase2 实例进行数据订阅配置 首先进行表结构的创建,建表语句和TBase1的语句相同。连接TBase2的CN节点进行配置即可。...希望大家看完能比对传统集中式pg的逻辑订阅发布方式有所收货。
$ sudo systemctl restart postgresql-12 二、自定义登录函数篇 创建t_login表用于存储提取自数据库日志中登录失败的信息。...,1代表正常状态数据 ); 使用file_fdw外部表记录数据库日志信息。...创建测试用户。...然后使用postgres用户登录数据库,观察t_login表数据。...[postgres@node11 ~]$ psql NOTICE: Account test1 is locked! psql (12.5) Type "help" for help.
pg主备库的搭建,首先需在2个节点安装pg软件,然后依次在2个节点配置主备。本文采用os为CentOS7.6,pg版本使用14.2,以下为详细部署步骤。...本文两个节点的ip地址如下:[root@node1:0 ~]# cat /etc/hosts#CentOS Linux release 7.6.1810 (Core)192.168.222.11 node1192.168.222.12...statuspg_ctl startpg_ctl stop■ 客户端工具使用开源的pgAdminSet Master Password: postgres■■■ 主从配置■■ 主节点■ 创建用于主从访问的用户...standby.signal创建 standby.signal 文件,声明从库。... pg_backend_pid();" - label: idle connections color: 162 sample: psql -At -U postgres
这条命令不会创建数据库dbname,你必须在执行psql前自己从template0创建(例如,用命令createdb -T template0 dbname)。...psql支持类似pg_dump的选项用以指定要连接的数据库服务器和要使用的用户名。参阅psql的手册获 取更多信息。 非文本文件转储可以使用pg_restore工具来恢复。...使用pg_dumpall pg_dump每次只转储一个数据库,而且它不会转储关于角色或表空间(因为它们是集簇范围的)的信息。为了支持方便地转储一个数据库集簇的全部内容,提供了pg_dumpall程序。...在恢复一个pg_dumpall转储时常常需要具有数据库超级用户访问权限,因为它需要恢复角色和表空间信息。如果你在使用表空间,请确保转储中的表空间路径适合于新的安装。...pg_dumpall工作时会发出命令重新创建角色、表空间和空数据库,接着为每一个数据库pg_dump。这意味着每个数据库自身是一致的,但是不同数据库的快照并不同步。
1.创建表的语法 create table 表名 (列1 数据类型 1,列2 数据类型) tablespace 表空间 SQL:create table student...( ID NUMBER not null, NAME VARCHAR2(20) ); 表已创建...删除数据表 drop table student; 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
所有的节点:安装操作系统、创建PG用户目录、安装PG软件、安装repmgr 主库:只初始化主库、启动主库归档 二、环境申请 先申请4台机器,6.66节点最后再申请,反正docker容器都是即开即用的。...、PG12、PG11、PG10和PG9.6这几个版本,均为编译安装,本文使用PG13来操作 三、配置4台主机之间的互信 -- 只在主库61节点上,以root用户执行: chmod +x sshUserSetup.sh...','archive_mode','archive_command'); -- 切换归档 select pg_switch_wal(); 4.3、主库创建相关用户和数据库 -- 创建相关用户和数据库...' pg_bindir='/pg13/pg13/bin' EOF -- 从库1 cat > /pg13/pg13/repmgr.conf << "EOF" node_id=2 node_name=lhrrepmgr64362.../pgdata' pg_bindir='/pg13/pg13/bin' EOF -- 从库2 cat > /pg13/pg13/repmgr.conf << "EOF" node_id=3 node_name
环境: OS: [ha@node0 ~]$ uname -a Linux node0 2.6.32-358.el6.x86_64 #1 SMP Fri Feb 22 00:31:26 UTC...c.新建用户rep create user rep replication encrypted password 'rep'; 2.使用pg_basebackup进行从库备份 [ha@localhost...目录可以通过pg_basebackup自动创建,但是其他表空间,需要手动创建并赋权,这里需要注意的是,权限为700。 ...postgres psql (9.4.5) Type "help" for help....postgres psql (9.4.5) Type "help" for help.
pg常用命令: 连上数据库: psql -U admin_1 -p 11345 -h 192.168.101.193 -d postgres \h #帮助 \h drop database #...#配置客户端编码 \encoding UTF8 #删除插件: drop extension pg_stat_statements; #创建插件 create extension pg_stat_statements...恢复(不指定数据库,就只跑脚本, 指定了数据库就连上数据库跑): 通过sql文件恢复 psql -d postgres -h 172.17.32.18 -p 11345...tbase适合的命令: #创建默认组/也可以控制台点 create default node group default_group with(dn001,dn002); #创建组 create...sharding group to group default_group; #创建sharding map #查看所有node select * from pgxc_node; #查看所有组 select
bin/bash # 表文件和该文件的行数 tablefile="ods_tablename.sql" lines=`cat $tablefile|wc -l` # 导入密码 export...PGPASSWORD=gpadmin # 循环开始备份表中的数据 for tablename in `cat $tablefile` do # 获取该该表的位置 currentlin...# 计算百分比 proportion=`awk 'BEGIN{printf "%.1f%%\n",('$currentlin'/'$lines')*100}'` # 链接的服务器信息 pg_dump...192.168.**.*** -p5432 -U gpadmin -t $tablename database > $tablename".sql" # 打印日志信息 echo "正在备份表..." > 总行数: " $lines " 当前的行数: "$currentlin " 进度百分比: " $proportion done 日志输出信息: 正在备份表
password: Enter it again: 2、在coordinator节点额外执行以下步骤 Step 01 添加worker节点信息 添加worker节点的IP地址(或者DNS名称)和端口号到pg_dist_node...表。...sudo -i -u postgres psql -c "SELECT * from master_add_node('192.168.99.101', 5432);" sudo -i -u postgres...psql -c "SELECT * from master_add_node('192.168.99.102', 5432);" Step 02 验证安装是否成功 sudo -i -u postgres...psql -c "SELECT * FROM master_get_active_worker_nodes();" Step 03 开始使用 sudo -i -u postgres psql 参考资料
13和repmgr软件 2、PG安装方式为编译安装,数据库已初始化完成,用户为pg13 3、该镜像里已安装了PG13、PG12、PG11、PG10和PG9.6这几个版本,均为编译安装,本文使用PG13...','archive_mode','archive_command'); -- 切换归档 select pg_switch_wal(); 4.3、主库创建相关用户和数据库 -- 创建相关用户和数据库...@lhrrepmgr64361 ~]$ 使用读写分离测试: C:\Users\lhrxxt>psql -U pgpool -h 192.168.66.35 -p 19999 -d postgres...八、总结 1、由于主从切换需要启动数据库,所以,在整个环境中,所有的PG数据库均不能使用systemctl来管理,否则切换会出现问题。...2、若要清除节点的注册信息,也可以进入主库中,操作repmgr.nodes表信息。 本文结束。
postgres用户,这部分我使用ansible完成的用户创建,以及相关软件包的应用,节省劳动力(yum其实可以使用ansible自带的方式,所以我ansible写的比较业余) ansible all...如果登陆到数据库中,执行下面语句,发现只有coord的信息,说明并没有创建成功, postgres=# select * from pgxc_node; node_name | node_type |...如果遇到建表,建库失败,也是遇到上面的访问控制权限问题。...[root@c6703 ~]# psql -h 10.21.13.67 -p 20004 -U test postgres=# SELECT pg_reload_conf(); [root@c6703...~]# psql -h 10.21.13.67 -p 20004 -U test Password for user test: psql (PGXL 9.5r1.6, based on PG 9.5.8
psql: [root@node71 ~]# su postgres bash-4.2$ psql could not change directory to "/root": Permission denied...通过Navicat连接 连接的数据库选择刚创建的demo 用户名选择刚创建的用户tom 对应的密码为123456 ?...转换为sql语句就是: [root@node73 data]# psql -U tom -d demo -h 10.6.6.71 -p 5432 Password for user tom: 命令行的各个参数解释说明...-h hostname 主机名,默认值localhost -p port 端口号,默认值5432 四、本地登陆 [root@node72 data]# psql -U tom -d demo -p 5432...更多的认证方式,请看官方资料:http://www.postgres.cn/docs/9.6/auth-pg-hba-conf.html 六、总结 PostgreSQL的连接命令psql有两种连接方式。
password: Enter it again: 2、在coordinator节点额外执行以下步骤 Step 01 添加worker节点信息 添加worker节点的IP地址(或者DNS名称)和端口号到pg_dist_node...表。...sudo -i -u postgres psql -c "SELECT * from master_add_node('192.168.99.101', 5432);" sudo -i -u postgres...psql -c "SELECT * from master_add_node('192.168.99.102', 5432);" Step 02 验证安装是否成功 sudo -i -u postgres...psql -c "SELECT * FROM master_get_active_worker_nodes();" Step 03 开始使用 sudo -i -u postgres psql 总结
领取专属 10元无门槛券
手把手带您无忧上云