当前位置: 首页 > news >正文

PostgreSQL逻辑备份-pg_dump

1.pg_dump备份恢复

pg_dump 是一个逻辑备份工具。使用 pg_dump 可以在数据库处于使用状态下进行一致
性的备份, 它不会阻塞其他用户对数据库的访问 。
一致性备份是 pg_dump 开始运行时,给数据库打了一个快照,且在 pg_dump 运行过程
中发生的更新将不会被备份。
pg_dump 只备份单个数据库,不能备份数据库公共的全局对象(例如角色和表空间)
提示 :将执行 pg_dump/pg_restore 的客户端放在尽可能靠近 源和目标 数据库的位置,
以避免因网络延迟不良而导致的性能问题。
2.pg_dump常用参数
-h host,指定数据库主机名,或者 IP 
-p port,指定端口号 
-U user,指定连接使用的用户名 
-W,按提示输入密码 
dbname,指定连接的数据库名称,实际上也是要备份的数据库名称。 
-f,--file:输出到指定文件中 
-F,--format=c|d|t|p: c 为自定义格式,也是二进制格式,压缩存储,只能使用 pg_restore 来还原, 可
以指定还原的表, 编辑 TOC 文件, 定制还原的顺序, 表, 索引等。 d 为目录 t 表示输出为 tar 包 p 为纯文本 SQL,大库不推荐; 
-j,--jobs=num:指定并行导出的并行度 
-a,--data-only:只导出数据,不导出表结构 
-c,--clean:是否生成清理该数据库对象的语句,比如 drop table 
-C,--create:是否输出一条创建数据库语句 
-n,--schema:只转存匹配 schema 的模式内容 
-N,--exclude-scheam:不转存匹配 schema 的模式内容 
-O,--no-owner,不设置导出对象的所有权 
-s,--schema-only:只导致对象定义模式,不导出数据 
-t,--table:只转存匹配到的表,视图,序列,可以使用多个-t 匹配多个表 
-T,--exclude-table:不转存匹配到的表。 
--inserts:使用 insert 命令形式导出数据,这种方式比默认的 copy 方式慢很多,但是可
用于将数据导入到非 PostgreSQL 数据库。 
--column-inserts:导出的数据,有显式列名 

3.备份

3.1指定库备份

1.导出sql文件

-- insert 命令形式导出库的数据 
pg_dump -h 127.0.0.1 -U postgres -p 5432 -W testdb --inserts > testdb.sql 
pg_dump testdb --inserts > testdb.sql 
pg_dump testdb --inserts --rows-per-insert=2 > testdb.sql --每次插入 2 行

2.导出指定对象

-- 要转储一个数据库到一个自定义格式归档文件: 
pg_dump -Fc testdb > testdb.dump 
-- 使用 5 个并行任务转储一个数据库到一个目录格式的归档 
pg_dump -Fd testdb -j 5 -f dumpdir

3.2单表备份

-- 备份单个表 
pg_dump -h 127.0.0.1 -U postgres -p 5432 -W testdb -t t1 --inserts > testdb.sql -- 备份多个表 
pg_dump -h 127.0.0.1 -U postgres -p 5432 -W testdb -t t1 -t t2 --inserts > 
testdb.sql-- 如果只想备份 schema 模式中所有以 t 开头的表,但是不包括 t1 表 
pg_dump -t "public.t*" -T public.t1 testdb > testdb.sql -- 转储所有 testdb 的数据库对象,但是不包含以 1 结尾的表 
pg_dump -T '*1' testdb > testdb.sql -- 转储 testdb 中 public 和 test 这两个 schema 中的内容 
pg_dump -Fc -n public -n test testdb -f testdb.dump -- 转储 testdb 中除了 public schema 中的数据以外的所有数据 
pg_dump -Fc -N public testdb -f testdb.dump

3.3只备份数据

pg_dump -h 127.0.0.1 -U postgres -p 5432 -W testdb --inserts -a > testdb.sql

3.4只备份表结构

pg_dump -h 127.0.0.1 -U postgres -p 5432 -W testdb -s > testdb.sql

4.恢复

--恢复一个文本文档 
psql newdb < testdb.sql -- 要把一个归档文件重新载入到一个(新创建的)名为 newdb 的数据库: 
pg_restore -d newdb testdb.dump -- 把一个归档文件重新装载到同一个数据库(该归档正是从这个数据库中转储得来)中,
丢掉那个数据库中的当前内容 
pg_restore -d newdb --clean testdb.dump -- 备份后直接进行恢复,文件不落地 
pg_dump testdb| psql newdb -- 并行备份恢复 
pg_dump -Fd -j4 testdb -f dumpdir 
pg_restore -d newdb -j4 dumpdir

