不需要重建就要重启,

alter database datafile move 就可以在线

file#.incarnation#  是 incarnation 不是dbid

Goal

How to convert non OMF files to OMF files with ASM storage

Datafiles are not deleted at dropping tablespace if files are non-OMF and if you want datafile to be deleted /removed from storage with dropping tablespace.

Solution

In ASM diskgroups, all files are created as OMF by default to ensure uniqueness.

A typical format of an OMF file in ASM is:

+group/dbname/file_type/file_type_tag.file#.incarnation#

If a non-OMF name is provided for a file creation, Oracle ASM code internally creates an OMF File and automatically creates an alias with user defined non-OMF name for the same, e.g. :

SQL> create tablespace test2 datafile '+DATA/test2.dbf' size 10M

It creates
+DATA/data.dbf <<== an alias as provided in command
+data/orcl/datafile/TEST2.327.953304985  <<==  OMF datafile

To convert non-OMF ASM database to OMF ASM database

1.  Get the name of alias and omf datafile

2. Drop alias of datafile

3. Restart database renaming datafile alias to omf datafile in controlfile after mount

1. Get the name of alias and omf datafile

ie.
* Check alias location. You can find alias name pointing to OMF datafile
ASMCMD> pwd
+data
ASMCMD> ls -altr
WARNING:option 'r' is deprecated for 'ls'
please use 'reverse'

WARNING:option 'a' is deprecated for 'ls'
please use 'absolutepath'

Type Redund Striped Time Sys Name
Y ORCL/
Y ORCL11G/
N tclone/
DATAFILE UNPROT COARSE AUG 29 14:00:00 N test2.dbf => +DATA/ORCL/DATAFILE/TEST2.327.953304985

* Check OMF datafile location, you can find alias name pointing to OMF datafile
ASMCMD> cd ORCL/DATAFILE
ASMCMD> ls -altr
WARNING:option 'r' is deprecated for 'ls'
please use 'reverse'

WARNING:option 'a' is deprecated for 'ls'
please use 'absolutepath'

Type Redund Striped Time Sys Name
DATAFILE UNPROT COARSE AUG 29 11:00:00 Y none => SYSAUX.257.924952255
DATAFILE UNPROT COARSE AUG 29 11:00:00 Y none => SYSTEM.258.924952315
DATAFILE UNPROT COARSE AUG 29 11:00:00 Y none => UNDOTBS1.260.924952429
DATAFILE UNPROT COARSE AUG 29 11:00:00 Y none => UNDOTBS2.268.924952857
DATAFILE UNPROT COARSE AUG 29 11:00:00 Y none => UNDOTBS3.269.924952863
DATAFILE UNPROT COARSE AUG 29 11:00:00 Y none => USERS.259.924952407
DATAFILE UNPROT COARSE AUG 29 14:00:00 Y +DATA/test2.dbf => TEST2.327.953304985

2. Drop alias of datafile.  You still have OMF datafile after dropping alias

ie.

alter diskgroup data drop alias '+DATA/test2.dbf';


* Check alias location. the alias is removed/deleted
ASMCMD> pwd
+data
ASMCMD> ls -altr
WARNING:option 'r' is deprecated for 'ls'
please use 'reverse'

WARNING:option 'a' is deprecated for 'ls'
please use 'absolutepath'

Type Redund Striped Time Sys Name
Y ORCL/
Y ORCL11G/
N tclone/

* Check OMF datafile location, you can find OMF datafile without alias
ASMCMD> pwd
+data/orcl/datafile
ASMCMD> ls -altr
WARNING:option 'r' is deprecated for 'ls'
please use 'reverse'

WARNING:option 'a' is deprecated for 'ls'
please use 'absolutepath'

