恢复删除的数据文件案例《from&nbs…

本文记录了一次因误删导致的数据恢复实战经历。面对严重数据丢失情况,通过查找后台进程中的文件句柄成功恢复了数据文件,并详细展示了恢复流程,包括文件复制、离线重命名、恢复及在线加载等步骤。

案例描述

<wbr><wbr> 2011 年 12 月 30 日,某运营商客户,在遭受数据损失之后请求我们协助进行数据恢复。整个数据灾难的过程如下。</wbr></wbr>

1.<wbr><wbr><wbr><wbr>凌晨,数据库归档日志写满磁盘,因而无法继续归档,数据库服务中断。</wbr></wbr></wbr></wbr>

2.<wbr><wbr><wbr><wbr>在进行空间释放时,删除了一个认为不再需要的目录。</wbr></wbr></wbr></wbr>

3.<wbr><wbr><wbr><wbr>删除目录之后,发现数据库服务受到影响。</wbr></wbr></wbr></wbr>

4.<wbr><wbr><wbr><wbr>经确认,该目录包含 7 个 16GB 大小的在用数据文件。</wbr></wbr></wbr></wbr>

5.<wbr><wbr><wbr><wbr>在试图通过备份来恢复时,发现之前的备份是不成功的。</wbr></wbr></wbr></wbr>

6.<wbr><wbr><wbr><wbr>灾难形成。</wbr></wbr></wbr></wbr>

<wbr><wbr>这是一个由删除引发的严重故障,如果数据不可恢复,灾难影响将是非常严重的。</wbr></wbr>

数据库环境描述

OS:HP-UX

数据库版本:Oracle 11.2.0.1


技术回放

从告警日志看最初数据库出现的问题是归档日志无法写出,出现归档错误,归档停滞会导致数据库的所有DML事务无法进行,在线业务受到影响。

Fri Dec 30 03:34:33 2011

ARC0: Encountered disk I/O error 19502

ARC0: Closing local archive destination LOG_ARCHIVE_DEST_1:

<wbr><wbr><wbr><wbr>'/archlog/1_6578_765575017.dbf' (error 19502)(com1)</wbr></wbr></wbr></wbr>

ARC0: I/O error 19502 archiving log 5 to'/archlog/1_6578_765575017.dbf'

ARCH: Archival stopped, error occurred. Will continue retrying

ORACLE Instance com1 - Archival Error

ORA-16038: log 5 sequence# 6578 cannot be archived

ORA-19502: write error on file "", block number<wbr><wbr>(block size=512)</wbr></wbr>

ORA-00312: online log 5 thread 1: '/oradata2/redolog5_1.dbf'

ORA-00312: online log 5 thread 1: '/oradata3/redolog5_2.dbf'

ARCH: Archival stopped, error occurred. Will continue retrying

经过处理,在凌晨5点22分左右,归档得以继续,归档进程从失败中被释放出来,但是这位凌晨被吵醒的工程师草率的做出了错误的判断,删除了认为没用的目录,oradata4整个目录在操作系统上被删除,其中的所有数据文件荡然无存,以下是丢失的文件列表和状态,从v$datafile中可以查询得到这些信息

<wbr><wbr><wbr><wbr> TS#<wbr><wbr><wbr><wbr>FILE# NAME<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>BYTESSTATUS</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

---------- ---------- -------------------------------------------------- -------

<wbr><wbr><wbr><wbr><wbr><wbr>5<wbr><wbr><wbr><wbr><wbr><wbr>229 /oradata4/YDDY_DATA55.dbf<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 0 ONLINE</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><wbr>19<wbr><wbr><wbr><wbr><wbr><wbr>230 /oradata4/EFB01.dbf<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>0 ONLINE</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><wbr>18<wbr><wbr><wbr><wbr><wbr><wbr>231 /oradata4/undotbs203.dbf<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>0 RECOVER</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><wbr>9<wbr><wbr><wbr><wbr><wbr><wbr>232 /oradata4/SMS_DATA47.dbf<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>0 ONLINE</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><wbr>9<wbr><wbr><wbr><wbr><wbr><wbr>233 /oradata4/SMS_DATA48.dbf<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>0 ONLINE</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><wbr>9<wbr><wbr><wbr><wbr><wbr><wbr>234 /oradata4/SMS_DATA49.dbf<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>0 ONLINE</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><wbr>5<wbr><wbr><wbr><wbr><wbr><wbr>235 /oradata4/YDDY_DATA56.dbf<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 0 ONLINE</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

而当用户尝试的从备份开始恢复时,发现备份无法还原出来,此前的几次备份都失败了,备份不可用,现在问题就相当严重了。