4.1利用toc文件选择性恢复

-- 根据二进制备份文件生成 toc 文件 
方式一:pg_restore -l testdb.dump > testdb.toc 
方式二:pg_restore -l -f testdb.toc testdb.dump -- 修改 toc 文件,用‘;’号注释掉不用还原的内容: -- 以 toc 文件列表做恢复 
pg_restore -Fc -L testdb.toc -d newdb testdb.dump 
-- 检查发现 t1 表没有被导入。

4.2使用unix管道压缩备份恢复

-- 导出并且压缩 
pg_dump testdb -f testdb.sql | gzip testdb.sql -- 解压并且导入,压缩文件不变: 
gunzip -c testdb.sql.gz | psql testdb -- 分割备份 
pg_dump testdb | split -b 1m -- 恢复 
cat filename* | psql dbname

5.迁移大表

5.1如果需要迁移多个大表怎么办?

可以使用 -j 选项来指定执行 pg_dump 和 pg_restore 时要使用的线程数。 
可以使用目录格式 (-Fd),它会提供压缩转储(使用 gzip)。使用 -Fd 选项可以提供超过
5 倍的压缩。对于较大的数据库(例如超过 1 TB),压缩转储可以减少磁盘 IOPS。

示例:

pg_dump -Fd testdb -j 5 -f dump_dir 
pg_restore -d newdb -j 5 dump_dir

5.2 如果大多数表都很小,但有一张表非常大,如何迁移? 

可以将 pg_dump 的输出通过管道传输到 pg_restore,这样就无需等待转储完成后再开始

恢复; 两者可以同时运行。 这避免了将转储存储在客户端,可以显着减少将转储写入磁
盘所需的 IOPS 开销。
在这种情况下,-j 选项没有用,因为 pg_dump/pg_restore 每个表只运行一个线程,它
们在转储和恢复大表时受到限制。 此外,当使用 -j 标志时,无法将 pg_dump 的输出通
过管道传输到 pg_restore。
示例:
pg_dump -Fc testdb | pg_restore -d newdb

5.3 如何使用多个线程迁移单个大表?

可以利用多个线程来迁移单个大表,方法是在逻辑上将 Postgres 表分为多个部分,然后
使用一对线程——一个从源读取,一个写入目标。可以根据 主键(例如,id 列)或时间
字段(例如,created_time、updated_time 等)对表进行拆分。
GitHub 上有一个 Parallel Loader 的 Python 脚本,它实现了拆分迁移。下载地址:
https://github.com/microsoft/OrcasNinjaTeam/tree/master/azure
postgresql/data_migration
#suppose the filename is parallel_migrate.py 
import os 
import sys 
#source info 
source_url = sys.argv[1] 
source_table = sys.argv[2] #dest info 
dest_url = sys.argv[3] 
dest_table = sys.argv[4] 
#others 
total_threads=int(sys.argv[5]); 
size=int(sys.argv[6]); 
interval=size/total_threads; 
start=0; 
end=start+interval;
for i in range(0,total_threads): if(i!=total_threads-1): select_query = '\"\COPY (SELECT * from ' + source_table + ' WHERE 
id>='+str(start)+' AND id<'+str(end)+") TO STDOUT\""; read_query = "psql \"" + source_url + "\" -c " + select_query write_query = "psql \"" + dest_url + "\" -c \"\COPY " + dest_table +" 
FROM STDIN\"" os.system(read_query+'|'+write_query + ' &') else: select_query = '\"\COPY (SELECT * from '+ source_table +' WHERE 
id>='+str(start)+") TO STDOUT\""; read_query = "psql \"" + source_url + "\" -c " + select_query write_query = "psql \"" + dest_url + "\" -c \"\COPY " + dest_table +" 
FROM STDIN\"" os.system(read_query+'|'+write_query) start=end; end=start+interval;

 5.3.1如何调用并进行加载程序脚本

python parallel_migrate.py "source_connection_string" source_table "destination_connection_string" destination_table number_of_threadscount_of_table 
示例: 
python parallel_migrate.py "host=192.168.1.102 port=5432 dbname=postgres 
user=postgres password=postgres sslmode=prefer" t1 "host=192.168.1.102 
port=5432 dbname=newdb user=postgres password=postgres sslmode=prefer" 
t1 4 1000000
使用 Parallel Loader 脚本,可以控制用于迁移大表的线程数。 在上述调用中,
number_of_threads 参数控制并行度因子。
上述实现使用表的单调递增的 id 列将其拆分并使用并行线程将数据从源表流式传输到目标
表。

 5.3.2对比 Parallel Loader 与 pg_dump/pg_restore 迁移大表的性能

