SeaboxSQL

news2024/11/18 12:21:20

目录

一、基本架构

0、数据模型

1、主从集群         

2、分库分表

二、部署安装

1、配置要求

2、前置依赖

3、安装步骤

三、基本操作

1、实例启停

2、命令执行

3、基本查询

4、表空间管理

4、用户管理

6、数据库操作

7、SCHEMA操作

8、表操作

9、日志操作

(1)开启归档

(2)相关查询

(3)清理归档

(4)重置归档


一、基本架构

        第一印象,SeaboxSQL数据库是基于 PostgreSQL 做的。看介绍是有一些自己的东西,但因为我只涉及到数据的灾备(备份恢复),所以关注点只在数据库的安装,基本使用和灾备。说个好玩的,在技术预研过程中,遇到一些问题,你直接按 SeaboxSQL 搜索结果寥寥,但按照 PG 去搜索,反而能够得到答案(会心一笑)。

        SeaboxSQL提供丰富的企业级功能,在性能、安全性、Oracle兼容性、高可用性、易用性等方面均有较多技术特点和优势,支持HA、读写分离、共享存储集群部署架构。同时提供了针对数据分析场景的列存储引擎与向量执行引擎,极大提升在事务和分析混合业务领域的适用范围。

0、数据模型

        表空间是一个逻辑结构,用于定义数据库对象(如表、索引等)的物理存储位置,每个表空间对应文件系统上的一个目录。表空间帮助分隔存储,优化性能,或将数据存储在不同的磁盘上。表空间在实例级别上创建,并且可以被该实例中的所有数据库共享。数据库初始化之后自动会创建 pg_default 和 pg_global 两个表空间。

        数据库是 PostgreSQL 中的一个逻辑容器,包含了表、索引、视图、序列等所有数据对象。新建一个数据库会在表空间对应的目录下创建一个 oid( 数据库 oid )的目录;用于存放这个数据库对应的数据库文件。PG 同实例下数据库之间不仅物理结构完全独立,逻辑结构也是完全独立。每个 database 创建时;会默认为库创建 pg_catalog / information_schema。

        实例是运行 PostgreSQL 数据库管理系统的一个进程。一个 PostgreSQL 实例可以管理一个或多个数据库。

        用户是 PostgreSQL 系统中的一个实体,具有权限和角色。用户可以操作数据库对象、管理数据库和表空间等。

1、主从集群         

        SeaboxSQL 内置基于 WAL 日志流复制( Stream replication )机制的主备集群解决方案。

        以典型的双机热备高可用场景为例,两台 SeaboxSQL 服务器分别作为主从数据库服务器同时运行,并通过主从机间的 “ 心跳 ” 通讯监测彼此的运行状态。正常情况下,主服务器对外提供数据库服务,另一台处于备用状态。一旦主服务器发生故障不能提供数据库服务时,从服务器主动接管,并继续对外提供服务,保证用户不间断的数据库访问。故障服务器修复后处于备用状态。

        SeaboxSQL 主备集群高可用架构支持读写分离的负载隔离机制,对于大量读取少量更新的应用,可按参数设定讲读取负载分发到备服务执行,可有效提升数据库系统的吞吐量。

2、分库分表

        SeaboxSQL 数据库支持借助开源中间件 ShardingSphere 构建分库分表集群的高可用方案,具有分库、分表、分布式事务、弹性伸缩、读写分离等众多能力;保证高可用场景,同时可实现负载均衡。

        ShardingSphere-Proxy 是 ShardingSphere 生态中的一个接入端,即对客户端透明的数据库代理,提供封装了数据库二进制协议的服务端版本,用于完成对异构语言的支持。因此客户端代码无需配置修改,应用程序完全透明,可直接当做 SeaboxSQL 使用,适用于任何客户端。

        HAProxy 结合 seabox monitor 组件,可以始终识别数据库的主节点,保证高可用场景,同时可实现负载均衡;

        每个 SeaboxSQL 高可用节点支持一主多备,每个节点使用 SCDCS 一致性协议保证数据的一致性,各个节点可以部署在相同或不同的区域,用以保证多地多中心的数据安全。

