Oracle errorstack 工具 说明

Errorstack oradebug 命令类似,都是帮助我们诊断错误信息。有关oradebug 参考我的Blog

Oracle oradebug 命令 使用说明

http://blog.youkuaiyun.com/tianlesoftware/archive/2011/06/04/6525628.aspx

Errorstack事件:dump 错误栈信息,通常Oracle发生错误时前台进程将得到一条错误信息,但某些情况下得不到错误信息,可以采用这种方式得到Oracle错误。

使用errorstack 步骤:

1. 启用:

SQL> alter system set events='1438 trace name errorstack forever,level 10';

--表示当出现ORA-1438错误时,dump 错误栈和进程栈。

--在这里,我们关注哪些错误,就写上对应的代码就ok了。

2. 执行相关的SQL,获取跟踪文件

3. 关闭:

SQL> alter system set events='1438 trace name errorstack off';

或者使用oradebug

--启用

SQL> oradebug event 1000 trace name errorstack level 10;

Statement processed.

--关闭

SQL> oradebug event 1000 trace name errorstack off;

Statement processed.

示例:

SQL> alter system set events='600 trace name errorstack forever,level 10';

System altered.

SQL> select * from dba_data_files;

ERROR:

ORA-00600: internal error code, arguments: [ktfbhget-4], [6], [5], [], [], [],

[], []

no rows selected

SQL> alter system set events='600 trace name errorstack off';

System altered.

---获取trace name

SQL> oradebug setmypid

Statement processed.

SQL> oradebug tracefile_name

/u01/app/oracle/admin/dave1/udump/dave1_ora_29181.trc

SQL>

这里使用的是oradebug,这个比较方便,之前还有一个获取tracenamesql脚本,参考我的Blog

Oracle SQL Trace 10046 事件

http://blog.youkuaiyun.com/tianlesoftware/archive/2010/09/02/5857023.aspx

然后根据trace,分析相关的原因。

ITPUB 论坛上的一个完整示例:

一次ora-01438错误的处理

http://www.itpub.net/thread-956435-1-1.html

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

Blog http://blog.youkuaiyun.com/tianlesoftware

Email: dvd.dba@gmail.com

DBA1 群:62697716(); DBA2 群:62697977() DBA3 群:62697850()

DBA 超级群:63306533(); DBA4 群: 83829929 DBA5群: 142216823

DBA6 群:158654907 聊天 群:40132017 聊天2群:69087192

--加群需要在备注说明Oracle表空间和数据文件的关系,否则拒绝申请

