如何修改oracle数据库服务器的时间

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何修改oracle数据库服务器的时间相关的知识,希望对你有一定的参考价值。

服务器的操作系统是红帽子的Linux,安装的是oracle数据库,现在这台服务器的时间比实际的时间慢了十多分钟,现在我想改成实际的时间,我改怎么做?复杂吗?

oracle的服务器时间,是由服务器的系统时间控制的,所以要看服务器的具体类型,以windows 10和linux系统为例分别说明。

工具:windows 10、linux

windows 10操作步骤:

1、右键开始菜单,选择控制面板。

2、找到日期和时间,点击进入。

3、点击更改日期和时间。

4、进入后,修改日期时间,保存即可。


linux下更改方法:

1、以root用户登录到指定服务器。

2、执行命令

date -s '2017-07-11 23:58:00' 

这是将系统时间修改为2017年7月11日23点58分00秒。

3、修改后,reboot重启系统即可。

参考技术A 百度文库:https://wenku.baidu.com/view/aad6e83576a20029bc642d3a.html 参考技术B 修改一下系统时间即可,一般使用“date -s”命令来修改系统时间。比如将系统时间设定成1996年6月10日的命令如下。 #date -s 06/10/96 将系统时间设定成下午1点12分0秒的命令如下。 #date -s 13:12:00

另外按照LZ的情况,服务器可能是在内网使用的,如果服务器年数比较长,就会导致服务器bios时间不准确,最好是有台NTP时间服务器定时同步比较好本回答被提问者和网友采纳
参考技术C http://www.itpub.net/thread-1145076-1-1.html 参考技术D oracle的服务器时间,是由服务器的系统时间控制的,所以要看服务器的具体类型,以windows 10和linux系统为例分别说明。

工具:windows 10、linux

windows 10操作步骤:

1、右键开始菜单,选择控制面板。

2、找到日期和时间,点击进入。

3、点击更改日期和时间。

4、进入后,修改日期时间,保存即可。

linux下更改方法:

1、以root用户登录到指定服务器。

2、执行命令

date -s '2017-07-11 23:58:00'
这是将系统时间修改为2017年7月11日23点58分00秒。

3、修改后,reboot重启系统即可。

oracle 10如何修改字符集?

1.修改服务器端oracle默认字符集:打开“开始菜单”,在“运行”里输入“cmd”,回车,进入命令行编
辑模式。输入“sqlplus /nolog”,回车。修改默认字符集,以sysdba的身份执行SQL语句。输入“conn
sys/password@orcl as sysdba;”,回车。输入“select name,value$ from props$ where
name like
’%NLS%’;”,查看默认字符集。找到“NLS_CHARACTERSET”,其值为“WE8ISO8859P1”。
2.修改客户端sqlplus默认字符集:打开“开始菜单”,
在“运行”里输入“regedit”,回车,进入注册表编辑器。按CTRL+F,输入“NLS_LANG”,回车,找到sqlplus软件目录下的
NLS_LANG,其键值为“WE8ISO8859P1”。双击“NLS_LANG”,输入“ZHS16GBK”,点击“确定”按钮保存重启计算
机。
参考技术A 文章分类:数据库
Oracle修改字符集
2.3oracle数据库的字符集更改

A、oracle server 端 字符集查询

select userenv(‘language’) from dual

其中NLS_CHARACTERSET 为server端字符集

NLS_LANGUAGE 为 server端字符显示形式

B、查询oracle client端的字符集

$echo $NLS_LANG

如果发现你select 出来的数据是乱码,请把client端的字符集配置成与linux操作系统相同的字符集。
如果还是有乱码,则有可能是数据库中的数据存在问题,或者是oracle服务端的配置存在问题。

C、server端字符集修改

*****************************************************************

* 更改字符集步骤方法(WE8ISO8859P1 --> ZHS16GBK) *

*****************************************************************

SQL>

将数据库启动到RESTRICTED模式下做字符集更改:

SQL> conn /as sysdba

Connected.

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> startup mount

ORACLE instance started.

Total System Global Area 236000356 bytes

Fixed Size 451684 bytes

Variable Size 201326592 bytes

Database Buffers 33554432 bytes

Redo Buffers 667648 bytes

Database mounted.

SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;

System altered.

SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;

System altered.

SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0;

System altered.

SQL> alter database open;

Database altered.

SQL> ALTER DATABASE CHARACTER SET ZHS16GBK;

ALTER DATABASE CHARACTER SET ZHS16GBK

*

ERROR at line 1:

ORA-12712: new character set must be a superset of old character set

提示我们的字符集:新字符集必须为旧字符集的超集,这时我们可以跳过超集的检查做更改:

SQL> ALTER DATABASE character set INTERNAL_USE ZHS16GBK;

Database altered.

SQL> select * from v$nls_parameters;



19 rows selected.

重启检查是否更改完成:

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> startup

ORACLE instance started.

Total System Global Area 236000356 bytes

Fixed Size 451684 bytes

Variable Size 201326592 bytes

Database Buffers 33554432 bytes

Redo Buffers 667648 bytes

Database mounted.

Database opened.

SQL> select * from v$nls_parameters;



19 rows selected.

我们看到这个过程和之前ALTER DATABASE CHARACTER SET操作的内部过程是完全相同的,也就是说INTERNAL_USE提供的帮助就是使

Oracle数据库绕过了子集与超集的校验.

这一方法在某些方面是有用处的,比如测试;应用于产品环境大家应该格外小心,除了你以外,没有人会为此带来的后果负责:

结语(我们不妨再说一次):

对于DBA来说,有一个很重要的原则就是:不要把你的数据库置于危险的境地!

这就要求我们,在进行任何可能对数据库结构发生改变的操作之前,先做有效的备份,很多DBA没有备份的操作中得到了惨痛的教训

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

D、client端字符集修改

在 /home/oracle与 /root用户目录下的.bash_profile中

添加或修改 export NLS_LANG="AMERICAN_AMERICA.UTF8" 语句

关闭当前ssh窗口。

注意 NLS_LANG变量一定要配置正确否则会引起sqlplus 失效

选自:taotao学习空间
参考技术B 1、先用system和密码登陆SQLPLUS(如果不能直接以sys登陆到sqlplus的话),进入到sql*plus之后,可以通过conn / as sysdba转变为sysdba身份连接到数据库
2、开始修改编码
shutdown immediate;停止oracle服务以及监听。如果服务停止,这部可省略
startup mount;
alter system enable restricted session;
alter system set job_queue_processes=0;初始化设置job
alter database open;
alter database character set internal_use utf8;设置编码 (alter database character set internal_use ZHS16GBK;)(alter database character set internal_use WE8ISO8859P1;)
shutdown immediate; 关闭
startup; 重启
至此编码已经设置完成。
参考技术C oracle修改服务器端字符集:
SQL>SHUTDOWN IMMEDIATE;   

SQL>STARTUP MOUNT;   

SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION;   

SQL>ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;   

SQL>ALTER SYSTEM SET AQ_TM_PROCESSES=0;   

SQL>ALTER DATABASE OPEN;   

SQL>ALTER DATABASE CHARACTER SET ZHS16GBK;

如果出现了 ERROR at line 1: ORA-12712: new character set must be a superset of old character set     

SQL> ALTER DATABASE character set INTERNAL_USE zhs16gbk; # 使用INTERNAL_USE可以跳过超集的检查,

ALTER DATABASE character set INTERNAL_USE   

SQL>SHUTDOWN IMMEDIATE;   

SQL>STARTUP 再检查就发现已经把字符集修整过来了

NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
参考技术D 有一个配置文件名为dbappscfg.properties,修改该文件即可解决上述问题。这个文件的位置在$ORACLE_HOME\sysman\config目录下,用任何的文本编辑器打开该文件,在这个文件里面,找到这样一项

NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK

set nls_lang = AMERICAN_AMERICA.ZHS16GBK

以上是关于如何修改oracle数据库服务器的时间的主要内容,如果未能解决你的问题,请参考以下文章

如何查看和修改Oracle数据库服务器端的字符集

如何查看和修改Oracle数据库服务器端的字符集?

如何修改oracle的字符集编码

oracle 10如何修改字符集?

如何修改SA口令,数据库SA密码怎么改

oracle的NLS_LANGUAGE如何修改成SIMPLIFIED CHINESE_CHINA?