为了比较 pg_dump 和 pg_restore 与 Parallel Loader 脚本的性能,使用这两种技术将 1
TB 表从 testdb 数据库迁移到 newdb 数据库。
可以看到,Parallel Loader 脚本的执行速度比 pg_dump 和 pg_restore 快了 3 倍以上。
parallel loaderpg_dump&pg_restore
7 小时 45 分钟
超过一天

  

可以将 pg_dump/pg_restore 与 Parallel Loader 结合使用,以实现更快的数据迁移
pg_dump/pg_restore 是可以将数据从一个数据库迁移到另一个数据库。但是,当数据库
中有非常大的表时,会大大减慢迁移速度。为了解决这个问题,可以使用 Parallel Loader 
脚本将单个大表进行迁移,而 pg_dump/pg_restore 可用于迁移其余的表。

相关文章:

PostgreSQL逻辑备份-pg_dump

1.pg_dump备份恢复 pg_dump 是一个逻辑备份工具。使用 pg_dump 可以在数据库处于使用状态下进行一致 性的备份&#xff0c; 它不会阻塞其他用户对数据库的访问 。 一致性备份是 pg_dump 开始运行时&#xff0c;给数据库打了一个快照&#xff0c;且在 pg_dump 运行过程 中发生…...

UG_NX11.0之Windows11中安装出错及解决方法

UG_NX11.0之Windows11中安装出错及解决方法 文章目录 UG_NX11.0之Windows11中安装出错及解决方法1. 安装出错2. 解决方法1. 设置以兼容性模式运行2. 配置环境变量 3. 再次安装问题解决4. 安装后可删除配置的环境变量(可选) 1. 安装出错 以管理员身份运行Launch.exe,如下 点击D…...

android view 设置过 transalationY/X 后 marginTop/marginStart/Left 不变

在 Android 开发中&#xff0c;当你对一个视图(View)设置了 translationY 属性后&#xff0c;这个视图的 marginTop 属性实际上并不会改变。这是因为 translationY 只会影响视图的绘制位置&#xff0c;而不会改变视图的布局参数。换句话说&#xff0c;translationY 是一个运行时…...

解释在Android中如何实现本地存储,包括SQLite数据库和SharedPreferences。

在Android开发中&#xff0c;本地存储是不可或缺的一部分&#xff0c;它允许应用程序在用户的设备上保存和检索数据。两种常见的本地存储方式是SQLite数据库和SharedPreferences。下面我将从技术难点、面试官关注点、回答吸引力和代码举例四个方面来详细解释如何在Android中实现…...

鸿蒙开发 之 健康App案例

1.项目介绍 该项目是记录用户日常饮食情况&#xff0c;以及针对不同食物摄入营养不同会有对应的营养摄入情况和日常运动消耗情况&#xff0c;用户可以自己添加食品以及对应的热量。 1.1登陆页 1.2饮食统计页 1.3 食物列表页 2.登陆页 2.1自定义弹框 import preferences from oh…...

umi3项目axios 请求参数序列化参数

由于get 请求中有一个日期参数 dates 是一个数组类型。 未处理参数时请求地址是这样的&#xff1a;/api/list?page1&pageSize10&keyWord&dates[]2024-06-10&dates[]2024-06-24 会发现dates后面有中括号,所以前端需要将参数格式处理变成如下&#xff1a;/api…...

js实现数据去重合并

应用场景&#xff0c;一个list&#xff0c;包含已经选择的数据和未选择的数据&#xff0c;新增数据到已选择的数据中。 要考虑到二次选择的数据和已经选择的数据有重复的可能&#xff0c;所以&#xff0c;第一步先从二次选择的数据中进行去重&#xff0c;然后再将两个list进行数…...

[ios逆向]查看ios安装包ipa签名证书embedded.mobileprovision解密 附带解密环境openssl

openssl smime -inform der -verify -noverify -in embedded.mobileprovision 解密embedded.mobileprovision文件 链接&#xff1a;https://pan.baidu.com/s/1UwNOWONKV1SNj5aX_ZZCzQ?pwdglco 提取码&#xff1a;glco –来自百度网盘超级会员V8的分享 可以使用everything 查看…...

tr、cut、split、grep -E