Type Redund Striped Time Sys Name
DATAFILE UNPROT COARSE AUG 29 11:00:00 Y none => SYSAUX.257.924952255
DATAFILE UNPROT COARSE AUG 29 11:00:00 Y none => SYSTEM.258.924952315
DATAFILE UNPROT COARSE AUG 29 11:00:00 Y none => UNDOTBS1.260.924952429
DATAFILE UNPROT COARSE AUG 29 11:00:00 Y none => UNDOTBS2.268.924952857
DATAFILE UNPROT COARSE AUG 29 11:00:00 Y none => UNDOTBS3.269.924952863
DATAFILE UNPROT COARSE AUG 29 11:00:00 Y none => USERS.259.924952407
DATAFILE UNPROT COARSE AUG 29 14:00:00 Y none => TEST2.327.953304985




3. Restart database renaming datafile (alias to omf datafile in controlfile)


sql> shutdown immediate

sql> startup mount


sql> alter database rename file '+DATA/test2.dbf' to '+data/orcl/datafile/TEST2.327.953304985';

sql> ater database open;

  

Note that you need to mount one db instance with all other instances(if any in RAC env) down to rename datafile name in cotnrolfile

otherwise, ora-1511 error

alter database rename file '+DATA/test2.dbf' to '+data/orcl/datafile/TEST2.327.953304985'
*
ERROR at line 1:
ORA-01511: error in renaming log/data files
ORA-01121: cannot rename database file x - file is in use or recovery
ORA-01110: data file x: '+DATA/test2.dbf'

Goal

 NON-OMF to OMF  ( Datafile and Redo Migration )

Solution

1. Who Can Use Oracle Managed Files?


Oracle Managed Files are most useful for the following types of databases:

  • A logical volume manager that supports striping/RAID and dynamically extensible logical volumes .
  • A file system that provides large, extensible files Low end or test databases

Initialization Parameters That Enable Oracle Managed Files for Datafiles , Redo and Controlfiles :

DB_CREATE_FILE_DEST
DB_CREATE_ONLINE_LOG_DEST_n
DB_RECOVERY_FILE_DEST

 The name that is used for creation of an Oracle managed file is constructed from three sources:

  1. The default creation location
  2. A file name template that is chosen based on the type of the file. The template also depends on the operating system platform and whether or not Oracle Automatic Storage Management is used.
  3. A unique string created by Oracle Database or the operating system. This ensures that file creation does not damage an existing file and that the file cannot be mistaken for some other file.

As a specific example, filenames for Oracle Managed Files have the following format on a Solaris file system:

destination_prefix/o1_mf_%t_%u_.dbf

where: destination_prefix is destination_location/db_unique_name/datafile
where: destination_location is the location specified in DB_CREATE_FILE_DEST

db_unique_name is the globally unique name (DB_UNIQUE_NAME initialization parameter) of the target database. If there is no DB_UNIQUE_NAME parameter, then the DB_NAME initialization parameter value is used.

%t is the tablespace name.
%u is an eight-character string that guarantees uniqueness
For example, assume the following parameter settings:
DB_CREATE_FILE_DEST = /u01/app/oracle/oradata
DB_UNIQUE_NAME = XXX

Then an example data file name would be:
/u01/app/oracle/oradata/XXX/datafile/o1_mf_tbs1_2ixh90q_.dbf

Reference: Documentation

2) How to convert NON-OMF Datafiles to OMF FILES 

a) Steps to Convert

SQL> select name from v$datafile;

NAME
-----------------------------------------------------------------------
<PATH>/system01.dbf
<PATH>/sysaux01.dbf
<PATH>/undotbs01.dbf
<PATH>/users01.dbf

SQL> create tablespace test datafile '<PATH>/test01.dbf' size 100m;

Tablespace created.

SQL> create table dd as select * from dba_objects;

Table created.

SQL> commit;

Commit complete.

SQL> alter table dd move tablespace test;

Table altered.

SQL> select count(*) from dba_objects;

COUNT(*)
----------
90898

SQL> select count(*) from dd;

COUNT(*)
----------
90898

