PostgreSQL 日常维护

目录

前言

基本使用

1. 登录数据库

2. 数据库操作

2.1 列出库

2.2 创建库

2.3 删除库

2.4 切换库

2.5 查看库大小

3. 数据表操作

3.1 列出表

3.2 创建表

3.3 复制表

3.4 删除表

3.5 查看表结构

4. 模式操作命令

4.1 创建模式

4.2 默认模式

4.3 删除模式

4.4 查看所有模式

4.5 在指定模式中创建表

4.6 切换当前模式

4.7 查看当前所在 schema

4.8 查看搜索路径(Search Path)

4.9 PostgreSQL 的模式隔离性

5. 数据操作

5.1 添加数据

5.2 查询数据

5.3 修改数据

5.4 删除数据

6. 备份与恢复

6.1 SQL 转储

6.2 从转储中恢复

6.3 使用 pg_dumpall

7. 远程连接

7.1 修改 PostgreSQL 监听地址

7.2 配置访问权限

7.3 重启服务

7.4 验证远程连接

8. 重置密码

8.1 备份配置文件

8.2 修改配置文件

8.3 重启服务

8.4 修改密码

8.5 恢复 pg_hba.conf 配置文件

总结


前言

PostgreSQL 作为功能强大的开源关系型数据库,在企业级开发与数据分析中应用广泛,本内容围绕其日常维护展开,涵盖从基础操作到远程连接、备份恢复、密码重置等关键技能,助力使用者系统化掌握维护能力,为高效管理数据库奠定基础。

基本使用

1. 登录数据库

Pgsql 登录时,必须使用 postgres 用户,登录后的命令提示符为 "postgres=#",postgres 表示你当前所在的库。

[postgres@localhost ~]$ psql
psql (15.4)
Type "help" for help.

2. 数据库操作

2.1 列出库

常用的三种方法如下:

  • 方法一:使用元命令\l
postgres=# \l

在 PostgreSQL 的交互式终端 psq1 中,"" 开头的命令称为元命令(类似 MySQL 的 SHOW 语句),用于快速管理数据库。
常用元命令有:

  • \l:列出所有数据库。

  • \c [数据库名]\connect [数据库名]:连接到指定数据库。

  • \dn:列出所有模式(Schema)。

  • \db:列出所有表空间。

  • \?:显示 pgsq1 命令的说明(元命令查询帮助)。

  • \q:退出 psql。

  • \dt:列出当前数据库的所有表。

  • \d [TABLE]:查看表结构。

  • \du:列出所有用户。

  • 方法二:使用元命令\l+

postgres=# \l+

\l+的输出比\l多了 Size、Tablespace 和 Description 列。+表示扩展输出,显示更多字段或详细信息。

  • 方法三:使用 SQL 命令
postgres=# SELECT datname FROM pg_database;

pg_database是系统表,它存储了 PostgreSQL 实例中所有数据库的元信息(如数据库名称、所有者、编码等)。属于系统目录(System Catalog),类似 MySQL 的 information_schema,但 PostgreSQL 的系统目录更底层且直接存储在 pg_catalog 模式中。pg_database 是系统目录表,所以无论当前连接到哪个数据库,该表始终可见。系统表默认属于 pg_catalog 模式,而 pg_catalog 始终位于搜索路径(search_path)的首位。因此,查询时无需显式指定模式(如 pg_catalog.pg_database)。

2.2 创建库
postgres=# create database mydb;
CREATE DATABASE
2.3 删除库
postgres=# drop database mydb;
DROP DATABASE
2.4 切换库
postgres=# \c mydb
mydb=# You are now connected to database "mydb" as user "postgres".
2.5 查看库大小
  • 函数以字节为单位返回数据库的大小
postgres=# select pg_database_size('mydb');pg_database_size 
------------------7484207
(1 row)

  • pg_size_pretty()函数将字节转为更易于阅读的值

postgres=# select pg_database_size('mydb');pg_database_size 
------------------7484207
(1 row)

3. 数据表操作

3.1 列出表