0 info it worked if it ends with ok 1 verbose cli [ 1 verbose cli 'E:\\nodeNvm\\nodejs\\node.exe', 1 verbose cli 'E:\\nodeNvm\\nodejs\\node_modules\\npm\\bin\\npm-cli.js', 1 verbose cli 'run', 1 verbose cli 'dev' 1 verbose cli ] 2 info using npm@6.14.13 3 info using node@v14.17.3 4 verbose run-script [ 'predev', 'dev', 'postdev' ] 5 info lifecycle ruoyi@3.8.5~predev: ruoyi@3.8.5 6 info lifecycle ruoyi@3.8.5~dev: ruoyi@3.8.5 7 verbose lifecycle ruoyi@3.8.5~dev: unsafe-perm in lifecycle true 8 verbose lifecycle ruoyi@3.8.5~dev: PATH: E:\nodeNvm\nvm\v14.17.3\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin;E:\work\communalization_manage_sxyd\node_modules\.bin;C:\ProgramData\Oracle\Java\javapath;C:\Windows\System32\HWAudioDriver;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Users\Administrator\AppData\Local\Microsoft\WindowsApps;E:\maven\apache-maven-3.9.6\bin;E:\Java\jdk1.8.0_73\bin;E:\MySQL\MySQL Server 8.0\bin;E:\Redis;E:\VScode\Microsoft VS Code\bin;E:\Xshell\;E:\Java\jdk1.8.0_73\jre\bin;E:\GIT\Git\cmd;E:\Tencent\微信web开发者工具\dll;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;E:\Xftp\;E:\nodeNvm\nvm;E:\nodeNvm\nodejs;E:\nodeNvm\nvm\node_global;C:\Users\22782\AppData\Local\Microsoft\WindowsApps;E:\nodeNvm\nvm;E:\nodeNvm\nodejs; 9 verbose lifecycle ruoyi@3.8.5~dev: CWD: E:\work\communalization_manage_sxyd 10 silly lifecycle ruoyi@3.8.5~dev: Args: [ 10 silly lifecycle '/d /s /c', 10 silly lifecycle 'set NODE_OPTIONS=--openssl-legacy-provider & vue-cli-service serve' 10 silly lifecycle ] 11 silly lifecycle ruoyi@3.8.5~dev: Returned: code: 9 signal: null 12 info lifecycle ruoyi@3.8.5~dev: Failed to exec dev script 13 verbose stack Error: ruoyi@3.8.5 dev: `set NODE_OPTIONS=--openssl-legacy-provider & vue-cli-service serve` 13 verbose stack Exit status 9 13 verbose stack at EventEmitter.<anonymous> (E:\nodeNvm\nvm\v14.17.3\node_modules\npm\node_modules\npm-lifecycle\index.js:332:16) 13 verbose stack at EventEmitter.emit (events.js:375:28) 13 verbose stack at ChildProcess.<anonymous> (E:\nodeNvm\nvm\v14.17.3\node_modules\npm\node_modules\npm-lifecycle\lib\spawn.js:55:14) 13 verbose stack at ChildProcess.emit (events.js:375:28) 13 verbose stack at maybeClose (internal/child_process.js:1055:16) 13 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:288:5) 14 verbose pkgid ruoyi@3.8.5 15 verbose cwd E:\work\communalization_manage_sxyd 16 verbose Windows_NT 10.0.26100 17 verbose argv "E:\\nodeNvm\\nodejs\\node.exe" "E:\\nodeNvm\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "run" "dev" 18 verbose node v14.17.3 19 verbose npm v6.14.13 20 error code ELIFECYCLE 21 error errno 9 22 error ruoyi@3.8.5 dev: `set NODE_OPTIONS=--openssl-legacy-provider & vue-cli-service serve` 22 error Exit status 9 23 error Failed at the ruoyi@3.8.5 dev script. 23 error This is probably not a problem with npm. There is likely additional logging output above. 24 verbose exit [ 9, true ] 解决方法
最新发布
03-20
<think>好的,我现在要解决用户提供的npm运行dev脚本失败的问题。首先,我需要仔细分析日志中的错误信息,理解可能的原因,然后逐步排查并找到解决方法。 从用户提供的日志来看,错误发生在执行`npm run dev`时,脚本命令是`set NODE_OPTIONS=--openssl-legacy-provider & vue-cli-service serve`,退出状态码为9。错误提示中还提到可能不是npm的问题,需要查看更多日志。不过用户可能没有提供完整的输出,所以需要根据现有信息推断。 首先,我需要了解退出码9的含义。在Node.js中,退出码9通常表示进程被强制终止,可能由于系统或运行时的问题。常见原因包括内存不足、权限问题或环境配置错误。不过结合日志中的其他信息,可能还有其他因素。 接下来,查看用户的环境配置:Node.js版本是v14.17.3,npm版本是6.14.13。项目是ruoyi@3.8.5,可能是一个基于Vue.js的前端项目,使用vue-cli-service启动开发服务器。用户设置的NODE_OPTIONS参数是`--openssl-legacy-provider`,这通常是为了解决Node.js版本升级后OpenSSL相关的问题。 可能的原因之一是Node.js版本与项目依赖的某些模块不兼容。Node.js v14.x已经结束维护,而某些较新的依赖可能需要更高版本的Node.js。另一个可能性是`--openssl-legacy-provider`参数的使用方式是否正确,尤其是在Windows环境下。 首先,检查Node.js版本是否满足项目要求。ruoyi框架可能有特定的Node.js版本要求。例如,若项目依赖的Vue CLI版本较新,可能需要Node.js 16或更高版本。用户使用的是v14.17.3,这可能不兼容,导致启动失败。建议用户升级Node.js到LTS版本,如v16.x或v18.x,并重新安装依赖。 其次,检查`NODE_OPTIONS`的设置是否正确。在Windows中,设置环境变量并在同一行执行命令时,应使用`&&`而不是单个`&`。原命令是`set NODE_OPTIONS=... & vue-cli-service serve`,这可能导致环境变量未正确应用,因为`&`在Windows命令提示符中用于分隔命令,而`&&`表示前一个命令成功后再执行下一个。正确的命令应该是`set NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve`。修改package.json中的脚本部分,将`&`替换为`&&`可能解决问题。 此外,`--openssl-legacy-provider`通常用于Node.js 17+,当使用旧版OpenSSL时。用户使用的是Node.js 14,该版本可能不需要这个参数,或者可能不支持该选项,从而导致错误。尝试移除这个参数,看是否能正常启动。如果必须保留该参数,可能需要确保Node.js版本与参数兼容。 另一个可能性是依赖安装问题。如果node_modules存在损坏或未正确安装,可以尝试删除node_modules和package-lock.json(或yarn.lock),然后重新运行`npm install`。 此外,检查系统环境变量PATH是否有异常,特别是Node.js和npm的路径是否正确。日志中显示PATH包含多个路径,可能存在冲突或无效的路径。 最后,查看是否有其他错误日志,例如Vue CLI的详细输出,可能需要添加`--verbose`参数来获取更多信息,但用户提供的日志中可能没有这些细节。 总结可能的解决步骤: 1. 升级Node.js到v16或更高版本。 2. 修改脚本中的`&`为`&&`,确保环境变量正确设置。 3. 移除`--openssl-legacy-provider`参数,除非确认需要。 4. 清除node_modules并重新安装依赖。 5. 检查系统环境变量和权限问题。 需要逐步尝试这些步骤,确定哪个方法有效。</think>根据日志分析,这是运行`npm run dev`时出现的**OpenSSL兼容性问题**导致的错误。以下是分步解决方案: --- ### **错误原因** - **Node.js版本过旧**(v14.17.3)与某些依赖的加密算法不兼容 - `--openssl-legacy-provider`参数未正确设置(Windows环境语法问题) - 可能存在的依赖冲突 --- ### **解决方法** #### 1. 升级Node.js版本 Node.js 14.x已停止维护,建议升级到**16.x或18.x LTS版本**: ```bash nvm install 16.20.2 # 使用NVM切换版本 nvm use 16.20.2 ``` #### 2. 修正启动脚本语法(关键步骤) 修改`package.json`中的`dev`脚本,将`&`替换为`&&`: ```diff "scripts": { - "dev": "set NODE_OPTIONS=--openssl-legacy-provider & vue-cli-service serve", + "dev": "set NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve" } ``` #### 3. 清除缓存并重新安装依赖 ```bash npm cache clean --force rmdir /s /q node_modules # Windows删除node_modules del package-lock.json npm install ``` #### 4. 如果仍报错,尝试移除OpenSSL参数 如果升级Node.js后不需要此参数: ```diff "scripts": { - "dev": "set NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve" + "dev": "vue-cli-service serve" } ``` --- ### **补充说明** - **为什么必须用`&&`?** Windows中`&`会直接执行后续命令,不等待环境变量生效。`&&`确保前一条命令完成后再执行后续操作。 - **OpenSSL问题的根源** Node.js 17+默认使用OpenSSL 3.0,某些旧项目需要`--openssl-legacy-provider`回退兼容。但Node.js 14无需此参数。 --- ### **验证是否解决** ```bash npm run dev ``` 如果看到`webpack compiled successfully`即表示成功。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值