SQL> select table_name,tablespace_name from dba_tables where table_name='DD';

TABLE_NAME       TABLESPACE_NAME      

--------------- ----------------------------
DD                                  TEST

SQL> show parameter db_create_file_dest

NAME TYPE VALUE
------------------------------
db_create_file_dest string

SQL> Alter system set db_create_file_dest='/tmp/OMF' scope=both;

System altered.

SQL> show parameter db_create_file_dest

NAME TYPE VALUE
------------------------------ ----------- ------------------------------
db_create_file_dest string                        /tmp/OMF

SQL> select name from v$datafile;

NAME
--------------------------------------------------------------------------------
<PATH>/system01.dbf
<PATH>/sysaux01.dbf
<PATH>/undotbs01.dbf
<PATH>/test01.dbf
<PATH>/users01.dbf

SQL> alter database move datafile 1;

Database altered.

SQL> alter database move datafile 3;

Database altered.

SQL> alter database move datafile 4;

Database altered.

SQL> alter database move datafile 6;

Database altered.

SQL> alter database move datafile 5;

Database altered.

SQL> select name from v$datafile;

NAME
--------------------------------------------------------------------------------
/tmp/OMF/XXX/datafile/o1_mf_system_cxh44rx5_.dbf
/tmp/OMF/XXX/datafile/o1_mf_sysaux_cxh475v6_.dbf
/tmp/OMF/XXX/datafile/o1_mf_undotbs1_cxh490bz_.dbf
/tmp/OMF/XXX/datafile/o1_mf_test_cxh49m11_.dbf
/tmp/OMF/XXX/datafile/o1_mf_users_cxh49fqz_.dbf

b) Now Check With RMAN for recently converted Files

没有意思,肯定是啊

RMAN> backup database plus archivelog;

Starting backup at 13-SEP-16
current log archived
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=248 device type=DISK
channel ORA_DISK_1: starting archived log backup set
channel ORA_DISK_1: specifying archived log(s) in backup set
input archived log thread=1 sequence=2 RECID=1 STAMP=922427023
channel ORA_DISK_1: starting piece 1 at 13-SEP-16
channel ORA_DISK_1: finished piece 1 at 13-SEP-16
piece handle=<PATH>/01rfm7kf_1_1 tag=TAG20160913T054343 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 13-SEP-16

Starting backup at 13-SEP-16
using channel ORA_DISK_1
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00001 name=/tmp/OMF/XXX/datafile/o1_mf_system_cxh44rx5_.dbf
input datafile file number=00003 name=/tmp/OMF/XXX/datafile/o1_mf_sysaux_cxh475v6_.dbf
input datafile file number=00005 name=/tmp/OMF/XXX/datafile/o1_mf_test_cxh49m11_.dbf
input datafile file number=00004 name=/tmp/OMF/XXX/datafile/o1_mf_undotbs1_cxh490bz_.dbf
input datafile file number=00006 name=/tmp/OMF/XXX/datafile/o1_mf_users_cxh49fqz_.dbf
channel ORA_DISK_1: starting piece 1 at 13-SEP-16
channel ORA_DISK_1: finished piece 1 at 13-SEP-16
piece handle=<PATH>/02rfm7kh_1_1 tag=TAG20160913T054345 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:15
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
including current control file in backup set
including current SPFILE in backup set
channel ORA_DISK_1: starting piece 1 at 13-SEP-16
channel ORA_DISK_1: finished piece 1 at 13-SEP-16
piece handle=<PATH>/03rfm7l0_1_1 tag=TAG20160913T054345 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 13-SEP-16

Starting backup at 13-SEP-16
current log archived
using channel ORA_DISK_1
channel ORA_DISK_1: starting archived log backup set
channel ORA_DISK_1: specifying archived log(s) in backup set
input archived log thread=1 sequence=3 RECID=2 STAMP=922427042
channel ORA_DISK_1: starting piece 1 at 13-SEP-16
channel ORA_DISK_1: finished piece 1 at 13-SEP-16
piece handle=<PATH>/04rfm7l2_1_1 tag=TAG20160913T054402 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 13-SEP-16