列出表的常用方法:

  • mydb=# \dt;:列出表(显示 search_path 中模式里的表,默认 public)。
  • mydb=# \d:列出表、视图和序列。
  • mydb=# \d+:列出详细信息。
  • mydb=# \dt my_schema.*:列出指定模式下的表(例如 my_schema)。
  • mydb=# \dt*.*:查看当前数据库的所有表(包括系统表)。
  • mydb=# SELECT * FROM pg_tables WHERE schemaname='public';:使用 SQL 方式列出当前数据库中 public 模式下的所有表及其详细信息。

pg_tables是视图,属于 pg_catalog 模式,但它是基于 pg_class 和 pg_namespace 的逻辑视图,并非物理表。无需切换数据库,直接查询 pg_catalog.pg_tables 即可获取当前数据库的表信息。

3.2 创建表

PostgreSQL 支持标准的 SQL 类型 int、smallint、real、double precision、char (N)、varchar (N)、date、time、timestamp 和 interval,还支持其他的通用功能的类型和丰富的几何类型。PostgreSQL 中可以定制任意数量的用户定义数据类型。因而类型名并不是语法关键字,除了 SQL 标准要求支持的特例外。

postgres=# create table test (id int, name char(10), age int);
CREATE TABLE
3.3 复制表

要将已有的 table_name 表复制为新表 new_table,包括表结构和数据,请使用以下语句:

CREATE TABLE new_table AS TABLE table_name;

例如:

postgres=# CREATE TABLE test2 AS TABLE test;
postgres=# \dt架构模式 |  名称  |  类型  | 拥有者
-----------------------+--------+--------+---------hr                    | employees | 数据表 | postgreshr                    | test     | 数据表 | postgreshr                    | test2    | 数据表 | postgres
(3行记录)
3.4 删除表
postgres=# drop table test2;
3.5 查看表结构
postgres=# \d test;栏位       |          类型          |  校对规则  | 可空的 | 预设
----------------------------------+------------------------+------------+--------+------id                               | integer                |            |        |name                             | character(10)          |            |        |age                              | integer                |            |        |

4. 模式操作命令

在 PostgreSQL 中,模式(Schema)是一个逻辑容器,用于组织和管理数据库对象(如表、视图、函数、索引等)。它类似于文件系统中的文件夹,帮助你在同一个数据库中分类存储不同的对象,避免命名冲突,并实现权限隔离。

4.1 创建模式

在当前库 postgres 中创建名为 hr 的模式:

postgres=# CREATE SCHEMA hr;
CREATE SCHEMA
4.2 默认模式

PostgreSQL 每个数据库都有一个默认模式 public。如果创建对象(表、视图等)时不指定模式,默认会放在 public 模式中。通过 search_path 参数可以设置模式的搜索优先级(类似 PATH 环境变量):

postgres=# SHOW search_path;search_path
-------------"$user",public
(1行记录)

search_path 用于控制对象解析顺序,避免每次查询都要写模式名。"$user",public 表示优先查找当前用户同名模式,再找 public 模式。

4.3 删除模式
  • 删除空模式:
postgres=# DROP SCHEMA hr;
DROP SCHEMA

  • 强制删除模式及其所有对象:
postgres=# DROP SCHEMA hr CASCADE;
DROP SCHEMA
4.4 查看所有模式
  • 元命令列出当前库中所有模式:
postgres=# \dn名称   |  架构模式列表  | 拥有者
----------------+----------------+---------public         | pg_database_owner |
(1行记录)

  • SQL 查询,列出当前库中所有模式:
postgres=# SELECT schema_name FROM information_schema.schemata;schema_name
---------------information_schemapg_catalogpg_toastpublic
(4行记录)
4.5 在指定模式中创建表

未指定模式时,创建的对象(表,视图等)会按 search_path 顺序创建到第一个可用的模式中。在 postgres 库中的 hr 模式下创建一个名为 employees 的表:

postgres=# CREATE TABLE hr.employees (id int , name char(10));
4.6 切换当前模式

切换模式也就是调整 search_path 的搜索范围。

  • 切换到单个 schema:
SET search_path TO new_schema;

  • 切换到多个 schema(按优先级顺序)
SET search_path TO hr, public;

表示优先搜索 hr 模式,其次 public。

4.7 查看当前所在 schema
postgres=# SELECT current_schema();current_schema
----------------hr
(1行记录)
4.8 查看搜索路径(Search Path)
postgres=# SHOW search_path;search_path
-------------hr, public
(1行记录)
4.9 PostgreSQL 的模式隔离性

PostgreSQL 的模式是数据库内的逻辑分组,不同模式可以存在同名表。这也是和 mysql 的不同之处。跨模式查询需显式指定模式名(如 schema1.users),或通过 search_path 设置默认模式。无需切换数据库连接,所有操作在同一数据库内完成。

  • 步骤 1:创建一个数据库
postgres=# CREATE DATABASE mydb;
postgres=# \c mydb

  • 步骤 2:在数据库中创建两个模式
mydb=# CREATE SCHEMA schema1;
mydb=# CREATE SCHEMA schema2;

  • 步骤 3:在每个模式中创建同名表,并插入数据

mydb=# CREATE TABLE schema1.users (id int);
mydb=# INSERT INTO schema1.users VALUES (1);
mydb=# CREATE TABLE schema2.users (id int);
mydb=# INSERT INTO schema2.users VALUES(2);

  • 步骤 4:跨模式查询
mydb=# SELECT * FROM schema1.users;
mydb=# SELECT * FROM schema2.users;

设置 search_path 切换默认模式(不需显式指定模式名):

mydb=# SET search_path TO schema1;
mydb=# SELECT * FROM users; -- 默认访问schema1.users
mydb=# SET search_path TO schema2;
mydb=# SELECT * FROM users; -- 默认访问schema2.users

5. 数据操作

5.1 添加数据

在 postgres 库,新建表 test:

postgres=# create table test(id int,name char(10),age int);
CREATE TABLE
postgres=# insert into test values(1,'zhangsan', 18);
INSERT 0 1
5.2 查询数据
postgres=# select * from test;id |  name  | age
----+--------+-----1 | zhangsan | 18
(1行记录)
5.3 修改数据
postgres=# update test set age=30 where id=1;
UPDATE 1
postgres=# select * from test;id |  name  | age
----+--------+-----1 | zhangsan | 30
(1行记录)
5.4 删除数据
postgres=# delete from test where id=1;
DELETE 1
postgres=# select * from test;id | name | age
----+------+-----
(0行记录)

6. 备份与恢复

PostgreSQL 数据库应当被定期地备份。虽然过程相当简单,但清晰地理解其底层技术和假设是非常重要的。有三种不同的基本方法来备份 PostgreSQL 数据:SQL 转储、文件系统级备份、连续归档。每一种都有其优缺点,我们主要以 SQL 转储为主。

6.1 SQL 转储

SQL 转储方法的思想是创建一个由 SQL 命令组成的文件,当把这个文件回馈给服务器时,服务器将利用其中的 SQL 命令重建与转储时状态一样的数据库。PostgreSQL 为此提供了工具pg_dump。这个工具的基本用法是:

pg_dump dbname > dumpfile

正如你所见,pg_dump把结果输出到标准输出。pg_dump是一个普通的 PostgreSQL 客户端应用(尽管是个相当聪明的东西)。这就意味着你可以在任何可以访问该数据库的远端主机上进行备份工作。但是请记住pg_dump不会以任何特殊权限运行。具体说来,就是它必须要有你想备份的表的读权限,因此为了备份整个数据库你几乎总是必须以一个数据库超级用户来运行它。

要声明pg_dump连接哪个数据库服务器,使用命令行选项-h host-p port。默认主机是本地主机或你的 PGHOST 环境变量指定的主机。类似地,默认端口是环境变量 PGPORT 或(如果 PGPORT 不存在)内建的默认值。

和任何其他 PostgreSQL 客户端应用一样,pg_dump默认使用与当前操作系统用户名同名的数据库用户名进行连接。要使用其他名字,要么声明-U选项,要么设置环境变量 PGUSER。请注意pg_dump的连接也要通过客户认证机制。