二、部署安装

        集群部署可参考官方文件,下面只介绍单机环境的部署。

1、配置要求

CPU 平台

        通用 X86_64CPU 平台

        鲲鹏 916/920 CPU 平台

        飞腾 1500 及以上型号 CPU 平台

        龙芯 3B CPU 平台

操作系统

        RHEL 7 及以上版本

        CentOS 7 及以上版本

        UOS 20 统一操作系统

        银河麒麟 V4

        中标麒麟 V7

最低配置要求

        最小 CPU : 任意兼容 x86_64 框架的 CPU 鲲鹏、飞腾等 ARM 架构 CPU

        最小内存 : 单个主机 16GB RAM

        磁盘空间要求 SeaboxSQL 数据库安装的程序需每节点 150MB 存储空间

        每个实例需约 300MB 元数据存储空间

        存储数据的磁盘需保留合理的空闲空间,通常存储的数据不超过整体磁盘空间 70%

        数据库高可用集群部署建议内部万兆网络连接

        服务有多个网口时建议使用多网卡绑定

2、前置依赖

        依赖如下:

apr、openldap、apr-util、openssh、bash、openssl、bzip2、openssl-libs、curl、perl、
krb5、readline、libcurl、rsync、libevent、sed、libxml2、tar、libyaml、zip、zlib

        先使用 yum list installed 查询已安装程序是否满足上述需求,若不满足,则配置 yum 源后进行安装。

[root@localhost mnt]# mkdir iso
[root@localhost mnt]# mount -o loop /mnt/Kylin-Server-V10-SP3-2403-Release-20240426-arm64.iso /mnt/iso/
mount: /mnt/iso: WARNING: source write-protected, mounted read-only.

[root@localhost mnt]#  rm /etc/yum.repos.d/kylin_aarch64.repo
rm:是否删除普通文件 '/etc/yum.repos.d/kylin_aarch64.repo'?y

[root@localhost mnt]# vim /etc/yum.repos.d/local.repo

[root@localhost mnt]# cat /etc/yum.repos.d/local.repo
[local]
name=local
baseurl=file:///mnt/iso
gpgcheck=0
enabled=1

[root@localhost mnt]# yum clean all
0 files removed

[root@localhost mnt]# yum makecache
local  277 MB/s | 3.9 MB     00:00
Last metadata expiration check: 0:00:01 ago on 2024年08月20日 星期二 16时34分09秒.
Metadata cache created.

        若遇到所需动态库版本与已安装版本不一致的问题,可以直接拷贝已安装的并重命名为指定版本。举例如下:

[seaboxsql@localhost ~]$ ssql seaboxsql -p 7300
ssql: error while loading shared libraries: libreadline.so.7: cannot open shared object file: No such file or directory

[root@localhost ~]# cp /lib64/libreadline.so.8.0 /lib64/libreadline.so.7

[seaboxsql@localhost ~]$ ssql seaboxsql -p 7300
ssql (21.2.2.203)
Type "help" for help.

3、安装步骤

        按如下步骤依次安装:

# 最好创建专属用户
useradd -r -m seaboxsql

# 切换安装用户
su - seaboxsql

# 上传安装包后进行解压
unzip seaboxsql-db-11.5-rhel7-x86_64.zip
# 计算 md5 校验和,并与 seaboxsql-db-11.5-KYLINV10-aarch64.md5 内容进行比较
md5sum seaboxsql-db-11.5-rhel7-x86_64.bin
# 安装过程中默认都是 yes,安装目录为 /usr/local/seabox,若需修改,则需要输入绝对路径
./seaboxsql-db-11.5-rhel7-x86_64.bin

# 设置环境变量
vim ~/.bashrc