目录 tr命令&#xff1a;替换和删除 cut命令&#xff1a;快速裁剪 split命令&#xff1a;文件拆分 文件合并 面试题 1.现在有一个日志文件&#xff0c;有5个G&#xff0c;能不能快速的打开 2.cat合并和paste合并之间的区别&#xff1f; 3.统计当前主机的连接状态&#…...

《分析模式》漫谈08-单继承不是“唯一继承”

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 《分析模式》第2章这一段&#xff1a; 划线处的single inheritance&#xff0c;2004中译本的翻译&#xff1a; 翻译为“单继承”&#xff0c;是正确的。 2020中译本的翻译&#xff1a…...

c++字典

在C中&#xff0c;“字典”通常指的是std::map或std::unordered_map&#xff0c;它们是标准库中提供的关联容器&#xff0c;用于存储键值对。以下是一些常见的操作示例&#xff0c;包括插入、访问、删除和遍历元素。 使用 std::map std::map 是一种有序的关联容器&#xff0c;键…...

rga_mm: RGA_MMU unsupported Memory larger than 4G!解决

目录 报错完整log如下:解决方案:报错完整log如下: [ 3668.824164] rga_mm: RGA_MMU unsupported Memory larger than 4G! [ 3668.824305] rga_mm: scheduler core[4] unsupported mm_flag[0x0]! [ 3668.824320] rga_mm: rga_mm_map_buffer map dma_buf err...

构建个人文件上传服务:Python Flask实现上传和下载完整指南

介绍 在本教程中&#xff0c;我们将学习如何使用Python Flask框架将文件上传到服务器&#xff0c;并使用SQLite数据库来跟踪上传的文件。我们将提供后端代码和一个示例项目的Git链接&#xff0c;以便您可以轻松地跟随本教程。 准备工作 首先&#xff0c;您需要安装Python和F…...

瓦罗兰特新赛季更新资讯 瓦罗兰特新赛季免费加速器

瓦罗兰特新赛季来喽&#xff0c;这是一款由拳头开发的免费第一人称射击游戏&#xff0c;游戏凭借其独特的玩法和丰富的英雄选择吸引了大量玩家。 我们可以在游戏中选择自己喜欢的角色出场与敌人进行对战&#xff0c;而且每一个角色都有自己独特的道具以及技能&#xff0c;使用好…...

希尔排序的实现

引言 排序在我们生活中十分常见&#xff0c;无论是购物软件中的商品推荐还是名次、排名都与排序算法息息相关。希尔排序是排序中较快的一种&#xff0c;而希尔排序实现的基础是插入排序。 排序的实现 插入排序&#xff08;以升序为例&#xff09; 插入排序的原理是从第二个数…...

使用Python selenium爬虫领英数据,并进行AI岗位数据挖掘

随着OpenAI大火&#xff0c;从事AI开发的人趋之若鹜&#xff0c;这次使用Python selenium抓取了领英上几万条岗位薪资数据&#xff0c;并使用Pandas、matplotlib、seaborn等库进行可视化探索分析。 但领英设置了一些反爬措施&#xff0c;对IP进行限制封禁&#xff0c;因此会用到…...

如何在Android应用程序中实现高效的图片加载和缓存机制。

在Android应用程序中实现高效的图片加载和缓存机制 一、技术难点 在Android应用程序中实现高效的图片加载和缓存机制&#xff0c;主要面临以下几个技术难点&#xff1a; 内存管理&#xff1a;Android设备的内存资源有限&#xff0c;如果加载大量高清图片而不进行适当的内存管…...

【机器学习项目实战(二)】基于朴素贝叶斯的中文垃圾短信分类

完整代码、数据集和相应的报告 链接已经放在了正文最下方, 供大家参考学习 摘要 ​ 本文探讨了中文垃圾短信分类的问题,通过收集实际数据集,运用多种机器学习算法进行分类,并对比了不同算法在垃圾短信分类任务上的性能。本研究旨在提高中文垃圾短信的识别准确率,为构建更…...

当用户需求不详细时,如何有效应对

在项目沟通时&#xff0c;用户对需求说明不详细&#xff0c;可能是由于多种原因。以下是一些可能的原因及如何应对这些问题的建议&#xff1a; 1. 用户不完全理解自己的需求 原因&#xff1a; 用户对技术细节不了解&#xff0c;不知道如何具体描述需求。 用户对项目的全局和…...

最新AI智能聊天对话问答系统源码(图文搭建部署教程)+AI绘画,文生图,TTS语音识别输入,文档分析