pg_dump对于其他备份方法的一个重要优势是,pg_dump的输出可以很容易地在新版本的 PostgreSQL 中载入,而文件级备份和连续归档都是极度的服务器版本限定的。pg_dump也是唯一可以将一个数据库传送到一个不同机器架构上的方法,例如从一个 32 位服务器到一个 64 位服务器。

pg_dump创建的备份在内部是一致的,也就是说,转储表现了pg_dump开始运行时刻的数据库快照,且在pg_dump运行过程中发生的更新将不会被转储。pg_dump工作的时候并不阻塞其他的对数据库的操作。(但是会阻塞那些需要排它锁的操作,比如大部分形式的 ALTER TABLE)

6.2 从转储中恢复

pg_dump生成的文本文件可以由psql程序读取。从转储中恢复的常用命令是:

psql dbname < dumpfile

其中 dumpfile 就是pg_dump命令的输出文件。这条命令不会创建数据库 dbname,你必须在执行psql前自己从 template0 创建(例如,用命令createdb -T template0 dbname)。psql支持类似pg_dump的选项用以指定要连接的数据库服务器和要使用的用户名。非文本文件转储可以使用pg_restore工具来恢复。

在开始恢复之前,转储库中对象的拥有者以及在其上被授予了权限的用户必须已经存在。如果它们不存在,那么恢复过程将无法将对象创建成具有原来的所属关系以及权限(有时候这就是你所需要的,但通常不是)。

默认情况下,psql脚本在遇到一个 SQL 错误后会继续执行。你也许希望在遇到一个 SQL 错误后让psql退出,那么可以设置ON_ERROR_STOP变量来运行psql,这将使psql在遇到 SQL 错误后退出并返回状态 3:

psql --set ON_ERROR_STOP=on dbname < infile

不管怎样,你将只能得到一个部分恢复的数据库。作为另一种选择,你可以指定让整个恢复作为一个单独的事务运行,这样恢复要么完全完成要么完全回滚。这种模式可以通过向psql传递-1--single-transaction命令行选项来指定。

pg_dumppsql读写管道的能力使得直接从一个服务器转储一个数据库到另一个服务器成为可能,例如:

pg_dump -h host1 dbname | psql -h host2 dbname

注意:pg_dump产生的转储是相对于template0。这意味着在template1中加入的任何语言、过程等都会被pg_dump转储。结果是,如果在恢复时使用的是一个自定义的template1,你必须从template0创建一个空的数据库。

一旦完成恢复,在每个数据库上运行ANALYZE是明智的举动,这样优化器就有有用的统计数据了。

6.3 使用 pg_dumpall

pg_dump每次只转储一个数据库,而且它不会转储关于角色或表空间(因为它们是集簇范围的)的信息。为了支持方便地转储一个数据库集簇的全部内容,提供了pg_dumpall程序。pg_dumpall备份一个给定集簇中的每一个数据库,并且也保留了集簇范围的数据,如角色和表空间定义。该命令的基本用法是:

pg_dumpall > dumpfile

转储的结果可以使用psql恢复:

psql -f dumpfile postgres

(实际上,你可以指定恢复到任何已有数据库名,但是如果你正在将转储载入到一个空集簇中则通常要用 postgres)。在恢复一个pg_dumpall转储时常常需要具有数据库超级用户访问权限,因为它需要恢复角色和表空间信息。如果在使用表空间,请确保转储中的表空间路径适合于新的安装。

7. 远程连接

7.1 修改 PostgreSQL 监听地址

默认 PostgreSQL 监听的地址是 127.0.0.1,别的机器无法远程连接上,所以需要调整,修改 postgresql.conf 文件。

  • 通过 dnf 安装的 pgsql 配置文件在/var/lib/pgsq1/data/postgresql.conf
  • 通过源码编译安装的 pgsql 配置文件在/usr/local/pgsq1/data/postgresql.conf

下面操作以 dnf 安装为例:
更改第 60 行,取消注释并把localhost改成 *