export LD_LIBRARY_PATH=/usr/local/seabox/seaboxsql-db/lib:$LD_LIBRARY_PATH
export PATH=/usr/local/seabox/seaboxsql-db/bin:$PATH
# 必须在环境变量中添加下面命令,
# 每次进入用户环境后,先 source 一下环境变量,不然很多工具运行报错“核心已转储”,可以运行 seaboxsql --version 进行测试
source /usr/local/seabox/seaboxsql-db-21.2.2.203/seaboxsql_path.sh

source ~/.bashrc

# 初始化数据库
cd /usr/local/seabox/seaboxsql-db
mkdir data
initdb -D /usr/local/seabox/seaboxsql-db/data/

# 启动服务(可以创建一个启动脚本)
[seaboxsql@localhost ~]$ cat sbs_start.sh
sd_ctl start -l /usr/local/seabox/seaboxsql-db/log/run.log -D /usr/local/seabox/seaboxsql-db/data

# 关闭服务 
[seaboxsql@localhost ~]$ cat sbs_stop.sh
kill -INT `head -1 /usr/local/seabox/seaboxsql-db-21.2.2.203/data/seaboxmaster.pid`

# 调整数据库配置
vim /usr/local/seabox/seaboxsql-db/data/seaboxsql.conf
listen_addresses = '*'
port=7300

vim /usr/local/seabox/seaboxsql-db/data/sd_hba.conf
# 添加数据库访问配置
# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
host    all             all             ::1/128                 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.
local   replication     all                                     trust
host    replication     all             127.0.0.1/32            trust
host    replication     all             ::1/128                 trust

        使用 ssql 中登录终端,若报如下错误:

        若本地不存在 libreadline,则可以使用 yum 在配置本地源后下载 readline。若已安装但存在版本不一致的问题,可以采用下面的方法进行调整。

cp /lib64/libreadline.so.8.0 /lib64/libreadline.so.7

三、基本操作

1、实例启停

# 开启
sd_ctl start -l /usr/local/seabox/seaboxsql-db/log/run.log -D /usr/local/seabox/seaboxsql-db/data
# 关闭(两种方法,推荐方法 1)
sd_ctl stop -l /usr/local/seabox/seaboxsql-db/log/run.log -D /usr/local/seabox/seaboxsql-db/data
kill -INT `head -1 /usr/local/seabox/seaboxsql-db-21.2.2.203/data/seaboxmaster.pid`
# 重启
sd_ctl restart -l /usr/local/seabox/seaboxsql-db/log/run.log -D /usr/local/seabox/seaboxsql-db/data
# 查看状态
sd_ctl status -l /usr/local/seabox/seaboxsql-db/log/run.log -D /usr/local/seabox/seaboxsql-db/data
# 具体的参考 sd_ctl 参数说明 
sd_ctl --help

2、命令执行

# 登录终端工具(用户名、端口)
ssql -h 127.0.0.1 -p 7300 -U unary -d seaboxsql -w

# 添加密钥文件,在需要密码验证时会读取该文件
[seaboxsql@localhost ~]$ vim ~/.sdpass
[seaboxsql@localhost ~]$ chmod 0600 ~/.sdpass
# 按照格式 IP:Port:Database:username:password
[seaboxsql@localhost ~]$ cat ~/.sdpass
127.0.0.1:7300:seaboxsql:unary:111111

# 执行 sql 脚本,执行表相关操作时,需要关注指定表所属 schema。
ssql db1 -p 7300 -Uunary -f /home/seaboxsql/insert.sql
ssql db1 -p 7300 -Uunary < /home/seaboxsql/insert.sql
echo 'select count(*) from employees;' | ssql -h 127.0.0.1 -p 7300 -U unary -d db1

3、基本查询

# 查看实例版本
select version();

# 查看数据库时区
show timezone;

# 查看当前时间戳
select now();

# 查看数据目录
SHOW data_directory;

4、表空间管理

# 创建表空间
CREATE TABLESPACE ts_unary LOCATION '/usr/local/seabox/seaboxsql-db/data/ts_unary';