一、人工智能语言模型和AI绘画在多个领域广泛应用 人工智能语言模型和AI绘画在多个领域都有广泛的应用。以下是一些它们的主要用处&#xff1a; 人工智能语言模型 内容生成 写作辅助&#xff1a;帮助撰写文章、博客、报告、剧本等。 代码生成&#xff1a;自动生成或补全代码&…...

[图解]SysML和EA建模住宅安全系统-02-现有运营领域-块定义图

1 00:00:00,840 --> 00:00:02,440 首先我们来看画在哪里 2 00:00:02,570 --> 00:00:08,310 你看&#xff0c;这是图的类型&#xff0c;图里面内容 3 00:00:08,320 --> 00:00:10,780 这是元素类型 4 00:00:10,790 --> 00:00:14,900 这是位置&#xff0c;哪个包 …...

【vuejs】首次页面加载时触发那些声明周期钩子函数

1. 首次页面加载触发的钩子 在Vue.js中&#xff0c;页面或组件的首次加载会触发一系列预定义的生命周期钩子函数&#xff0c;这些钩子函数按照特定的顺序执行&#xff0c;允许开发者在组件的不同阶段执行代码。以下是首次页面加载时触发的钩子及其作用&#xff1a; 2.1 befor…...

adb热更新

模拟器连接AndroidStudio 解决:adb server version (36) doesnt match this client (40); killing... 1.G:\ProgramFils\android-sdk\platform-tools adb --version 2.H:\yeshen\Nox\bin adb --version 3.把G:\ProgramFils\android-sdk\platform-…...

Nuxt 的路由结构系统(七)

基本路由配置 在 Nuxt.js 中&#xff0c;每个 .vue 文件在 pages/ 目录下都会自动成为一个路由。文件名决定了路由的路径。例如&#xff1a; pages/ |-- index.vue # 映射到根路径 / |-- about.vue # 映射到路径 /about |-- contact.vue # 映射到路径 /conta…...

不使用AMap.DistrictSearch,通过poi数据绘制省市县区块

个人申请高德地图key时无法使用AMap.DistrictSearch&#xff0c;可以通过poi数据绘制省市县区块 1.进入POI数据网站找到需要的省市县&#xff0c;下载对应的GeoJson文件 &#xff0c;此处为poi数据网站链接 2.​ 处理geoJson数据&#xff0c;可以直接新建json文件&#xff0c;…...

vue+webpack子应用嵌入乾坤框架

首先&#xff01;不建议用vite&#xff0c;改了两天&#xff0c;无果。 乾坤本就不支持vite&#xff0c;后续要改插件改配置追加前缀&#xff0c;乾坤只能挂载基础节点&#xff0c;但是静态资源以及接口都挂载不上&#xff0c;或许有实现办法&#xff0c;但时间节点很紧&#…...

Oracle中常用内置函数

一、字符串函数 CONCAT(s1, s2)&#xff1a;连接两个字符串s1和s2。 SELECT CONCAT(Hello, World) FROM DUAL-- 结果&#xff1a;Hello World --或者使用 || 操作符 SELECT Hello || World FROM DUAL -- 结果&#xff1a;Hello World INITCAP(s)&#xff1a;将字符串s…...

餐饮冷库安全守护神:可燃气体报警器检定的科学性与有效性

随着餐饮业的快速发展&#xff0c;冷库成为储存食材、保证食品质量的重要场所。 然而&#xff0c;由于冷库环境的特殊性&#xff0c;如密封性强、温度低、湿度大等&#xff0c;一旦冷库内发生可燃气体泄露&#xff0c;后果将不堪设想。因此&#xff0c;在餐饮冷库中安装并合理…...

中国能源统计年鉴(1986-2023年)

数据年份&#xff1a;1986-2023年&#xff0c;无1987、1988、1990三年&#xff0c;1991-2023年齐 数据格式&#xff1a;pdf、excel 数据内容&#xff1a;《中国能源统计年鉴》是一部反映中国能源建设、生产、消费、供需平衡的权威性资料书。 共分为7个篇章&#xff1a;1.综合&a…...

摄像头画面显示于unity场景

&#x1f43e; 个人主页 &#x1f43e; &#x1faa7;阿松爱睡觉&#xff0c;横竖醒不来 &#x1f3c5;你可以不屠龙&#xff0c;但不能不磨剑&#x1f5e1; 目录 一、前言二、UI画面三、显示于场景四、结语 一、前言 由于标题限制&#xff0c;这篇文章主要是讲在unity中调用摄…...