[root@bogon ~]# grep 'listen_addresses' /var/lib/pgsq1/data/postgresql.conf
listen_addresses='*' # what IP address(es) to listen on;

重启服务

[postgres@localhost ~]$ pg_ctl -D /usr/local/pgsql/data -l logfile restart
waiting for server to shut down.... done
server stopped
waiting for server to start.... done
server started
[root@localhost ~]# netstat -anpt |grep 5432
tcp        0      0 127.0.0.1:5432          0.0.0.0:*               LISTEN      19958/postgres      
tcp6       0      0 ::1:5432                :::*                    LISTEN      19958/postgres    

7.2 配置访问权限

默认是只能本地访问 PostgreSQL 的,我们需要在 pg_hba.conf 里面配置。找到 IPv4 local connections 这一行,在这一行下面添加:


[postgres@localhost ~]$ vi /usr/local/pgsql/data/pg_hba.conf host all all 0.0.0.0/0 trust

  • host:这指定了连接类型。host 表示该规则适用于通过 TCP/IP 进行的远程连接。如果是本地连接,通常会使用 local。
  • all:这定义了哪些数据库可以接受这个规则。all 表示这个规则适用于所有数据库。也可以指定特定的数据库名,例如 mydatabase。
  • all:这定义了哪些用户可以接受这个规则。all 表示这个规则适用于所有用户。也可以指定特定的用户名,例如 myuser。
  • 0.0.0.0/0:这定义了哪些客户端 IP 地址或 IP 地址范围可以接受这个规则。0.0.0.0/0 是一个特殊的 CIDR 表示法,它表示任何 IP 地址(即没有 IP 地址限制)。也可以指定具体的 IP 地址,如 192.168.1.100,或者 IP 地址范围,如 192.168.1.0/24。
  • trust:这定义了认证方法。trust 表示不需要密码或其他任何形式的认证,客户端可以直接连接。这通常只在本地或受信任的网络环境中使用,因为它允许任何人无需认证即可访问数据库。在生产环境中,应该使用更安全的认证方法,如 md5 或 password(对于较新版本的 PostgreSQL,建议使用 scram-sha-256)。

如果不是设置的 trust,而是选择了 md5 或 password 之类的,需要有密码才行,配置 PostgreSQL 密码流程如下:

postgres=# ALTER USER postgres WITH PASSWORD '123456';
ALTER ROLE

7.3 重启服务

[postgres@localhost ~]$ pg_ctl -D /usr/local/pgsql/data -l logfile restart

7.4 验证远程连接

  • 使用其它主机远程连接本机数据库,设置的是 trust,无密码,可直接登录:
[postgres@localhost ~]$ psql -h 192.168.10.102
psql (15.4)
Type "help" for help.

  • 如果设置的是 md5 或 password 之类的需要有密码才行:
[postgres@localhost ~]$ psql -h 192.168.10.102
Password for user postgres: 
psql (15.4)
Type "help" for help.

8. 重置密码

8.1 备份配置文件

对 pg_hba.conf 文件,进行备份:

[root@localhost ~]# cp /var/lib/pgsq1/data/pg_hba.conf /var/lib/pgsq1/data/pg_hba.confbak

8.2 修改配置文件

修改配置文件以信任本地连接不需要密码。将配置文件中的 scram-sha-256 或者 md5 修改为 trust:

[root@localhost ~]# vim /var/lib/pgsq1/data/pg_hba.conf
# IPv4 local connections:
host all all 127.0.0.1/32 trust
host all all 0.0.0.0/0 md5

8.3 重启服务

[postgres@localhost ~]$ pg_ctl -D /usr/local/pgsql/data -l logfile restart

8.4 修改密码

登录数据库修改密码,密码自定义:

postgres=# ALTER USER postgres WITH PASSWORD '123456789';
ALTER ROLE

8.5 恢复 pg_hba.conf 配置文件

将 pg_hba.confbak 文件的内容覆盖 pg_hba.conf,重启 PostgreSQL 数据库服务器,重新登陆时,如果提示输入密码,则输入刚才修改的密码即可。

总结