# 查询表空间, 数据库安装后默认两个 pg_default、pg_global
\db
select * from pg_tablespace;

# 查询表空间 oid 和对应的存储路径
SELECT oid, spcname, pg_tablespace_location(oid) AS location FROM pg_tablespace;

4、用户管理

# 创建超级用户
CREATE USER unary WITH SUPERUSER ENCRYPTED PASSWORD '111111';
# 创建用户
CREATE USER unary WITH ENCRYPTED PASSWORD '111111';
# 修改用户密码
ALTER USER name WITH ENCRYPTED PASSWORD 'password'
# 创建角色
CREATE ROLE name WITH LOGIN ENCRYPTED PASSWORD 'password'
# 修改角色密码
ALTER ROLE name WITH ENCRYPTED PASSWORD 'password'
# 查看当前用户名
select user;
select current_user;
# 查看session用户
select session_user;
# 以账户密码登录,-W 启动用户密码强认证
[seaboxsql@localhost ~]$ ssql seaboxsql -p 7300 -Uunary -W
Password:
ssql (21.2.2.203)

6、数据库操作

# 查询各个数据库的 OID
select oid, datname from pg_database;

# 查看当前实例有哪些数据库
\l

# 创建数据库
CREATE DATABASE db1 OWNER unary TEMPLATE template0 ENCODING 'UTF8' TABLESPACE pg_default;

# 切换数据库,需要输入所属用户的密码
\c dbname

# 查看数据库大小
select pg_database.datname, pg_size_pretty(pg_database_size(pg_database.datname)) AS size from pg_database;  

# 删除数据库,需切换到 seaboxsql 数据库
\c seaboxsql
drop database db1;

7、SCHEMA操作

# 创建 SCHEMA
CREATE SCHEMA bench;
# 查看当前SCHEMA
SELECT current_schema();
# 设置搜索路径
ALTER DATABASE db1 SET search_path TO bench,
public, pg_catalog;
ALTER ROLE sally SET search_path TO myschema, public,
 pg_catalog;
# 查看当前搜索路径
SHOW search_path;
# 删除SCHEMA(SCHEMA 内为空)
DROP SCHEMA myschema;
# 若要删除 SCHEMA 及其内部所属
DROP SCHEMA myschema CASCADE;

        要在数据库中指定一个对象的位置,请使用 schema 限定的名称。例如:SELECT * FROM myschema.mytable; 用户可以设置 search_path 配置参数来指定在其中搜索对象的可用 schema 的顺序。在该搜索路径中第一个列出的方案会成为默认 schema 。如果没有指定方案,对象会被创建在默认 schema 中。

        数据库内系统级 SCHEMA:

        pg_catalog 包含着系统目录表、内建数据类型、函数和操作符。即便在 schema 搜索路径中没有显式地提到它,它也总是 schema 搜索路径的一部分。

        information_schema 有一个包含数据库中对象信息的视图集合组成。这些视图以一种标准化的方式从系统目录表中得到系统信息。

        pg_toast 存储大型对象,如超过页面尺寸的记录。这个 schema 由 SeaboxMPP 数据库系统内部使用。

        pg_bitmapindex 存储位图索引对象,例如值的列表。这个 schema 由 SeaboxMPP 数据库系统内部使用。

        pg_aoseg 存储列存表对象。这个 schema 由 SeaboxMPP 数据库系统内部使用。

        sc_toolkit 是一个管理用途的 schema ,它包含用户可以用 SQL 命令访问的外部表、视图和函数。所有的数据库用户都能访问 sc_toolkit 来查看和查询系统日志文件以及其他系统指标

8、表操作

# 查看表结构
\d table

# 查看详细的表结构
\d+ table

# 查看表的数量
SELECT COUNT(*) FROM pg_catalog.pg_tables WHERE schemaname != 'pg_catalog' AND schemaname != 'information_schema';