Double 4 VR智能仿真教学系统在国际邮轮乘务管理专业课堂上的应用

随着科技的不断发展&#xff0c;虚拟现实技术&#xff08;VR&#xff09;在教育领域的应用越来越广泛。国际邮轮乘务管理专业作为一门实践性较强的专业&#xff0c;传统的课堂教学方法已经无法满足学生的需求。因此&#xff0c;将Double 4 VR智能仿真教学系统应用于国际邮轮乘务…...

QSPI四线SPI:D0、D1、D2、D3

在SPI&#xff08;串行外设接口&#xff09;通信中&#xff0c;D0、D1、D2、D3通常指的是数据线&#xff0c;也叫做数据引脚或通道。这些引脚的使用可能会根据具体设备或配置的不同而有所变化。 标准的SPI通信接口通常包含以下四个主要引脚&#xff1a; MOSI&#xff08;Master…...

vue3通过vue-video-player实现视频倍速、默认全屏、拖拽进度条等功能

效果图&#xff1a; 1、场景&#xff1a; js原生的video标签在不同浏览器及不同型号手机上都展示的不一样&#xff0c;一部分没有倍速&#xff0c;一部分没有全屏等功能&#xff0c;为了统一视频播放的交互功能&#xff0c;使用vue-video-player插件来完成&#xff0c;vue-vid…...

微信小程序 点击左上角返回弹窗提示

业务需求&#xff1a;当页面表单没有提交直接返回时&#xff0c;要提示用户是否保存当前信息&#xff0c;如果已经提交就不提示了。 由于微信小程序是无法监听右上角按钮返回事件。 所以就换个思路 小程序提供了如下两个Api wx.enableAlertBeforeUnload(Object object)&…...

openEuler 22.03 (LTS-SP1)服务器用ntpd同步GPS时间服务器的案例

本文记录了openEuler 22.03 (LTS-SP1)的二级时间服务器用chronyd不能自动同步GPS时间服务器&#xff0c;改用ntpd同步GPS时间服务器成功的案例 一、环境简述 1、本环境中有两台GPS一级时间服务器&#xff0c;IP如下&#xff1a; 192.168.188.66 192.168.188.74 2、有一台o…...

Git的安装以及使用

一.简单介绍 1.1版本控制 版本控制是指对软件开发过程中各种程序代码,配置文件及说明文档等文件变更管理&#xff0c;是软件配置管理的核心思想之一。 版本控制最重要的内容是追踪文件的变更&#xff0c;它将什么时候&#xff0c;什么人更改了文件的什么内容等信息忠实的记录…...

双路视频同屏显示(拼接)-基于野火Zynq7020开发板

前情提要 米联客FDMA驱动OV5640摄像头—基于野火Zynq7020开发板 本文在此基础上&#xff0c;实现了双路视频拼接。将ov5640输出的1024600的图像数据缩放为512600&#xff0c;分两路写入ddr3&#xff0c;并且显示在1024*600的RGB屏幕中。 纯FPGA也可以按此方法实现。 总体BLOC…...

ForkJoinPool浅析

一,概述 相比传统的线程池ExecuteService,ForkJoinPool的优势在于能采用分治算法、工作窃取算法高效利用CPU资源,如下图 Fork即拆分,Join即合并, 通过将大任务拆分成多个小任务,在多个线程中执行后,合并结果即可得到大任务的结果,经典的例子有归并排序、超大数组求和…...

【AI-小米机器狗】Dockerfile包含SSH和SFTP

通过这些步骤&#xff0c;可以在docker容器中安装运行SSH和SFTP服务&#xff0c;设置ssh和sftp的密码&#xff0c;克隆指定的Git仓库到/home目录&#xff0c;并使用bash作为入口点&#xff0c; # 基于原始镜像 FROM cyberdog_sim:v1# 更新包列表并安装OpenSSH服务器和git RUN …...

仿真CAN报文发送的CRC校验算法(附CAPL代码)

文章目录 前言一、为什么CAN报文有CRC&#xff1f;二、怎么确定是否需要做CRC校验&#xff1f;三、CAPL代码实现CRC算法 前言 关于CRC校验的基本理论、算法实现网上已经有很多介绍文章&#xff0c;本文不再赘述。只是记录在项目测试中真正开发CRC算法并进行测试的一些体会。 …...

如何在Android应用中最佳实现“Edge to Edge“特性?