本文围绕 PostgreSQL 日常维护,系统讲解了基本使用(登录、数据库及数据表操作、模式管理、数据操作)、备份与恢复、远程连接配置及密码重置等内容,助力读者掌握相关核心技能,为数据库高效管理和后续高级功能学习奠基。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/news/909425.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32F4通用定时器TIM9-TIM14讲解及PWM呼吸灯实例解读

STM32F4通用定时器TIM9-TIM14讲解及PWM呼吸灯实例解读 前言小贴士 通用定时器原理定时器的内部时钟源通用定时器TIM9-TIM14的对比共同点区别 TIM9-TIM14功能说明时基单元计数模式时钟选择 定时器框图理解和分析TIM10/TIM11/TIM13/TIM14输入捕获输出比较 TIM9和TIM12独立通道输入…

whttpserver:一个命令极速搭建文件上传与下载服务器

whttpserver 是一个简单的HTTP服务器&#xff0c;类似于python -m http.server&#xff0c;但增加了文件上传和编辑的功能。 1. 安装 whttpserver 模块 # 临时设置环境变量 PYTHONUTF81&#xff0c;强制 Python 使用 UTF-8 编码 set PYTHONUTF81 pip install whttpserver 2.…

【0.2 漫画操作系统原理】

🖥️ 漫画操作系统原理 🎯 学习目标:深入理解操作系统核心原理,为Java并发编程和性能优化打下坚实基础 🎪 第一章:操作系统初识篇 🤔 什么是操作系统? 想象一下,你是一个大型图书馆的馆长… 📚 没有操作系统 vs 有操作系统没有操作系统: 读者1 → 直接找书架…

第1章 C# 和 .NET 框架 笔记

第1章 C# 和 .NET 框架 1.1 在 .NET 之前 C#为在.NET框架上开发程序而设计的编程语言。 MFC&#xff08;Microsoft Foundation Class&#xff0c;微软基础类库&#xff09; 微软公司提供的一个类库&#xff0c;以 C 类的形式封装了 Windows 的 API&#xff0c;并包含一个应…

Django全栈开发实战与架构思考

一、框架选型与开发范式 作为Python生态最成熟的Web框架&#xff0c;Django的"电池全包"理念在2.3版本后得到更彻底的贯彻。项目初期通过django-admin startproject生成的脚手架已包含&#xff1a; 自动化ORM迁移系统 内置Admin后台管理界面 基于WSGI的中间件管道…

微服务--Gateway网关

1. Gateway简介 Gateway网关是微服务架构中不可或缺的组件&#xff0c;是微服务架构中的统一入口&#xff0c;它作为所有客户端请求的第一道防线&#xff0c;负责请求的路由、过滤和聚合。 Gateway核心功能 路由(Routing) 根据请求路径、Header、参数等将请求路由到不同微服…

区块链与人工智能的融合:从信任到智能的IT新引擎

在信息技术&#xff08;IT&#xff09;的飞速发展中&#xff0c;两大颠覆性技术的交汇正掀起一场革命——区块链与人工智能&#xff08;AI&#xff09;的融合。2025年&#xff0c;随着数据隐私需求的激增、去中心化应用的爆发以及企业对可信智能系统的追求&#xff0c;区块链与…

Javascript什么是原型和原型链,八股文

原型:函数都有prototype属性,称之为原型&#xff0c;也称为原型对象 原型可以放一些属性和方法&#xff0c;共享给实例对象使用 原型可以做继承 原型链:对象都有__proto__属性,这个属性指向它的原型对象,原型对象也是对象,也有__proto__属性,指向原型对象的原型对象,这样一层一…

生日悖论理论及在哈希函数碰撞中的应用

目录 一、生日悖论&#xff08;Birthday Paradox&#xff09;介绍 二、生日悖论的数学解释 &#xff08;一&#xff09;计算所有人生日都不同的概率 数学推导 示例计算 &#xff08;二&#xff09;至少有两个人生日相同的概率 三、哈希函数碰撞与生日悖论的关系思考 &a…

探索数据的力量:Elasticsearch中指定链表字段的统计查询记录

