603 -ORA-00603:ORACLE 服务器会话因致命错误 ORA-00600 终止:

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/33069157/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-19 03:02:42  来源:igfitidea点击:

603 -ORA-00603: ORACLE server session terminated by fatal error ORA-00600:

sqloracle

提问by Kiko

I have an oracle DB which is in W28MSWIN1252 and using the Oracle DMU (Data Migration Assistant tool for Unicode) I'm trying to convert the encoding to to ALT32UTF8. I successfully passed the scanning, but the next step - the actual database conversion, stops on this operation(the table and column names are changes):

我有一个位于 W28MSWIN1252 中的 oracle DB 并使用 Oracle DMU(Unicode 数据迁移助手工具),我正在尝试将编码转换为 ALT32UTF8。我成功通过了扫描,但下一步 - 实际的数据库转换,在此操作上停止(表和列名称发生变化):

update  /*+ PARALLEL(A,4)*/ "MYSCHEMA"."MYTABLE1" A  set A."COL1" = SYS_OP_CSCONV(A."COL1", 'AL32UTF8'), A."COL2" = SYS_OP_CSCONV(A."COL2", 'AL32UTF8'), A."COL3" = SYS_OP_CSCONV(A."COL3", 'AL32UTF8'), A."COL4" = SYS_OP_CSCONV(A."COL4", 'AL32UTF8') WHERE A.ROWID IN (SELECT ROW_ID FROM SYSTEM.DUM$EXCEPTIONS WHERE OBJ# = 93203)

with this error:

出现此错误:

603 - ORA-00603: ORACLE server session terminated by fatal error ORA-00600: Internal error code, arguments:[4882], [0x7FF7A52EEDB8],[0x7FF7A5A6D6B8], [0x7FF7C05ABB8],[],[],[]..

I Found an additional more info about the error in C:\app\Oracle12\diag\rdbms...\trace\alert_ax12web.log:

我在 C:\app\Oracle12\diag\rdbms...\trace\alert_ax12web.log 中找到了有关错误的更多信息:

    Refresh failed due to missing on - commit privilege for               "MYSCHEMA"."MYTABLE2"
    On commit
    MV "MYSCHEMA"."MYTABLE2" was not refreshed successfully.
    Number of MV refresh failures : 1.
    Errors in file C:\app\Oracle12\diag\rdbms\...\trace\ax12web_ora_6672.trc(incident = 12425) :
    ORA - 00600 : internal error code, arguments : [4882], [0x7FF7B71BA8B8], [0x7FF7A5A6D6B8], [0x7FF7BFFA1D48], [], [], [], [], [], [], [], []
    ...

It seems that the real problem is : Refresh failed due to missing on - commit privilege for something. Unfortunately granting all privileges to everyone on this table via:

似乎真正的问题是:由于缺少某些内容的提交权限,刷新失败。不幸的是,通过以下方式将所有权限授予此表上的每个人:

   grant ALL on "MYSCHEMA"."MYTABLE1" to public;

doesn't help. I still get this error.

没有帮助。我仍然收到此错误。

P.S. I don't have additional support from oracle :(.

PS我没有来自oracle的额外支持:(。

Any Ideas?

有任何想法吗?

Thanks in advance,

提前致谢,

Kalin

卡林

回答by Marcus R

ORA-00600 means it's an internal error. You need to check the database alert.log or Oracle Support for more information.

ORA-00600 表示这是一个内部错误。您需要查看数据库 alert.log 或 Oracle Support 以获取更多信息。

回答by Jon Heller

Try re-running the query with small changes. ORA-600 bugs usually only affect one specific way of running a query and there's usually a work-around. Here are some ideas:

尝试通过小的更改重新运行查询。ORA-600 错误通常只影响运行查询的一种特定方式,并且通常有一种变通方法。这里有一些想法:

  1. Remove the parallel hint. If you can't control the query text then you can still get the same result by temporarily running alter system set parallel_max_servers=0;.
  2. Run (SELECT ROW_ID FROM SYSTEM.DUM$EXCEPTIONS WHERE OBJ# = 93203)separately and hard-code the results into the query.
  3. Break the statement up and only update one column at a time.
  1. 删除并行提示。如果您无法控制查询文本,那么您仍然可以通过临时运行alter system set parallel_max_servers=0;.
  2. (SELECT ROW_ID FROM SYSTEM.DUM$EXCEPTIONS WHERE OBJ# = 93203)单独运行并将结果硬编码到查询中。
  3. 将语句分解,一次只更新一列。

For ORA-600 errors there is a special tool for looking up the codes. On support.oracle.com, search for "ora-600 tool". On that website, enter the first argument. It returns one result, ORA-600 [4882] "Lock row cache object X when already held" (Doc ID 41840.1).

对于 ORA-600 错误,有一个用于查找代码的特殊工具。在 support.oracle.com 上,搜索“ora-600 工具”。在该网站上,输入第一个参数。它返回一个结果,ORA-600 [4882] "Lock row cache object X when already been hold" (Doc ID 41840.1)

I can't print the whole document here, you need a license to get all that information. But in this case it doesn't matter because there is no useful information. Your choices are to either submit a Service Request and go through that painful process or try some of the rewrites suggested above.

我无法在此处打印整个文档,您需要获得许可才能获取所有信息。但在这种情况下没有关系,因为没有有用的信息。您的选择是要么提交服务请求并经历那个痛苦的过程,要么尝试上面建议的一些重写。

回答by Kiko

Okay after few days of reading logs and wild guesses I think I found the problem:

好的,经过几天的阅读日志和疯狂的猜测,我想我发现了问题:

DROP MATERIALIZED VIEW MYTABLE2;

After that the error disappears. And of course after the migration I had to recreate that view. Obviously this is a bug in Oracle. But what disgusts me is the Price model of the Oracle. They have a bug, but you must pay to get it fixed or to get a workaround.

之后错误消失。当然,在迁移之后,我不得不重新创建该视图。显然这是 Oracle 中的一个错误。但令我反感的是 Oracle 的价格模型。他们有一个错误,但您必须付费才能修复它或获得解决方法。

... I have no idea how this could be related to the permissions

...我不知道这与权限有什么关系