RMAN> list backup;

List of Backup Sets
===================

BS Key Size Device Type Elapsed Time Completion Time
------- ---------- ----------- ------------ ---------------
1 20.96M DISK 00:00:01 13-SEP-16
BP Key: 1 Status: AVAILABLE Compressed: NO Tag: TAG20160913T054343
Piece Name: <PATH>/01rfm7kf_1_1

List of Archived Logs in backup set 1
Thrd Seq Low SCN Low Time Next SCN Next Time
---- ------- ---------- --------- ---------- ---------
1 2 1698537 13-SEP-16 1705596 13-SEP-16

BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
2 Full 1.10G DISK 00:00:02 13-SEP-16
BP Key: 2 Status: AVAILABLE Compressed: NO Tag: TAG20160913T054345
Piece Name: <PATH>/02rfm7kh_1_1
List of Datafiles in backup set 2
File LV Type Ckp SCN Ckp Time Name
---- -- ---- ---------- --------- ----
1 Full 1705609 13-SEP-16 /tmp/OMF/XXX/datafile/o1_mf_system_cxh44rx5_.dbf
3 Full 1705609 13-SEP-16 /tmp/OMF/XXX/datafile/o1_mf_sysaux_cxh475v6_.dbf
4 Full 1705609 13-SEP-16 /tmp/OMF/XXX/datafile/o1_mf_undotbs1_cxh490bz_.dbf
5 Full 1705609 13-SEP-16 /tmp/OMF/XXX/datafile/o1_mf_test_cxh49m11_.dbf
6 Full 1705609 13-SEP-16 /tmp/OMF/XXX/datafile/o1_mf_users_cxh49fqz_.dbf

BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
3 Full 10.11M DISK 00:00:01 13-SEP-16
BP Key: 3 Status: AVAILABLE Compressed: NO Tag: TAG20160913T054345
Piece Name: <PATH>/03rfm7l0_1_1
SPFILE Included: Modification time: 13-SEP-16
SPFILE db_unique_name: XXX
Control File Included: Ckp SCN: 1705614 Ckp time: 13-SEP-16

BS Key Size Device Type Elapsed Time Completion Time
------- ---------- ----------- ------------ ---------------
4 7.00K DISK 00:00:00 13-SEP-16
BP Key: 4 Status: AVAILABLE Compressed: NO Tag: TAG20160913T054402
Piece Name: <PATH>/04rfm7l2_1_1

List of Archived Logs in backup set 4
Thrd Seq Low SCN Low Time Next SCN Next Time
---- ------- ---------- --------- ---------- ---------
1 3 1705596 13-SEP-16 1705619 13-SEP-16

RMAN> exit

c) Add New Files using OMF method and check :

SQL> alter tablespace test add datafile;

Tablespace altered. 

All Files converted into OMF Files and recorded in controlfile:

SQL> select file#,name,status from v$datafile;

FILE# NAME STATUS
---------- ------------------------------------------------------------ -------
1 /tmp/OMF/XXX/datafile/o1_mf_system_cxh44rx5_.dbf SYSTEM
2 /tmp/OMF/XXX/datafile/o1_mf_test_cxh4rofn_.dbf ONLINE
3 /tmp/OMF/XXX/datafile/o1_mf_sysaux_cxh475v6_.dbf ONLINE
4 /tmp/OMF/XXX/datafile/o1_mf_undotbs1_cxh490bz_.dbf ONLINE
5 /tmp/OMF/XXX/datafile/o1_mf_test_cxh49m11_.dbf ONLINE
6 /tmp/OMF/XXX/datafile/o1_mf_users_cxh49fqz_.dbf ONLINE

