Oracle 中的各种名称(*_name)参数的含义与作用

news2025/1/8 14:13:28

Oracle 中的各种名称(*_name)参数的含义与作用

目录

  • Oracle 中的各种名称(*_name)参数的含义与作用
    • 一、数据库名:db_name
    • 二、数据库所在的域:db_domain
    • 三、全局数据库名:global_name
    • 四、服务名:service_name
    • 五、网络服务名:net service name
    • 六、实例名:instance_name
    • 七、监听文件配置

在安装 Oracle 软件、创建数据库、配置初始化参数文件、配置监听时会用到很多带 name 的参数。这些参数的详细信息如下:

SQL> show parameter name

NAME				     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_nameglobal_names,在文件tnsname.ora中需要使用参数service_namesinstance_name

一、数据库名:db_name

db_name参数用于标识数据库的名称。db_name参数对于Oracle本身比较有用,对用户而言没有太多的用处,db_name记录在controlfiledatafile_headerredo中,要想修改db_name是比较麻烦的。因此在建库时指定恰当的db_name非常重要的。

db_name还有一个非常重要的作用就是动态注册监听,不管是否指定了service_namepmon都会使用db_name动态注册监听。

查看参数db_name的值:

SQL> show parameter db_name

NAME				     TYPE	 VALUE
------------------------------------ ----------- ------------------------------
db_name 			     string	 hisdb

查看监听信息:

[oracle@ora admin]$ lsnrctl status

LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 05-JAN-2025 21:45:05

