14 Replies Latest reply: Feb 1, 2012 7:44 PM by user705057 RSS

    CPU on Windows

    Adhika W
      Hi all,

      Recently I got a question about CPU (Critical Patch Update) in windows.
      Reading the note 854428.1 we can actually run the following command to determine the CPU already installed:
      opatch lsinventory -bugs_fixed | grep -i 'DATABASE PSU'
      of course in windows the command would be like:
      opatch lsinventory -bugs_fixed | findstr /I 'DATABASE PSU'
      When I execute the above command on a database with 10.2.0.4 patch 26 it doesn't show anything.

      I was hoping that I would get the result similar to the following, but I got nothing instead:
      8833297    9654987   Tue Oct 05 15:36:55 GMT 2010   DATABASE PSU 11.1.0.7.1 (INCLUDES CPUOCT2009)
      9209238    9654987   Tue Oct 05 15:36:55 GMT 2010   DATABASE PSU 11.1.0.7.2 (INCLUDES CPUJAN2010)
      9352179    9654987   Tue Oct 05 15:36:55 GMT 2010   DATABASE PSU 11.1.0.7.3 (INCLUDES CPUAPR2010)
      9654987    9654987   Tue Oct 05 15:36:55 GMT 2010   DATABASE PSU 11.1.0.7.4 (INCLUDES CPUJUL2010)
      Then I turned on my VM which is installed with oracle database 11.2.0.2 on linux and run that same command, but I don't get any result as well.
      The database was created using dbca for this linux machine.

      Can someone explain to me how I can verify if the CPU is already installed in a database?

      Thank you,
      Adhika
        • 1. Re: CPU on Windows
          Lakmal Rajapakse
          In windows there are no PSU so you cannot search for PSU. You can instead for patch bundles implemented:
          opatch lsinventory -bugs_fixed | findstr /I 'Patch'
          As for the oracle home on linux not producing any results - thats because you have not installed any PSUs on that home.
          • 2. Re: CPU on Windows
            Adhika W
            It seems that I may have a mistake in my command.
            I tried the following command
            opatch lsinventory -bugs_fixed | findstr /R "MLR.*CPU.*"
            and this is the result:
            5881721    8288854   Tue Oct 26 09:33:50 SGT 2010   MLR FOR 10.2.0.3 FOR CPUJAN2007
            5901891    8288854   Tue Oct 26 09:33:50 SGT 2010   MLR BUG FOR 10.2.0.3 FOR CPUAPR2007
            6079591    8288854   Tue Oct 26 09:33:50 SGT 2010   MLR BUG FOR 10.2.0.3 FOR CPUJUL2007
            6394981    8288854   Tue Oct 26 09:33:50 SGT 2010   MLR BUG FOR 10.2.0.3 FOR CPUOCT2007
            6646853    8288854   Tue Oct 26 09:33:50 SGT 2010   MLR BUG FOR 10203 FOR CPUJAN2008
            6864068    8288854   Tue Oct 26 09:33:50 SGT 2010   MLR BUG FOR 10.2.0.3 FOR CPUAPR2008
            is this correct?

            Thank you,
            Adhika
            • 3. Re: CPU on Windows
              Lakmal Rajapakse
              Just do run the following this will show the patch bundles:
              opatch lsinventory
              • 4. Re: CPU on Windows
                Adhika W
                That's not what I need.
                I need to verify that the Critical Patch Update is installed.
                • 5. Re: CPU on Windows
                  CKPT
                  adhika wrote:
                  That's not what I need.
                  I need to verify that the Critical Patch Update is installed.
                  Here you have to understand two things 1) PSU 2) CPU
                  make sure which one you want and which one you are searching.
                  • 6. Re: CPU on Windows
                    Adhika W
                    I'm searching for the CPU
                    • 7. Re: CPU on Windows
                      CKPT
                      adhika wrote:
                      I'm searching for the CPU
                      Then see below what you posted in your first post
                      Recently I got a question about CPU (Critical Patch Update) in windows.
                      Reading the note 854428.1 we can actually run the following command to determine the CPU already installed:
                      opatch lsinventory -bugs_fixed | grep -i 'DATABASE *PSU*
                      That metalink note 854428.1, belongs to PSU, but your question belongs to CPU, so first clear what you are looking for and what you want to do?
                      • 8. Re: CPU on Windows
                        Adhika W
                        Hi CKPT,

                        That is true, but if you look at the result, it contains the CPU also
                        8833297    9654987   Tue Oct 05 15:36:55 GMT 2010   DATABASE PSU 11.1.0.7.1 (INCLUDES CPUOCT2009)
                        9209238    9654987   Tue Oct 05 15:36:55 GMT 2010   DATABASE PSU 11.1.0.7.2 (INCLUDES CPUJAN2010)
                        9352179    9654987   Tue Oct 05 15:36:55 GMT 2010   DATABASE PSU 11.1.0.7.3 (INCLUDES CPUAPR2010)
                        9654987    9654987   Tue Oct 05 15:36:55 GMT 2010   DATABASE PSU 11.1.0.7.4 (INCLUDES CPUJUL2010)
                        look at those includes at the end of each PSU.
                        That is what I'm looking for and hope I can find similar thing in windows.

                        Thank you,
                        Adhika
                        • 9. Re: CPU on Windows
                          CKPT
                          adhika wrote:
                          Hi CKPT,

                          That is true, but if you look at the result, it contains the CPU also
                          8833297    9654987   Tue Oct 05 15:36:55 GMT 2010   DATABASE PSU 11.1.0.7.1 (INCLUDES CPUOCT2009)
                          9209238    9654987   Tue Oct 05 15:36:55 GMT 2010   DATABASE PSU 11.1.0.7.2 (INCLUDES CPUJAN2010)
                          9352179    9654987   Tue Oct 05 15:36:55 GMT 2010   DATABASE PSU 11.1.0.7.3 (INCLUDES CPUAPR2010)
                          9654987    9654987   Tue Oct 05 15:36:55 GMT 2010   DATABASE PSU 11.1.0.7.4 (INCLUDES CPUJUL2010)
                          Thank you,
                          Adhika
                          yes its Cumulatives.

                          look at those includes at the end of each PSU.
                          That is what I'm looking for and hope I can find similar thing in windows.
                          Well, Metalink documents vary from OS to OS,
                          Even i have one metalink document to check whether it is applied or not, but the same document i have not find out in Windows environment. So then you have to check only by "opatch lsinventory" or from views.

                          *How to confirm that a Critical Patch Update (CPU) has been installed in Linux / UNIX [ID 821263.1]*
                          • 10. Re: CPU on Windows
                            Aman....
                            Well, I am not sure that you are getting it correctly. The PSU's are not for Windows platform.
                            http://blogs.oracle.com/security/entry/the_benefits_of_database_serve

                            And from the above post,
                            >
                            Note that Patch Set Updates are available only for Oracle Database Server 10.2.0.4 and later on platforms other than Windows. Windows Database bundles do however include the same fixes as the Patch Set Updates when they are released>

                            Aman....
                            • 11. Re: CPU on Windows
                              Adhika W
                              Let's make it clear then.
                              I'm looking for a way to verify that the CPU which normally included in Patch Bundles or Patch Set has been applied.

                              That is the reason why I'm using the note 854428.1 to show that although it is a document for PSU, it also display the results that the CPU are included in the PSU.
                              Unfortunately the command is for Linux or Unix and for windows there's no further explanations of how the result would appear.
                              It is, however, explained in the link you provided that PSU is included in Windows Patch Bundles which is released regularly.
                              >
                              Note that Patch Set Updates are available only for Oracle Database Server 10.2.0.4 and later on platforms other than Windows. Windows Database bundles do however include the same fixes as the Patch Set Updates when they are released.
                              >
                              What I need is just a simple prove to show that the CPU is already applied.
                              Inside that note 854428.1, there's a command to do that in Linux
                              opatch lsinventory -bugs_fixed | grep -i 'DATABASE PSU'
                              Since PSU is not for windows, then I should be capturing different word inside the findstr.
                              This leads me to ask whether the command below is corrent for the Windows OS:
                              opatch lsinventory -bugs_fixed | findstr /R "MLR.*CPU.*"
                              The result of that command is:
                              5881721    8288854   Tue Oct 26 09:33:50 SGT 2010   MLR FOR 10.2.0.3 FOR CPUJAN2007
                              5901891    8288854   Tue Oct 26 09:33:50 SGT 2010   MLR BUG FOR 10.2.0.3 FOR CPUAPR2007
                              6079591    8288854   Tue Oct 26 09:33:50 SGT 2010   MLR BUG FOR 10.2.0.3 FOR CPUJUL2007
                              6394981    8288854   Tue Oct 26 09:33:50 SGT 2010   MLR BUG FOR 10.2.0.3 FOR CPUOCT2007
                              6646853    8288854   Tue Oct 26 09:33:50 SGT 2010   MLR BUG FOR 10203 FOR CPUJAN2008
                              6864068    8288854   Tue Oct 26 09:33:50 SGT 2010   MLR BUG FOR 10.2.0.3 FOR CPUAPR2008
                              I hope this clearly explain what I want to achieve and how someone can provide better explanation for that.

                              Thank you,
                              Adhika

                              Edited by: adhika on Jan 14, 2012 8:49 AM
                              • 12. Re: CPU on Windows
                                user705057
                                The patching for Windows and Unix is very different. The '(Includes CPUMMMYYYY)' in the PSU patch abstracts is not intended as a way to confirm that a particular CPU level is applied via a PSU patch.

                                One way to determine whether the current Windows Bundle installed has CPU content is as follows.

                                Review the CPU Release's document titled 'Patch Set Update and Critical Patch Update MONTH YYYY Availability Document'. It will list the minimum Windows Bundle Patch that includes the CPU content. Using opatch lsinventory determine whether the specified (or later) Windows Bundle has been installed.
                                • 13. Re: CPU on Windows
                                  Adhika W
                                  Yes, I perfectly understand that patching an Oracle database in Windows and Unix/Linux is different.
                                  That's why I use different command to capture the bug fixed.

                                  I believe you also understand that Windows Bundle Patch is a cumulative update. So, with the latest Bundle Patch you have, you should be able to see what patches have been applied.
                                  With the cumulative updates applied that mean I should be able to see which CPU I have installed in the environment.
                                  There should be a way to see that as similar as running "SELECT version, id, comments FROM sys.registry$history" in sqlplus and I don't mind if that similar way is only through the opatch lsinventory.
                                  opatch lsinventory -bugs_fixed | grep -i 'DATABASE *PSU*
                                  That command in UNIX/Linux showed that what CPU each PSU has included.
                                  I'm just looking for similar way in Windows.
                                  I was asking whether this command:
                                  opatch lsinventory -bugs_fixed | findstr /R "MLR.*CPU.*"
                                  is the right command for Windows. I just need to know whether that is the similar lines I should be capturing for CPU updates in Windows.

                                  Regards,
                                  Adhika
                                  • 14. Re: CPU on Windows
                                    user705057
                                    Hi,

                                    There is no equivalent in Windows Bundles. I'll forward your request to the right team to review.

                                    Please note that the method described for Unix, relies on the PSU bug's abstract and the format may change in the future.