# 创建表(所属于当前 SCHEMA )
CREATE TABLE employees ( employee_id SERIAL, first_name VARCHAR(50) NOT NULL, last_name VARCHAR(50) NOT NULL, hire_date DATE, department_id INT );
insert into public.employees values(101, 'tom', 'cat', '1996-12-08 10:30:40', 66);

# 删除表
drop table employees;

9、日志操作

(1)开启归档

        创建归档日志目录,可以直接切换到数据库系统用户后进行创建,可以避免权限问题。

# 编辑数据目录下的配置文件
vim /usr/local/seabox/seaboxsql-db/data/seaboxsql.conf
    
# 调整文件内如下内容 

# minimal, replica, or logical
wal_level = replica

# enables archiving; off, on, or always (change requires restart)
archive_mode = on

# command to use to archive a logfile segment
archive_command = 'test ! -f /usr/local/seabox/seaboxsql-db/archive_log/%f && cp %p /usr/local/seabox/seaboxsql-db/archive_log/%f'

# max number of walsender processes 
max_wal_senders = 10

# 配置监听
# what IP address(es) to listen on;
# comma-separated list of addresses;
# defaults to 'localhost'; use '*' for all
# (change requires restart)
listen_addresses = '*'
port = 7300    

         配置文件修改完成后重启数据库。

[seaboxsql@localhost ~]$ sd_ctl stop -l /usr/local/seabox/seaboxsql-db/log/run.log -D /usr/local/seabox/seaboxsql-db/data
waiting for server to shut down, checkpoint maybe take few minutes, please wait patiently.... done
server stopped

[seaboxsql@localhost ~]$ sd_ctl status -D /usr/local/seabox/seaboxsql-db/data/
sd_ctl: no server running

[seaboxsql@localhost ~]$ sd_ctl start -l /usr/local/seabox/seaboxsql-db/log/run.log -D /usr/local/seabox/seaboxsql-db/data
waiting for server to start.... done
server started

[seaboxsql@localhost ~]$ sd_ctl status -D /usr/local/seabox/seaboxsql-db/data/
sd_ctl: server is running (PID: 474398)
/usr/local/seabox/seaboxsql-db-21.2.2.203/bin/seaboxsql "-D" "/usr/local/seabox/seaboxsql-db/data"

        重启后,查看归档模式是否开启。

# 查看归模式
seaboxsql=# show archive_mode;
 archive_mode
--------------
 on
(1 row)

(2)相关查询

# 查看当前正在写的WAL文件
select pg_xlogfile_name(pg_current_xlog_location());

# 查看当前WAL的buffer中还有多少字节的数据没有写到磁盘中
select pg_xlog_location_diff(pg_current_xlog_insert_location(),pg_current_xlog_location());

# 查看归模式
show archive_mode;

# 查看归档配置
show archive_command

# 查看日志级别
show wal_level;

# 查询当前日志LSN
select pg_current_wal_lsn()

# 根据 LSN 查询对应的归档日志文件
select pg_walfile_name('0/8001128');

(3)清理归档

# 查询当前日志 LSN
seaboxsql=# SELECT pg_current_wal_lsn();
 pg_current_wal_lsn
--------------------
 0/8001128
(1 row)

# 查询 LSN 对应的日志文件
seaboxsql=# select pg_walfile_name('0/8001128');
 pg_walfile_name
--------------------------
 000000010000000000000008
(1 row)

# 清理 000000010000000000000008 之前的所有归档日志文件
[seaboxsql@localhost backup]$ sd_archivecleanup /usr/local/seabox/seaboxsql-db/archive_log/ 000000010000000000000008

(4)重置归档

        用于重置数据库的 WAL(Write-Ahead Logging)日志。它常用于在数据目录损坏或 WAL 文件丢失的情况下恢复数据库。

        运行 pg_resetwal 会清除并重新创建 WAL 文件,从而使数据库能够启动并运行,但要注意,它可能会导致丢失 WAL 记录的信息,影响到数据的恢复一致性。因此,它通常作为最后的手段,在尝试其他恢复方法失败后使用。