6 rows selected.

SQL> select count(*) from dd;

COUNT(*)
----------
90898

SQL> select table_name,tablespace_name from dba_tables where table_name='DD';

TABLE_NAME TABLESPACE_NAME
--------------- ------------------------------
DD                            TEST

 3. How to convert Non-OMF REDO into OMF Files:
 

SQL> select GROUP#,STATUS,MEMBER from v$logfile;

GROUP# STATUS MEMBER
---------- ------- ------------------------------------------------------------
3 <PATH>/redo03.log
2 <PATH>/redo02.log
1 <PATH>/redo01.log

SQL> alter system set DB_CREATE_ONLINE_LOG_DEST_1='/tmp' scope=both;

System altered.

SQL> SELECT GROUP#, ARCHIVED, STATUS FROM V$LOG;

GROUP# ARC STATUS
---------- --- ----------------
1 YES ACTIVE
2 NO CURRENT
3 YES ACTIVE

a) Adding New Redo ( OMF FILES) Before Dropping OLD (NON-OMF files) 

SQL> ALTER DATABASE ADD LOGFILE GROUP 11 SIZE 100M;

Database altered.

SQL> select GROUP#,STATUS,MEMBER from v$logfile;

GROUP# STATUS MEMBER
---------- ------- ------------------------------------------------------------
3 <PATH>/redo03.log
2 <PATH>/redo02.log
1 <PATH>/redo01.log
11 /tmp/XXX/onlinelog/o1_mf_11_cxh687tt_.log     =========>  New group added, with OMF format

SQL> alter system switch logfile;

System altered.

SQL> ALTER DATABASE ADD LOGFILE GROUP 12 SIZE 100M;

Database altered.

