Home » Infrastructure » Unix » Stack in solaris 10
Stack in solaris 10 [message #389228] Fri, 27 February 2009 12:37 Go to next message
trantuananh24hg
Messages: 744
Registered: January 2007
Location: Ha Noi, Viet Nam
Senior Member
Hi all!

Today, when I configured DataGuard in Solaris 10, I faced of one big problem:
- The stack bytes in primary database server is 8192 but in physical standby database server is 10240 bytes. So that, all of the datafiles that was copied from primary database did not work normally, including control file. And I must reset stack in the physical standby database server. However,
- Whenever I set it by
$ ulimit -s 8192
$ ulimit -s
8192


and I reboot machine, it - stack did not come to 8192 bytes, but is still 10240 bytes.

How do I resolve it?
Thank you very much!
Re: Stack in solaris 10 [message #389230 is a reply to message #389228] Fri, 27 February 2009 12:54 Go to previous messageGo to next message
Mahesh Rajendran
Messages: 10708
Registered: March 2002
Location: oracleDocoVille
Senior Member
Account Moderator
First talk to your sysadmin.
There are certain parameters in /etc/system that can be altered to make this change permanent system wide. But I do not recommend it. Most probably your sysadmins will hate it.
You can just set it to the Oracle's environment by adding it to the profile.
Re: Stack in solaris 10 [message #389346 is a reply to message #389230] Sun, 01 March 2009 00:48 Go to previous messageGo to next message
trantuananh24hg
Messages: 744
Registered: January 2007
Location: Ha Noi, Viet Nam
Senior Member
Thank you for your reply, Mahesh Rajendran!

First time, I am sorry for my answer: There is not system admin in my company of Sun_Solaris now, he just left for 3 weeks, so that, I must work including of his job till we recruit someone.

Second: Because I'm amateur of Solaris admin, and I did not understand of:
+ I saw in Goolge, some sites/articles/referent document in which, pointed that I could set stack in .profile, eg: ulimit -s 8192 to force Oracle_user uses 8192 bytes.
+ But I really do not understand: Why can I set softly, not hardly? Shall Oracle's profile knows "Oh, the administrator set stack to 8192 bytes, we-oracle's user must use it"? And If I set it, can I use ftp (using bi command) to transfer files from Primary (with standard stack=8192) to Standby (with forcing stack=8192 in .profile)? Does it - Standby - understand of them - transferred files? Does it not alert me "Oracle do not obtain header of block file"?.
+ Please forgive me of so much questions, anytime that I've got to maintain database, to build, to configure some thing, I must work in midnight, and I did it in 3 nights continuous.

Thank you very much!

[Updated on: Sun, 01 March 2009 00:55]

Report message to a moderator

Re: Stack in solaris 10 [message #389351 is a reply to message #389346] Sun, 01 March 2009 05:56 Go to previous messageGo to next message
Mahesh Rajendran
Messages: 10708
Registered: March 2002
Location: oracleDocoVille
Senior Member
Account Moderator
>> Why can I set softly, not hardly
Because it will be effective system wide.
It can ***affect*** other stuff.
Minimize it by setting only to Oracle's environment.

>>(with forcing stack=8192 in .profile)? Does it - Standby - understand of them - transferred files?
It should understand .profile setings.
Though I have not tested it with standby or even a regular environment.
Re: Stack in solaris 10 [message #389398 is a reply to message #389351] Sun, 01 March 2009 20:48 Go to previous messageGo to next message
trantuananh24hg
Messages: 744
Registered: January 2007
Location: Ha Noi, Viet Nam
Senior Member
Thank you, Mahesh Rajendran!
I've got an idea for testing it. However, let me tell you about the machines.
Primary database: SunSparc V890, 16gb physical memory, 4 CPUs
Physical Standby database: HP - Proliant ML 350, 8gb physical memory, 2 CPUs - but, Solaris 10 Sad

According to the DataGuard Oracle documentation - Hardware and Operating System Requirements
The Server of Primary DB & the server of Standby Database may have not same CPUs, Ram, Storage,...

Quote:

2.3.1 Hardware and Operating System Requirements

The following list describes hardware and operating system requirements for using Data Guard:

* All members of a Data Guard configuration must run an Oracle image that is built for the same platform.

For example, this means a Data Guard configuration with a primary database on a 32-bit Linux on Intel system can have a standby database that is configured on a 32-bit Linux on Intel system. However, a primary database on a 64-bit HP-UX system can also be configured with a standby database on a 32-bit HP-UX system, as long as both servers are running 32-bit images.

* The hardware (for example, the number of CPUs, memory size, storage configuration) can be different between the primary and standby systems. If the standby system is smaller than the primary system, you may have to restrict the work that can be done on the standby system after a switchover or failover. The standby system must have enough resources available to receive and apply all redo data from the primary database. The logical standby database requires additional resources to translate the redo data into SQL statements and then execute the SQL on the logical standby database.

* The operating system running on the primary and standby locations must be the same, but the operating system release does not need to be the same. In addition, the standby database can use a different directory structure from the primary database.


"http://download.oracle.com/docs/cd/B19306_01/server.102/b14239/standby.htm#g76838". Hardware and Operating System Requirements[/a href]

So that, I would not be worried about my physical standby server.

And it's the exercise I am going to do:
In Standby:
1- Edit .profile to set stack=8192 bytes for oracle
2- Re-prepare all of init.ora, directory structures
3- Identify storage size remain

In Primary:
2- Transferring all of FullBackup with archive_log_file to Standby.
3- Using those backup and file to restore & recovery this database in standby.
4- Using NID to rename the database. In this case, VNP (Primary) to VNPSTBY (standby).

Step 4 may be not necessary.

If I can do it, I will confirm:
- The Standby's server work normally
- Setting stack in .profile is the good step.
- Finally, I will remove the testing database in Standby's server, to prepare re-configure really physical standby database.

May you clarify me more?

Thank you very much!

Re: Stack in solaris 10 [message #389402 is a reply to message #389398] Sun, 01 March 2009 21:36 Go to previous message
trantuananh24hg
Messages: 744
Registered: January 2007
Location: Ha Noi, Viet Nam
Senior Member
Both of Primary & Standby support 64 & 32 bit
Primary
$ isainfo -v
64-bit sparcv9 applications
        vis2 vis popc
32-bit sparc applications
        vis2 vis popc v8plus div32 mul32
$


Standby
$ isainfo -v
64-bit amd64 applications
        ssse3 cx16 mon sse3 sse2 sse fxsr mmx cmov amd_sysc cx8 tsc fpu
32-bit i386 applications
        ssse3 cx16 mon sse3 sse2 sse fxsr mmx cmov sep cx8 tsc fpu
$


However, I found different something between Primary & Standby database:
Primary Database
$ df -g | grep "block size"
/                  (/dev/md/dsk/d10   ):         8192 block size          1024 frag size
/devices           (/devices          ):          512 block size           512 frag size
/system/contract   (ctfs              ):          512 block size           512 frag size
/proc              (proc              ):          512 block size           512 frag size
/etc/mnttab        (mnttab            ):          512 block size           512 frag size
/etc/svc/volatile  (swap              ):         8192 block size          8192 frag size
/system/object     (objfs             ):          512 block size           512 frag size
/platform/sun4u-us3/lib/libc_psr.so.1(/platform/sun4u-us3/lib/libc_psr/libc_psr_
hwcap2.so.1):     8192 block size          1024 frag size
/platform/sun4u-us3/lib/sparcv9/libc_psr.so.1(/platform/sun4u-us3/lib/sparcv9/li
bc_psr/libc_psr_hwcap2.so.1):     8192 block size          1024 frag size
/dev/fd            (fd                ):         1024 block size          1024 frag size
/tmp               (swap              ):         8192 block size          8192 frag size
/var/run           (swap              ):         8192 block size          8192 frag size
/vnporadataSYSTEM  (/dev/dsk/c4t600A0B8000482FB20000045247E9D08Ad0s0):       8192 block size          1024 frag size
/vnprctl           (/dev/dsk/c4t600A0B8000482FB20000044C47E9CED8d0s0):       8192 block size          1024 frag size
/u01               (/dev/md/dsk/d30   ):         8192 block size          1024 frag size
/u02               (/dev/md/dsk/d40   ):         8192 block size          1024 frag size
/vnporadataUSERS   (/dev/dsk/c4t600A0B8000482FB20000044F47E9CF52d0s0):       8192 block size          1024 frag size


Standby Database
$ df -g | grep "block size"
/                  (/dev/dsk/c1t0d0s0 ):         8192 block size          1024 frag size
/devices           (/devices          ):          512 block size           512 frag size
/system/contract   (ctfs              ):          512 block size           512 frag size
/proc              (proc              ):          512 block size           512 frag size
/etc/mnttab        (mnttab            ):          512 block size           512 frag size
/etc/svc/volatile  (swap              ):         4096 block size          4096 frag size
/system/object     (objfs             ):          512 block size           512 frag size
/etc/dfs/sharetab  (sharefs           ):          512 block size           512 frag size
/lib/libc.so.1     (/usr/lib/libc/libc_hwcap1.so.1):     8192 block size
  1024 frag size
/dev/fd            (fd                ):         1024 block size          1024 frag size
/tmp               (swap              ):         4096 block size          4096 frag size
/var/run           (swap              ):         4096 block size          4096 frag size
/u01               (/dev/dsk/c1t0d0s3 ):         8192 block size          1024 frag size
/export/home       (/dev/dsk/c1t0d0s7 ):         8192 block size          1024 frag size
$


/u01, /u02, /vnporadataUSERS, /vnporadataSYSTEM, /vnprctl in Primary Database has got 8192 block size, and
/u01 in Physical Standby has got 8192 block size, that's ok. The logical volume in both of server has got the same block size, in which, Oracle expects to find the data files at a 8k offset.

But how about swap, tmp? Are them need to be same?

In alert_standby.log file
.......

Sat Feb 28 00:40:07 2009
starting up 1 shared server(s) ...
Sat Feb 28 00:40:08 2009
ALTER DATABASE   MOUNT
Sat Feb 28 00:40:08 2009
ORA-00202: control file: '/u01/app/oracle/datafile/controlstd01.ctl'
ORA-27047: unable to read the header block of file
Additional information: 2
Sat Feb 28 00:40:11 2009
ORA-205 signalled during: ALTER DATABASE   MOUNT...
Shutting down instance: further logons disabled
Sat Feb 28 00:40:16 2009
Stopping background process CJQ0
Sat Feb 28 00:40:16 2009
Stopping background process MMNL
Sat Feb 28 00:40:17 2009
Stopping background process MMON

.......


May you guide me more?

Thank you very much!

[Updated on: Sun, 01 March 2009 21:38]

Report message to a moderator

Previous Topic: Database Version
Next Topic: Permission Denied
Goto Forum:
  


Current Time: Thu Nov 21 10:57:49 CST 2024