[seaboxsql@localhost ~]$ sd_resetwal -f /usr/local/seabox/seaboxsql-db/data
Write-ahead log reset

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

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

相关文章

立即升级!Windows11 24H2 正式版 V26100.2033!

今日&#xff0c;系统之家小编给您带来2024年10最新推出了Windows11 24H2正式版系统下载&#xff0c;该版本系统以微软官方Windows11 24H2 26100.2033 专业版为基础&#xff0c;展开离线制作与优化&#xff0c;安全无毒&#xff0c;且修复了之前版本存在的蓝屏、绿屏等问题&…

多模态大语言模型(MLLM)-InstructBlip深度解读

前言 InstructBlip可以理解为Blip2的升级版&#xff0c;重点加强了图文对话的能力。 模型结构和Blip2没差别&#xff0c;主要在数据集收集、数据集配比、指令微调等方面下文章。 创新点 数据集收集&#xff1a; 将26个公开数据集转换为指令微调格式&#xff0c;并将它们归类…

五、Python基础语法(程序的输入和输出)

一、输入 输入&#xff1a;输入就是获取键盘输入的数据&#xff0c;使用input()函数。代码会从上往下执行&#xff0c;当遇到input()函数&#xff0c;就会暂停执行&#xff0c;输入内容后&#xff0c;敲回车键&#xff0c;表示本次的输入结束。input函数得到的数据类型都是字符…

≌图概念凸显有长度不同的射线

黄小宁 【摘要】自有射线概念后的2300年里一直无人能知有长度不同的射线、无人能知有互不≌的射线&#xff0c;从而使数学一直有几何“常识”&#xff1a;任何射线都没有长度差别。保距变换和≌图概念使人能一下子看到有长度不同的射线。 变量x所取各数也均由x代表&#xff0c…

【电子通识】TINA-TI 安装

TINA-TI是一个SPICE的模拟仿真程序&#xff0c;提供了 SPICE 所有的传统直流、瞬态和频域分析以及更多功能。 TINA 具有允许您按照希望的方式设置结果的格式。虚拟仪器允许选择输入波形、探针电路节点电压和波形。 下载链接&#xff1a;TINA-TI 模拟工具 | 德州仪器 TI.com.cn …

计算机网络:数据链路层 —— 数据链路层概述

文章目录 数据链路层主要功能 基本概念链路数据链路帧 数据链路层 在计算机网络中&#xff0c;链路层&#xff08;Data Link Layer&#xff09;是网络协议栈中的一层&#xff0c;负责管理和控制链路的建立、维护和释放&#xff0c;以及处理链路层的数据帧传输和错误控制等功能…

为什么使用元空间替代了永久代

为什么使用元空间替代了永久代 简单来说&#xff1a; 永久代是JVM内存是有上限的&#xff0c;而元空间是存储本地内存里&#xff0c;内存上限比较大。避免频繁出现OOM问题。 永久代对象是通过Full GC进行内存清理&#xff0c;元空间是由操作系统内存管理机制处理&#xff0c;…

安卓APP 构建

安卓开发 … 现在估计都是前端构建了 … … 可以写一些自己调试设备用的工具,串口连接或者网口链接,USB 链接等等 现在的应用开发,都趋向于脚本开发了,不用造轮子 … … 轻开发重分析 再搭配一个无线调试设备,非常好用

关于AOT、JIT编译模式以及基于静态编译构建微服务应用

JDK 9 引入了一种新的编译模式 AOT(Ahead of Time Compilation) 。和 JIT 不同的是&#xff0c;这种编译模式会在程序被执行前就将其编译成机器码&#xff0c;属于静态编译&#xff08;C、 C&#xff0c;Rust&#xff0c;Go 等语言就是静态编译&#xff09;。AOT 避免了 JIT 预…

excel表格转换为在线成绩查询怎么制作?