目录 一、基本的数据结构说明 二、基本的统计记录 &#xff08;一&#xff09;统计当前索引中sellingProducts的所有类型 &#xff08;二&#xff09;检索指定文档中sellingProducts的数据总量 &#xff08;三&#xff09;检索指定文档中sellingProducts指定类型的数量统计…

细节致胜:如何重塑反向海淘用户体验

在反向海淘的激烈竞争中&#xff0c;客户体验已成为决定胜负的关键。一次流畅的购物旅程、一个贴心的服务细节&#xff0c;都可能让海外消费者成为品牌的忠实传播者。易境通代购商城系统正是以极致体验为核心&#xff0c;通过精细化服务管理&#xff0c;助力企业赢得用户口碑与…

Docker 分阶段构建

Docker 分阶段构建 Docker 分阶段构建&#xff08;Multi-stage Build&#xff09;是一种高效的镜像构建技术&#xff0c;允许在一个 Dockerfile 中使用多个构建阶段&#xff0c;每个阶段可以使用不同的基础镜像&#xff0c;最终只保留需要的文件&#xff0c;从而显著减小镜像体…

人工智能学习23-BP-图像编码

人工智能学习概述—快手视频 人工智能学习23-BP-图像编码—快手视频

k8s的开篇学习和安装

k8s的开篇学习 学习网站 参考资料 1。 K8S能干什么 [概述 | Kubernetes](https://kubernetes.io/zh-cn/docs/concepts/overview/#why-you-need-kubernetes-and-what-can-it-do)需要开代理 2。docker资料 https://docs.docker.com/get-started/3.prometheus资料 https://promet…

CS144 lab0: warmup

Lab 0: networking warmup 1. 环境 依赖配置 sudo apt update && sudo apt install git cmake gdb build-essential clang \clang-tidy clang-format gcc-doc pkg-config glibc-doc tcpdump tsharkg13配置 ppa中科大源 # deb https://ppa.launchpadcontent.net/ubu…

StarRocks

StarRocks 是一个高性能的 分布式 MPP(Massively Parallel Processing)数据库,主要用于 实时数据分析(Real-Time Analytics),是新一代的 OLAP 数据库,对标 ClickHouse、Apache Doris 等。 🌟 一、StarRocks 是什么? StarRocks 是一个面向实时分析场景、支持高并发、高…

8088单板机8259中断的软件触发测试

1.工作原理 8086和8088的中断设计的是很巧妙的&#xff0c;比如给8259的IR1配置了一个中断&#xff0c;中断号为21H&#xff0c;那么当真个引脚出现高电平的时候&#xff0c;就会触发相应上的中断响应。但&#xff0c;这不是唯一能够触发21H中断的方法&#xff0c;还可以通过软…

TC3xx中PFLASH缓存对XCP标定常量的影响

1、TC3xx中PFLASH缓存&#xff08;Cache&#xff09;对XCP标定的影响 XCP的映射用到TC3XX的Overlay功能需要使用一段Pflash内存。 Pflash数据有两个段区。分别为0x80000000和0xA0000000为起始地址的PFLASH段。 如上&#xff0c;两段数据的区别是一个段8有CACHE缓存&#xff0c;…

代码审计服务:如何解决误报与漏报难题,保障软件安全?

代码审计服务在保障软件质量、安全合规等方面扮演着关键角色&#xff0c;特别是在数字化浪潮席卷而来的今天&#xff0c;其重要性日益显著。它能揭露代码中的不足&#xff0c;进而为软件开发提供有力的效率和安全性保障。 误报与漏报难题 常规的代码审查工具&#xff0c;其错…

web方向第一次考核内容

一.考核内容 Web组大一下考核之HTML、CSS 1.为什么要清除浮动&#xff08;4)&#xff0c;清除浮动的方法有哪些&#xff1f;(6)&#xff08;至少两种&#xff09; 2.怎么实现左边左边宽度固定右边宽度自适应的布局&#xff1f;(10) 3.讲讲flex:1;(10) 4.怎么实现移动端适配不同…