ORA-19751 无法创建更改跟踪文件 ORA-19750错误
Nov102021
作者:dbdream 发布:2021-11-10 13:45 分类:Oracle, oracle 10g, oracle 11g, Oracle 12c, Oracle 18c, Oracle 19c 抢沙发
今天在帮客户恢复一个19.8的两节点RAC数据库时,遇到了ORA-19751 无法创建更改跟踪文件 ORA-19750错误。
SQL> alter database open resetlogs; alter database open resetlogs * 第 1 行出现错误: ORA-19751: 无法创建更改跟踪文件 ORA-19750: 更改跟踪文件: '+DATADG/CCCBFTP/CHANGETRACKING/ctf.375.1059060337' ORA-17502: ksfdcre: 4 未能创建文件 +DATADG/CCCBFTP/CHANGETRACKING/ctf.375.1059060337 ORA-15046: ASM 文件名 '+DATADG/CCCBFTP/CHANGETRACKING/ctf.375.1059060337' 不在创建单个文件表单中 ORA-17503: ksfdopn: 2 未能打开文件 +DATADG/CCCBFTP/CHANGETRACKING/ctf.375.1059060337 ORA-15012: ASM file '+DATADG/CCCBFTP/CHANGETRACKING/ctf.375.1059060337' does not exist SQL> select open_mode from v$database; OPEN_MODE -------------------- MOUNTED
这个错误看上去像是ASM磁盘组里没有CHANGETRACKING目录导致,也确实没有这个目录,但是即使创建出来也无法解决这个问题。
这是因为数据库开启了块改变追踪所致,这个功能通常使用增量备份的时候会使用,可以提高增量备份的速度,但对数据库整体性能会有所影响。
这个功能可以动态开启或关闭,要解决上面的问题,需要临时关闭块改变跟踪即可。
SQL> alter database disable block change tracking; 数据库已更改。 SQL> alter database open; 数据库已更改。
如果需要,再打开块改变追踪。
SQL> alter database enable block change tracking; 数据库已更改。
追踪文件默认会在DB_CREATE_FILE_DEST参数指定的目录下的db_unique_name目录下创建CHANGETRACKING目录,追踪文件就保存在这里,也可以在启用块改变追踪时,使用using file指定存放位置,例如:
SQL> alter database enable block change tracking '+DATADG/CCCBFTP/CHANGETRACKING'; 数据库已更改。
可以通过v$block_change_tracking视图来查看具体信息:
SQL> select status, filename from v$block_change_tracking; STATUS FILENAME ---------- --------------------------------------------------- ENABLED +DATADG/CCCBFTP/CHANGETRACKING/ctf.389.1088253125