検索
ホームページデータベースmysql チュートリアルOracle 10.2.0.4上ORA-01882故障解决一例

时区TimeZone在Oracle中不仅仅是一个环境变量,而且是融入到数据取值保存过程中的。Oracle字段类型中,与时区有关的字段类型只有

任何软件,特别是企业级系统组件的升级工作,是一个非常复杂的过程。升级路径、数据留存预案、回退步骤、原有业务功能冲击程度,都是需要反复测试论证的问题。所有的运维人员在遇到升级问题的时候,都要抱有谨慎的态度。
 
笔者最近接手一个升级过的系统,在测试过程中遇到了一些问题。经过查找MOS和网络资源加以解决。记录下来,留待需要的朋友。

推荐阅读:

ORA-01172、ORA-01151错误处理

ORA-00600 [2662]错误解决

ORA-01078 和 LRM-00109 报错解决方法

ORA-00471 处理方法笔记

ORA-00314,redolog 损坏,或丢失处理方法

ORA-00257 归档日志过大导致无法存储的解决办法

 

 1、环境介绍

 

接手的是一个升级到10.2.0.4的Linux版。

 

SQL> select * from v$version;

BANNER

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

Oracle Database 10g Release 10.2.0.4.0 - 64bit Production

PL/SQL Release 10.2.0.4.0 - Production

CORE 10.2.0.4.0 Production

TNS for Linux: Version 10.2.0.4.0 - Production

NLSRTL Version 10.2.0.4.0 - Production

 

2、故障问题展示

 

在巡检中,发现记录Oracle内部作业调度的视图dba_scheduler_jobs不能支持查询。

 

SQL> select * from dba_scheduler_jobs;

 

select * from dba_scheduler_jobs

ORA-01882: 未找到时区

 

1882错误的官方解释信息如下:

 

[oracle@allfirst ~]$ oerr ora 1882

01882, 00000, "timezone region %s not found"

// *Cause: The specified region name was not found.

// *Action: Please contact Oracle Customer Support.

 

但是,并不是所有的字段都不支持查询动作。

 

SQL> select owner, job_name from dba_scheduler_jobs;

 

OWNER                          JOB_NAME

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

SYS                            SQLSCRIPT_4084880

SYS                            AUTO_SPACE_ADVISOR_JOB

SYS                            GATHER_STATS_JOB

SYS                            FGR$AUTOPURGE_JOB

SYS                            PURGE_LOG

EXFSYS                        RLM$SCHDNEGACTION

EXFSYS                        RLM$EVTCLEANUP

ORACLE_OCM                    MGMT_STATS_CONFIG_JOB

ORACLE_OCM                    MGMT_CONFIG_JOB

 

9 rows selected

 

从字段性质看,值得怀疑与时区有关的字段是Time Zone。

 

SQL> select column_name, data_type from dba_tab_columns where owner='SYS' and table_name=upper('dba_scheduler_jobs') and data_type like '%TIME ZONE%';
 
 

COLUMN_NAME                    DATA_TYPE

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

START_DATE                    TIMESTAMP(6) WITH TIME ZONE

END_DATE                      TIMESTAMP(6) WITH TIME ZONE

LAST_START_DATE                TIMESTAMP(6) WITH TIME ZONE

NEXT_RUN_DATE                  TIMESTAMP(6) WITH TIME ZONE

 

但是,,也并不是所有的time zone类型字段都不能显示。而且这样的问题不止出现在这个视图中。

 

 

SQL> select start_date from dba_scheduler_jobs;

START_DATE

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

19-3月 -12 05.48.23.742796 下午 +08:00

28-1月 -14 02.42.49.000000 下午 +08:00

13-5月 -13 07.40.35.640706 下午 +08:00

13-5月 -13 07.32.40.314879 下午 +08:00

 

9 rows selected

 

SQL> select * from SYS.scheduler$_job ;

select * from SYS.scheduler$_job

 

ORA-01882: 未找到时区

3、问题分析

从直观看,应该是数据库部分数据表中与timezone有关的数值出现问题造成的。

时区TimeZone在Oracle中不仅仅是一个环境变量,而且是融入到数据取值保存过程中的。Oracle字段类型中,与时区有关的字段类型只有两个:timestamp with time zone和timestamp with local time zone。
 
Oracle的时区是通过时区文件来进行控制的,不同版本的数据库,选择不同版本的时区文件。

 

SQL> select * from v$timezone_file;

FILENAME        VERSION

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

timezlrg.dat          4

 

一个经常发生的故障,是升级数据库过程中,没有升级time zone文件。这样导致升级失败现象。Time Zone文件是归属在DST技术体系下。10.2.0.2使用的是DST版本为DSTv2、10.2.0.3使用DSTv3、10.2.0.4使用DSTv4。从我们刚才的测试来看,使用的DST版本是正确的。
 
时区问题的另一个特点是服务器、客户端特性差异。如果需要确定是否是服务器问题,需要直接到服务器上执行命令。

 

[oracle@allfirst /]$ sqlplus /nolog