Edge to Edge"特性 要在Android应用中最佳实现"Edge to Edge"特性,可以按照以下步骤进行操作: 1. 设置目标版本:将应用的目标版本设置为Android Q或更高版本。在build.gradle文件中,将targetSdkVersion设置为Q。 2. 设置主题样式:在styles.xml文件中,创…...

多租户与低代码开发的应用:解锁企业数字化转型的无限可能

在数字化转型的浪潮中&#xff0c;多租户与低代码开发已经成为推动企业快速、灵活、安全地构建和部署应用的关键技术。本文将深入探讨这两种技术的结合如何为企业带来前所未有的变革和机遇。 多租户架构&#xff1a;资源共享与隔离的艺术 多租户架构&#xff0c;是一种高级的软…...

出现身份验证错误,无法连接到本地安全机构 顺利解决这个问题希望能帮助大家

出现身份验证错误&#xff0c;无法连接到本地安全机构&#xff0c;远程计算机&#xff1a;XX&#xff0c;这可能是由于密码过期&#xff0c;如果密码已过期请更新密码。 我们可以在系统属性中对远程进行设置&#xff0c;以解决远程桌面无法连接到本地安全机构这一问题。 步骤…...

老师把卷子拍成图片如何打印

如今&#xff0c;老师们经常会把试卷、习题拍成图片分享给学生&#xff08;如通过微信群或钉钉群的形式&#xff09;。但随之而来的问题是&#xff0c;这些图片如何方便地打印出来呢&#xff1f;尤其是当面对一张张精美的试卷图片时&#xff0c;许多学生和家长都感到头疼。 一…...

MySQL数据库(三):读取数据库数据

上一节&#xff0c;我们介绍了数据库的基本操作&#xff0c;以及最后演示了如何使用库来连接数据库&#xff0c;在实际应用中&#xff0c;我们通常需要按照指定的条件对数据库进行操作&#xff0c;即增删改查操作&#xff0c;这是非常重要的&#xff01;这一节我们继续通过一个…...

分销裂变实战:PLG模式如何助力企业突破增长瓶颈

在竞争激烈的商业环境中&#xff0c;企业如何快速、有效地实现增长&#xff0c;一直是业界关注的焦点。近年来&#xff0c;分销裂变作为一种新兴的商业模式&#xff0c;凭借其独特的优势&#xff0c;逐渐受到企业的青睐。而产品驱动增长&#xff08;PLG&#xff09;模式更是为分…...

定积分定义求极限专题

