Re: how to check 32 bit -> 64 bit migration

From: Martin Berger <martin.a.berger_at_gmail.com>
Date: Wed, 30 Nov 2016 13:10:39 +0100
Message-ID: <CALH8A90JQVgAOY=ZheAbse5-23WwR8ck9bMpzjWczx=hZhymbQ_at_mail.gmail.com>



Can you try to
select object_type, min(LAST_DDL_TIME) from dba_objects group by object_type order by object_type;
When all packages/procedures/... are recompiled after you changed 32<->64 bit, you should be fine?

Martin

2016-11-30 6:57 GMT+01:00 Ls Cheng <exriscer_at_gmail.com>:

> Hi Hans
>
> You are right, that is what I want to know, how to check if 32 bit to 64
> bit conversion script (utlirp.sql) has been run. So far there is nothing
> which shows this!
>
> Ram, all the suggestion in this thread is how to detect binary bitness not
> the database bitness which is what I am interested.
>
>
>
> Thanks
>
> On Wed, Nov 30, 2016 at 5:50 AM, Hans Forbrich <fuzzy.graybeard_at_gmail.com>
> wrote:
>
>> While utlrp may be run as required, OP is discussing whether utlirp (note
>> the 'i' ... 'invalidate') has been run because it is used to ensure all
>> packages, procedures, etc. are recompiled by invalidating them first.
>>
>> Subtle, but important, difference especially when converting from 32 to
>> 64 bit environments.
>>
>> I believe OP simply wants to find out whether there is any PL/SQL that
>> needs to be recompiled to ensure it is in the correct format.
>>
>> /Hans
>>
>>
>> On 2016-11-29 7:08 PM, Ram Srinivasan wrote:
>>
>> Your first question was "Does anyone know if a database is currently in
>> 64 or 32 bit?".
>> The answer is : select
>> 2 length(addr)*4 || '-bits'
>> 3 from
>> 4 v$process
>> 5 where
>> 6 ROWNUM =1;
>> which gives you that the database is currently in 64 bit.
>> If you want to find out at what bit rate was the database created, then
>> you have to use the case statement that I gave you.
>>
>> After you ran both the queries, what you got as out is correct. That
>> is, the database was first created as 32 bit, but it is currently at 64 bit.
>>
>> Now if you want to know whether someone has already run utlrp.sql,
>> there is no query for that. However, you can run the utlrp.sql any number
>> of times. Nothing will happen to the database. If you are unsure of
>> whether anyone has run the utlrp.sql script, you can run it again. No
>> problem.
>>
>> Ram
>>
>> On Tue, Nov 29, 2016 at 7:17 PM, Ls Cheng <exriscer_at_gmail.com> wrote:
>>
>>> this is before converting 32 bit database to 64 bit
>>>
>>>
>>> SQL> select platform_name from v$database;
>>>
>>> PLATFORM_NAME
>>> ------------------------------------------------------------
>>> -----------------------------------------
>>> Linux x86 64-bit
>>>
>>> SQL> select * from v$version;
>>>
>>> BANNER
>>> CON_ID
>>> --------------------------------------------------------------------------------
>>> ----------
>>> Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit
>>> Production 0
>>> PL/SQL Release 12.1.0.2.0 - Production
>>> 0
>>> CORE 12.1.0.2.0 Production
>>> 0
>>> TNS for Linux: Version 12.1.0.2.0 - Production
>>> 0
>>> NLSRTL Version 12.1.0.2.0 - Production
>>> 0
>>>
>>> SQL> select
>>> 2 length(addr)*4 || '-bits'
>>> 3 from
>>> 4 v$process
>>> 5 where
>>> 6 ROWNUM =1;
>>>
>>> LENGTH(ADDR)*4||'-BITS'
>>> ---------------------------------------------
>>> 64-bits
>>>
>>> SQL> select
>>> 2 case
>>> 3 when INSTR(metadata,'B047') > 1 then 'The Database is 64 Bit.'
>>> 4 when INSTR(metadata,'B023') > 1 then 'The Database is 32 Bit.'
>>> 5 end as Result
>>> 6 from sys.kopm$ ;
>>>
>>> RESULT
>>> -----------------------
>>> The Database is 32 Bit.
>>>
>>>
>>>
>>> this is after running URLIRP (32 bit to 64 bit conversion)
>>>
>>> SQL> select platform_name from v$database;
>>>
>>> PLATFORM_NAME
>>> ------------------------------------------------------------
>>> -----------------------------------------
>>> Linux x86 64-bit
>>>
>>> SQL> select * from v$version;
>>>
>>> BANNER
>>> CON_ID
>>> --------------------------------------------------------------------------------
>>> ----------
>>> Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit
>>> Production 0
>>> PL/SQL Release 12.1.0.2.0 - Production
>>> 0
>>> CORE 12.1.0.2.0 Production
>>> 0
>>> TNS for Linux: Version 12.1.0.2.0 - Production
>>> 0
>>> NLSRTL Version 12.1.0.2.0 - Production
>>> 0
>>>
>>> SQL> select
>>> 2 length(addr)*4 || '-bits'
>>> 3 from
>>> 4 v$process
>>> 5 where
>>> 6 ROWNUM =1;
>>>
>>> LENGTH(ADDR)*4||'-BITS'
>>> ---------------------------------------------
>>> 64-bits
>>>
>>> SQL> select
>>> 2 case
>>> 3 when INSTR(metadata,'B047') > 1 then 'The Database is 64 Bit.'
>>> 4 when INSTR(metadata,'B023') > 1 then 'The Database is 32 Bit.'
>>> 5 end as Result
>>> 6 from sys.kopm$ ;
>>>
>>> RESULT
>>> -----------------------
>>> The Database is 32 Bit.
>>>
>>>
>>>
>>> as we can see there is no difference so the queries provided gives no
>>> useful info.... any more suggestions?
>>>
>>> Thanks
>>>
>>>
>>>
>>>
>>> On Tue, Nov 29, 2016 at 5:01 PM, Ls Cheng <exriscer_at_gmail.com> wrote:
>>>
>>>> Hi Ram
>>>>
>>>>
>>>> I have used that query as well, I dont want to know if the database was
>>>> created in 32 bit, I want to know if it currently runs in 64 bit mode, that
>>>> is if UTLIRP.SQL has been run.
>>>>
>>>> I will test all your sugegstion anyways in a few hours time and let you
>>>> know
>>>>
>>>> Thanks!
>>>>
>>>>
>>>> On Tue, Nov 29, 2016 at 12:37 PM, Ram Srinivasan <
>>>> srinivasanram2004_at_gmail.com> wrote:
>>>>
>>>>> Cheng:
>>>>> Try this. I used this query long time ago:
>>>>>
>>>>>
>>>>> /* To identify whether a database was created as 32-bit or 64-bit,
>>>>> execute the following SQL statement: */
>>>>>
>>>>> select
>>>>> case
>>>>> when INSTR(metadata,'B047') > 1 then 'The Database is 64 Bit.'
>>>>> when INSTR(metadata,'B023') > 1 then 'The Database is 32 Bit.'
>>>>> end as Result
>>>>> from sys.kopm$ ;
>>>>>
>>>>> /*
>>>>> If the output references the string 'B023' , then it indicates that
>>>>> the database was created as 32-bit.
>>>>>
>>>>> If the output references the string 'B047' then it indicates that the
>>>>> database was created as 64-bit.
>>>>> */
>>>>>
>>>>> On Tue, Nov 29, 2016 at 3:56 AM, Ls Cheng <exriscer_at_gmail.com> wrote:
>>>>>
>>>>>> Hi Ram
>>>>>>
>>>>>> I already tested that, once a database is migrated to 64 bit and
>>>>>> utlirp.sql is NOT executed that query returns 64 bit too!
>>>>>>
>>>>>> Thanks
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Tue, Nov 29, 2016 at 1:40 AM, Ram Srinivasan <
>>>>>> srinivasanram2004_at_gmail.com> wrote:
>>>>>>
>>>>>>> Try this:
>>>>>>>
>>>>>>> select
>>>>>>> length(addr)*4 || '-bits'
>>>>>>> from
>>>>>>> v$process
>>>>>>> where
>>>>>>> ROWNUM =1;
>>>>>>>
>>>>>>> On Mon, Nov 28, 2016 at 1:53 PM, Ls Cheng <exriscer_at_gmail.com>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Hi
>>>>>>>>
>>>>>>>> Does anyone know if a database is currently in 64 or 32 bit?
>>>>>>>>
>>>>>>>> IHAC migrated a few database a couple of weeks ago from Linux x86
>>>>>>>> to Linux x86_64 and they unsure if utlirp.sql is run in all of them.
>>>>>>>>
>>>>>>>> Anyone know how to check if the database is running in 64 bit mode?
>>>>>>>> All I have found is how to check binary bitness but not the database.
>>>>>>>>
>>>>>>>>
>>>>>>>> Thanks
>>>>>>>>
>>>>>>>>
>>>>>>>>

--
http://www.freelists.org/webpage/oracle-l
Received on Wed Nov 30 2016 - 13:10:39 CET

Original text of this message