【时区设置不当会有什么问题】
当进行海外项目运维的时候,常常会遇到时区设置的问题。假设时区设置不当 或者 同样项目的server之间的时区不一致,都会有导致项目的数据异常的风险。
假设数据表的字段使用了date类型的字段,字段的默认值是sysdate。而且程序插入记录的时候使用了字段的默认值,那么就有可能导致数据异常。在改动数据库server的时区时。也是须要慎重操作的。
【server时间同步的方法】
# 时间同步server请改动为要求的地址(建议使用Windows的地址。由于世界上大部分个人电脑使用的是Windows操作系统。据CNZZ数据,在国内操作系统市场上,2014年1月份,微软Windows系统依然称霸市场。份额为90.63%)
物理server环境:
*/10 * * * * /usr/sbin/ntpdate -u time.windows.com ; /sbin/clock -w >> /tmp/clock.log
虚拟机环境:
*/10 * * * * /usr/sbin/ntpdate -u time.windows.com >> /tmp/clock.log
【怎样改动线上项目的时区设置】
替换/etc/localtime的方式会马上对操作系统生效。可是假设操作系统执行有数据库程序软件。数据库是不会马上生效的,必须重新启动数据库才干够。所以, 假设当前数据库的时区已经有问题了。建议保持现状 或者跟程序的开发确认,给出可行的解决方式之后。在进行数据库维护。改动时区。当然针对刚刚安装的、没有不论什么业务数据的数据库,能够在改动完操作系统时区之后。进行数据库的又一次安装,保障数据库元数据的时区是没有问题的。
切记:不能出故障,假设做有出现问题的风险。而不做能保持现状。那么什么都不做就是做好的选择。
【海外各地区的时区和设置方式】
# TimeZone: UTC+8,CST
# Area: China
ln -fs /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
sed -i 's/^ZONE.*/ZONE="Asia/Shanghai"/g' /etc/sysconfig/clock
# TimeZone: UTC+8,SGT
# Area: Singapore
ln -fs /usr/share/zoneinfo/Singapore /etc/localtime
sed -i 's/^ZONE.*/ZONE="Singapore"/g' /etc/sysconfig/clock
# TimeZone: UTC+7,ICT
# Area: Vietnam
ln -fs /usr/share/zoneinfo/Asia/Ho_Chi_Minh /etc/localtime
sed -i 's/^ZONE.*/ZONE="Asia/Ho_Chi_Minh"/g' /etc/sysconfig/clock
# TimeZone: UTC-8,PST
# Area: US, California
ln -sf /usr/share/zoneinfo/America/Los_Angeles /etc/localtime
sed -i 's/^ZONE.*/ZONE="America/Los_Angeles"/g' /etc/sysconfig/clock
# TimeZone: UTC+8,EST
# Area: Au
/usr/share/zoneinfo/Australia/Sydney
ln -sf /usr/share/zoneinfo/Australia/Sydney /etc/localtime
sed -i 's/^ZONE.*/ZONE="Australia/Sydney"/g' /etc/sysconfig/clock
# TimeZone: UTC+1,CEST
# Area: German
ln -fs /usr/share/zoneinfo/Europe/Berlin /etc/localtime
sed -i 's/^ZONE.*/ZONE="Europe/Berlin"/g' /etc/sysconfig/clock
# set UTC time
ln -fs /usr/share/zoneinfo/UTC /etc/localtime
sed -i 's/^ZONE.*/ZONE="UTC"/g' /etc/sysconfig/clock
【时区】
维基百科: http://zh.m.wikipedia.org/wiki/%E6%97%B6%E5%8C%BA%E5%88%97%E8%A1%A8