SQL> ALTER DATA`BASE ADD LOGFILE GROUP 13 size 10m;

Database altered.

SQL> ALTER DATABASE ADD LOGFILE GROUP 14 size 50m;

Database altered.

SQL> ALTER DATABASE DROP LOGFILE GROUP 1;

Database altered.

b) If you get any Errors due to Drop redo check if its Current Redo log if so make some few Switch and drop them

SQL> ALTER DATABASE DROP LOGFILE GROUP 2;
ALTER DATABASE DROP LOGFILE GROUP 2
*
ERROR at line 1:
ORA-01624: log 2 needed for crash recovery of instance XXX (thread 1)
ORA-00312: online log 2 thread 1: '<PATH>/redo02.log'

c) Switch Logfile to change the status of the file from "CURRENT" 

SQL> alter system switch logfile;

System altered.

SQL> ALTER DATABASE DROP LOGFILE GROUP 3;

Database altered.

SQL> ALTER DATABASE DROP LOGFILE GROUP 4;

Database altered.

SQL> select GROUP#,STATUS,MEMBER from v$logfile;

GROUP# STATUS MEMBER
---------- ------- ------------------------------------------------------------
12 /tmp/XXX/onlinelog/o1_mf_12_cxh6kb1r_.log
11 /tmp/XXX/onlinelog/o1_mf_11_cxh687tt_.log
13 /tmp/XXX/onlinelog/o1_mf_13_cxh6ns1q_.log
14 /tmp/XXX/onlinelog/o1_mf_14_cxh6o20c_.log

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

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

相关文章

大型微服务项目:听书——11 Redisson分布式布隆过滤器+Redisson分布式锁改造专辑详情接口

11 Redisson分布式布隆过滤器Redisson分布式锁改造专辑详情接口 11.1 缓存穿透解决方案&布隆过滤器 缓存穿透解决方案&#xff1a; 布隆过滤器&#xff1a; 布隆过滤器的使用&#xff1a; 11.2 远程调用查询所有的专辑id集合 修改&#xff1a; /*** 查询所有的专辑…

STM32与ADS1220实现多通道数据采集的完整分析和源程序

以下是基于STM32与ADS1220实现多通道数据采集的完整分析和源程序,结合硬件设计、通信协议及软件优化,提供高精度采集解决方案: 一、系统设计关键要点 ADS1220特性 24位高精度ΔΣ ADC,支持4路单端或2路差分输入 集成PGA(增益1~128)、基准电压和可编程电流源 多通道限制:…

百特搭AI低代码平台助力企业国际化业务敏捷拓展

在全球化浪潮下&#xff0c;企业扬帆出海或服务全球客户已成为重要战略。然而&#xff0c;开拓国际市场面临多重挑战&#xff1a;语言文化差异显著、本地化需求复杂多变、智能化应用需求激增、各国IT基础设施与合规要求各异。企业亟需一个能够快速响应、灵活适应&#xff0c;并…

epoll_event数据结构及使用案例详解

epoll_event 数据结构详解 在 Linux 的 I/O 多路复用机制 epoll 中&#xff0c;epoll_event 是关键的数据结构&#xff0c;用于描述文件描述符&#xff08;fd&#xff09;上的事件和关联数据。其定义在头文件 <sys/epoll.h> 中&#xff1a; struct epoll_event {uint32_t…

C++11STL容器map和set简单介绍

一、引言map和set底层结构比较复杂&#xff0c;我认为我们先谈基本介绍再谈C11&#xff0c;最后再谈map和set底层以及map和set封装。二、简单介绍一下map和setmap和set底层都是红黑树&#xff0c;是二叉搜索树的一种&#xff0c;查找非常快。不像数组、链表一样一个一个对比&am…

Java线程基础面试复习笔记

1. 线程与进程的区别进程是正在运行程序的实例&#xff0c;线程是进程中的执行单元。主要区别&#xff1a; 内存空间&#xff1a;不同进程使用不同的内存空间&#xff0c;同一进程下的线程共享内存空间资源开销&#xff1a;线程更轻量&#xff0c;线程上下文切换成本比进程上下…

面试题(技术面+hr面)

面试技术面HR面后端HR面常见问题*稳定性&#xff0c;上进心&#xff0c;目标感&#xff0c;抗压能力&#xff0c;学习能力*回答问题时注意体现上面五点&#xff0c;即使瞎扯也尽量往上靠。面经项目相关介绍一下你收获最大的一个项目你们团队有多少人&#xff0c;怎么分工的开发…

本地部署Dify教程

克隆 Dify 代码仓库克隆 Dify 源代码至本地。git clone hts://github.com/langgenius/dify.git启动 Dify进入 Dify 源代码的 docker 目录&#xff0c;执行一键启动命令:cd dify/docker #切换到指定目录 cp .env.example .env #修改文件名 docker compose up -d #启动

Android Kotlin 协程全面指南

协程是 Kotlin 提供的一套简化异步编程的轻量级线程操作框架&#xff0c;特别适合 Android 开发中的异步任务处理。以下是 Android 开发中需要掌握的协程核心知识点&#xff1a;1. 协程基础概念1.1 协程是什么轻量级线程&#xff1a;比线程更高效&#xff0c;可以在单个线程中运…

【Linux】进程切换与优先级

前言&#xff1a; 上文我们讲到了操作系统与Linux中进程的状态【Linux】进程状态-CSDN博客 本文我们来讲进程的优先级、以及进程的切换 进程优先级 什么是优先级&#xff1f; CPU中资源是有限的&#xff0c;而进程的数量一定是远大于CPU资源的&#xff0c;所以优先级是进程得…

首发即开源!DAWorkBench数据可视化分析软件正式发布!(附源码下载网址)

1 系统介绍DAWorkBench是一款面向科研实验和工程测试场景的数据可视化分析开源软件&#xff0c;支持实现数据清洗、信号处理和交互式可视化等功能。系统集成文件IO、数据处理以及可视化交互三大模块&#xff0c;支持多维数据分析与高质量图表生成&#xff0c;助力用户高效完成从…

Android Studio历史版本快速下载(二次修改记录)

原版&#xff1a;Android Studio历史版本快速下载_android studio 历史版本下载-CSDN博客 一. 最新版本 https://developer.android.com/studio?hlzh-cn 二. 历史版本 中国官网的历史版本为何不能下载&#xff1f;&#xff08;https://developer.android.com/studio/archi…

The Missing Semester of Your CS Education 学习笔记以及一些拓展知识(六)

文章目录The Missing Semester of Your CS Education 学习笔记以及一些拓展知识版本控制Git笔记部分Git的基本工作原理Git 的核心工作原理&#xff1a;快照而非差异Git 的三大工作区域Git的核心对象Git的四个对象对象之间的关系与工作流程&#xff1a;对象的引用Git的安装和基础…

嵌入式与 Linux 系统中的核心图形库全解析

嵌入式与 Linux 系统中的核心图形库全解析 图形库在嵌入式系统与 Linux 桌面系统中扮演着重要角色。从最底层的 GPU 驱动接口&#xff0c;到上层的图形渲染与 GUI 工具包&#xff0c;共同构成了完整的图形显示栈。本文将系统整理图形相关的核心组件&#xff0c;按功能分层分类&…

深度学习模块实践手册(第十二期)

56、Ghost 模块论文《GhostNet: More Features from Cheap Operations》1、作用&#xff1a; Ghost 模块是一种轻量级的特征提取模块&#xff0c;旨在通过廉价操作生成更多特征图&#xff0c;减少计算量的同时保持模型性能。传统卷积神经网络在生成特征图时存在大量冗余计算&am…

自己动手造轮子:如何创建JAR并通过Maven在Spring Boot中引用

让代码复用变得简单优雅——3分钟学会封装专属工具库作为Java开发者&#xff0c;你是否遇到过这些痛点&#xff1f;多个项目重复编写相同工具类工具代码分散难以统一维护团队协作缺乏标准化工具库本文将手把手教你创建自己的JAR包&#xff0c;并优雅地集成到Spring Boot项目中&…

使用dea工具 给vue 里面的ts打断点

在 Vue 项目中使用 TypeScript 时&#xff0c;我们通常会在 IDE&#xff08;如 JetBrains 的 IntelliJ IDEA 或 WebStorm&#xff09;中设置断点进行调试。以下是详细步骤&#xff1a; 准备工作 确保项目已配置 source maps&#xff08;Vue CLI 创建的项目默认已配置&#xff0…

Zabbix 企业级分布式监控

目录 简介 一、监控系统基础 1.1 监控的价值 1.2 监控的 5 大类型与 5 大层次 1.3 监控系统的实现原理 二、Zabbix&#xff1a;企业级监控方案 2.1 Zabbix 简介 2.2 Zabbix 核心功能特性 2.3 Zabbix 角色与架构 三、Zabbix 部署案例 3.1 资源清单 3.2 基础环境配置…

SQL JOIN 全解析:用 `users` 与 `orders` 表彻底掌握内连接、左连接、右连接

SQL JOIN 全解析&#xff1a;用 users 与 orders 表彻底掌握内连接、左连接、右连接 在日常开发中&#xff0c;SQL 的连接&#xff08;JOIN&#xff09;语句是数据库查询的核心技能。尤其在多表联合查询时&#xff0c;不掌握好 INNER JOIN、LEFT JOIN、RIGHT JOIN&#xff0c;…

(一)从零搭建unity3d机械臂仿真-unity3d导入urdf模型

1.新建工程并加载模型 &#xff08;1&#xff09;unity中新建3d工程 &#xff08;2&#xff09;将机器人模型导入到unity3d中 导入开源Unity-Robotics-Hub的机械臂。 详细操作参考视频 ROS Unity URDF Import Testing Robot Motion 使用 URDF Importer工具 在 Unity 中&#x…