Re: need help with my links to raw device
Posted in 2000
A user on Informix 7.31 / Solaris 2.6 found their chunks pointed at block devices (/dev/dsk/...) instead of raw character devices (/dev/rdsk/...) and asked whether switching would require rebuilding the database. The answer: since the chunks were defined via symbolic links, you can simply take the engine offline, repoint the symlinks at the matching /dev/rdsk entries, and restart with no data loss (a quick script keeps downtime to seconds). Make sure the raw device files are owned by informix:informix. Several posters confirmed doing this on Solaris, AIX and HP-UX. Had the real device names been hard-coded in ONCONFIG, a rebuild would have been needed.
Auto-generated by DrWatson from the posts below — may be imperfect; read the full thread.
Topics: Storage & Space Management, Server Administration, Platform-Specific Issues
mr_potato_head@my-deja.com wrote: > I have an Informix 7.31 database on an ultra 2 running solaris 2.6. > My question is all my chunks in my database are linked to /dev/dsk/c?t? > d?s?. I've been told that I need to change this to /dev/rdsk/c?t?d?s? > in order to achieve async I/O and get faster io rates. I'm running top > and it saying that my iowait is up in the 80% range. Can I just > offline my database and redo my links without loosing data? Or do I > need to redo my entire database? Does it make a difference whether or > not I'm mounting ../dsk/.. or ../rdsk/..? Thanks in advance... AFAIK, if you have used symlinks in your configuration (like you're told to do), then all that should be necessary is take the server down, reconfigure the symlinks to point to the raw device names instead of the cooked ones, and restart the instance. You can write a script to do the relinking, so it should only be necessary to go down for a few seconds. If you have the /dev/dsk/c?t?d?s? names embedded directly in your ONCONFIG file or have added your chunks using those names, then you will have to rebuild your database from scratch to get the changeover. That is, assuming you are not prepared to do anything so revolting as converting all the relevant device files in /dev/dsk from block devices to character devices, which would completely subvert the point of having a /dev/dsk and /dev/rdsk directory. Ugh; I wish I hadn't thought of that possibility! This is why you are advised to use symlinks to chunks and not the actual names of the devices or files. If you're accessing /dev/dsk/ with your IDS system, you won't also be mounting the devices -- you can only mount (block) devices with Unix file systems on them, and an Informix chunk does not look like a Unix file system to any known type of Unix file system. -- Yours, Jonathan Leffler (Jonathan.Leffler@Informix.com) #include <disclaimer.h> Guardian of DBD::Informix v1.00.PC1 -- http://www.perl.com/CPAN "I don't suffer from insanity; I enjoy every minute of it!"
In article <3A302DB1.6C646944@informix.com>, Jonathan Leffler <jleffler@informix.com> wrote: > mr_potato_head@my-deja.com wrote: > > I have an Informix 7.31 database on an ultra 2 running solaris 2.6. > > My question is all my chunks in my database are linked to /dev/dsk/c?t? > > d?s?. I've been told that I need to change this to /dev/rdsk/c?t?d? s? > > in order to achieve async I/O and get faster io rates. I'm running top > > and it saying that my iowait is up in the 80% range. Can I just > > offline my database and redo my links without loosing data? Or do I > > need to redo my entire database? Does it make a difference whether or > > not I'm mounting ../dsk/.. or ../rdsk/..? Thanks in advance... > > AFAIK, if you have used symlinks in your configuration (like you're told > to do), then all that should be necessary is take the server down, > reconfigure the symlinks to point to the raw device names instead of the > cooked ones, and restart the instance. You can write a script to do the > relinking, so it should only be necessary to go down for a few seconds. > > If you have the /dev/dsk/c?t?d?s? names embedded directly in your > ONCONFIG file or have added your chunks using those names, then you will > have to rebuild your database from scratch to get the changeover. That > is, assuming you are not prepared to do anything so revolting as > converting all the relevant device files in /dev/dsk from block devices > to character devices, which would completely subvert the point of having > a /dev/dsk and /dev/rdsk directory. Ugh; I wish I hadn't thought of > that possibility! > > This is why you are advised to use symlinks to chunks and not the actual > names of the devices or files. > > If you're accessing /dev/dsk/ with your IDS system, you won't also be > mounting the devices -- you can only mount (block) devices with Unix > file systems on them, and an Informix chunk does not look like a Unix > file system to any known type of Unix file system. > > -- > Yours, > Jonathan Leffler (Jonathan.Leffler@Informix.com) #include <disclaimer.h> > Guardian of DBD::Informix v1.00.PC1 -- http://www.perl.com/CPAN > "I don't suffer from insanity; I enjoy every minute of it!" > Sorry for the confusion. I am using symbolic links to /dev/dsk/c?t?d? s? and I wanted to know if I could change the links from say "ln -s chunk1 /dev/dsk/c?t?d?s?" to "ln -s chunk1 /dev/rdsk/c?t?d?s?" without corrupting the database. So if I read you correctly, I can change my links that currently point to the block device to instead point to the character device and I will not loose any data in my database, right? Thanks for the clue. Sent via Deja.com http://www.deja.com/ Before you buy.
This works fine (I did it to 7.31UC5XE, Solaris 2.6 earlier this week).... mr_potato_head@my-deja.com wrote: > > In article <3A302DB1.6C646944@informix.com>, > Jonathan Leffler <jleffler@informix.com> wrote: > > > > AFAIK, if you have used symlinks in your configuration (like you're > told > > to do), then all that should be necessary is take the server down, > > reconfigure the symlinks to point to the raw device names instead of > the > > cooked ones, and restart the instance. You can write a script to do > the > > relinking, so it should only be necessary to go down for a few > seconds. > > > Sorry for the confusion. I am using symbolic links to /dev/dsk/c?t?d? > s? and I wanted to know if I could change the links from say "ln -s > chunk1 /dev/dsk/c?t?d?s?" to "ln -s chunk1 /dev/rdsk/c?t?d?s?" > without corrupting the database. So if I read you correctly, I can > change my links that currently point to the block device to instead > point to the character device and I will not loose any data in my > database, right? Thanks for the clue. > > Sent via Deja.com http://www.deja.com/ > Before you buy. -- ************************************************************** Chris Hall Email: Chris.Hall@OrbisUK.com Orbis Tel: +44 208 742 1600 http://www.OrbisUK.com Fax: +44 208 742 2649
Shouldn't be a problem. Had the same thing on IBM RS6000 - simply stop the engine, re-link the chunks to the raw devices then restart. S. <mr_potato_head@my-deja.com> wrote in message news:90pdd3$f5o$1@nnrp1.deja.com... > In article <3A302DB1.6C646944@informix.com>, > Jonathan Leffler <jleffler@informix.com> wrote: > > mr_potato_head@my-deja.com wrote: > > > I have an Informix 7.31 database on an ultra 2 running solaris 2.6. > > > My question is all my chunks in my database are linked > to /dev/dsk/c?t? > > > d?s?. I've been told that I need to change this to /dev/rdsk/c?t?d? > s? > > > in order to achieve async I/O and get faster io rates. I'm running > top > > > and it saying that my iowait is up in the 80% range. Can I just > > > offline my database and redo my links without loosing data? Or do I > > > need to redo my entire database? Does it make a difference whether > or > > > not I'm mounting ../dsk/.. or ../rdsk/..? Thanks in advance... > > > > AFAIK, if you have used symlinks in your configuration (like you're > told > > to do), then all that should be necessary is take the server down, > > reconfigure the symlinks to point to the raw device names instead of > the > > cooked ones, and restart the instance. You can write a script to do > the > > relinking, so it should only be necessary to go down for a few > seconds. > > > > If you have the /dev/dsk/c?t?d?s? names embedded directly in your > > ONCONFIG file or have added your chunks using those names, then you > will > > have to rebuild your database from scratch to get the changeover. > That > > is, assuming you are not prepared to do anything so revolting as > > converting all the relevant device files in /dev/dsk from block > devices > > to character devices, which would completely subvert the point of > having > > a /dev/dsk and /dev/rdsk directory. Ugh; I wish I hadn't thought of > > that possibility! > > > > This is why you are advised to use symlinks to chunks and not the > actual > > names of the devices or files. > > > > If you're accessing /dev/dsk/ with your IDS system, you won't also be > > mounting the devices -- you can only mount (block) devices with Unix > > file systems on them, and an Informix chunk does not look like a Unix > > file system to any known type of Unix file system. > > > > -- > > Yours, > > Jonathan Leffler (Jonathan.Leffler@Informix.com) #include > <disclaimer.h> > > Guardian of DBD::Informix v1.00.PC1 -- http://www.perl.com/CPAN > > "I don't suffer from insanity; I enjoy every minute of it!" > > > > Sorry for the confusion. I am using symbolic links to /dev/dsk/c?t?d? > s? and I wanted to know if I could change the links from say "ln -s > chunk1 /dev/dsk/c?t?d?s?" to "ln -s chunk1 /dev/rdsk/c?t?d?s?" > without corrupting the database. So if I read you correctly, I can > change my links that currently point to the block device to instead > point to the character device and I will not loose any data in my > database, right? Thanks for the clue. > > > Sent via Deja.com http://www.deja.com/ > Before you buy.
In article <90qt24$nsj$1@gxsn.com>, Sean Kelsey <seank@marketinfoserv.com> writes >Shouldn't be a problem. Had the same thing on IBM RS6000 - simply stop the >engine, re-link the chunks to the raw devices then restart. > >S. > And I've done it on Solaris 2.5.1! -- David Williams
David Williams <djw@smooth1.demon.co.uk> wrote in message > And I've done it on Solaris 2.5.1 Me too! Me too! On HP-UX.
mr_potato_head@my-deja.com wrote: > In article <3A302DB1.6C646944@informix.com>, > Jonathan Leffler <jleffler@informix.com> wrote: > > mr_potato_head@my-deja.com wrote: > > > I have an Informix 7.31 database on an ultra 2 running solaris 2.6. > > > My question is all my chunks in my database are linked > to /dev/dsk/c?t? > > > d?s?. I've been told that I need to change this to /dev/rdsk/c?t?d? > s? > > > in order to achieve async I/O and get faster io rates. I'm running > top > > > and it saying that my iowait is up in the 80% range. Can I just > > > offline my database and redo my links without loosing data? Or do I > > > need to redo my entire database? Does it make a difference whether > or > > > not I'm mounting ../dsk/.. or ../rdsk/..? Thanks in advance... > > > > AFAIK, if you have used symlinks in your configuration (like you're > told > > to do), then all that should be necessary is take the server down, > > reconfigure the symlinks to point to the raw device names instead of > the > > cooked ones, and restart the instance. You can write a script to do > the > > relinking, so it should only be necessary to go down for a few > seconds. > > > > If you have the /dev/dsk/c?t?d?s? names embedded directly in your > > ONCONFIG file or have added your chunks using those names, then you > will > > have to rebuild your database from scratch to get the changeover. > That > > is, assuming you are not prepared to do anything so revolting as > > converting all the relevant device files in /dev/dsk from block > devices > > to character devices, which would completely subvert the point of > having > > a /dev/dsk and /dev/rdsk directory. Ugh; I wish I hadn't thought of > > that possibility! > > > > This is why you are advised to use symlinks to chunks and not the > actual > > names of the devices or files. > > > > If you're accessing /dev/dsk/ with your IDS system, you won't also be > > mounting the devices -- you can only mount (block) devices with Unix > > file systems on them, and an Informix chunk does not look like a Unix > > file system to any known type of Unix file system. > > > > -- > > Yours, > > Jonathan Leffler (Jonathan.Leffler@Informix.com) #include > <disclaimer.h> > > Guardian of DBD::Informix v1.00.PC1 -- http://www.perl.com/CPAN > > "I don't suffer from insanity; I enjoy every minute of it!" > > > > Sorry for the confusion. I am using symbolic links to /dev/dsk/c?t?d? > s? and I wanted to know if I could change the links from say "ln -s > chunk1 /dev/dsk/c?t?d?s?" to "ln -s chunk1 /dev/rdsk/c?t?d?s?" > without corrupting the database. So if I read you correctly, I can > change my links that currently point to the block device to instead > point to the character device and I will not loose any data in my > database, right? Thanks for the clue. > I have done the same thing and it worked just fine. Just make sure to change the owner and group to informix:informix for the /dev/rdsk/c?t?d?s? files. --Steven > > Sent via Deja.com http://www.deja.com/ > Before you buy. -- ----------------------------------------------------- Steven Mastandrea stevem@cstech.com Systems Designer 847.397.7300 CSTech, Inc. Schaumburg, IL