文章目录 定积分定义求极限问题的描述解决方法真题实践(持续更新中&#xff0c;未完结&#xff09; 定积分定义求极限问题的描述 在定积分定义求极限中&#xff0c;我们可能存在的问题 被积函数不会找积分区间不会定&#xff08;只会[0,1]的&#xff09;根本不知道“补系数”…...

LLaMA:挑战大模型Scaling Law的性能突破

实际问题 在大模型的研发中,通常会有下面一些需求: 计划训练一个10B的模型,想知道至少需要多大的数据?收集到了1T的数据,想知道能训练一个多大的模型?老板准备1个月后开发布会,给的资源是100张A100,应该用多少数据训多大的模型效果最好?老板对现在10B的模型不满意,想…...

vue3 +elementPlus上传照片墙

获取到照片字符串然后push到fileList对应的URL中 if (formData.value.pictures) {let zz formData.value.pictures.split(",")zz.forEach((item) > {fileList.value.push({ url: item })})}对应表单 <el-form-item label"内容详情图"><el-up…...

Charles网络抓包工具安装和web抓包(一)

目录 概述 抓包工具对比 安装 下载 web抓包配置 按键说明 前言-与正文无关 ​ 生活远不止眼前的苦劳与奔波&#xff0c;它还充满了无数值得我们去体验和珍惜的美好事物。在这个快节奏的世界中&#xff0c;我们往往容易陷入工作的漩涡&#xff0c;忘记了停下脚步&#…...

Python学习笔记29:进阶篇(十八)常见标准库使用之质量控制中的数据清洗

前言 本文是根据python官方教程中标准库模块的介绍&#xff0c;自己查询资料并整理&#xff0c;编写代码示例做出的学习笔记。 根据模块知识&#xff0c;一次讲解单个或者多个模块的内容。 教程链接&#xff1a;https://docs.python.org/zh-cn/3/tutorial/index.html 质量控制…...

Day05-03-Nexus仓库

Day05-03-Nexus仓库 05-nexus-仓库1. 概述2. 极速部署指南2.1 下载2.2 部署2.3 配置2.4 连接使用nexus2.4 编译与测试 3. 总结 05-nexus-仓库 1. 概述 背景: maven编译的时候&#xff0c;npm/cnpm编译&#xff0c;需要下载大量的依赖包。这些依赖包在每一次构建的时候都需要使…...

如何在忘记密码的情况下重置Realme手机?

欢迎阅读我们关于如何在有或没有密码的情况下重置Realme手机的综合指南。无论您是忘记了密码&#xff0c;还是只是需要将设备恢复到出厂设置&#xff0c;我们都会为您提供所需的专业提示和技术专长。 发现分步说明、专家提示和行之有效的方法&#xff0c;轻松重新控制您的 Rea…...

Java [ 基础 ] Java面向对象编程 (OOP) ✨

目录 ✨探索Java基础 Java面向对象编程 (OOP) ✨ 引言 1. 类和对象 2. 封装 3. 继承 4. 多态 5. 抽象 结论 ✨探索Java基础 Java面向对象编程 (OOP) ✨ 引言 Java是一门以面向对象编程&#xff08;OOP&#xff09;为基础的编程语言。OOP的核心概念包括类和对象、封装…...

Linux shell编程学习笔记62: top命令 linux下的任务管理器

0 前言 top命令是Unix 和 Linux下常用的性能分析工具&#xff0c;提供了一个动态的、交互式的实时视图&#xff0c;显示系统的整体性能信息&#xff0c;以及正在运行的进程的相关信息&#xff0c;包括各个进程的资源占用状况&#xff0c;类似于Windows的任务管理器。 1 top命令…...

C++ windows下使用openvino部署yoloV8

目录 准备版本&#xff1a; 准备事项: 选择配置界面&#xff1a; 下载界面&#xff1a; ​编辑 添加VS配置&#xff1a; 准备代码&#xff1a; yolov8.h yolov8.cpp detect.cpp 如何找到并放置DLL&#xff1a; 准备版本&#xff1a; opencv 4.6.0 openvino 2024.0…...

比亚迪BYDSHARK墨西哥上市,开启南美出行新篇章

全球瞩目:BYD SHARK墨西哥首发,开启新能源皮卡新纪元在5月14日这个值得纪念的日子里,比亚迪首款皮卡BYD SHARK在墨西哥城举行了盛大的全球产品发布暨墨西哥上市发布会。BYD SHARK的惊艳亮相不仅彰显了比亚迪作为世界级新能源科技公司的强大实力,也宣告了全球新能源皮卡时代的正…...

卷出花来!比亚迪海狮07首搭天神之眼五月新车个个有看点

五月虽然不是传统的车市旺季,但仍然有多款重磅新车即将上市,包括比亚迪全新SUV海狮07 EV、智己L6、沃尔沃EX30,三款全新新能源车型要颜值有颜值,要性能有性能,近期想要入手新车的准车主们值得关注。比亚迪海狮07上市日期:5月10日4月25日,比亚迪旗下全新中型SUV——海狮07…...

电动新浪潮:长安马自达CX-50与深蓝S7设计美学的较量

在电动化的浪潮中,汽车不仅是代步工具,更是个性与品味的展现。今天,我们将深入探讨两款电动SUV——长安马自达CX-50与深蓝S7,它们如何在设计美学上各领风骚,又如何在电动化的大潮中各显神通。随着环保理念的深入人心和政策的推动,电动车市场迎来了爆发式增长。消费者不再…...

浅谈网络安全态势感知

前言 网络空间环境日趋复杂&#xff0c;随着网络攻击种类和频次的增加&#xff0c;自建强有力的网络安全防御系统成为一个国家发展战略的一部分&#xff0c;而网络态势感知是实现网络安全主动防御的重要基础和前提。 什么是网络安全态势感知&#xff1f; 态势感知一词来源于对…...

新人开发新系统,旧人维护旧系统

通常来说旧系统存在一些难以解决的问题&#xff0c;软件架构及逻辑实现可能会有一定的缺陷和复杂度&#xff0c;甚至有些烂系统可以称为”焦油坑“&#xff0c;意思是出现问题难以分析解决&#xff0c;谁来谁陷进去。因此&#xff0c;如果同时存在新系统&#xff08;可能正在开…...

解决Selenium NameError: name ‘By’ is not defined

解决Selenium NameError: name ‘By’ is not defined 文章目录 解决Selenium NameError: name By is not defined背景错误原因解决方法1. 检查导入语句2. 修正拼写和大小写3. 验证Selenium库安装4. 重启IDE或终端5. 检查环境变量 验证总结 背景 在使用Selenium进行Web自动化测…...