PostgreSQL日常维护

目录

一、基本使用

1.1登录数据库

1.2数据库操作

1.2.1列出库

2.SQL查询

1.2.2创建与删除库

1.2.3切换与查看库

1.3数据表操作

1.3.1列出表

1.3.2创建与复制表

1.3.3删除表与查看结构

1.4模式(Schema)操作

1.4.1模式的作用

1.4.2创建于删除模式

1.4.3搜索路径(Search Path0)

1.4.4跨模式操作

二、备份与恢复

2.1 SQL转储

2.1.1 pg_dump工具

2.1.2 恢复数据

2.2pg_dumpall工具

2.3备份策略对比

三、远程连接配置

3.1修改监听地址

3.2配置访问权限

3.3验证远程连接

四、密码重置

4.1临时信任本地连接

五、总结与最佳实践

5.1 核心知识点总结

5.2操作建议


一、基本使用

1.1登录数据库

PostgreSQL的登陆机制是其安全性的第一道防线。默认情况下,必须使用postgres用户进行初始登录,这是系统的超级用户,具备最高权限。登录流程如下:

su - postgres
/usr/local/pgsql/bin/psql

登录成功后,命令行提示符变为postgres=#,表示当前连接的数据库为postgres,

核心要点:

  • postgres用户是数据库的默认超级用户,权限管理需谨慎。
  • 登录后可通过\conninfo查看当前连接信息,包括数据库名、用户、端口等。

1.2数据库操作

1.2.1列出库

PostgreSQL提供多种方式查看数据库列表:

1.元命令:

  • \1:列出所有数据库的基本信息(名称、所有者、编码)。
  • \1+:扩展输出、增加显示数据库大小(Size)、表空间(Tablespace)和描述(Description)。

2.SQL查询

SELECT datname FROM pg_database;

pg_database是系统目录表,存储所有数据库的元数据,其内容不受当前连接数据库影响。

对比分析:

  • 元命令适合快速交互式操作,而SQL查询更适合自动化脚本或复杂过滤需求。
  • pg_database_size()和pg_size_pretty()函数可用于精确计算数据库占用的存储空间。

1.2.2创建与删除库

  • 创建库:
CREATE DATABASE mydb;

默认以template1为模板,可通过TEMPLATE参数指定其他模板(如template0)。

  • 删除库:
DROP DATABASE mydb;

注意事项:

  • 删除数据库前需确保无活动连接,否则会报错。
  • 生产环境中建议先备份再执行删除操作。

1.2.3切换与查看库

  • 切换库:
\c mydb

切换后提示符变为mydb=#,表示当前数据库为mydb。

  • 查看库的大小:
SELECT pg_size_pretty(pg_database_size('mydb'));

该命令将字节转换为易读单位(如MB、GB),便于运维监控。


1.3数据表操作

1.3.1列出表

  • 元命令:
    • \dt:列出当前数据库的普通表(默认public模式)。
    • \dt schema.*:指定模式下的表,如\dt hr .*。
    • \d+ : 显示表及其附加信息(如存储参数、描述)。
  • SQL查询:
SELECT * FROM pg_tables WHERE schemaname = 'public';

pg_tables是系统视图,基于pg_class和pg_namespace动态生成。


1.3.2创建与复制表

  • 标准建表:
CREATE TABLE test (id INT, name CHAR(10), age INT);

PostgreSQL支持丰富的字段类型(如SERTAL自增、JSONB二进制JSON)。

  • 复制表:
CREATE TABLE new_table AS TABLE old_table;

此操作仅复制表结构和数据,不复制约束、索引等高级对象。


1.3.3删除表与查看结构

  • 删除表:
DROP TABLE test2;

风险提示:删除表将永久丢失数据,建议结合事务或备份操作。

  • 查看表结构:
\d test

输出包括字段名、类型、是否可为空、默认值等元数据。


1.4模式(Schema)操作

1.4.1模式的作用

模式是数据库内的逻辑分组,用于解决命名冲突和权限隔离。例如,同一数据库内可存在hr.employeesfinance.employees两个同名表。


1.4.2创建于删除模式

  • 创建模式:
CREATE SCHEMA hr;
  • 删除模式:
DROP SCHEMA hr CASCADE;

CASCADE表示级联删除模式下的所有对象(如表、视图)。


1.4.3搜索路径(Search Path0)

  • 查看搜索路径:
SHOW search_path;

默认值为"$user",public,表示优先查找与当前用户同名的模式。

  • 修改搜索路径:
SET search_path TO hr, public;

此设置仅对当前会话有效,需通过SLTER ROLE或修改postgresql.conf持久化。


1.4.4跨模式操作

  • 显示指定模式名:
SELECT * FROM schema1.users;
  • 动态切换模式:
