This article is written for Turkey's upcoming DST change, that is caused by the elections in Turkey. The elections will be done on 1.Nov.2015, so the government has deviced delay the DST change for two weeks.
So, normally, the summer time in Turkey would end on 25.Oct.2015, but this year, it will end on 08.Nov.2015.
The problem that made me writing this article is that our Operating Systems, on which our databases and applications are running, does not know anything about this change. Even we, as citizens, have learned it recently..
Well.. Somehow we need to tell this change to our Operating Systems, so that the Operating Systems can adjust the time when the 8 Nov 2015 will come.
In other words, up-to-date Linux Operating Systems (Windows also) still think that Turkey's summer time will end on 25 Oct 2015, and if we can't do anything about it, Linux Operating Systems, which are configured for Turkey timezone, will take back the time when 25 Oct 2015 comes.
So, in order to prevent it, we patch the Operating System.
These type of patches are called as DST patches and they are available publically.
Here is the links for Oracle Linux 5 and 6;
OL5 :
http://public-yum.oracle.com/repo/OracleLinux/OL5/latest/x86_64/getPackage/tzdata-java-2015g-1.el5.x86_64.rpm
http://public-yum.oracle.com/repo/OracleLinux/OL5/latest/x86_64/getPackage/tzdata-2015g-1.el5.x86_64.rpm
OL6 :
http://public-yum.oracle.com/repo/OracleLinux/OL6/latest/x86_64/getPackage/tzdata-java-2015g-2.el6.noarch.rpm
http://public-yum.oracle.com/repo/OracleLinux/OL6/latest/x86_64/ getPackage/tzdata-2015g-2.el6.noarch.rpm
So, the question "Do I need those patches even if I have a Ntp server running on my environment"? is already answered in this blog: See: http://ermanarslan.blogspot.com.tr/2014/04/ntp-and-timezone-data-why-do-we-need.html
the answer is YES!
Well, I ll keep it short and give you some hints about this patching work.
We just apply these patches online using the command "rpm -Uvh <rpm_name>.rpm"
After applying the patches, a planned restart can be done later (Restart apps + db..)
If our system is an Exadata , we may encounter the following:
Error: Failed dependencies:
tzdata-java = 2015d-1.el6 is needed by (installed) exadata-sun-computenode-exact-12.1.2.1.2.150617.1-1.x86_64
error: Failed dependencies:
tzdata = 2015d-1.el6 is needed by (installed) exadata-sun-cellnode-exact-12.1.2.1.2.150617.1-1.x86_64
In order to prevent these errors, we remove the package named "exact" and install the packages "tzdata" and "tzdata-java" after that.
For example:
rpm -e exadata-sun-computenode-exact-12.1.2.1.2.150617.1-1.x86_64 --nodeps
rpm -Uvh tzdata-2015g-2.el6.noarch.rpm
rpm -Uvh tzdata-java-2015g-2.el6.noarch.rpm
If we are on Exadata, it is recommended to reboot the compute nodes.
So, after applying the patches, there is one more thing that we need to be sure of.
That is, we need to check that our current date should be true.
For Turkey, the command "date" should produce an output that has EEST inside of it. EEST means the summer time. The reason for this is that timezone data is configured for EEST. Linux will wait till 04:00:00 in EEST and then take back the time. So for example, if our date is in EET, Linux will wait till 05:00:00 as 05:00:00 in EET = 04:00:00 EEST and we don't want that.
So, if we execute the date command and see the "EET" rather than "EEST", we need to update our time to be EEST using "date -s" command.
Lastly, DST rules are automatically considered by Linux, nothing needed to be restarted or nothing should be set (like hwclock and etc..)
the only needed things are:
apply the dst patches & be sure that your system is in the relevant timezone and that's it.
Well.. Somehow we need to tell this change to our Operating Systems, so that the Operating Systems can adjust the time when the 8 Nov 2015 will come.
In other words, up-to-date Linux Operating Systems (Windows also) still think that Turkey's summer time will end on 25 Oct 2015, and if we can't do anything about it, Linux Operating Systems, which are configured for Turkey timezone, will take back the time when 25 Oct 2015 comes.
So, in order to prevent it, we patch the Operating System.
These type of patches are called as DST patches and they are available publically.
Here is the links for Oracle Linux 5 and 6;
OL5 :
http://public-yum.oracle.com/repo/OracleLinux/OL5/latest/x86_64/getPackage/tzdata-java-2015g-1.el5.x86_64.rpm
http://public-yum.oracle.com/repo/OracleLinux/OL5/latest/x86_64/getPackage/tzdata-2015g-1.el5.x86_64.rpm
OL6 :
http://public-yum.oracle.com/repo/OracleLinux/OL6/latest/x86_64/getPackage/tzdata-java-2015g-2.el6.noarch.rpm
http://public-yum.oracle.com/repo/OracleLinux/OL6/latest/x86_64/ getPackage/tzdata-2015g-2.el6.noarch.rpm
So, the question "Do I need those patches even if I have a Ntp server running on my environment"? is already answered in this blog: See: http://ermanarslan.blogspot.com.tr/2014/04/ntp-and-timezone-data-why-do-we-need.html
the answer is YES!
Well, I ll keep it short and give you some hints about this patching work.
We just apply these patches online using the command "rpm -Uvh <rpm_name>.rpm"
After applying the patches, a planned restart can be done later (Restart apps + db..)
If our system is an Exadata , we may encounter the following:
Error: Failed dependencies:
tzdata-java = 2015d-1.el6 is needed by (installed) exadata-sun-computenode-exact-12.1.2.1.2.150617.1-1.x86_64
error: Failed dependencies:
tzdata = 2015d-1.el6 is needed by (installed) exadata-sun-cellnode-exact-12.1.2.1.2.150617.1-1.x86_64
In order to prevent these errors, we remove the package named "exact" and install the packages "tzdata" and "tzdata-java" after that.
For example:
rpm -e exadata-sun-computenode-exact-12.1.2.1.2.150617.1-1.x86_64 --nodeps
rpm -Uvh tzdata-2015g-2.el6.noarch.rpm
rpm -Uvh tzdata-java-2015g-2.el6.noarch.rpm
If we are on Exadata, it is recommended to reboot the compute nodes.
So, after applying the patches, there is one more thing that we need to be sure of.
That is, we need to check that our current date should be true.
For Turkey, the command "date" should produce an output that has EEST inside of it. EEST means the summer time. The reason for this is that timezone data is configured for EEST. Linux will wait till 04:00:00 in EEST and then take back the time. So for example, if our date is in EET, Linux will wait till 05:00:00 as 05:00:00 in EET = 04:00:00 EEST and we don't want that.
So, if we execute the date command and see the "EET" rather than "EEST", we need to update our time to be EEST using "date -s" command.
Lastly, DST rules are automatically considered by Linux, nothing needed to be restarted or nothing should be set (like hwclock and etc..)
the only needed things are:
apply the dst patches & be sure that your system is in the relevant timezone and that's it.
Dear Erman,
ReplyDeleteI appreciate if you may answer my question below. Thank you in advance.
As you may know, the Turkish Government has decided not to change the DST from now on. I wonder how we should patch our Solaris 10 machines. Since Oracle does not support Solaris 10 anymore, there will be no patch I guess. Is there a way to configure Solaris 10 so that it won't change DST?
Best Regards,
Sevtac
sevtacaldeniz@yahoo.com
Hi Sevtac,
ReplyDeleteSolaris 10 seems supported? (Solaris 10 Premier support ends -> Jan 2018)
So, customers who need the solution, should open a Service Request through MOS and request the patch.
A motivating discussion is definitely worth comment.
ReplyDeleteI think that you ought to publish more about this subject, it might not be a taboo matter but
usually folks don't discuss such issues. To
the next! Kind regards!!