恢复重现

首先找到一个后台进程(如DBWR进程),通过其进程地址找到文件句柄(/proc//fd, fd - File Descriptors),以下就是数据库文件的句柄显示信息,通过拷贝这些文件就可以恢复那些被删除但是尚未消失的数据文件:

bash-2.05$ ps -ef|grep dbw|grep -v grep

oracle<wbr><wbr>762<wbr><wbr><wbr><wbr>1 0<wbr><wbr>Jun 10 ?<wbr><wbr><wbr><wbr> 217:30 ora_dbw0_sxnms</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

bash-2.05$ ls<wbr><wbr>/proc/762/fd</wbr></wbr>

0<wbr><wbr> 12<wbr><wbr>256 260<wbr><wbr>264<wbr><wbr>268 272<wbr><wbr>276<wbr><wbr>280 284<wbr><wbr>288<wbr><wbr>292 296<wbr><wbr>3<wbr><wbr> 303 307<wbr><wbr>311<wbr><wbr>315 319<wbr><wbr>323<wbr><wbr>327 331<wbr><wbr>335<wbr><wbr>339 343<wbr><wbr>347<wbr><wbr>61<wbr><wbr>13<wbr><wbr>257<wbr><wbr>261 265<wbr><wbr>269<wbr><wbr>273 277<wbr><wbr>281<wbr><wbr>285 289<wbr><wbr>293<wbr><wbr>297 300<wbr><wbr>304<wbr><wbr>308 312<wbr><wbr>316<wbr><wbr>320 324<wbr><wbr>328<wbr><wbr>332 336<wbr><wbr>340<wbr><wbr>344 348<wbr><wbr>710<wbr><wbr>14<wbr><wbr>258<wbr><wbr>262<wbr><wbr>266 270<wbr><wbr>274<wbr><wbr>278 282<wbr><wbr>286<wbr><wbr>290 294<wbr><wbr>298<wbr><wbr>301 305<wbr><wbr>309<wbr><wbr>313 317<wbr><wbr>321<wbr><wbr>325 329<wbr><wbr>333<wbr><wbr>337 341<wbr><wbr>345<wbr><wbr>4<wbr><wbr>811<wbr><wbr>2<wbr><wbr> 259 263<wbr><wbr>267<wbr><wbr>271 275<wbr><wbr>279<wbr><wbr>283 287<wbr><wbr>291<wbr><wbr>295 299<wbr><wbr>302<wbr><wbr>306 310<wbr><wbr>314<wbr><wbr>318 322<wbr><wbr>326<wbr><wbr>330 334<wbr><wbr>338<wbr><wbr>342 346<wbr><wbr>5<wbr><wbr>9</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

db2% ls -l |grep oracle

-r--r--r--<wbr><wbr>1 oracle<wbr><wbr>dba<wbr><wbr><wbr><wbr>657920 Apr 26<wbr><wbr>2002 11</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

-rw-r-----<wbr><wbr>1 oracle<wbr><wbr>dba<wbr><wbr><wbr><wbr><wbr><wbr>923 Jun 10<wbr><wbr>2011 12</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

-rw-rw----<wbr><wbr>1 oracle<wbr><wbr>dba<wbr><wbr><wbr><wbr><wbr><wbr> 24 Jun 10<wbr><wbr>2011 13</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

-rw-r-----<wbr><wbr>1 oracle<wbr><wbr>dba<wbr><wbr><wbr><wbr>1859584 Jan<wbr><wbr>5 16:42 256</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

-rw-r-----<wbr><wbr>1 oracle<wbr><wbr>dba<wbr><wbr><wbr><wbr>1859584 Jan<wbr><wbr>5 16:42 257</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

-rw-r-----<wbr><wbr>1 oracle<wbr><wbr>dba<wbr><wbr><wbr><wbr>1859584 Jan<wbr><wbr>5 16:42 258</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

-rw-r-----<wbr><wbr>1 oracle<wbr><wbr>dba<wbr><wbr><wbr><wbr>414195712 Jan<wbr><wbr>5 16:41 259</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

-rw-r-----<wbr><wbr>1 oracle<wbr><wbr>dba<wbr><wbr><wbr><wbr>6291464192 Jan<wbr><wbr>5 16:42 260</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

-rw-r-----<wbr><wbr>1 oracle<wbr><wbr>dba<wbr><wbr><wbr><wbr>161488896 Jan<wbr><wbr>5 16:18 261</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

-rw-r-----<wbr><wbr>1 oracle<wbr><wbr>dba<wbr><wbr><wbr><wbr>20979712 Jan<wbr><wbr>5 16:18 262</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

-rw-r-----<wbr><wbr>1 oracle<wbr><wbr>dba<wbr><wbr><wbr><wbr>26222592 Jan<wbr><wbr>5 16:18 263</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

-rw-r-----<wbr><wbr>1 oracle<wbr><wbr>dba<wbr><wbr><wbr><wbr>10493952 Jan<wbr><wbr>5 16:18 264</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

-rw-r-----<wbr><wbr>1 oracle<wbr><wbr>dba<wbr><wbr><wbr><wbr>473178112 Jan<wbr><wbr>5 16:18 265</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

-rw-r-----<wbr><wbr>1 oracle<wbr><wbr>dba<wbr><wbr><wbr><wbr>1048584192 Jan<wbr><wbr>5 16:40 266</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

-rw-r-----<wbr><wbr>1 oracle<wbr><wbr>dba<wbr><wbr><wbr><wbr>1048584192 Jan<wbr><wbr>5 16:18 267</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

-rw-r-----<wbr><wbr>1 oracle<wbr><wbr>dba<wbr><wbr><wbr><wbr>1048584192 Jan<wbr><wbr>5 16:40 268</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

-rw-r-----<wbr><wbr>1 oracle<wbr><wbr>dba<wbr><wbr><wbr><wbr>1048584192 Jan<wbr><wbr>5 16:40 269</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

-rw-r-----<wbr><wbr>1 oracle<wbr><wbr>dba<wbr><wbr><wbr><wbr>1048584192 Jan<wbr><wbr>5 16:41 270</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

-rw-r-----<wbr><wbr>1 oracle<wbr><wbr>dba<wbr><wbr><wbr><wbr>1048584192 Jan<wbr><wbr>5 16:42 271</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

-rw-r-----<wbr><wbr>1 oracle<wbr><wbr>dba<wbr><wbr><wbr><wbr>1384652800 Jan<wbr><wbr>5 16:18 272</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

在这个案例中,我们拷贝文件恢复之后,创建了一个新的目录(保留原来的目录结构未变动),随后通过offline,rename,recover,online四个步骤恢复这些文件,加载到数据库中。以下是简要的步骤记录。

首先复制文件到新分配的目录空间:

cp /proc/762/fd/266 /new_u02/oradata/cinms_user01.dbf

cp /proc/762/fd/267 /new_u02/oradata/cinms_user02.dbf

cp /proc/762/fd/268 /new_u02/oradata/cinms_user03.dbf

cp /proc/762/fd/269 /new_u02/oradata/cinms_user04.dbf

cp /proc/762/fd/285 /new_u02/oradata/cinms_user07.dbf

cp /proc/762/fd/286 /new_u02/oradata/cinms_user08.dbf

将相应的文件离线:

alter database datafile 8 offline;

alter database datafile 9 offline;

alter database datafile 10 offline;

alter database datafile 11 offline;

alter database datafile 27 offline;

alter database datafile 28 offline;

通过更名(RENAME)的方式对文件进行重定向:

alter database rename file

‘/u02/oradata/cinms_user01.dbf’to ‘/new_u02/oradata/cinms_user01.dbf’;

alter database rename file

‘/u02/oradata/cinms_user02.dbf’ to‘/new_u02/oradata/cinms_user02.dbf’;

alter database rename file

‘/u02/oradata/cinms_user03.dbf’ to‘/new_u02/oradata/cinms_user03.dbf’;

alter database rename file

‘/u02/oradata/cinms_user04.dbf’ to ‘/new_u02/oradata/cinms_user04.dbf’;

alter database rename file

‘/u02/oradata/cinms_user07.dbf’ to‘/new_u02/oradata/cinms_user07.dbf’;

alter database rename file

‘/u02/oradata/cinms_user08.dbf’ to‘/new_u02/oradata/cinms_user08.dbf’;

然后执行恢复:

recover datafile 8;

recover datafile 9;

recover datafile 10;

recover datafile 11;

recover datafile 27;

recover datafile 28;

最后将文件Online加载:

alter database datafile 8 online;

alter database datafile 9 online;

alter database datafile 10 online;

alter database datafile 11 online;

alter database datafile 27 online;

alter database datafile 28 online;

以下是日志中记录的操作日志信息:

Mon Dec 19 18:17:38 2011

alter database datafile 8 offline

Mon Dec 19 18:17:39 2011

Completed: alter database datafile 8 offline

Mon Dec 19 18:18:04 2011

alter database rename file '/u02/oradata/sxnms_user01.dbf'

<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>to'/new_u02/oradata/sxnms_user01.dbf'</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

Mon Dec 19 18:18:20 2011

ALTER DATABASE RECOVER datafile 8<wbr><wbr></wbr></wbr>

Media Recovery Datafile: 8

Media Recovery Start

Starting datafile 8 recovery in thread 1 sequence 14295

Datafile 8: '/new_u02/oradata/sxnms_user01.dbf'

Media Recovery Log

Recovery of Online Redo Log: Thread 1 Group 1 Seq 14295 Readingmem 0

<wbr><wbr>Mem# 0 errs 0:/u01/oradata/sxnms/redo01.log</wbr></wbr>

Media Recovery Complete

Completed: ALTER DATABASE RECOVER<wbr><wbr>datafile 8</wbr></wbr>

<wbr></wbr>

Mon Dec 19 18:19:00 2011

alter database datafile 8 online

Completed: alter database datafile 8 online

<wbr></wbr>



【案例警示】

<wbr><wbr>分析整个灾难的形成过程,我们总结这次数据灾难给我们的警示是:</wbr></wbr>

1.数据库需要全面的系统规划和监控

2.数据库的破坏性操作需要谨慎

3.数据环境运维必须遵守一定的安全守则

4.数据备份应进行必要的检查和确认

5.避免在疲劳或不清醒状态独自做出重要判断

6.在对故障做出清晰判断之前不要采取贸然措施

(yolov8) D:\ultralytics-main>yolo task=detect mode=train model=yolov8n.pt data=data/blueberry.yaml batch=16 epochs=20 imgsz=640 workers=16 device=0 Ultralytics 8.3.207 Python-3.10.18 torch-2.1.1+cu118 CUDA:0 (NVIDIA GeForce RTX 4050 Laptop GPU, 6140MiB) engine\trainer: agnostic_nms=False, amp=True, augment=False, auto_augment=randaugment, batch=16, bgr=0.0, box=7.5, cache=False, cfg=None, classes=None, close_mosaic=10, cls=0.5, compile=False, conf=Non e, copy_paste=0.0, copy_paste_mode=flip, cos_lr=False, cutmix=0.0, data=data/blueberry.yaml, degrees=0.0, deterministic=True, device=0, dfl=1.5, dnn=False, dropout=0.0, dynamic=False, embed=None, epoch s=20, erasing=0.4, exist_ok=False, fliplr=0.5, flipud=0.0, format=torchscript, fraction=1.0, freeze=None, half=False, hsv_h=0.015, hsv_s=0.7, hsv_v=0.4, imgsz=640, int8=False, iou=0.7, keras=False, kob j=1.0, line_width=None, lr0=0.01, lrf=0.01, mask_ratio=4, max_det=300, mixup=0.0, mode=train, model=yolov8n.pt, momentum=0.937, mosaic=1.0, multi_scale=False, name=train20, nbs=64, nms=False, opset=Non e, optimize=False, optimizer=auto, overlap_mask=True, patience=100, perspective=0.0, plots=True, pose=12.0, pretrained=True, profile=False, project=None, rect=False, resume=False, retina_masks=False, s ave=True, save_conf=False, save_crop=False, save_dir=D:\ultralytics-main\runs\detect\train20, save_frames=False, save_json=False, save_period=-1, save_txt=False, scale=0.5, seed=0, shear=0.0, show=Fals e, show_boxes=True, show_conf=True, show_labels=True, simplify=True, single_cls=False, source=None, split=val, stream_buffer=False, task=detect, time=None, tracker=botsort.yaml, translate=0.1, val=True, verbose=True, vid_stride=1, visualize=False, warmup_bias_lr=0.1, warmup_epochs=3.0, warmup_momentum=0.8, weight_decay=0.0005, workers=16, workspace=None Overriding model.yaml nc=80 with nc=2 from n params module arguments 0 -1 1 464 ultralytics.nn.modules.conv.Conv [3, 16, 3, 2] 1 -1 1 4672 ultralytics.nn.modules.conv.Conv [16, 32, 3, 2] 2 -1 1 7360 ultralytics.nn.modules.block.C2f [32, 32, 1, True] 3 -1 1 18560 ultralytics.nn.modules.conv.Conv [32, 64, 3, 2] 4 -1 2 49664 ultralytics.nn.modules.block.C2f [64, 64, 2, True] 5 -1 1 73984 ultralytics.nn.modules.conv.Conv [64, 128, 3, 2] 6 -1 2 197632 ultralytics.nn.modules.block.C2f [128, 128, 2, True] 7 -1 1 295424 ultralytics.nn.modules.conv.Conv [128, 256, 3, 2] 8 -1 1 460288 ultralytics.nn.modules.block.C2f [256, 256, 1, True] 9 -1 1 164608 ultralytics.nn.modules.block.SPPF [256, 256, 5] 10 -1 1 0 torch.nn.modules.upsampling.Upsample [None, 2, 'nearest'] 11 [-1, 6] 1 0 ultralytics.nn.modules.conv.Concat [1] 12 -1 1 148224 ultralytics.nn.modules.block.C2f [384, 128, 1] 13 -1 1 0 torch.nn.modules.upsampling.Upsample [None, 2, 'nearest'] 14 [-1, 4] 1 0 ultralytics.nn.modules.conv.Concat [1] 15 -1 1 37248 ultralytics.nn.modules.block.C2f [192, 64, 1] 16 -1 1 36992 ultralytics.nn.modules.conv.Conv [64, 64, 3, 2] 17 [-1, 12] 1 0 ultralytics.nn.modules.conv.Concat [1] 18 -1 1 123648 ultralytics.nn.modules.block.C2f [192, 128, 1] 19 -1 1 147712 ultralytics.nn.modules.conv.Conv [128, 128, 3, 2] 20 [-1, 9] 1 0 ultralytics.nn.modules.conv.Concat [1] 21 -1 1 493056 ultralytics.nn.modules.block.C2f [384, 256, 1] 22 [15, 18, 21] 1 751702 ultralytics.nn.modules.head.Detect [2, [64, 128, 256]] Model summary: 129 layers, 3,011,238 parameters, 3,011,222 gradients, 8.2 GFLOPs Transferred 319/355 items from pretrained weights Freezing layer 'model.22.dfl.conv.weight' AMP: running Automatic Mixed Precision (AMP) checks... Traceback (most recent call last): File "D:\Anaconda3\envs\yolov8\lib\runpy.py", line 196, in _run_module_as_main return _run_code(code, main_globals, None, File "D:\Anaconda3\envs\yolov8\lib\runpy.py", line 86, in _run_code exec(code, run_globals) File "D:\Anaconda3\envs\yolov8\Scripts\yolo.exe\__main__.py", line 6, in <module> File "D:\Anaconda3\envs\yolov8\lib\site-packages\ultralytics\cfg\__init__.py", line 990, in entrypoint getattr(model, mode)(**overrides) # default args from model File "D:\Anaconda3\envs\yolov8\lib\site-packages\ultralytics\engine\model.py", line 800, in train self.trainer.train() File "D:\Anaconda3\envs\yolov8\lib\site-packages\ultralytics\engine\trainer.py", line 235, in train self._do_train() File "D:\Anaconda3\envs\yolov8\lib\site-packages\ultralytics\engine\trainer.py", line 356, in _do_train self._setup_train() File "D:\Anaconda3\envs\yolov8\lib\site-packages\ultralytics\engine\trainer.py", line 293, in _setup_train self.amp = torch.tensor(check_amp(self.model), device=self.device) File "D:\Anaconda3\envs\yolov8\lib\site-packages\ultralytics\utils\checks.py", line 795, in check_amp assert amp_allclose(YOLO("yolo11n.pt"), im) File "D:\Anaconda3\envs\yolov8\lib\site-packages\ultralytics\models\yolo\model.py", line 83, in __init__ super().__init__(model=model, task=task, verbose=verbose) File "D:\Anaconda3\envs\yolov8\lib\site-packages\ultralytics\engine\model.py", line 153, in __init__ self._load(model, task=task) File "D:\Anaconda3\envs\yolov8\lib\site-packages\ultralytics\engine\model.py", line 297, in _load self.model, self.ckpt = load_checkpoint(weights) File "D:\Anaconda3\envs\yolov8\lib\site-packages\ultralytics\nn\tasks.py", line 1501, in load_checkpoint ckpt, weight = torch_safe_load(weight) # load ckpt File "D:\Anaconda3\envs\yolov8\lib\site-packages\ultralytics\nn\tasks.py", line 1448, in torch_safe_load ckpt = torch_load(file, map_location="cpu") File "D:\Anaconda3\envs\yolov8\lib\site-packages\ultralytics\utils\patches.py", line 120, in torch_load return torch.load(*args, **kwargs) File "D:\Anaconda3\envs\yolov8\lib\site-packages\torch\serialization.py", line 993, in load with _open_zipfile_reader(opened_file) as opened_zipfile: File "D:\Anaconda3\envs\yolov8\lib\site-packages\torch\serialization.py", line 447, in __init__ super().__init__(torch._C.PyTorchFileReader(name_or_buffer)) OSError: [Errno 22] Invalid argument
10-12
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值