- 浏览: 978666 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
孤星119:
好熟悉的数据库字段啊, 上家公司做的项目每天都跟这些字段打招呼 ...
Oracle exp compress参数引起的空间浪费 -
itspace:
quxiaoyong 写道遇到个问题,网上一搜,全他妈这篇文章 ...
数据库连接错误ORA-28547 -
quxiaoyong:
遇到个问题,网上一搜,全他妈这篇文章。你转来转去的有意思吗?
数据库连接错误ORA-28547 -
hctech:
关于version count过高的问题,不知博主是否看过ey ...
某客户数据库性能诊断报告 -
itspace:
invalid 写道写的不错,我根据这个来安装,有点理解错误了 ...
AIX 配置vncserver
Oracle在启动实例时,由pmon进程将读取操作系统相关环境(如系统时区)进内存区域,并在该实例的生命周期内一直保存。
监听启动时,首先会读取操作系统系统时区,但如果数据库监听采用动态注册,那pmon进程会将数据库系统时区信息动态注册至监听。
所以,当操作系统时区发生更改,如果通过监听连接的业务,会读取监听中的时区,所以仍将采用更改前的时区,这将导致数据库时间和操作系统时间不一致,此时进行数据插入,数据将采用监听的时区进行数据插入。
所以为了使得数据库时间和操作系统时间一致性,Oracle官方推荐当操作系统更改时区之后,将数据库进行重启,由pmon进程将修改后的新时区,重新注册至监听。但是如果数据库是7*24小时环境,重启数据库需要付出相当大的代价。那能不能不重启数据库就能达到数据库时间和操作系统时间一致的状态呢?
通过以上的讨论,我们可以得出以下结论:
1、如果业务程序不通过监听连接至数据库,那么数据库和主机时间应当一致。
2、如果监听是静态注册,Pmon进程不动态注册相关信息至监听器里,那么将监听瞬间重启之后,监听将读取修改后的时区,这样通过监听连接的业务程序,也将读取修改后的时区。
但是问题又来了,如果数据库监听端口处于非默认端口(即1521端口),那么只要不设置local_listener,那将不会进行动态注册。那如果是默认监听端口呢?
这里有个小技巧只要将local_listener设为其他端口即可
alter system set local_listener="(address=(protocol=tcp)(host=172.16.4.163)(port=1531))";
如果操作系统时区不修改,我们可以通过修改监听的时区,达到修改时区的目的,即只要修改listsner.ora,增加ENVS='TZ=CST6CDT。
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = mcstar)
(ORACLE_HOME = /ora10g/oracle/product/10.2.0/db_1)
(SID_NAME = mcstar)
#(ENVS='TZ=CST6CDT')
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.4.163)(PORT = 1521))
)
)
以下为一个客户修改了操作系统时区,导致数据库时间和操作系统时间不一致的解决过程:
可以看到在主机上连接数据库,即不通过监听连接数据库时,系统时间和数据库时间处于一致状态
SQL> conn agent/***
Connected.
SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
TO_CHAR(SYSDATE,'YY
-------------------
2011-05-20 15:23:50
但通过监听连接,再显示数据库时间,发现相差14个小时
$ sqlplus "agent/***@zjdw"
SQL*Plus: Release 9.2.0.8.0 - Production on Fri May 20 15:25:34 2011
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
Connected to:
Oracle9i Enterprise Edition Release 9.2.0.8.0 - 64bit Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.8.0 - Production
SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
TO_CHAR(SYSDATE,'YY
-------------------
2011-05-20 01:25:39
查看监听状态,可以发现监听已经运行178天,且默认监听端口号为1521,但并未出现动态注册
$ lsnrctl status
LSNRCTL for HPUX: Version 9.2.0.8.0 - Production on 20-MAY-2011 15:26:00
Copyright (c) 1991, 2006, Oracle Corporation. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.202.3.8)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for HPUX: Version 9.2.0.8.0 - Production
Start Date 22-NOV-2010 12:42:41
Uptime 178 days 11 hr. 43 min. 18 sec
Trace Level off
Security OFF
SNMP OFF
Listener Parameter File /oradata/ora9208/product/db_1/network/admin/listener.ora
Listener Log File /oradata/ora9208/product/db_1/network/log/listener.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=***.***.***.***)(PORT=1521)))
Services Summary...
Service "zjdw" has 1 instance(s).
Instance "zjdw", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
进一步查看Oracle参数,local_listener参数并未见异常,于是再次检查alert日志,可以看到listener.ora地址配置错误,导致pmon注册监听出错,于是也就好理解了为什么监听长期处于静态注册
Mon Nov 22 12:40:57 2010
Starting ORACLE instance (normal)
LICENSE_MAX_SESSION = 0
LICENSE_SESSIONS_WARNING = 0
SCN scheme 3
Using log_archive_dest parameter default value
LICENSE_MAX_USERS = 0
SYS auditing is disabled
Starting up ORACLE RDBMS Version: 9.2.0.8.0.
System parameters with non-default values:
processes = 1000
timed_statistics = TRUE
shared_pool_size = 1056964608
sga_max_size = 8398007384
。。。。。。
PMON started with pid=2, OS id=14867
Mon Nov 22 12:41:01 2010
ORA-00130: invalid listener address '(ADDRESS=(PROTOCOL=TCP)(HOST=geosoft-)(PORT=1521))'
既然监听处于静态注册状态,pmon不会将保留在内存区域里的老时区动态注册至监听中,所以只要将监听重启,让监听重新获取新主机时区即可。
可以看到重启监听之后,再次通过监听连接数据库,数据时间已经恢复正常。
$ sqlplus "agent/***@zjdw"
SQL*Plus: Release 9.2.0.8.0 - Production on Fri May 20 15:27:26 2011
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
Connected to:
Oracle9i Enterprise Edition Release 9.2.0.8.0 - 64bit Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.8.0 - Production
SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
TO_CHAR(SYSDATE,'YY
-------------------
2011-05-20 15:27:32
这时又引申出另外一个问题,操作系统时区修改之后,应不应该修改Oracle时区?
显而易见,如果数据库列存储方式并没有采用timezone存储(最常用的有TIMESTAMP,TIMESTAMP WITH TIME ZONE,IMESTAMP WITH LOCAL TIME ZONE),操作系统时区修改显然不用修改数据库时区。
数据库的时区,可以用查看database_properties视图获得,可以看到目前数据库时区为+0:00,即默认和主机时区一致。
SQL> select * from database_properties where property_name='DBTIMEZONE';
PROPERTY_NAME PROPERTY_VALUE DESCRIPTION
------------------------------ -------------------- ------------------------------
DBTIMEZONE +0:00 DB time zone
可以用以下命令修改数据库时区,重启数据库才能生效
ALTER DATABASE SET TIME_ZONE = '+10:00';
需要注意的是,修改数据库时区仅适用于数据库没有TIMESTAMP WITH LOCAL TIME ZONE字段时才生效。且不会修改已存储在数据库中的时区列,仅对未来数据生效。
Oracle除了数据库时区,还提供了会话级时区,查看会话级时区时将忽略数据库级时区,默认保持和操作时区一致。
SQL> SELECT SESSIONTIMEZONE FROM dual;
SESSIONTIMEZONE
---------------------------------------------------------------------------
+08:00
可以采用如下命令,修改之后会话级别实时生效,
SQL> alter session set time_zone='+10:00';
Session altered.
SQL> SELECT SESSIONTIMEZONE FROM dual;
SESSIONTIMEZONE
---------------------------------------------------------------------------
+10:00
如前所述Timestamp With local Time Zone 在客户端取数据的时候,会自动转为客户端的时区时间,所以修改会话级时区将影响Timestamp With local Time Zone的取值。
SQL> alter session set time_zone='+10:00';
Session altered.
SQL> select TIMESTP_LTZ from zhoul.TIMESTAMP_TEST;
TIMESTP_LTZ
---------------------------------------------------------------------------
23-MAY-11 04.47.18.000 PM
SQL> alter session set time_zone='+8:00';
Session altered.
SQL> select TIMESTP_LTZ from zhoul.TIMESTAMP_TEST;
TIMESTP_LTZ
---------------------------------------------------------------------------
23-MAY-11 02.47.18.000 PM
当数据库已有TIMESTAMP WITH LOCAL TIME ZONE字段时,将出现以下错误。
SQL> ALTER DATABASE SET TIME_ZONE = '+10:00';
ALTER DATABASE SET TIME_ZONE = '+10:00'
*
ERROR at line 1:
ORA-30079: cannot alter database timezone when database has TIMESTAMP WITH LOCAL TIME ZONE columns
当出现这种错误时,可以通过以下脚本查看哪些列是TIMESTAMP WITH LOCAL TIME ZONE
SQL> select u.name || '.' || o.name || '.' || c.name TSLTZcolumn
2 from sys.obj$ o, sys.col$ c, sys.user$ u
3 where c.type# = 231
4 and o.obj# = c.obj#
5 and u.user# = o.owner#;
TSLTZCOLUMN
--------------------------------------------------------------------------------
ZHOUL.BIN$o+3YOK3rqpLgQBCsowRAmg==$0.TS_LTZ
那么TIMESTAMP WITH LOCAL TIME ZONE是什么玩意呢?
Timestamp With local Time Zone类型和Timestamp with time zone类似。内部代码是231。和TimpStamp With Time Zone不同的是,这种数据类型会自动把时间转换成服务器的时区时间进行存储。在客户端取数据的时候,会自动转为客户端的时区时间。
TIMESTAMP WITH TIME ZONE类型数据会存储客户端的时区信息,如果指定时区信息(如timestamp '2010-02-01 09:00:00 +09:00'),则按指定时区存储,如果不指定时区(如timestamp '2010-02-01 09:00:00')默认采用会话时区存储。
TIMESTAMP WITH LOCAL TIME ZONE类型数据不会存储客户单的时区信息,它根据数据库时区对客户端发来的时间进行转换,基于统一的数据库时区存储时间信息,如果用户没有指定时区信息同TIMESTAMP WITH TIME ZONE一样默认采用会话时区。当用户查看该类型数据时,服务器根据会话所属时区对存储的时间数据进行转换,不同时区的会话将返回不同的时间数据。
监听启动时,首先会读取操作系统系统时区,但如果数据库监听采用动态注册,那pmon进程会将数据库系统时区信息动态注册至监听。
所以,当操作系统时区发生更改,如果通过监听连接的业务,会读取监听中的时区,所以仍将采用更改前的时区,这将导致数据库时间和操作系统时间不一致,此时进行数据插入,数据将采用监听的时区进行数据插入。
所以为了使得数据库时间和操作系统时间一致性,Oracle官方推荐当操作系统更改时区之后,将数据库进行重启,由pmon进程将修改后的新时区,重新注册至监听。但是如果数据库是7*24小时环境,重启数据库需要付出相当大的代价。那能不能不重启数据库就能达到数据库时间和操作系统时间一致的状态呢?
通过以上的讨论,我们可以得出以下结论:
1、如果业务程序不通过监听连接至数据库,那么数据库和主机时间应当一致。
2、如果监听是静态注册,Pmon进程不动态注册相关信息至监听器里,那么将监听瞬间重启之后,监听将读取修改后的时区,这样通过监听连接的业务程序,也将读取修改后的时区。
但是问题又来了,如果数据库监听端口处于非默认端口(即1521端口),那么只要不设置local_listener,那将不会进行动态注册。那如果是默认监听端口呢?
这里有个小技巧只要将local_listener设为其他端口即可
alter system set local_listener="(address=(protocol=tcp)(host=172.16.4.163)(port=1531))";
如果操作系统时区不修改,我们可以通过修改监听的时区,达到修改时区的目的,即只要修改listsner.ora,增加ENVS='TZ=CST6CDT。
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = mcstar)
(ORACLE_HOME = /ora10g/oracle/product/10.2.0/db_1)
(SID_NAME = mcstar)
#(ENVS='TZ=CST6CDT')
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.4.163)(PORT = 1521))
)
)
以下为一个客户修改了操作系统时区,导致数据库时间和操作系统时间不一致的解决过程:
可以看到在主机上连接数据库,即不通过监听连接数据库时,系统时间和数据库时间处于一致状态
SQL> conn agent/***
Connected.
SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
TO_CHAR(SYSDATE,'YY
-------------------
2011-05-20 15:23:50
但通过监听连接,再显示数据库时间,发现相差14个小时
$ sqlplus "agent/***@zjdw"
SQL*Plus: Release 9.2.0.8.0 - Production on Fri May 20 15:25:34 2011
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
Connected to:
Oracle9i Enterprise Edition Release 9.2.0.8.0 - 64bit Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.8.0 - Production
SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
TO_CHAR(SYSDATE,'YY
-------------------
2011-05-20 01:25:39
查看监听状态,可以发现监听已经运行178天,且默认监听端口号为1521,但并未出现动态注册
$ lsnrctl status
LSNRCTL for HPUX: Version 9.2.0.8.0 - Production on 20-MAY-2011 15:26:00
Copyright (c) 1991, 2006, Oracle Corporation. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.202.3.8)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for HPUX: Version 9.2.0.8.0 - Production
Start Date 22-NOV-2010 12:42:41
Uptime 178 days 11 hr. 43 min. 18 sec
Trace Level off
Security OFF
SNMP OFF
Listener Parameter File /oradata/ora9208/product/db_1/network/admin/listener.ora
Listener Log File /oradata/ora9208/product/db_1/network/log/listener.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=***.***.***.***)(PORT=1521)))
Services Summary...
Service "zjdw" has 1 instance(s).
Instance "zjdw", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
进一步查看Oracle参数,local_listener参数并未见异常,于是再次检查alert日志,可以看到listener.ora地址配置错误,导致pmon注册监听出错,于是也就好理解了为什么监听长期处于静态注册
Mon Nov 22 12:40:57 2010
Starting ORACLE instance (normal)
LICENSE_MAX_SESSION = 0
LICENSE_SESSIONS_WARNING = 0
SCN scheme 3
Using log_archive_dest parameter default value
LICENSE_MAX_USERS = 0
SYS auditing is disabled
Starting up ORACLE RDBMS Version: 9.2.0.8.0.
System parameters with non-default values:
processes = 1000
timed_statistics = TRUE
shared_pool_size = 1056964608
sga_max_size = 8398007384
。。。。。。
PMON started with pid=2, OS id=14867
Mon Nov 22 12:41:01 2010
ORA-00130: invalid listener address '(ADDRESS=(PROTOCOL=TCP)(HOST=geosoft-)(PORT=1521))'
既然监听处于静态注册状态,pmon不会将保留在内存区域里的老时区动态注册至监听中,所以只要将监听重启,让监听重新获取新主机时区即可。
可以看到重启监听之后,再次通过监听连接数据库,数据时间已经恢复正常。
$ sqlplus "agent/***@zjdw"
SQL*Plus: Release 9.2.0.8.0 - Production on Fri May 20 15:27:26 2011
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
Connected to:
Oracle9i Enterprise Edition Release 9.2.0.8.0 - 64bit Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.8.0 - Production
SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
TO_CHAR(SYSDATE,'YY
-------------------
2011-05-20 15:27:32
这时又引申出另外一个问题,操作系统时区修改之后,应不应该修改Oracle时区?
显而易见,如果数据库列存储方式并没有采用timezone存储(最常用的有TIMESTAMP,TIMESTAMP WITH TIME ZONE,IMESTAMP WITH LOCAL TIME ZONE),操作系统时区修改显然不用修改数据库时区。
数据库的时区,可以用查看database_properties视图获得,可以看到目前数据库时区为+0:00,即默认和主机时区一致。
SQL> select * from database_properties where property_name='DBTIMEZONE';
PROPERTY_NAME PROPERTY_VALUE DESCRIPTION
------------------------------ -------------------- ------------------------------
DBTIMEZONE +0:00 DB time zone
可以用以下命令修改数据库时区,重启数据库才能生效
ALTER DATABASE SET TIME_ZONE = '+10:00';
需要注意的是,修改数据库时区仅适用于数据库没有TIMESTAMP WITH LOCAL TIME ZONE字段时才生效。且不会修改已存储在数据库中的时区列,仅对未来数据生效。
Oracle除了数据库时区,还提供了会话级时区,查看会话级时区时将忽略数据库级时区,默认保持和操作时区一致。
SQL> SELECT SESSIONTIMEZONE FROM dual;
SESSIONTIMEZONE
---------------------------------------------------------------------------
+08:00
可以采用如下命令,修改之后会话级别实时生效,
SQL> alter session set time_zone='+10:00';
Session altered.
SQL> SELECT SESSIONTIMEZONE FROM dual;
SESSIONTIMEZONE
---------------------------------------------------------------------------
+10:00
如前所述Timestamp With local Time Zone 在客户端取数据的时候,会自动转为客户端的时区时间,所以修改会话级时区将影响Timestamp With local Time Zone的取值。
SQL> alter session set time_zone='+10:00';
Session altered.
SQL> select TIMESTP_LTZ from zhoul.TIMESTAMP_TEST;
TIMESTP_LTZ
---------------------------------------------------------------------------
23-MAY-11 04.47.18.000 PM
SQL> alter session set time_zone='+8:00';
Session altered.
SQL> select TIMESTP_LTZ from zhoul.TIMESTAMP_TEST;
TIMESTP_LTZ
---------------------------------------------------------------------------
23-MAY-11 02.47.18.000 PM
当数据库已有TIMESTAMP WITH LOCAL TIME ZONE字段时,将出现以下错误。
SQL> ALTER DATABASE SET TIME_ZONE = '+10:00';
ALTER DATABASE SET TIME_ZONE = '+10:00'
*
ERROR at line 1:
ORA-30079: cannot alter database timezone when database has TIMESTAMP WITH LOCAL TIME ZONE columns
当出现这种错误时,可以通过以下脚本查看哪些列是TIMESTAMP WITH LOCAL TIME ZONE
SQL> select u.name || '.' || o.name || '.' || c.name TSLTZcolumn
2 from sys.obj$ o, sys.col$ c, sys.user$ u
3 where c.type# = 231
4 and o.obj# = c.obj#
5 and u.user# = o.owner#;
TSLTZCOLUMN
--------------------------------------------------------------------------------
ZHOUL.BIN$o+3YOK3rqpLgQBCsowRAmg==$0.TS_LTZ
那么TIMESTAMP WITH LOCAL TIME ZONE是什么玩意呢?
Timestamp With local Time Zone类型和Timestamp with time zone类似。内部代码是231。和TimpStamp With Time Zone不同的是,这种数据类型会自动把时间转换成服务器的时区时间进行存储。在客户端取数据的时候,会自动转为客户端的时区时间。
TIMESTAMP WITH TIME ZONE类型数据会存储客户端的时区信息,如果指定时区信息(如timestamp '2010-02-01 09:00:00 +09:00'),则按指定时区存储,如果不指定时区(如timestamp '2010-02-01 09:00:00')默认采用会话时区存储。
TIMESTAMP WITH LOCAL TIME ZONE类型数据不会存储客户单的时区信息,它根据数据库时区对客户端发来的时间进行转换,基于统一的数据库时区存储时间信息,如果用户没有指定时区信息同TIMESTAMP WITH TIME ZONE一样默认采用会话时区。当用户查看该类型数据时,服务器根据会话所属时区对存储的时间数据进行转换,不同时区的会话将返回不同的时间数据。
发表评论
-
buffer cache 的内部结构
2020-03-18 14:21 576BUFFER CACHE作为数据块的 ... -
Oracle OMC介绍
2020-03-18 13:19 484Oracle管理云服务(OMC)的大数据平台,自动收集的企业 ... -
参加Oracle勒索病毒防范专题培训会议
2019-09-27 17:15 5112019年7月22日,受邀参加Oracle勒索病毒防范专题培训 ... -
记一次内存换IO的Oracle优化
2019-09-27 16:50 826某客户数据库从P595物理 ... -
如何定位Oracle SQL执行计划变化的原因
2019-07-03 14:49 1458性能优化最难的是能够 ... -
如何定位Oracle SQL执行计划变化的原因
2018-10-30 09:24 1185性能优化最难的是能够 ... -
数据库性能优化目标
2018-10-08 10:59 518从数据库性能优化的场 ... -
数据库无法打开的原因及解决办法
2018-10-05 20:45 2117数据库的启动是一个相当复杂的过程。比如,Oracle在启动之前 ... -
怎么样彻底删除数据库?
2018-09-18 11:10 598Oracle提供了drop database命令用来删除数据库 ... -
Oracle减少日志量的方法
2018-09-10 10:17 865LGWR进程将LOG BUFFER中的 ... -
如何快速关闭数据库
2018-09-09 13:14 1231“一朝被蛇咬,十年怕井绳”。在没被“蛇”咬之前,很多DBA喜欢 ... -
关于《如何落地智能化运维》PPT
2018-05-17 10:19 1128在DTCC 2018发表《如何落地智能化运维》演讲,主要内容如 ... -
记录在redhat5.8平台安装oracle11.2容易忽视的几个问题
2018-05-11 19:58 577问题一:ping不通问题 在虚拟机上安装好linux系统后, ... -
《Oracle DBA实战攻略》第一章
2018-05-11 10:42 945即日起,不定期更新《OracleDBA实战攻略》一书电子版,请 ... -
Oracle 12c新特性
2018-05-11 10:33 898查询所有pdb [oracle@gj4 ~]$ sqlplu ... -
关于修改memory_target的值后数据库无法启动的问题
2017-02-28 12:24 3981操作系统:RHEL6.5 数据库版本:11.2.0.4 ... -
10g rac安装error while loading shared libraries libpthread.so.0 问题
2017-02-28 12:22 69311g rac安装在二节点跑脚本一般会报此错误: 解决这个问 ... -
记一次Oracle会话共享模式故障处理过程
2017-02-27 19:16 798故障简述 XXX第八人民医院HIS数据库7月13日11点左右从 ... -
RESMGR:cpu quantum等待事件处理过程
2017-02-27 18:23 2615由于数据库上线过程中出现大量的RESMGR:cpu quant ... -
谈谈log file sync
2014-03-19 14:18 1757数据库中的log file sync等待事件指的是,当user ...
相关推荐
oracle19.0时区版本35补丁p31335037_190000_Linux-x86-64.zip 注意:此补丁只适用于oracle19.3版本用来添加35版本时区,其他版本使用会报错 我会再上传一个适用于19c所有oracle版本的35版本时区补丁 补丁用于解决ORA...
- 在进行时区版本升级时,务必对业务影响进行全面评估,确保所有应用程序和服务都支持新的时区版本。 - 在升级前后进行数据备份,以防万一出现问题可以恢复。 - 升级后,测试所有与时间有关的查询和功能,确保...
适用于19c所有oracle版本的33版本时区补丁 补丁用于解决ORA-39405 TSTZ版本问题的错误 用于把oracle19.3数据库加TSTZ33版本的补丁 可通过SQL> SELECT * FROM v$timezone_file;命令查询时区版本 安装过程可以查看我的...
注意:此补丁只适用于oracle19.3版本用来添加33版本时区,其他版本使用会报错 我会再上传一个适用于19c所有oracle版本的33版本时区补丁 补丁用于解决ORA-39405 TSTZ版本问题的错误 用于把oracle19.3数据库加TSTZ33...
适用于19c所有oracle版本的34版本时区补丁 补丁用于解决ORA-39405 TSTZ版本问题的错误 用于把oracle19c数据库加TSTZ34版本的补丁 可通过SQL> SELECT * FROM v$timezone_file;命令查询时区版本 安装过程可以查看我的...
时区的设置对系统的时间戳和日期的正确性产生重要影响。在 Linux 系统中,时区的设置可以通过手动修改时区文件或使用图形化命令实现。 1. 手动修改时区:可以通过找到相应的时区文件 /usr/share/zoneinfo/Asia/...
在编程领域,C#是一种广泛使用的面向对象的编程语言,尤其在开发...此外,频繁地修改系统时区可能会对用户造成困扰,因此在实际开发中,除非必要,一般不建议直接修改系统设置,而是通过更友好的方式提示用户进行更改。
在Oracle 9i数据库系统中,处理时区转换是一个重要的任务,特别是在全球化的环境中,不同地区的数据交流需要准确地处理时间信息。Oracle 9i引入了一些新的特性来增强时区管理,以解决在早期版本中遇到的问题。在...
值得注意的是,时区更新可能会影响到依赖于日期和时间的数据处理,因此在进行此类操作前,建议备份数据库和相关配置,以防止不可预见的问题。 总之,"ORA-39405-时区版本36全补丁包"是为了确保Oracle 19c数据库能够...
在Android系统中,修改设备的时区...总的来说,创建这样一个自动修改时区的服务,需要对Android的Service机制、时间处理以及权限管理有深入理解。同时,合理设计和处理时区切换的逻辑,以确保服务的稳定性和用户体验。
TZ41补丁可能包含对Oracle数据库时区数据库的更新,这是一份包含了全球所有地区时区信息的庞大数据库,包括夏令时规则等复杂信息。 Oracle 19c是Oracle数据库的一个主要版本,它提供了许多新特性,如增强的性能、...
适用于19c所有oracle版本的34版本时区补丁 补丁用于解决ORA-39405 TSTZ版本问题的错误 用于把oracle19c数据库加TSTZ34版本的补丁 可 通过SQL> SELECT * FROM v$timezone_file;命令查询时区版本 打补丁参考...
禁止修改PC时间和时区,避免因系统时间被篡改带来的损失
Oracle数据库是全球广泛使用的大型关系型数据库管理系统,其在企业级应用中占据着重要的地位。然而,使用过程中难免会遇到各种错误,这些错误通常以ORA开头的错误代码形式出现。本篇文章将深入探讨Oracle错误及其...
这个过程确保了Oracle UCM能够正确地连接到Oracle数据库,从而实现对内容的存储和管理。配置过程中涉及的关键概念包括Oracle数据库的安装、Oracle UCM的安装配置、JDBC连接以及数据库用户的创建和权限设置。这些步骤...
理插入或更新操作,PreparedStatement 对象的优势更为显著。在批量处理中,你可以预先准备好 SQL 命令,然后多次设置参数并执行,避免了每次都...同时,定期对系统进行性能监控和调优,是确保系统持续高效运行的关键。
在Linux环境中,正确配置系统时区是非常重要的,它不仅影响到系统内部的时间计算,还会影响到依赖于系统时间的各种应用程序和服务。本文将详细介绍如何在Linux系统中修改系统时区。 #### 1. 查看当前时区 在Linux...
在“控制面板”中更改区域设置,然后尝试修改时区。 7. **系统更新或补丁**:有时,安装的Windows更新或补丁可能会影响时区设置。检查最近的更新,如果有必要,可以尝试卸载问题更新。 8. **服务状态**:Windows ...
这个操作系统的关键特性包括对性能的优化,特别是对于运行Oracle软件的服务器,以及与Red Hat Enterprise Linux的高度兼容性,使得用户可以在不改变现有基础设施的情况下,享受到Oracle提供的技术支持。 Oracle ...
删除和重建 Oracle 实例 Oracle 数据库是一种关系型数据库管理系统,广泛应用于企业级数据库应用中。然而,在某些情况下,我们需要删除和重建 Oracle 实例,以便解决一些问题或进行升级维护。在这篇文章中,我们将...