Copyright (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_namedb_domain两个参数共同决定,避免了因为数据库重名而造成管理上的混乱。将db_namedb_domain两个参数用【.】连接起来,表示一个数据库,并将该数据库的名称称为global_name。 查看参数db_domain的值:

SQL> show parameter db_domain

NAME				     TYPE	 VALUE
------------------------------------ ----------- ------------------------------
db_domain			     string

三、全局数据库名:global_name

global_name定义一个全局数据库名。缺省值为db_name.db_domain。该值是在创建数据库时决定的,以后对参数文件中Db_nameDb_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_DBNAMEtnsnames.ora中的SERVICE_NAME保持一致就可以,可以是任意内容。

在配置listenertnsnames时提供的GLOBAL_DBNAMESERVICE_NAME参数值与系统中的global_nameservice_name没有任何关系。

四、服务名:service_name

服务名是复数,意味着service_names可以是多个值,服务名在动态注册监听时被使用。

Oracle dataguard建议在主库与备库上使用相同的service_names,便于尽可能的实现透明切换。如果配置了静态注册的监听,在主库与备库也务必保持在listener中输入的服务名相同。

初始化参数service_name默认为db_name.db_dimain,后台进程PMON自动在服务器监听器中注册该参数。

查看参数service_name的值:

SQL> show parameter service_name

NAME				     TYPE	 VALUE
------------------------------------ ----------- ------------------------------
service_names			     string	 hisdb

SQL> show parameter instance_name

NAME				     TYPE	 VALUE
------------------------------------ ----------- ------------------------------
instance_name			     string	 ora

同实例之外,在监听器动态注册时,还会用于向监听器注册。查看Oracle的监听信息:

[oracle@ora admin]$ lsnrctl status

LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 05-JAN-2025 21:45:05

Copyright (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_names

NAME				     TYPE	 VALUE
------------------------------------ ----------- ------------------------------
service_names			 string	 hisdb123

查看监听信息:

[oracle@ora admin]$ lsnrctl status

LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 05-JAN-2025 22:30:30

Copyright (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 2025

Copyright (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 options

SQL> 

六、实例名:instance_name

实例(INSTANCE)就是管理数据库的内存结构的名称(由SGAPGA、服务器进程、用户进程、后台进程等组成)。

数据库(Database)就是磁盘上的文件(数据文件、日志文件、控制文件等),负责保存数据,由对应的实例来操作它的数据。

服务名(service_name)就是对外公布的名称,为网络监听服务。

实例名在动态注册监听时需要使用。

查看参数instance_name的值:

SQL> show parameter instance_name;

NAME				     TYPE	 VALUE
------------------------------------ ----------- ------------------------------
instance_name			     string	 ora

实例名在 Oracle用户的环境变量中通过设置ORACLE_SID参数进行配置:

[root@ora ~]# su - oracle
上一次登录:日 15 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 programs

PATH=$PATH:$HOME/.local/bin:$HOME/bin

export PATH

export 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/bin

alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'

七、监听文件配置

listener.ora文件中需要配置SID_NAMEGLOBAL_DBNAME两个参数。

tnsnames.ora文件中需要配置SERVICE_NAME参数。

SID_NAME就是实例名。

在配置监听的静态注册时,配置listenertnsnames时提供的GLOBAL_DBNAMESERVICE_NAME参数值与系统中的global_nameservice_name没有任何关系,可以是任意名称,但要保证listerner.ora中的GLOBAL_DBNAMEtnsnames.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 11 12:16 listener.ora
drwxr-xr-x 2 oracle oinstall  64 1230 21:15 samples
-rw-r--r-- 1 oracle oinstall 381 1217 2012 shrept.lst
-rw-r--r-- 1 oracle oinstall 223 1230 21:28 sqlnet.ora
-rw-r----- 1 oracle oinstall 500 11 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_nameinstance_name来自ORACLE_SID),接着向监听器动态注册实例自己,并将instance_name写入系统数据字典表。

第二阶段:挂载数据库

接下来,实例取参数文件,取得DB_NAME、控制文件、检查点等信息,进入第二阶段:挂载数据库。实例从控制文件取得DB_NAME,并取得数据文件、日志文件等信息,进行DB_NAME的一致性检验、文件的存在性判断等工作之后,实例将挂载数据库,挂载的数据库就是DB_NAME指定的数据库。

第三阶段:启动数据库

最后,实例进入第三阶段:启动数据库。这一阶段,实例进行了两项检查:检查点和更改点检查,之后启动数据库。

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

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

相关文章

web3与AI结合-Sahara AI 项目介绍

背景介绍 Sahara AI 于 2023 年创立&#xff0c;是一个 "区块链AI" 领域的项目。其项目愿景是&#xff0c;利用区块链和隐私技术将现有的 AI 商业模式去中心化&#xff0c;打造公平、透明、低门槛的 “协作 AI 经济” 体系&#xff0c;旨在重构新的利益分配机制以及…

【C++】你了解异常的用法吗?

文章目录 Ⅰ. C语言传统的处理错误的方式Ⅱ. C异常概念Ⅲ. 异常的使用1、异常的抛出和匹配原则2、在函数调用链中异常栈展开匹配原则3、异常的重新抛出4、异常安全5、异常规范 Ⅳ. 自定义异常体系Ⅴ. C标准库的异常体系Ⅵ. 异常的优缺点1、异常的优点2、异常的缺点3、总结 Ⅰ. …

Matlab仿真径向受压圆盘光弹图像

Matlab仿真径向受压圆盘光弹图像-十步相移法 主要参数 % 定义圆盘参数 R 15; % 圆盘半径&#xff0c;单位&#xff1a;mm h 5; % 圆盘厚度&#xff0c;单位&#xff1a;mm P 300; % 径向受压载荷大小&#xff0c;单位&#xff…

游戏引擎学习第75天

仓库:https://gitee.com/mrxiao_com/2d_game_2 Blackboard: 处理楼梯通行 为了实现楼梯的平滑过渡和角色的移动控制&#xff0c;需要对楼梯区域的碰撞与玩家的运动方式进行优化。具体的处理方式和遇到的问题如下&#xff1a; 楼梯区域的过渡&#xff1a; 在三维空间中&#x…

算法的学习笔记—不用常规控制语句求 1 到 n 的和

&#x1f600;前言 在算法编程中&#xff0c;有时我们会遇到一些特殊的限制条件&#xff0c;这些限制会迫使我们跳出常规思维。本文讨论的问题就是一个典型案例&#xff1a;在不能使用基本控制语句的情况下&#xff0c;如何求解 1 到 n 的和。这个问题不仅考验编程技巧&#xf…

网络协议安全的攻击手法

1.使用SYN Flood泛洪攻击&#xff1a; SYN Flood(半开放攻击)是最经典的ddos攻击之一&#xff0c;他利用了TCP协议的三次握手机制&#xff0c;攻击者通常利用工具或控制僵尸主机向服务器发送海量的变源端口的TCP SYN报文&#xff0c;服务器响应了这些报文后就会生成大量的半连…

141.《mac m1安装mongodb详细教程》

文章目录 下载从官网下载安装包 下载后双击解压出文件夹安装文件名修改为 mongodb配置data存放位置和日志log的存放位置启动方式一方式二方式二:输入mongo报错以及解决办法 本人电脑 m2 pro,属于 arm 架构 下载 官网地址: mongodb官网 怎么查看自己电脑应该下载哪个版本,输入…

C++ operator = 返回void 会发生什么?

1.operator 正常情况 #include <iostream> using namespace std;class Box { public:Box(double L) : length(L) {}Box(const Box& b){}Box& operator (const Box&){return *this;}public:double length; // 长度 };int main() {Box box1(1.0);Box box2(…

Redis中字符串和列表的区别

在 Redis 中&#xff0c;字符串&#xff08;String&#xff09;和列表&#xff08;List&#xff09;是两种截然不同的数据类型&#xff0c;它们各自有着独特的特点和适用场景。 数据结构 • 字符串&#xff08;String&#xff09;&#xff1a; • 在 Redis 中&#xff0c;字符串…

Elasticsearch JavaRestClient版

文章目录 初始化RestHighLeveClient&#xff08;必要条件&#xff09;索引库操作1.创建索引库&#xff08;4步&#xff09;2.删除索引库&#xff08;3步&#xff09;3.判断索引库是否存在&#xff08;3步&#xff09;4.总结&#xff1a;四步走 文档操作1.创建文档&#xff08;4…

使用Dinky快速提交Flink operator任务

官网地址&#xff1a;K8s集成 | Dinky 1.目前使用版本 Dinky1.2.0、Flink1.18.1、Flink operator0.10.0 2.制作镜像 2.1创建DockerFile ARG FLINK_VERSION1.18.1 FROM flink:${FLINK_VERSION}-scala_2.12 RUN mkdir -p /opt/flink/usrlib COPY commons-cli-1.3.1.jar …

探索数字化展馆:开启科技与文化的奇幻之旅

在科技飞速发展的当下&#xff0c;数字展馆作为一种新兴的展示形式&#xff0c;正逐渐走进大众的视野。数字展馆不仅仅是传统展馆的简单“数字化升级”&#xff0c;更是融合了多媒体、数字化技术以及人机交互等前沿科技的创新产物。 数字展馆借助VR、AR、全息投影等高科技手段&…

免费GEMINI模型使用及API调用

一、概述 谷歌最新发布的Gemini 2.0 FLASH模型为AI应用带来了新的可能性。该模型分为两个版本&#xff1a;gemini-2.0-flash-exp 和 gemini-2.0-flash-thinking-exp-1219。这两个模型目前限时免费使用&#xff0c;用户可以通过智匠MindCraft客户端或小程序直接体验&#xff0c;…

调整Python+Pytest+Allure+Yaml+Pymysql框架中需要执行的用例顺序

当pytest框架中有时时候会因为用例的前后关联关系需要调整用例执行顺序时则可以跟进具体的要求调整pytest.ini配置文件中执行用例文件夹的前后顺序 当如果是需要调整某个文件夹中用例的执行顺序时&#xff0c;则跟进具体的文件调整对应testcases中test_*.py文件中的执行顺序

容器技术思想 Docker K8S

容器技术介绍 以Docker为代表的容器技术解决了程序部署运行方面的问题。在容器技术出现前&#xff0c;程序直接部署在物理服务器上&#xff0c;依赖管理复杂&#xff0c;包括各类运行依赖&#xff0c;且易变&#xff0c;多程序混合部署时还可能产生依赖冲突&#xff0c;给程序…

系统思考—变革之舞

彼得圣吉在《变革之舞》中提到&#xff1a;变革的关键是持续学习。在这个变化万千的世界里&#xff0c;组织不能停留在过去的经验上&#xff0c;我们如何系统性的抛弃过去成功的经验&#xff0c;不断学习新技能&#xff0c;适应复杂的环境。每个人不仅要学会解决眼前的问题&…

OpenCV的人脸检测模型FaceDetectorYN

OpenCV的人脸检测模型FaceDetectorYN 1. 官网地址2. 如何使用2.1.到opencv_zoo下载模型文件和代码2.2. 下载文件展示2.3. 修改了demo支持读取视频文件&#xff0c;默认是图片和摄像头## 2.4 效果展示 1. 官网地址 https://docs.opencv.org/4.x/df/d20/classcv_1_1FaceDetector…

25/1/6 算法笔记<强化学习> 初玩V-REP

我们安装V-REP之后&#xff0c;使用的是下面Git克隆的项目。 git clone https://github.com/deep-reinforcement-learning_book/Chapter16-Robot-Learning-in-Simulation.git 项目中直接组装好了一个机械臂。 我们先来分析下它的对象树 DefaultCamera:摄像机&#xff0c;用于…

Linux驱动开发:深入理解I2C时序(二)

在Linux驱动开发中,I2C时序的理解和正确处理是保证I2C设备正常工作和通信的关键。I2C协议的时序特性决定了数据的有效传输和设备间的协作。因此,掌握I2C的时序细节,以及如何在Linux内核中进行时序处理,能够让开发者更好地处理设备通信问题。 本文将继续深入探讨I2C通信协议…

Java100道面试题

1.JVM内存结构 1. 方法区&#xff08;Method Area&#xff09; 方法区是JVM内存结构的一部分&#xff0c;用于存放类的相关信息&#xff0c;包括&#xff1a; 类的结构&#xff08;字段、方法、常量池等&#xff09;。字段和方法的描述&#xff0c;如名称、类型、访问修饰符…