SQL*Plus: Release 10.2.0.4.0 - Production on 星期二 1月 28 14:54:51 2014

Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.

 

SQL> conn / as sysdba

已连接。

SQL> select * from dba_scheduler_jobs;

ERROR:

ORA-01882: 未找到时区区域 %s

 

说明是数据库服务器端问题。如果是客户端问题,则需要及时升级客户端版本。

一种猜想是:当Oracle进行版本升级的时候,使用数据库时区文件的确是升级了,但是对应的内部数据还没有进行更新。这样就存在不兼容的问题。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
MySQLの役割:WebアプリケーションのデータベースMySQLの役割:WebアプリケーションのデータベースApr 17, 2025 am 12:23 AM

WebアプリケーションにおけるMySQLの主な役割は、データを保存および管理することです。 1.MYSQLは、ユーザー情報、製品カタログ、トランザクションレコード、その他のデータを効率的に処理します。 2。SQLクエリを介して、開発者はデータベースから情報を抽出して動的なコンテンツを生成できます。 3.MYSQLは、クライアントサーバーモデルに基づいて機能し、許容可能なクエリ速度を確保します。

MySQL:最初のデータベースを構築しますMySQL:最初のデータベースを構築しますApr 17, 2025 am 12:22 AM

MySQLデータベースを構築する手順には次のものがあります。1。データベースとテーブルの作成、2。データの挿入、および3。クエリを実行します。まず、createdAtabaseおよびcreateTableステートメントを使用してデータベースとテーブルを作成し、InsertINTOステートメントを使用してデータを挿入し、最後にSelectステートメントを使用してデータを照会します。

MySQL:データストレージに対する初心者向けのアプローチMySQL:データストレージに対する初心者向けのアプローチApr 17, 2025 am 12:21 AM

MySQLは、使いやすく強力であるため、初心者に適しています。 1.MYSQLはリレーショナルデータベースであり、CRUD操作にSQLを使用します。 2。インストールは簡単で、ルートユーザーのパスワードを構成する必要があります。 3.挿入、更新、削除、および選択してデータ操作を実行します。 4. Orderby、Where and Joinは複雑なクエリに使用できます。 5.デバッグでは、構文をチェックし、説明を使用してクエリを分析する必要があります。 6.最適化の提案には、インデックスの使用、適切なデータ型の選択、優れたプログラミング習慣が含まれます。

MySQLは初心者に優しいですか?学習曲線の評価MySQLは初心者に優しいですか?学習曲線の評価Apr 17, 2025 am 12:19 AM

MySQLは初心者に適しています。1)インストールと構成、2)リッチラーニングリソース、3)直感的なSQL構文、4)強力なツールサポート。それにもかかわらず、初心者はデータベースの設計、クエリの最適化、セキュリティ管理、データのバックアップなどの課題を克服する必要があります。

SQLはプログラミング言語ですか?用語を明確にするSQLはプログラミング言語ですか?用語を明確にするApr 17, 2025 am 12:17 AM

はい、sqlisaprogramginglanguagespecializedfordatamanamanagement.1)それはdeclarative、focusingonwhattoachieveratherthanhow.2)

酸性の特性(原子性、一貫性、分離、耐久性)を説明します。酸性の特性(原子性、一貫性、分離、耐久性)を説明します。Apr 16, 2025 am 12:20 AM

酸性属性には、原子性、一貫性、分離、耐久性が含まれ、データベース設計の基礎です。 1.原子性は、トランザクションが完全に成功するか、完全に失敗することを保証します。 2.一貫性により、データベースがトランザクションの前後に一貫性を保証します。 3.分離により、トランザクションが互いに干渉しないようにします。 4.永続性により、トランザクションの提出後にデータが永久に保存されることが保証されます。

MySQL:データベース管理システムとプログラミング言語MySQL:データベース管理システムとプログラミング言語Apr 16, 2025 am 12:19 AM

MySQLは、データベース管理システム(DBMS)であるだけでなく、プログラミング言語にも密接に関連しています。 1)DBMSとして、MySQLはデータを保存、整理、取得するために使用され、インデックスを最適化するとクエリのパフォーマンスが向上する可能性があります。 2)SQLとPythonに埋め込まれたプログラミング言語とSQLalchemyなどのORMツールを使用すると、操作を簡素化できます。 3)パフォーマンスの最適化には、インデックス、クエリ、キャッシュ、ライブラリ、テーブル分割、およびトランザクション管理が含まれます。

MySQL:SQLコマンドでデータの管理MySQL:SQLコマンドでデータの管理Apr 16, 2025 am 12:19 AM

MySQLはSQLコマンドを使用してデータを管理します。 1.基本コマンドには、select、挿入、更新、削除が含まれます。 2。高度な使用には、参加、サブクエリ、および集計関数が含まれます。 3.一般的なエラーには、構文、ロジック、パフォーマンスの問題が含まれます。 4。最適化のヒントには、インデックスの使用、Select*の回避、制限の使用が含まれます。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境