postgresql操作

显示数据库名

postgres=# select pg_database.datname, pg_database_size(pg_database.datname) AS size from pg_database;
  

     datname     |    size     
-----------------+-------------
 postgres        |     7240216
 template1       |     7119364
 template0       |     7119364
(3 rows)

session问题

postgres=# DROP DATABASE pre_dev;                                                                       
ERROR:  database "pre_dev" is being accessed by other users
DETAIL:  There is 1 other session using the database.
postgres=# SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname='pre_dev' AND pid<>pg_backend_pid();
 pg_terminate_backend 
----------------------
 t
(1 row)

修改数据库名

postgres=# ALTER DATABASE pre_dev RENAME  TO pre_devbak;                                                            
ALTER DATABASE

\c dbname    切换数据库,相当于mysql的use dbname
postgres=# \c pre_dev;
You are now connected to database "pre_dev" as user "postgres".

\l 列举数据库,相当于mysql的show databases

postgres=# \l
                                    List of databases
      Name       |  Owner   | Encoding |  Collate   |   Ctype    |   Access privileges   
-----------------+----------+----------+------------+------------+-----------------------
 postgres        | postgres | UTF8     | en_US.utf8 | en_US.utf8 | 
 pre_dev         | postgres | UTF8     | en_US.utf8 | en_US.utf8 | 
 template0       | postgres | UTF8     | en_US.utf8 | en_US.utf8 | =c/postgres          +
                 |          |          |            |            | postgres=CTc/postgres
 template1       | postgres | UTF8     | en_US.utf8 | en_US.utf8 | =c/postgres          +
                 |          |          |            |            | postgres=CTc/postgres
(4 rows)


\dt   列举表,相当于mysql的show tables
cs_dev=# \dt
          List of relations
 Schema |   Name   | Type  |  Owner   
--------+----------+-------+----------
 public | user_tbl | table | postgres
(1 row)


查看表结构,相当于desc tblname,show columns from tbname
\d tblname

cs_dev=# \d user_tbl
             Table "public.user_tbl"
   Column    |         Type          | Modifiers 
-------------+-----------------------+-----------
 name        | character varying(20) | 
 signup_date | date         


\di 查看索引 

创建数据库

postgres=# create database pre_dev; 
CREATE DATABASE

创建表

cs_dev=# CREATE TABLE user_tbl(name VARCHAR(20), signup_date DATE);
CREATE TABLE

显示所有表 相当于mysql的show tables;  
cs_dev=# SELECT table_name FROM information_schema.tables WHERE table_schema = 'public';
 table_name 
------------
 user_tbl
(1 row)

插入数据

cs_dev=# INSERT INTO user_tbl(name, signup_date) VALUES('cs', '2017-12-25');
INSERT 0 1
cs_dev=# select * from user_tbl;                                            
 name | signup_date 
------+-------------
      | 2017-12-04
 cs   | 2017-12-25
(2 rows)

显示表结构 相当与mysql的describe table_name; 

cs_dev=# SELECT table_catalog, table_schema,table_name, column_name,udt_name FROM information_schema.columns WHERE table_name ='user_tbl';
 table_catalog | table_schema | table_name | column_name | udt_name 
---------------+--------------+------------+-------------+----------
 cs_dev        | public       | user_tbl   | name        | varchar
 cs_dev        | public       | user_tbl   | signup_date | date
(2 rows)


显示所有表的记录

select relname as TABLE_NAME, reltuples as rowCounts from pg_class where relkind = 'r' and relnamespace = (select oid from pg_namespace where nspname='public') order by rowCounts desc limit 200 offset 0;

cs_dev=# select relname as TABLE_NAME, reltuples as rowCounts from pg_class where relkind = 'r' and relnamespace = (select oid from pg_namespace where nspname='public') order by rowCounts desc limit 200 offset 0;
 table_name | rowcounts 
------------+-----------
 user_tbl   |         2
(1 row)


导出

pg_dump -h 127.0.0.1 -p 5432 -U postgres   core_dev >  D:/java/git/core_dev.sql

导入

psql -d core_dev -U postgres  < D:/java/git/core_dev.sql

给定引用中未提及zabbix升级PostgreSQL操作步骤。不过,一般情况下可以按照以下通用步骤进行操作: ### 1. 备份数据 在进行任何升级操作之前,务必对Zabbix数据库和相关配置文件进行备份,以防止数据丢失。可以使用以下命令备份Zabbix数据库: ```bash pg_dump -U <zabbix_db_user> -d <zabbix_db_name> -F c -f /path/to/backup.dump ``` 同时,备份Zabbix配置文件,如`/etc/zabbix/zabbix_server.conf`等。 ### 2. 检查兼容性 确认新版本的PostgreSQL与Zabbix的兼容性,查看Zabbix官方文档以获取支持的PostgreSQL版本信息。 ### 3. 安装新版本的PostgreSQL 可以使用包管理器(如yum、apt等)来安装新版本的PostgreSQL。以CentOS为例,可以使用以下命令添加PostgreSQL官方仓库并安装: ```bash sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm sudo yum install -y postgresql<version> postgresql<version>-server ``` 其中`<version>`是要安装的PostgreSQL版本号。 ### 4. 初始化新数据库 安装完成后,初始化新的PostgreSQL数据库: ```bash sudo /usr/pgsql-<version>/bin/postgresql-<version>-setup initdb sudo systemctl enable postgresql-<version> sudo systemctl start postgresql-<version> ``` ### 5. 迁移数据 使用`pg_upgrade`工具将旧版本的数据库迁移到新版本: ```bash # 停止旧版本的PostgreSQL服务 sudo systemctl stop postgresql # 执行pg_upgrade /usr/pgsql-<new_version>/bin/pg_upgrade \ -b /usr/pgsql-<old_version>/bin \ -B /usr/pgsql-<new_version>/bin \ -d /var/lib/pgsql/<old_version>/data \ -D /var/lib/pgsql/<new_version>/data ``` 其中`<old_version>`是旧版本的PostgreSQL版本号,`<new_version>`是新版本的PostgreSQL版本号。 ### 6. 配置Zabbix使用新数据库 修改Zabbix配置文件`/etc/zabbix/zabbix_server.conf`,更新数据库连接信息,确保使用新的PostgreSQL数据库。 ### 7. 启动Zabbix服务 启动Zabbix服务并检查是否正常运行: ```bash sudo systemctl start zabbix-server sudo systemctl start zabbix-agent ``` ### 8. 验证升级结果 登录Zabbix前端,检查各项功能是否正常,确保数据迁移成功。 请注意,以上步骤仅为通用指南,具体操作步骤可能因操作系统、PostgreSQL版本和Zabbix版本的不同而有所差异。在进行升级操作之前,建议仔细阅读Zabbix和PostgreSQL的官方文档,并在测试环境中进行充分测试。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值