在当前“双减”政策的背景下&#xff0c;学生的考试成绩不再被公开展示&#xff0c;这是对学生隐私的一种保护。然而&#xff0c;这同时也带来了一个新的问题&#xff1a;家长们对于孩子成绩的关切并未减少&#xff0c;他们依然迫切想要了解孩子的学习情况。以往&#xff0c;成…

webGL进阶(一)多重纹理效果

效果&#xff1a; 代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content&q…

[JAVA]连接数据库 并在Java中实现查询员工信息功能

在进行这些操作之前&#xff0c;我们需要先了解JDBC入门&#xff0c;JDBC是一种用于执行SQL语句的JavaAPL&#xff0c;可以为多种关系数据库提供统一访问。 一&#xff0c;主要作用 1.连接数据库 允许Java程序与各种不同的数据库建立连接。无论使用的是MySQL&#xff0c;Ora…

高效开发,低代码平台如何助力构建内部工具

Zoho Creator是低代码平台&#xff0c;助力快速构建内部工具&#xff0c;如审批、订单、销售管理等&#xff0c;提升生产力、客户满意度&#xff0c;并减轻管理负担。平台提供拖放界面、集成数据库等功能&#xff0c;入选Gartner低代码平台“魔力象限”。 一、什么是内部工具&a…

免杀对抗—GOC#反VT沙盒资源分离混淆加密

前言 今天的主要内容是反VT沙盒&#xff0c;我们都知道生成的后门会被杀软上穿到沙盒中去运行&#xff0c;去逆向。如此一来我们的后门就很容易被查杀掉&#xff0c;但如果我们对后门进行一些操作&#xff0c;让它在被逆向的时候&#xff0c;反编译出一堆乱码&#xff0c;或者…

(接口测试)接口测试理论 http理论 接口测试流程 接口文档解析

一.接口测试理论 1.接口和接口测试 服务器为客户端开了一个验证接口&#xff08;接口本质&#xff1a;函数方法&#xff09;客户端向服务器传送的消息可以相当于函数的参数&#xff0c;接口是用来让客户端传递数据的 接口&#xff1a;相当于开了一个通道 当服务器要给客户端响…

用setnx实现一个分布式锁

用setnx实现一个分布式锁 简介 利用Redis的单线程特性&#xff0c;在多个Redis客户端同时通过SETNX命令尝试获取锁&#xff0c;如果返回1表示获取锁成功&#xff0c;否则表示获取锁失败。 Redis Setnx&#xff08;SET if Not eXists&#xff09; 命令在指定的 key 不存在时&…

基于SSM的车库智能管理平台设计与实现【附源码】

基于SSM的车库智能管理平台设计与实现&#xff08;源码L文说明文档&#xff09; 目录 4 系统设计 4.1 系统概要设计 4.2 系统功能结构设计 4.3 数据库设计 4.3.1 数据库E-R图设计 4.3.2 数据库表结构设计 5 系统实现 5.1用户信息管理 5.2 车…

腾讯云SDK地址生成器

音视频终端 SDK&#xff08;腾讯云视立方&#xff09;将新版连麦管理方案的多个功能集成至 腾讯云视立方控制台 > 连麦管理&#xff0c;便于用户快捷使用&#xff0c;具体分为快速上手、连麦应用、用量统计和地址生成器四个功能页面。更多连麦功能说明&#xff0c;请参见 新…

YOLO11 实例分割模型做行人分割

实例分割是检测和隔离图像中单个对象的关键技术,YOLO11 是执行这项任务的最佳模型之一。在本文中,你将学习如何使用 YOLO11 分割模型有效地在图像中分割人物。我们将涵盖从设置 Python 环境和安装必要的库,到下载测试图像和可视化分割结果的所有内容。通过本教程的学习,你将…

pandas的用法

1.简介&#xff1a; pandas是一个开源的python数据分析库提供了快速&#xff0c;灵活和表达力强的数据结构&#xff0c;使数据清洗和分析工作变得更加简单易行。pandas的核心数据结构是DataFrame和Series 2.DataFrame的基本操作&#xff1a; DataFrame是pandas库中的一个二维…