Oracle 中的各种名称(*_name)参数的含义与作用
Oracle 中的各种名称(*_name)参数的含义与作用
目录
- Oracle 中的各种名称(*_name)参数的含义与作用
- 一、数据库名:db_name
- 二、数据库所在的域:db_domain
- 三、全局数据库名:global_name
- 四、服务名:service_name
- 五、网络服务名:net service name
- 六、实例名:instance_name
- 七、监听文件配置
在安装 Oracle 软件、创建数据库、配置初始化参数文件、配置监听时会用到很多带 name 的参数。这些参数的详细信息如下:
SQL> show parameter nameNAME TYPE VALUE
------------------------------------ ----------- ------------------------------
cell_offloadgroup_name string
db_file_name_convert string
db_name string hisdb -- 数据库名
db_unique_name string hisdb -- 数据库唯一名
global_names boolean FALSE -- 数据库唯一标识
instance_name string ora -- 实例名
lock_name_space string
log_file_name_convert string
processor_group_name string
service_names string hisdb -- 服务名
db_name,instance_name,service_name,db_unique_name,global_name参数可以在初始化参数文件(init$ORACLE_SID.ora)中设置。
instance_name不能在初始化参数文件中直接设置,通过在操作系统中配置环境变量ORACLE_SID自动设置。
配置监听时,在文件listener.ora中需要使用参数instance_name,global_names,在文件tnsname.ora中需要使用参数service_names,instance_name。
一、数据库名:db_name
db_name参数用于标识数据库的名称。db_name参数对于Oracle本身比较有用,对用户而言没有太多的用处,db_name记录在controlfile,datafile_header,redo中,要想修改db_name是比较麻烦的。因此在建库时指定恰当的db_name非常重要的。
db_name还有一个非常重要的作用就是动态注册监听,不管是否指定了service_name,pmon都会使用db_name动态注册监听。
查看参数db_name的值:
SQL> show parameter db_nameNAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_name string hisdb
查看监听信息:
[oracle@ora admin]$ lsnrctl statusLSNRCTL for Linux: Version 11.2.0.4.0 - Production on 05-JAN-2025 21:45:05Copyright (c) 1991, 2013, Oracle. All rights reserved.Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 11.2.0.4.0 - Production
Start Date 01-JAN-2025 12:24:12
Uptime 4 days 9 hr. 20 min. 52 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /usr/local/oracle/product/11.2.0/db_1/network/admin/listener.ora
Listener Log File /usr/local/oracle/diag/tnslsnr/ora/listener/alert/log.xml
Listening Endpoints Summary...(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ora)(PORT=1521)))
Services Summary...
Service "hisdb" has 2 instance(s). # hisdb 就是数据库名Instance "ora", status UNKNOWN, has 1 handler(s) for this service...Instance "ora", status READY, has 1 handler(s) for this service...
Service "oraXDB" has 1 instance(s).Instance "ora", status READY, has 1 handler(s) for this service...
The command completed successfully
二、数据库所在的域:db_domain
db_domain参数定义一个数据库所在的域。
随着由多个数据库构成的分布式数据库的普及,各个数据库的名字可能一样,造成管理上的混乱。为了解决这种情况,引入了db_domain参数,数据库的标识(global_name)由db_name和db_domain两个参数共同决定,避免了因为数据库重名而造成管理上的混乱。将db_name和db_domain两个参数用【.】连接起来,表示一个数据库,并将该数据库的名称称为global_name。 查看参数db_domain的值:
SQL> show parameter db_domainNAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_domain string
三、全局数据库名:global_name
global_name定义一个全局数据库名。缺省值为db_name.db_domain。该值是在创建数据库时决定的,以后对参数文件中Db_name与Db_domain参数的任何修改都不影响global_name的值,如果要修改global_name,只能用以下命令进行修改:
ALTER DATABASE RENAME GLOBAL_NAME TO <db_name.db_domain>;
查看参数global_name的值:
SQL> select * from global_name;GLOBAL_NAME
--------------------------------------------------------------------------------
HISDB
在配置静态监听注册时需要输入的全局数据库名(GLOBAL_DBNAME)应该是什么?配置网络服务命名(tns)时需要输入的服务名(SERVICE_NAME)又是什么?
[oracle@ora admin]$ vi listener.ora# listener.ora Network Configuration File: /usr/local/oracle/product/11.2.0/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.LISTENER =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))(ADDRESS = (PROTOCOL = TCP)(HOST = ora)(PORT = 1521))))SID_LIST_LISTENER =(SID_LIST =(SID_DESC =(GLOBAL_DBNAME = hisdb)(ORACLE_HOME = /usr/local/oracle/product/11.2.0/db_1)(SID_NAME = ora))ADR_BASE_LISTENER = /usr/local/oracle[oracle@ora admin]$ vi tnsnames.ora # tnsnames.ora Network Configuration File: /usr/local/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.HISDB =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = ora)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = hisdb)))
答案:
只要保证listerner.ora中的GLOBAL_DBNAME和tnsnames.ora中的SERVICE_NAME保持一致就可以,可以是任意内容。
在配置listener和tnsnames时提供的GLOBAL_DBNAME和SERVICE_NAME参数值与系统中的global_name、service_name没有任何关系。
四、服务名:service_name
服务名是复数,意味着service_names可以是多个值,服务名在动态注册监听时被使用。
Oracle dataguard建议在主库与备库上使用相同的service_names,便于尽可能的实现透明切换。如果配置了静态注册的监听,在主库与备库也务必保持在listener中输入的服务名相同。
初始化参数service_name默认为db_name.db_dimain,后台进程PMON自动在服务器监听器中注册该参数。
查看参数service_name的值:
SQL> show parameter service_nameNAME TYPE VALUE
------------------------------------ ----------- ------------------------------
service_names string hisdbSQL> show parameter instance_nameNAME TYPE VALUE
------------------------------------ ----------- ------------------------------
instance_name string ora
同实例之外,在监听器动态注册时,还会用于向监听器注册。查看Oracle的监听信息:
[oracle@ora admin]$ lsnrctl statusLSNRCTL for Linux: Version 11.2.0.4.0 - Production on 05-JAN-2025 21:45:05Copyright (c) 1991, 2013, Oracle. All rights reserved.Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 11.2.0.4.0 - Production
Start Date 01-JAN-2025 12:24:12
Uptime 4 days 9 hr. 20 min. 52 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /usr/local/oracle/product/11.2.0/db_1/network/admin/listener.ora
Listener Log File /usr/local/oracle/diag/tnslsnr/ora/listener/alert/log.xml
Listening Endpoints Summary...(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ora)(PORT=1521)))
Services Summary...
Service "hisdb" has 2 instance(s).Instance "ora", status UNKNOWN, has 1 handler(s) for this service...Instance "ora", status READY, has 1 handler(s) for this service...
Service "oraXDB" has 1 instance(s).Instance "ora", status READY, has 1 handler(s) for this service...
The command completed successfully
修改参数 SERVICE_NAMES的值:
SQL> alter system set service_names='hisdb123' scope=both;System altered.SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.Total System Global Area 1068937216 bytes
Fixed Size 2260088 bytes
Variable Size 331350920 bytes
Database Buffers 729808896 bytes
Redo Buffers 5517312 bytes
Database mounted.
Database opened.SQL> show parameter service_namesNAME TYPE VALUE
------------------------------------ ----------- ------------------------------
service_names string hisdb123
查看监听信息:
[oracle@ora admin]$ lsnrctl statusLSNRCTL for Linux: Version 11.2.0.4.0 - Production on 05-JAN-2025 22:30:30Copyright (c) 1991, 2013, Oracle. All rights reserved.Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 11.2.0.4.0 - Production
Start Date 01-JAN-2025 12:24:12
Uptime 4 days 10 hr. 6 min. 17 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /usr/local/oracle/product/11.2.0/db_1/network/admin/listener.ora
Listener Log File /usr/local/oracle/diag/tnslsnr/ora/listener/alert/log.xml
Listening Endpoints Summary...(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ora)(PORT=1521)))
Services Summary...
# 虽然service_name没有设置hisdb,PMON 仍然把db_name设置的数据库名hisdb注册到监听器上
Service "hisdb" has 2 instance(s).Instance "ora", status UNKNOWN, has 1 handler(s) for this service...Instance "ora", status READY, has 1 handler(s) for this service...
# 下面显示的 hisdb123 就是初始化参数中 SERVICE_NAMES 设置的参数值,由 PMON 自动注册到监听器上
Service "hisdb123" has 1 instance(s).Instance "ora", status READY, has 1 handler(s) for this service...
Service "oraXDB" has 1 instance(s).Instance "ora", status READY, has 1 handler(s) for this service...
The command completed successfully
五、网络服务名:net service name
网络服务名又称为数据库别名(database alias)。
网络服务名是客户端程序访问数据库时所需要,屏蔽了客户端如何连接到服务器端的细节,实现了数据库的位置透明的特性。网络服务名在tnsname.ora文件中配置,相当于某个数据库实例的别名,方便记忆和访问。
例如:在tnsnames.ora中配置网络服务名HISDB
[oracle@ora admin]$ vi tnsnames.ora# tnsnames.ora Network Configuration File: /usr/local/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.HISDB =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = ora)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = hisdb)))
则可以使用如下命令登录数据库:
[oracle@ora admin]$ sqlplus sys/oracle@hisdb as sysdba;SQL*Plus: Release 11.2.0.4.0 Production on Sun Jan 5 22:01:27 2025Copyright (c) 1982, 2013, Oracle. All rights reserved.Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing optionsSQL>
六、实例名:instance_name
实例(INSTANCE)就是管理数据库的内存结构的名称(由SGA、PGA、服务器进程、用户进程、后台进程等组成)。
数据库(Database)就是磁盘上的文件(数据文件、日志文件、控制文件等),负责保存数据,由对应的实例来操作它的数据。
服务名(service_name)就是对外公布的名称,为网络监听服务。
实例名在动态注册监听时需要使用。
查看参数instance_name的值:
SQL> show parameter instance_name;NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
instance_name string ora
实例名在 Oracle用户的环境变量中通过设置ORACLE_SID参数进行配置:
[root@ora ~]# su - oracle
上一次登录:日 1月 5 17:27:32 CST 2025pts/0 上
[oracle@ora ~]$ cat .bash_profile
# .bash_profile# Get the aliases and functions
if [ -f ~/.bashrc ]; then. ~/.bashrc
fi# User specific environment and startup programsPATH=$PATH:$HOME/.local/bin:$HOME/binexport PATHexport ORACLE_BASE=/usr/local/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=ora # 实例名
export ORACLE_OWNER=oracle
export PATH=$PATH:$ORACLE_HOME/bin:$HOME/binalias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'
七、监听文件配置
在listener.ora文件中需要配置SID_NAME,GLOBAL_DBNAME两个参数。
在tnsnames.ora文件中需要配置SERVICE_NAME参数。
SID_NAME就是实例名。
在配置监听的静态注册时,配置listener和tnsnames时提供的GLOBAL_DBNAME和SERVICE_NAME参数值与系统中的global_name、service_name没有任何关系,可以是任意名称,但要保证listerner.ora中的GLOBAL_DBNAME和tnsnames.ora中的SERVICE_NAME保持一致。
如果是动态注册,则动态注册的对外网络连接名称就会用到init.ora文件中的service_names。
监听文件listener.ora的配置:
[oracle@ora dbs]$ cd $ORACLE_HOME/network/admin
[oracle@ora admin]$ ll
总用量 16
-rw-r--r-- 1 oracle oinstall 676 1月 1 12:16 listener.ora
drwxr-xr-x 2 oracle oinstall 64 12月 30 21:15 samples
-rw-r--r-- 1 oracle oinstall 381 12月 17 2012 shrept.lst
-rw-r--r-- 1 oracle oinstall 223 12月 30 21:28 sqlnet.ora
-rw-r----- 1 oracle oinstall 500 1月 1 11:55 tnsnames.ora[oracle@ora admin]$ vi listener.ora# listener.ora Network Configuration File: /usr/local/oracle/product/11.2.0/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.LISTENER =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))(ADDRESS = (PROTOCOL = TCP)(HOST = ora)(PORT = 1521))))SID_LIST_LISTENER =(SID_LIST =(SID_DESC =(GLOBAL_DBNAME = hisdb)(ORACLE_HOME = /usr/local/oracle/product/11.2.0/db_1)(SID_NAME = ora)))ADR_BASE_LISTENER = /usr/local/oracle
监听文件tnsname.ora的配置:
[oracle@ora admin]$ vi tnsnames.ora# tnsnames.ora Network Configuration File: /usr/local/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.HISDB =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = ora)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = hisdb)))
Oracle实例的启动过程:
第一阶段:实例创建
系统接收到startup命令,立刻采取行动,取得环境变量ORACLE_SID的值。系统根据找到的参数文件启动ORACLE数据库实例,实例启动后,一切由实例接管:注册instance_name(instance_name来自ORACLE_SID),接着向监听器动态注册实例自己,并将instance_name写入系统数据字典表。
第二阶段:挂载数据库
接下来,实例取参数文件,取得DB_NAME、控制文件、检查点等信息,进入第二阶段:挂载数据库。实例从控制文件取得DB_NAME,并取得数据文件、日志文件等信息,进行DB_NAME的一致性检验、文件的存在性判断等工作之后,实例将挂载数据库,挂载的数据库就是DB_NAME指定的数据库。
第三阶段:启动数据库
最后,实例进入第三阶段:启动数据库。这一阶段,实例进行了两项检查:检查点和更改点检查,之后启动数据库。
相关文章:
Oracle 中的各种名称(*_name)参数的含义与作用
Oracle 中的各种名称(*_name)参数的含义与作用 目录 Oracle 中的各种名称(*_name)参数的含义与作用一、数据库名:db_name二、数据库所在的域:db_domain三、全局数据库名:global_name四、服务名&…...
前端页面的内容格式
TaskBuilder可以编辑的前端页面类型分为HTML和tfp(Taskmsg Front Page)两种格式,HTML格式只能用代码编辑器编辑,这种模式基本很少有人用,大家都用tfp格式,因为使用TaskBuilder向导创建的前端页面都是采用的…...
数据库1-4讲
各种名词区分 内模式也叫物理模式、存储模式。 概念模式也叫全局模式、逻辑模式。 外模式也叫用户模式。 笛卡尔积:D1、D2、D3集合中任取一个的所有可能情况。 因此上述笛卡尔积的基数22312 关系模型的三个完整性: 实体完整性&#x…...
设计模式 行为型 命令模式(Command Pattern)与 常见技术框架应用 解析
命令模式(Command Pattern)是一种行为型设计模式,它旨在将请求发送者和接收者解耦,通过将一个请求封装为一个对象,从而允许参数化客户端对象以进行不同的请求、排队请求或记录请求,并支持可撤销操作。 在软…...
【Redis】简介|优点|使用场景|为什么Redis快
目录 一、简介 二、特性(优点) 三、使用场景 一、简介 内存中存储数据的中间件,用于数据库,数据缓存,在分布式系统中能够大展拳脚 中间件:应用程序可以直接从 Redis 中获取数据,而不必频繁地…...
Clisoft SOS与CAD系统集成
Clisoft SOS与CAD系统集成 以下内容大部分来自官方文档,目前只用到与Cadence Virtuoso集成,其他还未用到,如有问题或相关建议,可以留言。 与Keysight ADS集成 更新SOS客户端配置文件sos.cfg,以包含支持ADS的模板&am…...
【linux系统之redis6】redis的安装与初始化
下载redis的linux对应的安装包,并上传到linux虚拟机里面 解压压缩包 tar -zxzf redis-6.2.6.tar.gz解压后,进入redis文件 cd redis-6.2.6执行编译 make && make install看到下图,就说明redis安装成功了 默认的安装路径,…...
Backend - EF Core(C# 操作数据库 DB)
目录 一、EF Core 1. 使用的ORM框架(对象关系映射) 2. EFCore 常见两种模式 3. EFCore 提供程序 二、 EF 操作数据库(Code First) 1. 下载NuGet插件 2.创建模型类文件 3.创建DBContext文件 4.Programs.cs文件 5.appsettings.Devel…...
WebSocket 性能优化:从理论到实践
在前四篇文章中,我们深入探讨了 WebSocket 的基础原理、服务端开发、客户端实现和安全实践。今天,让我们把重点放在性能优化上,看看如何构建一个高性能的 WebSocket 应用。我曾在一个直播平台项目中,通过一系列优化措施,将单台服务器的并发连接数从 1 万提升到 10 万。 性能挑…...
我用AI学Android Jetpack Compose之入门篇(2)
我跑成功了第一个Compose应用,但我还是有很多疑问,请人工智能来解释一下吧。答案来自 通义千问 文章目录 1.请解释一下Compose项目的目录结构。根目录模块目录(通常是app)app/build.gradleapp/src/mainapp/src/main/uiapp/src/ma…...
以太网协议在汽车应用中的动与静
为了让网络中的设备能够随时或随地接入网络或离开网络,做到:接入时无需多余的配置就能和其他设备互相通信;离开时又不会导致设备或网络崩溃。以太网从物理层到协议层展现出多方面的灵活性,,使其成为连接各种设备和系统…...
【C语言】_指针与数组
目录 1. 数组名的含义 1.1 数组名与数组首元素的地址的联系 1.3 数组名与首元素地址相异的情况 2. 使用指针访问数组 3. 一维数组传参的本质 3.1 代码示例1:函数体内计算sz(sz不作实参传递) 3.2 代码示例2:sz作为实参传递 3…...
Selenium 的四种等待方式及使用场景
Selenium 的四种等待方式及使用场景 隐式等待(Implicit Wait)显式等待(Explicit Wait)自定义等待(Custom Wait)固定等待(Sleep) 1. 隐式等待 定义: 隐式等待是为 WebD…...
React知识盲点——组件通信、性能优化、高级功能详解(大纲)
组件通信 React 组件通信详解 在 React 中,组件通信是一个核心概念,主要指的是如何让不同的组件共享和传递数据。React 提供了多种机制来实现组件间的数据传递和状态共享。以下是几种常见的组件通信方式,包括:父子组件通信&…...
Vue 按键生成多个表单
本文通过 vueele,通过循环ref的方法生成多个表单,代码如下: <template><div><el-button click"addText" style"margin: 15px 0; ">添加字段</el-button><div v-for"item, index in dataList"…...
网络安全:交换机技术
单播,组播广播 单播(unicast): 是指封包在计算机网络的传输中,目的地址为单一目标的一种传输方式。它是现今网络应用最为广泛,通常所使用的网络协议或服务大多采用单播传输,例如一切基于TCP的协议。组播(multicast): 也叫多播&am…...
Flask 快速入门
1. Flask 简介 1.1 什么是 Flask Flask 是一个用 Python 编写的轻量级 Web 框架,被誉为 微框架。它提供基础功能,如路由、请求处理和模板引擎,但不强迫开发者使用特定库或工具,赋予开发人员高度的自由选择权,以满足不…...
C#设计模式(行为型模式):备忘录模式,时光倒流的魔法
C#设计模式:备忘录模式,时光倒流的魔法 在软件开发中,我们经常会遇到需要保存对象状态,并在未来某个时刻恢复的场景。例如: 撤销操作: 文本编辑器中的撤销功能,游戏中的回退操作。事务回滚&am…...
数据库高安全—角色权限:权限管理权限检查
目录 3.3 权限管理 3.4 权限检查 书接上文数据库高安全—角色权限:角色创建角色管理,从角色创建和角色管理两方面对高斯数据库的角色权限进行了介绍,本篇将从权限管理和权限检查方面继续解读高斯数据库的角色权限。 3.3 权限管理 &#x…...
FastAPI 的依赖注入与生命周期管理深度解析
FastAPI 的依赖注入与生命周期管理深度解析 目录 🔧 依赖注入与 FastAPI 高级特性 1.1 依赖注入的基础与核心概念1.2 FastAPI 的依赖注入机制与设计理念1.3 FastAPI 依赖注入的异步特性 🕹 生命周期与依赖的异步管理 2.1 依赖的生命周期管理࿱…...
7.4.分块查找
一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...
springboot 百货中心供应链管理系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...
CTF show Web 红包题第六弹
提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...
进程地址空间(比特课总结)
一、进程地址空间 1. 环境变量 1 )⽤户级环境变量与系统级环境变量 全局属性:环境变量具有全局属性,会被⼦进程继承。例如当bash启动⼦进程时,环 境变量会⾃动传递给⼦进程。 本地变量限制:本地变量只在当前进程(ba…...
Python爬虫(一):爬虫伪装
一、网站防爬机制概述 在当今互联网环境中,具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类: 身份验证机制:直接将未经授权的爬虫阻挡在外反爬技术体系:通过各种技术手段增加爬虫获取数据的难度…...
c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...
什么是Ansible Jinja2
理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...
JVM 内存结构 详解
内存结构 运行时数据区: Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器: 线程私有,程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 每个线程都有一个程序计数…...
音视频——I2S 协议详解
I2S 协议详解 I2S (Inter-IC Sound) 协议是一种串行总线协议,专门用于在数字音频设备之间传输数字音频数据。它由飞利浦(Philips)公司开发,以其简单、高效和广泛的兼容性而闻名。 1. 信号线 I2S 协议通常使用三根或四根信号线&a…...
Netty从入门到进阶(二)
二、Netty入门 1. 概述 1.1 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty是一个异步的、基于事件驱动的网络应用框架,用于…...