SET search_path TO schema1;
SELECT * FROM users; -- 默认访问schema1.users

优势:避免频繁输入模式名,提升开发效率。


二、备份与恢复

2.1 SQL转储

2.1.1 pg_dump工具

  • 基本用法:
pg_dump mydb > mydb_backup.sql

特性:

  • 生成标准SQL脚本,兼容不同PostgreSQL版本。
  • 支持并行备份(-j 参数)和自定义格式(-Fc)。

2.1.2 恢复数据

  • 全量恢复:
psql mydb < mydb_backup.sql

注意事项:

  • 目标数据库需预先创建。
  • 使用 -1参数可将恢复过程封装为事务,确保原子性。

2.2pg_dumpall工具

  • 集簇级备份:
pg_dumpall > cluster_backup.sql

功能:备份所有数据库及全局对象(如角色、表空间)。

恢复命令:

psql -f cluster_backup.sql postgres

2.3备份策略对比

方法优点缺点适用场景
SQL转储跨版本兼容、逻辑备份恢复时间较长小型数据库、迁移
文件系统备份快速、物理备份依赖文件系统快照功能大型数据库、定期全量
连续归档支持PITR(时间点恢复)配置复杂、需持续归档高可用、容灾需求

三、远程连接配置

3.1修改监听地址

  • 配置文件路径:
    • DNF安装:/var/lib/pgsql/data/postgresql.conf
    • 源码编译:/usr/local/pgsql/data/postgresql.conf
  • 关键参数:
listen_addresses = '*'  # 允许所有IP连接

3.2配置访问权限

  • 编辑pg_hba.conf:
host all all 0.0.0.0/0 scram-sha-256

认证方法说明:

  • trust:无需密码(仅限内网测试)。
  • md5/scram-sha-256:密码加密传输(推荐生产环境使用)。

3.3验证远程连接

  • 客户端命令:
psql -h 192.168.10.102 -U postgres

安全建议:

  • 限制IP范围(如192.168.1.0/24)。
  • 定期审计pg_hba.conf配置。

四、密码重置

4.1临时信任本地连接

1.备份pg_hba.conf:

cp pg_hba.conf pg_hba.conf.bak

2.修改认证方法:

host all all 127.0.0.1/32 trust

3.重启服务:

systemctl restart postgresql

4.2修改密码

ALTER USER postgres WITH PASSWORD 'NewPassword123!';

4.3恢复配置

  • 还原pg_hba.conf并重启服务,确保密码生效。

五、总结与最佳实践

5.1 核心知识点总结

  • 模式隔离:通过Schema实现逻辑分组,避免命令冲突。
  • 备份策略:根据业务需求选择SQL转储、文件备份或连续归档。
  • 安全配置:远程连接需结合IP限制和强认证方法(如SCRAM-SHA-256)。

5.2操作建议

  • 定期备份:至少每日执行一次pg_dump全量备份。
  • 权限最小化:避免使用postgres超级用户执行日常操作。
  • 监控与优化:通过pg_stat_activity监控连接,定期执行VACUUMANALYZE。

通过掌握上述技能,用户可高效管理PostgreSQL数据库,为复杂业务场景提供稳定支持。

为了在Windows安装ADB工具,你可以按照以下步骤进行操作: 1. 首先,下载ADB工具包并解压缩到你自定义的安装目录。你可以选择将其解压缩到任何你喜欢的位置。 2. 打开运行窗口,可以通过按下Win+R键来快速打开。在运行窗口中输入"sysdm.cpl"并按下回车键。 3. 在系统属性窗口中,选择"高级"选项卡,然后点击"环境变量"按钮。 4. 在环境变量窗口中,选择"系统变量"部分,并找到名为"Path"的变量。点击"编辑"按钮。 5. 在编辑环境变量窗口中,点击"新建"按钮,并将ADB工具的安装路径添加到新建的路径中。确保路径正确无误后,点击"确定"按钮。 6. 返回到桌面,打开命令提示符窗口。你可以通过按下Win+R键,然后输入"cmd"并按下回车键来快速打开命令提示符窗口。 7. 在命令提示符窗口中,输入"adb version"命令来验证ADB工具是否成功安装。如果显示版本信息,则表示安装成功。 这样,你就成功在Windows安装ADB工具。你可以使用ADB工具来执行各种操作,如枚举设备、进入/退出ADB终端、文件传输、运行命令、查看系统日志等。具体的操作方法可以参考ADB工具的官方文档或其他相关教程。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* [windows环境安装adb驱动](https://blog.csdn.net/zx54633089/article/details/128533343)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Windows安装使用ADB简单易懂教程](https://blog.csdn.net/m0_37777700/article/details/129836351)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值