Monday, June 15, 2009

Good feature..fast way to plumb up interface.....and ipmp quick test

1. add pw450fjgi1, pw450fjgi2, pw450fjgivirtual to the hosts file.

root@pw450 # vi /etc/hosts
"/etc/hosts" [Read only] 20 lines, 452 characters
#
# Internet host table
#
::1 localhost
127.0.0.1 localhost
192.168.100.119 pw450 pw450. loghost
192.168.100.136 pw850

172.16.32.78 pw450fjgi1
172.16.32.79 pw450fjgi2
172.16.32.89 pw450fjgivirtual



2. Run the following commands, both interfaces are up.

root@pw450 # echo pw450fjgi1 > /etc/hostname.fjgi1
root@pw450 # echo pw450fjgi2 > /etc/hostname.fjgi2
root@pw450 # svcadm restart physical
root@pw450 # ifconfig -a
lo0: flags=2001000849 mtu 8232 index 1
inet 127.0.0.1 netmask ff000000
hme0: flags=1000843 mtu 1500 index 2
inet 192.168.100.119 netmask ffffff00 broadcast 192.168.100.255
ether 0:e0:0:c4:b8:81
fjgi1: flags=1000843 mtu 1500 index 3
inet 172.16.32.78 netmask ffff0000 broadcast 172.16.255.255
ether 0:b:5d:d7:d9:bb
fjgi2: flags=1000803 mtu 1500 index 4
inet 172.16.32.79 netmask ffff0000 broadcast 172.16.255.255
ether 0:e0:0:a6:f1:e4


OK. Now further to configure IPMP.
Edit fjgi1 and fjgi2. The logical ip will run on fjgi1 first.

root@pw450 # cat /etc/hostname.fjgi1
pw450fjgi1 netmask + broadcast + group ipmp7889 deprecated -failover up addif pw450fjgivirtual netmask + broadcast + failover up
root@pw450 # cat /etc/hostname.fjgi2
pw450fjgi2 netmask + broadcast + group ipmp7889 deprecated -failover standby up
root@pw450 #

Restart the interface:

root@pw450 # svcadm restart physical
root@pw450 # ifconfig -a
lo0: flags=2001000849 mtu 8232 index 1
inet 127.0.0.1 netmask ff000000
hme0: flags=1000843 mtu 1500 index 2
inet 192.168.100.119 netmask ffffff00 broadcast 192.168.100.255
ether 0:e0:0:c4:b8:81
fjgi1: flags=9040843 mtu 1500 index 3
inet 172.16.32.78 netmask ffff0000 broadcast 172.16.255.255
groupname ipmp7889
ether 0:b:5d:d7:d9:bb
fjgi1:1: flags=1000843 mtu 1500 index 3
inet 172.16.32.89 netmask ffff0000 broadcast 172.16.255.255
fjgi2: flags=69040843 mtu 1500 index 4
inet 172.16.32.79 netmask ffff0000 broadcast 172.16.255.255
groupname ipmp7889
ether 0:e0:0:a6:f1:e4


**This is really good, no need to plumb and unplumb using ifconfig.

Check if mpathd running...well it is not.
root@pw450 # pgrep -lf mpathd
root@pw450 #

Start it.
root@pw450 # /usr/lib/inet/in.mpathd
root@pw450 # pgrep -lf mpathd
21055 /usr/lib/inet/in.mpathd
root@pw450 #

Now the pull cable test. fjgi1 cable is unplugged. This is fast.

root@pw450 #tail -f /var/adm/messages
Jun 16 14:59:26 pw450 fjgi: [ID 391805 kern.notice] fjgi1: network connection down
Jun 16 14:59:26 pw450 in.mpathd[21055]: [ID 215189 daemon.error] The link has gone down on fjgi1
Jun 16 14:59:26 pw450 in.mpathd[21055]: [ID 594170 daemon.error] NIC failure detected on fjgi1 of group ipmp7889
Jun 16 14:59:26 pw450 in.mpathd[21055]: [ID 832587 daemon.error] Successfully failed over from NIC fjgi1 to NIC fjgi2


Check ifconfig output. IT failed over nicely.

root@pw450 # ifconfig -a
lo0: flags=2001000849 mtu 8232 index 1
inet 127.0.0.1 netmask ff000000
hme0: flags=1000843 mtu 1500 index 2
inet 192.168.100.119 netmask ffffff00 broadcast 192.168.100.255
ether 0:e0:0:c4:b8:81
fjgi1: flags=19040803 mtu 1500 index 3
inet 172.16.32.78 netmask ffff0000 broadcast 172.16.255.255
groupname ipmp7889
ether 0:b:5d:d7:d9:bb
fjgi2: flags=29040843 mtu 1500 index 4
inet 172.16.32.79 netmask ffff0000 broadcast 172.16.255.255
groupname ipmp7889
ether 0:e0:0:a6:f1:e4
fjgi2:1: flags=21000843 mtu 1500 index 4
inet 172.16.32.89 netmask ffff0000 broadcast 172.16.255.255


How about my ping test?

64 bytes from 172.16.32.89: icmp_seq=29. time=0.346 ms
64 bytes from 172.16.32.89: icmp_seq=30. time=0.352 ms
64 bytes from 172.16.32.89: icmp_seq=31. time=0.380 ms
64 bytes from 172.16.32.89: icmp_seq=32. time=1.45 ms
64 bytes from 172.16.32.89: icmp_seq=33. time=0.366 ms
64 bytes from 172.16.32.89: icmp_seq=34. time=0.344 ms
64 bytes from 172.16.32.89: icmp_seq=35. time=0.263 ms
64 bytes from 172.16.32.89: icmp_seq=36. time=0.387 ms

OK! That's no bad!

Now plug the cable back.

Jun 16 14:59:26 pw450 in.mpathd[21055]: [ID 832587 daemon.error] Successfully failed over from NIC fjgi1 to NIC fjgi2
Jun 16 15:03:59 pw450 fjgi: [ID 111774 kern.notice] fjgi1: network connection up
Jun 16 15:03:59 pw450 fjgi: [ID 513339 kern.notice] autonegotiation: on
Jun 16 15:03:59 pw450 fjgi: [ID 268518 kern.notice] speed: 100
Jun 16 15:03:59 pw450 fjgi: [ID 537610 kern.notice] flowctrl: none
Jun 16 15:03:59 pw450 fjgi: [ID 511210 kern.notice] duplex: full
Jun 16 15:03:59 pw450 fjgi: [ID 111774 kern.notice] fjgi1: network connection up
Jun 16 15:03:59 pw450 fjgi: [ID 513339 kern.notice] autonegotiation: on
Jun 16 15:03:59 pw450 fjgi: [ID 268518 kern.notice] speed: 100
Jun 16 15:03:59 pw450 fjgi: [ID 537610 kern.notice] flowctrl: none
Jun 16 15:03:59 pw450 fjgi: [ID 511210 kern.notice] duplex: full
Jun 16 15:03:59 pw450 in.mpathd[21055]: [ID 820239 daemon.error] The link has come up on fjgi1
Jun 16 15:04:14 pw450 in.mpathd[21055]: [ID 299542 daemon.error] NIC repair detected on fjgi1 of group ipmp7889
Jun 16 15:04:14 pw450 in.mpathd[21055]: [ID 620804 daemon.error] Successfully failed back to NIC fjgi1

And the ifconfig output. It's back to normal.

root@pw450 # ifconfig -a
lo0: flags=2001000849 mtu 8232 index 1
inet 127.0.0.1 netmask ff000000
hme0: flags=1000843 mtu 1500 index 2
inet 192.168.100.119 netmask ffffff00 broadcast 192.168.100.255
ether 0:e0:0:c4:b8:81
fjgi1: flags=9040843 mtu 1500 index 3
inet 172.16.32.78 netmask ffff0000 broadcast 172.16.255.255
groupname ipmp7889
ether 0:b:5d:d7:d9:bb
fjgi1:1: flags=1000843 mtu 1500 index 3
inet 172.16.32.89 netmask ffff0000 broadcast 172.16.255.255
fjgi2: flags=69040843 mtu 1500 index 4
inet 172.16.32.79 netmask ffff0000 broadcast 172.16.255.255
groupname ipmp7889
ether 0:e0:0:a6:f1:e4


This quick test and memory refresh of my ipmp is good!

just a quick note on secure shell client



Client: WinXP using Secure Shell ssh client.
Server: Solaris 10 running Openssh protocol 2.

This is for myself so that i remember how to do it next time..

1. my laptop has got secure shell ssh client installed.




2. On my solaris 10.

root@pw450 # pgrep -lf ssh
18746 /usr/lib/ssh/sshd
632 /usr/lib/ssh/sshd
18749 /usr/lib/ssh/sshd
root@pw450 # svcs ssh
STATE STIME FMRI
online 10:33:00 svc:/network/ssh:default


3. Generate a private key on my ssh client and uploaded to server pw450.




4. Check on Solaris server pw450. The public key has been uploaded to /.ssh2.

root@pw450 # cd /.ssh2

root@pw450 # pwd

/.ssh2

root@pw450 # ls

authorization wh7889.pub

root@pw450 #

5. Run the following command to convert the key from IETF SECSH to OpenSSH key file.


#ssh-keygen -i -f /.ssh2/wh7889.pub > /.ssh/wh7889ossh.pub


6. The public key format has changed to Openssh format.

root@pw450 # pwd

/.ssh

root@pw450 # ls

authorized_keys known_hosts wh7889ossh.pub

root@pw450 # ls -l wh7889ossh.pub

-rw-r--r-- 1 root root 1613 Jun 16 12:06 wh7889ossh.pub

root@pw450 #

7. Create authorized_keys.

root@pw450 # cat wh7889ossh.pub > authorized_keys

root@pw450 # more authorized_keys

ssh-dss AAAAB3NzaC1kc3MAAAGBAJ5uyGdcXoAaHKZBhOYCt8GlHyV9Q8bvH2wWQ+/Anh87CtiRVTHk

S8XkHHyX5W07dDQjYUe9eGNFkCeKLvliFnsKnyTienLGoKt/9Dm1KruQU4IVrsUiAzMVnI2qCvO0kAIH

DJe0f2dlOuOU0xhc+OCxhAL6vrnKNeAeHZe9sKx1hjTIhMrANO0NJFapy+575T+veFERp5r3WFCPNIqU

CxXNjLSMP6qaOw0IXSMqnUNaWp/eiYzRRVwpjPovJMTyDBq5PXdmYYr3m0u2U6hQqs/Bq5BPSgW/swiD

n+8zvyTuQ1I+1WsYdjXjkT6dHt8T31x6FUf37kTt52Hded0dHGOr0C7+IDOCQuxpBXoyzugi9GNBeKBR

R7fkO5QSt3aHt7kB/J/cv2dQUeewiSATI+7rH4G2j0OEjezPKmi5dbBZYEz4bScgwidflkvKEQaXmjoj

1ihT4L8POEN/1i/jeGPEIafAo3XOQW3+Y29bq6sXGhHRLKIDX/30uRsG7n/NhwAAABUAxcHf6DCO8UqE

edcQemYJAWR5InMAAAGAU6FmPa4NFE1madfIyN1bl3VlP0Kl4bu73SwFFVhI6YkapItr9iRa9MayH0oJ

5u6HyY5J0WVVOHTEq8C7TSrTPyy7S9ACWED/bJpruw1tJIHQSpP53oRea1rzrHKCN5dmXT+/3pivV15R

SX5eomKGun6+XZCy2i8JqQoc4KlZlVmWJ+Xsil+vJvTbBz1WeVBaJpxsh+ZWIEr4ljYS6Ra9ZPlQZYlx

8dVxnMhx2tf2uwazQmkokBuQNiSgnrQbu7boekxUfLSuncqQs4PORm8chWEjaFpUPeoPbsOYvh9yahks

auo36JMFZb2w6h1KKWPsySR5nUkQ0DeLvid1uPFQhXeiUOG+1WwW3VK1nwezVZzZL9VYtrOBZVCbBSgw

wMLO2CFkjXLIVX3Gog51Y3KmpSWa/u4Cplb2xHrSlErn+bjk6wUhDhyCbVjU+gPhSlUb54BbrExmj9AE

KKsSgTayb9kViENLvEVcShFrw6cXKD5G6ec/j497Az80Crck2NRNAAABgG/l5ITDh5oLTGjcPPj6+vaC

S+uYOErcD83QY9PYQveHiaePyFYVbAS2MYoJ8Rjbem2RBxTKDMHr4ZK903NAy5d5XOLivDBx+vFwJiDp

FzC0UEoyN6tervPMqMC978+4wvUYSggZJ302MPYW4Qp9kAHCoSVPTlFnoRbpSOh32Prd3urGZHxHF9+1

rgdlU1mGek91Qa6XZfnVu2PfGixg6SmGkBwOb/9pAbrCPmHnzklQJ5X7uQSamVTkscsQdo//o8Z4FjOb

6eHZu2lnSPde0FtP0WPt4R0emQ99LSuFKrBKDcXQ1g3TKFG5kg8XJkUqpSDH7dcWx9pXQq54sJX6fMWh

skYvsJuuj752TGtbpz294AnPYlAGFNyRr9yvccaSXTzNFuTYY5O+zwM4+FqNb0i3FeSgVtl1L75hRUVF

bQagweAwsk9zENMMvO5eziuEpX+B+qbZytnzLx3VccgVcSXh624EAZWbYhSwSpF7wMhTLlMl+Qe/DgMF



8. Login using public key and u will be prompted to enter passphrase. Yes!!








Wednesday, April 29, 2009

Friday, April 24, 2009

BMR on Windows

BMR on Solaris is done now...next challenge is BMR on Windows with Dissimilar System Restore. The hardware will be Fujitsu Primergy...

Tuesday, March 31, 2009

BMR on Unix

Finally it looks ok now at least on Solaris. Managed to figure out how to restore a VxVM encapsulation mirrored disks to a single disk. Assuming we faced a difficult situation where both boot disk and mirrored disks are gone at the same time.
The key thing is not to automatically create all the mapping. Add the new disk to the rootdg diskgroup first. Then do the mapping from the original layout/volume to the new volume.
Restore ran successful and boot up on a single disk.

Saturday, March 28, 2009

BMR

Tried the followings:
1. Restored to the same disk without VxVM.
2. Restored to different disk.
3. Restored to the same disk with VxVM encapsulation.
4. Restored to the mirrored boot disks with VxVM encapsulation.

Wednesday, March 25, 2009

BMR Error "Unable to make Registry modification required to boot the system"

Yes. I am hitting this error.
Google leads me to symantec website: http://seer.entsupport.symantec.com/docs/301490.htm
which doesn't help much.

BMR Disimilar System Restore

This feature isn't working for me yet. I keeps encountered this "Unable to perform Registry Modification after restoration.....". And the restore stopped there. A reboot of the system kicks you into a dark screen complaining "NTLDR is missing, press ctl-alt-delete to reboot".
Each time it takes about 15 minutes to restore the whole thing...
Long way to go...
;-(

Friday, March 13, 2009

celcom website?!?!

I always have very bad experience surfing celcom website, all i can say about this site is "SLOW"!.
Compare the response speed with Maxis, Celcom's website is light year behind!!
Consider switching to Maxis.

Bad news and good news...

Good news is that I had a full week rest finally, "thanks" to the accident happened outside the mosque. That was a good lesson learnt that never have too much confidence when you are riding. This is bad news.

Thursday, February 12, 2009

Solaris 10 Update 6 x86 version

Well, it's not running fine on my Fujitsu Life Book S2110. The drivers are not there yet. I tested mandriva one. That's one works out of the box. aiiii............

Minor problems VCS Oracle Setup

The past 2 months were particularly busy for me. It is better now. I have sometime to sit down to do some testing again.
2 problems that i faced when i setup the VCS Oracle HA again:
As i installed Oracle on local host. So of the config files are not shared.

1. listener.ora
2. Audit file directory

Problem 1:
To have static registration and listen to virtual host. This is the config that works for me. The one in red are not in the VCS agent guide.

listener.ora
==============
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /export/home/oracle/10g)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = murex88)
(ORACLE_HOME = /export/home/oracle/10g)
(SID_NAME = murex88)
)
)

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = mxpvip)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)


Problem 2:
When startup Oracle on the second cluster node, an error comes out:
ORA-09925: Unable to create audit trail file
SVR4 Error: No such file or directory.

This one is self explanatory. As i installed Oracle on local host and only datafiles are shared, this one need to be manually created. Check the audit_file_dest and created the directory. Problem solved.

Tuesday, November 04, 2008

VVR on Linux

Running vxstart_vvr without VVR license just dont return anything. It silently return to root prompt. It looks successful, but no vradmind is started.

Until you enter license, then you see vvr port messages.

Tuesday, October 21, 2008

facebookkk

I created my facebook account, in fact i was looking for a old friend. Google search has shown her presence on the facebook.
To my surprise, so many of my friends are already in there facebook. Good to know their latest news.

Email from mom

This is unexpected surprise from mom. Huhh, that's her first email ever.
She is online now! I feel happy for her.
Maybe one day i can find her in Facebook, who knows.

Tuesday, September 30, 2008

Busy time...

I have been busy lately. That is the life of a typical IT support guy. At times, you might be free to what you want and learn what you like. But when projects date line reaching or problems cropped up, this is the time IT guys really get tied up.
........

Monday, August 11, 2008

Missing my Da Jie


He always cries for help when he is bullied by his big brother.....papa lei, pape lei (papa coming here..)
I must admit that i didnt pay as much attention to him....(guilty...)

Wednesday, July 23, 2008

svcadm disable ssh



What will happen to the existing ssh session?
answer: no problem, it runs as normal.

All new connections will be refused.

see the picture :-)

Some notes


I found this document in Sun Blueprint. It is created by Glen Brunette, one of Sun guys that i admired.
There's 2 things in the document that did not point out, one of them is giving permission to /var/audit/* files, and the other one is stopping cryptoadm by non-root user bring the cryptosvc to maintenance state when try to bring up.

First 'problem' details:
Assuming i am user weehing, and i was assigned "Audit Review" profile. Now i would like to audit user oracle activity, this is the same steps as illustrated in Glen's doc.

[weehing@pw250 ~]$ auditreduce -m AUE_su -r oracle | praudit -s | more
auditreduce: couldn't open:
/etc/security/audit/localhost/files/20080723041356.20080723041357.pw250: Permission denied
auditreduce: couldn't open:
/etc/security/audit/localhost/files/20080723041357.not_terminated.pw250: Permission denied
file,1970-01-01 07:30:00.000 +07:30,
file,2008-07-23 13:55:50.000 +08:00,

[weehing@pw250 ~]$ ls -l /etc/security/audit/localhost/files/*
-rw------- 1 root root 70 Jul 23 12:13 /etc/security/audit/localhost/files/20080723041356.20080723041357.pw250
-rw------- 1 root root 21080 Jul 23 13:58 /etc/security/audit/localhost/files/20080723041357.not_terminated.pw250


To allow weehing to audit oracle's activity, read permission would have to be given to weehing. This can be solved by a change in audit binary file permission, but this can be be another concern.


Second 'problem':

[weehing@pw250 ~]$ roles
roleA
[weehing@pw250 ~]$ profiles -l

Audit Review:
/usr/sbin/auditreduce euid=0
/usr/sbin/auditstat euid=0
/usr/sbin/praudit euid=0
All:
*
[weehing@pw250 ~]$ auths
solaris.audit.read,solaris.device.cdrw,solaris.profmgr.read,solaris.jobs.users,solaris.mail.mailq,solaris.admin.usermgr.read,solaris.admin.logsvc.read,solaris.admin.fsmgr.read,solaris.admin.serialmgr.read,solaris.admin.diskmgr.read,solaris.admin.procmgr.user,solaris.compsys.read,solaris.admin.printer.read,solaris.admin.prodreg.read,solaris.admin.dcmgr.read,solaris.snmp.read,solaris.project.read,solaris.admin.patchmgr.read,solaris.network.hosts.read,solaris.admin.volmgr.read
[weehing@pw250 ~]$ svcs cryptosvc
STATE STIME FMRI
online 17:19:30 svc:/system/cryptosvc:default
[weehing@pw250 ~]$
[weehing@pw250 ~]$ digest -a sha1 /etc/hosts
ee4ef007673a3090a4cc00bdb125ec8c146cf7e4
[weehing@pw250 ~]$
[weehing@pw250 ~]$ cryptoadm stop
cryptoadm: failed to stop cryptographic framework daemon - Not owner.
[weehing@pw250 ~]$ su roles
su: Unknown id: roles
[weehing@pw250 ~]$ su roleA
Password:
$ svcs cryptosvc
STATE STIME FMRI
online 17:19:30 svc:/system/cryptosvc:default
$ cryptoadm stop
$ svcs cryptosvc
STATE STIME FMRI
maintenance 17:34:54 svc:/system/cryptosvc:default
$ digest -a sha1 /etc/hosts
digest: failed to initialize PKCS #11 framework: CKR_GENERAL_ERROR
$ cryptoadm start
$ digest -a sha1 /etc/hosts
ee4ef007673a3090a4cc00bdb125ec8c146cf7e4
$ svcs cryptosvc
STATE STIME FMRI
maintenance 17:34:54 svc:/system/cryptosvc:default <---all gone here until here, though this is not really a issue as digest command still works.
$ svcadm clear svc:/system/cryptosvc:default
svcadm: svc:/system/cryptosvc:default: Permission denied.

How to bring the cryptosvc back to online state??

[root@pw250 patches]$ cryptoadm stop
[root@pw250 patches]$ svcs cryptosvc
STATE STIME FMRI
maintenance 17:34:54 svc:/system/cryptosvc:default
[root@pw250 patches]$ svcadm clear svc:/system/cryptosvc:default
[root@pw250 patches]$ svcs cryptosvc
STATE STIME FMRI
online 17:39:25 svc:/system/cryptosvc:default

Well, this is nothing much, but just some findings for reader who follows Glen's doc and might hit the same things like me.




Tuesday, July 22, 2008

Permission Denied When Login SMC

Getting permission denied error when login to SMC as root user, check this:

[root@pw250 bin]$ profiles -l root

Web Console Management:
/usr/share/webconsole/private/bin/smcwebstart uid=noaccess,
gid=noaccess,
privs=proc_audit
All:
*

Saturday, July 12, 2008

Rcapd daemon

Found some rcapd info in this doc: Best Practices for Running Oracle Databases in SolarisTM Containers.
--------------------------------------------------------------------------------------
Please note that the rcapd daemon cannot determine which pages of memory are shared
with other processes or which are mapped multiple times within the same process. Hence,
it is not recommended that shared memory-intensive applications, like Oracle databases,
run under projects that use rcapd to limit physical memory usage.
----------------------------------------------------------------------------------------

Friday, July 11, 2008

vmkfstool

Need to use this frequently....

[root@fms rhac4]# vmkfstools -c 4096m -a lsilogic -d thick rhac4_2.vmdk
[root@fms rhac4]# pwd
/vmfs/volumes/dd1/rhac4
[root@fms rhac4]# cd ../rhac3
[root@fms rhac3]# vmkfstools -c 4096m -a lsilogic -d thick rhac3_2.vmdk

Wednesday, July 09, 2008

How to failback a VVR RVG to Original Primary

The scenario is that pw250 was down and pw450 (secondary) takeover as a new primary.

After pw250 is fixed, it's powered-up. And the config error is shown below in red. Pw250 is running as acting secondary.
The procedure show how to do a failback to original primary - pw250.



pw250 -- 192.168.100.118 ---------- this is the original primary
pw450 -- 192.168.100.116 ---------- this is the original secondary
RVG name: PRDvvr
DG name: mxpdbs_dg
App: Oracle 10gR2 DB


[root@pw250 log]$
[root@pw250 log]$
[root@pw250 log]$ vradmin -g mxpdbs_dg repstatus PRDvvr
Replicated Data Set: PRDvvr
Primary:
Host name: 192.168.100.116
RVG name: PRDvvr
DG name: mxpdbs_dg
RVG state: enabled for I/O
Data volumes: 2
VSets: 0
SRL name: vvrsrl
SRL size: 1.00 G
Total secondaries: 1

Primary (acting secondary):
Host name: 192.168.100.118
RVG name: PRDvvr
DG name: mxpdbs_dg
Data status: consistent, behind
Replication status: logging to DCM (needs failback synchronization)
Current mode: asynchronous
Logging to: DCM (contains 17408 Kbytes) (failback logging)
Timestamp Information: N/A

Config Errors:
192.168.100.118: Primary-Primary configuration

[root@pw250 log]$ vradmin -g mxpdbs_dg fbsync
VxVM VVR vradmin ERROR V-5-52-19 Incorrect number of arguments
VxVM VVR vradmin INFO V-5-52-42
Usage: vradmin [-g diskgroup] [-wait] fbsync rvg [cache=cacheobj | cachesize=size]


[root@pw250 log]$ vradmin -g mxpdbs_dg fbsync PRDvvr
[root@pw250 log]$ vradmin -g mxpdbs_dg repstatus PRDvvr
Replicated Data Set: PRDvvr
Primary:
Host name: 192.168.100.116
RVG name: PRDvvr
DG name: mxpdbs_dg
RVG state: enabled for I/O
Data volumes: 2
VSets: 0
SRL name: vvrsrl
SRL size: 1.00 G
Total secondaries: 1

Secondary:
Host name: 192.168.100.118
RVG name: PRDvvr
DG name: mxpdbs_dg
Data status: inconsistent
Replication status: resync in progress (failback synchronization)
Current mode: asynchronous
Logging to: DCM (contains 17408 Kbytes) (failback logging)
Timestamp Information: N/A

[root@pw250 log]$ vradmin -g mxpdbs_dg migrate PRDvvr 192.168.100.118
VxVM VVR vradmin WARNING V-5-52-93 Make sure applications using Primary data volumes are stopped.
vradmin: Continue with migrate (y/n)? y
Message from Primary:
VxVM VVR vxrvg ERROR V-5-1-10128 Operation not allowed with open volumes
VxVM VVR vxrvg ERROR V-5-1-407 Attempting to cleanup after failure ...

<***********At this stage, go to pw450 and shutdown all applications and unmount the filesystems)************>

[root@pw250 log]$ vradmin -g mxpdbs_dg migrate PRDvvr 192.168.100.118
VxVM VVR vradmin WARNING V-5-52-93 Make sure applications using Primary data volumes are stopped.
vradmin: Continue with migrate (y/n)? y

[root@pw250 log]$ vradmin -g mxpdbs_dg repstatus PRDvvr
Replicated Data Set: PRDvvr
Primary:
Host name: 192.168.100.118
RVG name: PRDvvr
DG name: mxpdbs_dg
RVG state: enabled for I/O
Data volumes: 2
VSets: 0
SRL name: vvrsrl
SRL size: 5.00 G
Total secondaries: 1

Secondary:
Host name: 192.168.100.116
RVG name: PRDvvr
DG name: mxpdbs_dg
Data status: consistent, up-to-date
Replication status: replicating (connected)
Current mode: synchronous
Logging to: SRL
Timestamp Information: N/A


[root@pw250 log]$ mount -F vxfs /dev/vx/dsk/mxpdbs_dg/mxpdbs_vol01 /app/oracle
[root@pw250 log]$ ls -ld /app/oracle
drwxr-xr-x 8 oracle oinstall 1024 Jul 9 17:42 /app/oracle/
[root@pw250 log]$ mount -F vxfs /dev/vx/dsk/mxpdbs_dg/mxpdbs_vol02 /flasharea/
[root@pw250 log]$ su - oracle
Sun Microsystems Inc. SunOS 5.10 Generic January 2005
[oracle@pw250 ~]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on Wed Jul 9 18:57:03 2008

Copyright (c) 1982, 2005, Oracle. All rights reserved.

Connected to an idle instance.

SQL> startup
ORACLE instance started.

Total System Global Area 2550136832 bytes
Fixed Size 1980808 bytes
Variable Size 536872568 bytes
Database Buffers 1996488704 bytes
Redo Buffers 14794752 bytes
Database mounted.
Database opened.
SQL> select * from testt;

A
--------------------
2
288
3333
from450

SQL> exit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options

Edit listener.ora and anything that's required, and start up the listener.

[oracle@pw250 admin]$ lsnrctl start

LSNRCTL for Solaris: Version 10.2.0.1.0 - Production on 09-JUL-2008 18:58:35

Copyright (c) 1991, 2005, Oracle. All rights reserved.

Starting /app/oracle/product/10.2.0/dbhome/bin/tnslsnr: please wait...

TNSLSNR for Solaris: Version 10.2.0.1.0 - Production
System parameter file is /app/oracle/product/10.2.0/dbhome/network/admin/listener.ora
Log messages written to /app/oracle/product/10.2.0/dbhome/network/log/listener.log
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=pw250)(PORT=1521)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Solaris: Version 10.2.0.1.0 - Production
Start Date 09-JUL-2008 18:58:37
Uptime 0 days 0 hr. 0 min. 0 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /app/oracle/product/10.2.0/dbhome/network/admin/listener.ora
Listener Log File /app/oracle/product/10.2.0/dbhome/network/log/listener.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=pw250)(PORT=1521)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
[oracle@pw250 admin]$
[oracle@pw250 admin]$ lsnrctl status

LSNRCTL for Solaris: Version 10.2.0.1.0 - Production on 09-JUL-2008 18:59:27

Copyright (c) 1991, 2005, Oracle. All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Solaris: Version 10.2.0.1.0 - Production
Start Date 09-JUL-2008 18:58:37
Uptime 0 days 0 hr. 0 min. 50 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /app/oracle/product/10.2.0/dbhome/network/admin/listener.ora
Listener Log File /app/oracle/product/10.2.0/dbhome/network/log/listener.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=pw250)(PORT=1521)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "ooo" has 1 instance(s).
Instance "ooo", status READY, has 1 handler(s) for this service...
Service "oooXDB" has 1 instance(s).
Instance "ooo", status READY, has 1 handler(s) for this service...
Service "ooo_XPT" has 1 instance(s).
Instance "ooo", status READY, has 1 handler(s) for this service...
The command completed successfully

Thursday, July 03, 2008

Oracle RAC TAF Tnsnames.ora client entry

This is the entry that works for me..

XXX =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 202.188.88.10)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 202.188.88.11)(PORT = 1521))
(FAILOVER = on)
(LOAD_BALANCE = on)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = xxx)
(FAILOVER_MODE =
(TYPE = SELECT)
(METHOD = PRECONNECT)
(RETRIES = 180)
(DELAY = 5)
)
)
)

Monday, June 30, 2008

#ocrcheck
#crsctl stop crs
---> this actually shutdowns everything, the crs components, listener and oracle as well
#crsctl start crs
---> this starts everything


[root@pw450 bin]$ crsctl start crs
Attempting to start CRS stack
The CRS stack will be started shortly
[root@pw450 bin]$ ps -aef|grep ora_
root 26501 29410 0 16:42:15 pts/6 0:00 grep ora_
[root@pw450 bin]$ ps -aef|grep ora_
root 26503 29410 0 16:42:16 pts/6 0:00 grep ora_
[root@pw450 bin]$
[root@pw450 bin]$ crsctl check crs
CSS appears healthy
Cannot communicate with CRS
EVM appears healthy
[root@pw450 bin]$ ps -aef|grep ora_
root 27225 29410 0 16:42:34 pts/6 0:00 grep ora_

[root@pw450 bin]$ ps -aef|grep ora_
oracle 27555 1 0 16:42:43 ? 0:00 ora_pmon_ooo2
oracle 27611 1 0 16:42:45 ? 0:00 ora_ckpt_ooo2
oracle 27625 1 0 16:42:45 ? 0:00 ora_s000_ooo2
oracle 27557 1 0 16:42:43 ? 0:00 ora_diag_ooo2
oracle 27563 1 0 16:42:43 ? 0:00 ora_lmd0_ooo2
oracle 27565 1 2 16:42:43 ? 0:01 ora_lms0_ooo2
oracle 27613 1 0 16:42:45 ? 0:00 ora_smon_ooo2
root 27787 29410 0 16:42:50 pts/6 0:00 grep ora_
oracle 27576 1 3 16:42:44 ? 0:01 ora_mman_ooo2
oracle 27592 1 0 16:42:44 ? 0:00 ora_dbw0_ooo2
oracle 27569 1 2 16:42:43 ? 0:01 ora_lms1_ooo2
oracle 27609 1 0 16:42:44 ? 0:00 ora_lgwr_ooo2
oracle 27615 1 0 16:42:45 ? 0:00 ora_reco_ooo2
oracle 27619 1 0 16:42:45 ? 0:00 ora_mmon_ooo2
oracle 27617 1 0 16:42:45 ? 0:00 ora_cjq0_ooo2
oracle 27623 1 0 16:42:45 ? 0:00 ora_d000_ooo2
oracle 27621 1 0 16:42:45 ? 0:00 ora_mmnl_ooo2
oracle 27720 1 0 16:42:48 ? 0:00 ora_lck0_ooo2
oracle 27559 1 0 16:42:43 ? 0:00 ora_psp0_ooo2
oracle 27561 1 3 16:42:43 ? 0:02 ora_lmon_ooo2

[oracle@pw450 ~]$ lsnrctl status

LSNRCTL for Solaris: Version 10.2.0.1.0 - Production on 30-JUN-2008 16:43:03

Copyright (c) 1991, 2005, Oracle. All rights reserved.

Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
TNS-12541: TNS:no listener
TNS-12560: TNS:protocol adapter error
TNS-00511: No listener
Solaris Error: 146: Connection refused
[oracle@pw450 ~]$
[oracle@pw450 ~]$
[oracle@pw450 ~]$ lsnrctl status

LSNRCTL for Solaris: Version 10.2.0.1.0 - Production on 30-JUN-2008 16:43:18

Copyright (c) 1991, 2005, Oracle. All rights reserved.

Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the LISTENER
------------------------
Alias LISTENER_PW450
Version TNSLSNR for Solaris: Version 10.2.0.1.0 - Production
Start Date 30-JUN-2008 16:43:07
Uptime 0 days 0 hr. 0 min. 11 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /app/oracle/product/10.2.0/dbhome/network/admin/listener.ora
Listener Log File /app/oracle/product/10.2.0/dbhome/network/log/listener_pw450.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=202.188.88.11)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=202.188.88.9)(PORT=1521)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
[oracle@pw450 ~]$
[oracle@pw450 ~]$
[oracle@pw450 ~]$ lsnrctl status

LSNRCTL for Solaris: Version 10.2.0.1.0 - Production on 30-JUN-2008 16:43:21

Copyright (c) 1991, 2005, Oracle. All rights reserved.

Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the LISTENER
------------------------
Alias LISTENER_PW450
Version TNSLSNR for Solaris: Version 10.2.0.1.0 - Production
Start Date 30-JUN-2008 16:43:07
Uptime 0 days 0 hr. 0 min. 13 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /app/oracle/product/10.2.0/dbhome/network/admin/listener.ora
Listener Log File /app/oracle/product/10.2.0/dbhome/network/log/listener_pw450.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=202.188.88.11)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=202.188.88.9)(PORT=1521)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
[oracle@pw450 ~]$ lsnrctl status

LSNRCTL for Solaris: Version 10.2.0.1.0 - Production on 30-JUN-2008 16:43:23

Copyright (c) 1991, 2005, Oracle. All rights reserved.

Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the LISTENER
------------------------
Alias LISTENER_PW450
Version TNSLSNR for Solaris: Version 10.2.0.1.0 - Production
Start Date 30-JUN-2008 16:43:07
Uptime 0 days 0 hr. 0 min. 15 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /app/oracle/product/10.2.0/dbhome/network/admin/listener.ora
Listener Log File /app/oracle/product/10.2.0/dbhome/network/log/listener_pw450.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=202.188.88.11)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=202.188.88.9)(PORT=1521)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
[oracle@pw450 ~]$
[oracle@pw450 ~]$
[oracle@pw450 ~]$ lsnrctl status

LSNRCTL for Solaris: Version 10.2.0.1.0 - Production on 30-JUN-2008 16:46:17

Copyright (c) 1991, 2005, Oracle. All rights reserved.

Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the LISTENER
------------------------
Alias LISTENER_PW450
Version TNSLSNR for Solaris: Version 10.2.0.1.0 - Production
Start Date 30-JUN-2008 16:43:07
Uptime 0 days 0 hr. 3 min. 9 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /app/oracle/product/10.2.0/dbhome/network/admin/listener.ora
Listener Log File /app/oracle/product/10.2.0/dbhome/network/log/listener_pw450.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=202.188.88.11)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=202.188.88.9)(PORT=1521)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "ooo" has 2 instance(s).
Instance "ooo1", status READY, has 1 handler(s) for this service...
Instance "ooo2", status READY, has 2 handler(s) for this service...
Service "oooXDB" has 2 instance(s).
Instance "ooo1", status READY, has 1 handler(s) for this service...
Instance "ooo2", status READY, has 1 handler(s) for this service...
Service "ooo_XPT" has 2 instance(s).
Instance "ooo1", status READY, has 1 handler(s) for this service...
Instance "ooo2", status READY, has 2 handler(s) for this service...
The command completed successfully

Oracle 10gR2 RAC Installation Problems

Problem encountered in Oracle 10gR2 RAC Installation:

1. On Solaris, if raw device is to be used, remember not to use the first cylinder of the disk.
VTOC occupy the 1st cylinder of a Solaris partition 0.

2. Do not ever use IANA reserved private IP addresses ( as your public IP. There will be no error shown when you set those private interface to public. But the VIP instance will mysterious died off, and causing the RAC instances to abort without any errors.

IANA Reserved IP for Private use:
10.0.0.0 - 10.255.255.255
172.16.0.0 - 172.31.255.255
192.168.0.0 - 192.168.255.255

Thursday, June 19, 2008

Something about Oracle user and Solaris project

here's the findings:

IF you primary Oracle group is not dba (say your primary group is oinstall), and you try to make project group.dba as your primary project, huhh nothing will change when you type "id -p". You still get back the project called default as your primary project. (In fact, i shouldn't use the term "primary project", as this is not accurate).

So create a project something like "user.oracle" and make it your oracle primary project, it will works.

See below:

[root@pw450 /]$ su - oracle
Sun Microsystems Inc. SunOS 5.10 Generic January 2005
[oracle@pw450 ~]$ id -p
uid=200(oracle) gid=200(oinstall) projid=3(default)
[root@pw450 /]$
[root@pw450 /]$ projadd -U oracle -K "project.max-shm-memory=(priv,4g,deny)" \
> -K "project.max-sem-nsems=(priv,256,deny)" \
> -K "project.max-sem-ids=(priv,100,deny)" \
> -K "project.max-shm-ids=(priv,100,deny)" group.dba
[root@pw450 /]$
[root@pw450 /]$ su - oracle
Sun Microsystems Inc. SunOS 5.10 Generic January 2005
[oracle@pw450 ~]$ id -p
uid=200(oracle) gid=200(oinstall) projid=3(default)



...............oppps..........it doesn't work, you are however being added to the member list of the project group.dba.


so we will create user.oracle instead.

see below:

[root@pw450 /]$ projdel group.dba
[root@pw450 /]$
[root@pw450 /]$ su - oracle
Sun Microsystems Inc. SunOS 5.10 Generic January 2005
[oracle@pw450 ~]$ id -p
uid=200(oracle) gid=200(oinstall) projid=3(default)
[oracle@pw450 ~]$ exit
logout
[root@pw450 /]$
[root@pw450 /]$ projadd -U oracle -K "project.max-shm-memory=(priv,4g,deny)" \
> -K "project.max-sem-nsems=(priv,256,deny)" \
> -K "project.max-sem-ids=(priv,100,deny)" \
> -K "project.max-shm-ids=(priv,100,deny)" user.oracle
[root@pw450 /]$
[root@pw450 /]$ su - oracle
Sun Microsystems Inc. SunOS 5.10 Generic January 2005
[oracle@pw450 ~]$ id -p
uid=200(oracle) gid=200(oinstall) projid=100(user.oracle)
[oracle@pw450 ~]$ cat
^C
[oracle@pw450 ~]$ cat /etc/project
system:0::::
user.root:1::::
noproject:2::::
default:3::::
group.staff:10::::
user.oracle:100::oracle::project.max-sem-ids=(priv,100,deny);project.max-sem-nsems=(priv,256,deny);project.max-shm-ids=(priv,100,deny);project.max-shm-memory=(priv,4294967296,deny)
[oracle@pw450 ~]$

....
something that's not mentioned in the Oracle RAC installation guide...

...

Sunday, June 15, 2008

uncompress oracle files

just in case i dont remember...
[root@pw450 oradb]$ gunzip -cd 10gr2_db_sol.cpio.gz | cpio -idmv

Thursday, April 17, 2008

Bug in Tectia SSH2

Here's the description of the problem found:

Solaris 10 08/07 running multiple containers. In one of the containers Tectia SSH2 server is installed and run. The Solaris' openssh server is disabled. I found this while installing Oracle 10gR2 in the container. To install Oracle in the container, i have created a project called user.oracle (as usual) and assign the project to oracle user.

When i login to the container using zlogin, the user oracle shows that is has correct project "user.oracle" assigned. But login using f-secure ssh client shows that the project still has assigned to the default project "user.root". I have problem determining the problem in the first place as i used ssh, zlogin and telnet all at the same time and annoyed by the 'intermittent' occurrence of project that showed incorrectly to the user oracle.

At last, i noticed it, and i shutdown the Tectia ssh2 server and started the Solaris Openssh server. Yes, login as user oracle using f-secure client or putty ssh client all show correct project assigned.

See below:

Global zone hostname: pw450
Container name: dbtest

Container running solaris openssh and login using either putty or f-secure shows correct project.































Container running Tectia SSH2 server and login as oracle using either putty or f-secure shows incorrect project assigned.





Not sure this is a bug or some misconfiguration.

Kernel setup for Oracle 10g

Command to add kernel settings for oracle in project user.oracle.
=====================================================

#projadd -U oracle -K "project.max-shm-memory=(priv,4g,deny)" -K "project.max-sem-nsems=(priv,256,deny)" -K "project.max-sem-ids=(priv,100,deny)" -K "project.max-shm-ids=(priv,100,deny)" user.oracle

Monday, April 14, 2008

Melaka Trip


It was a rainy day when we reached Melaka, and mom wanted me to take a photo here.

Sunday, April 06, 2008

Veritas Storage Checkpoint

create
# fsckptadm -v create thu_7pm /checkpt1

Mount
# mount -F vxfs -o ckpt=thu_7pm /dev/vx/dsk/datadg/vol1:thu_7pm /checkpt1

remount
# mount -F vxfs -o ckpt=may_23,remount,rw /dev/vx/dsk/datadg/vol1:may_23 /fsvol_may_23

umount
# umount /fsvol_may_23

#umount /dev/vx/dsk/datadg/vol1:may_23


Convert data to no data chkpt
# fsckptadm -s set nodata thu_7pm /checkpt1 (convert data to nodata)

-s option means synchronous

this nodata checkpoint only contains a collection of markers

# fsckptadm set nomount thu_7pm /checkpt (convert mountable to non-mount)


# fsckptadm set remove thu_7pm /checkpt (convert non-removeable to removeable)

set quotas
# fsckptadm setquotalimit /checkpt1 1024 512

1024 - no.of hard limit blocks
512 - no.of soft limit blocks

remove
# fsckptadm remove thu_7pm /checkpt1

list
# fsckptadm -clv list /mnt0

-c : resets statiscal counters
-l : displays statistical info on the fs, in addition to its checkpoints
-v: verbose mode, displays extensive statistical info

restoring a file system

# fsckpt_restore -l /dev/vx/dsk/datadg/vol01

Friday, April 04, 2008

Full-sized instant volume snapshots - method 2 : using empty volume

Full-sized instant volume snapshots - method 2 : using empty volume

1. find the required size for the snapshot volume.

#LEN=`vxprint -g datadg -F%len vol01`

2. find the name of the dco volume

#DCONAME=`vxprint -g datadg -F%dco_name vol01`

3. find the dco region size.

#RSZ=`vxprint -g datadg -F%regionsz $DCONAME`

4. Create a volume of the required size and redundancy

#vxassist -g datadg make snapvol01 $LEN init=active

5. To prepare the volume for snapshot operation
(to enable the fast resync using dco)

#vxsnap -g datadg prepare snapvol regionsize=$RSZ

6. create the snapshot using the empty volume.

#vxsnap -g datadg make source=vol01/snapvol=snapvol01

7. split the snapshot volume into a separate disk group

#vxdg split datadg offhostdg snapvol01

or

#vxdg -g datadg -o expand split datadg offhostdg snapvol01 snapvol02

8. deport the disk group

#vxdg deport offhostdg

9. import the disk group in remote host

(remote host)#vxdg import offhostdg

10. recover the disk group

(remote host)#vxdg -g offhostdg -sb

11. XXX Perform off-host processing XXX
fsck and mount, etc.....

12. deport the disk group

(remote host)#vxdg deport offhostdg

13. import back on the local host.

#vxdg import offhostdg

14. join the disk group

#vxdg join offhostdg datadg

15. Recover the disk group.

#vxrecover -sb

if the volume still in disabled state, then start it.

#vxvol -g datadg start vol01

16. update the snapshot volume
(refreshing the volume will sync the changed block from vol01 to
snapvol01)


#vxsnap -g datadg refresh snapvol01

or

#vxsnap -g datadg refresh snapvol01 source=vol01

17. If full resync of the volume is needed, then a reattach is required.

#vxsnap -g datadg reattach snapvol01 source=vol01

18. remove the snapshot volume if not required anymore.

#vxedit -g datadg -rf rm snapvol01

Full-Sized Instant Volume Snapshots - method 1: addmir to have 1 plex to attach to the volume.

1. A mirrored-volume created with 2 plexes and fastresync turned on
====================================================================

pw250(root)::vxsnap -g tdg prepare v8

pw250(root)::vxprint -htg tdg v8
V NAME RVG/VSET/CO KSTATE STATE LENGTH READPOL PREFPLEX UTYPE
PL NAME VOLUME KSTATE STATE LENGTH LAYOUT NCOL/WID MODE
SD NAME PLEX DISK DISKOFFS LENGTH [COL/]OFF DEVICE MODE
SV NAME PLEX VOLNAME NVOLLAYR LENGTH [COL/]OFF AM/NM MODE
SC NAME PLEX CACHE DISKOFFS LENGTH [COL/]OFF DEVICE MODE
DC NAME PARENTVOL LOGVOL
SP NAME SNAPVOL DCO
EX NAME ASSOC VC PERMS MODE STATE
SR NAME KSTATE

v v8 - ENABLED ACTIVE 409600 SELECT - fsgen
pl v8-01 v8 ENABLED ACTIVE 409600 CONCAT - RW
sd disk1-01 v8-01 disk1 0 409600 0 c2t8d18 ENA
pl v8-02 v8 ENABLED ACTIVE 409600 CONCAT - RW
sd disk2-01 v8-02 disk2 0 409600 0 c2t8d19 ENA
dc v8_dco v8 v8_dcl
v v8_dcl - ENABLED ACTIVE 544 SELECT - gen
pl v8_dcl-01 v8_dcl ENABLED ACTIVE 544 CONCAT - RW
sd disk6-01 v8_dcl-01 disk6 0 544 0 c2t8d17 ENA
pl v8_dcl-02 v8_dcl ENABLED ACTIVE 544 CONCAT - RW
sd disk3-01 v8_dcl-02 disk3 0 544 0 c2t8d20 ENA



2.Additional snap plex has been added to the volume.

pw250(root)::vxsnap -g tdg addmir v8 plex=v8snap-v3 alloc=disk4
====================================================================
v v8 - ENABLED ACTIVE 409600 SELECT - fsgen
pl v8-01 v8 ENABLED ACTIVE 409600 CONCAT - RW
sd disk1-01 v8-01 disk1 0 409600 0 c2t8d18 ENA
pl v8-02 v8 ENABLED ACTIVE 409600 CONCAT - RW
sd disk2-01 v8-02 disk2 0 409600 0 c2t8d19 ENA
pl v8-03 v8 ENABLED SNAPDONE 409600 CONCAT - WO
sd disk4-01 v8-03 disk4 0 409600 0 c2t8d21 ENA
dc v8_dco v8 v8_dcl
v v8_dcl - ENABLED ACTIVE 544 SELECT - gen
pl v8_dcl-01 v8_dcl ENABLED ACTIVE 544 CONCAT - RW
sd disk6-01 v8_dcl-01 disk6 0 544 0 c2t8d17 ENA
pl v8_dcl-02 v8_dcl ENABLED ACTIVE 544 CONCAT - RW
sd disk3-01 v8_dcl-02 disk3 0 544 0 c2t8d20 ENA
pl v8_dcl-03 v8_dcl DISABLED DCOSNP 544 CONCAT - RW
sd disk4-02 v8_dcl-03 disk4 409600 544 0 c2t8d21 ENA




3. After break off the plex, it is used to create new snapshot volume

pw250(root)::vxsnap -g tdg make source=v8/newvol=v8snapvol/plex=v8-03
pw250(root)::
================================================================

v v8 - ENABLED ACTIVE 409600 SELECT - fsgen
pl v8-01 v8 ENABLED ACTIVE 409600 CONCAT - RW
sd disk1-01 v8-01 disk1 0 409600 0 c2t8d18 ENA
pl v8-02 v8 ENABLED ACTIVE 409600 CONCAT - RW
sd disk2-01 v8-02 disk2 0 409600 0 c2t8d19 ENA
dc v8_dco v8 v8_dcl
v v8_dcl - ENABLED ACTIVE 544 SELECT - gen
pl v8_dcl-01 v8_dcl ENABLED ACTIVE 544 CONCAT - RW
sd disk6-01 v8_dcl-01 disk6 0 544 0 c2t8d17 ENA
pl v8_dcl-02 v8_dcl ENABLED ACTIVE 544 CONCAT - RW
sd disk3-01 v8_dcl-02 disk3 0 544 0 c2t8d20 ENA
sp v8snapvol_snp v8 v8_dco

v v8snapvol - ENABLED ACTIVE 409600 ROUND - fsgen
pl v8-03 v8snapvol ENABLED ACTIVE 409600 CONCAT - RW
sd disk4-01 v8-03 disk4 0 409600 0 c2t8d21 ENA
dc v8snapvol_dco v8snapvol v8snapvol_dcl
v v8snapvol_dcl - ENABLED ACTIVE 544 ROUND - gen
pl v8_dcl-03 v8snapvol_dcl ENABLED ACTIVE 544 CONCAT - RW
sd disk4-02 v8_dcl-03 disk4 409600 544 0 c2t8d21 ENA
sp v8_snp v8snapvol v8snapvol_dco
pw250(root)::




4. Split the diskgroup to create a new snap diskgroup
============================================================

pw250(root)::vxdg split tdg snapdg v8snapvol
pw250(root)::
pw250(root)::vxprint -htg snapdg
............
..........

dg snapdg default default 46000 1207136413.39.pw250

dm disk4 c2t8d21s2 auto 65536 10141440 -

v v8snapvol - DISABLED ACTIVE 409600 ROUND - fsgen
pl v8-03 v8snapvol DISABLED ACTIVE 409600 CONCAT - RW
sd disk4-01 v8-03 disk4 0 409600 0 c2t8d21 ENA
dc v8snapvol_dco v8snapvol v8snapvol_dcl
v v8snapvol_dcl - DISABLED ACTIVE 544 ROUND - gen
pl v8_dcl-03 v8snapvol_dcl DISABLED ACTIVE 544 CONCAT - RW
sd disk4-02 v8_dcl-03 disk4 409600 544 0 c2t8d21 ENA
sp v8_snp v8snapvol v8snapvol_dco


pw250(root)::vxprint -htg tdg
............
.....

v v8 - ENABLED ACTIVE 409600 SELECT - fsgen
pl v8-01 v8 ENABLED ACTIVE 409600 CONCAT - RW
sd disk1-01 v8-01 disk1 0 409600 0 c2t8d18 ENA
pl v8-02 v8 ENABLED ACTIVE 409600 CONCAT - RW
sd disk2-01 v8-02 disk2 0 409600 0 c2t8d19 ENA
dc v8_dco v8 v8_dcl
v v8_dcl - ENABLED ACTIVE 544 SELECT - gen
pl v8_dcl-01 v8_dcl ENABLED ACTIVE 544 CONCAT - RW
sd disk6-01 v8_dcl-01 disk6 0 544 0 c2t8d17 ENA
pl v8_dcl-02 v8_dcl ENABLED ACTIVE 544 CONCAT - RW
sd disk3-01 v8_dcl-02 disk3 0 544 0 c2t8d20 ENA
sp v8snapvol_snp v8 v8_dco


5. EXport the diskgroup
=========================
pw250(root)::vxdg deport snapdg
pw250(root)::vxdg list
NAME STATE ID
oracledg enabled,cds 1205751433.22.pw450
tdg enabled,cds 1207125877.35.pw250




6. Import the diskgroup on the remote host
===========================================

pw450(root)-->vxdg import snapdg
pw450(root)-->vxrecover -g snapdg -sb
pw450(root)-->
pw450(root)-->vxprint -htg snapdg
.........
..........

dg snapdg default default 46000 1207136413.39.pw250

dm disk4 c3t18d21s2 auto 65536 10141440 -

v v8snapvol - ENABLED ACTIVE 409600 ROUND - fsgen
pl v8-03 v8snapvol ENABLED ACTIVE 409600 CONCAT - RW
sd disk4-01 v8-03 disk4 0 409600 0 c3t18d21 ENA
dc v8snapvol_dco v8snapvol v8snapvol_dcl
v v8snapvol_dcl - ENABLED ACTIVE 544 ROUND - gen
pl v8_dcl-03 v8snapvol_dcl ENABLED ACTIVE 544 CONCAT - RW
sd disk4-02 v8_dcl-03 disk4 409600 544 0 c3t18d21 ENA
sp v8_snp v8snapvol v8snapvol_dco
pw450(root)-->
pw450(root)-->
pw450(root)-->mount -F vxfs /dev/vx/dsk/snapdg/v8snapvol /vsnap
pw450(root)-->
pw450(root)-->df -h /vsnap
Filesystem size used avail capacity Mounted on
/dev/vx/dsk/snapdg/v8snapvol
200M 2.1M 186M 2% /vsnap



7. Deport from remote host and import on original host
==========================================================

pw450(root)-->umount /vsnap
pw450(root)-->
pw450(root)-->vxdg deport snapdg

pw250(root)::vxdg import snapdg
pw250(root)::
pw250(root)::vxrecover -g snapdg -sb
pw250(root)::


8. Join the snap disk group into original disk group
=========================================================
pw250(root)::vxdg join snapdg tdg
pw250(root)::vxprint -htg tdg
..........
...

dg tdg default default 15000 1207125877.35.pw250

dm disk1 c2t8d18s2 auto 65536 10141440 -
dm disk2 c2t8d19s2 auto 65536 10141440 -
dm disk3 c2t8d20s2 auto 65536 10141440 -
dm disk4 c2t8d21s2 auto 65536 10141440 -
dm disk5 c2t8d22s2 auto 65536 10141440 -
dm disk6 c2t8d17s2 auto 65536 20381440 -

v v8 - ENABLED ACTIVE 409600 SELECT - fsgen
pl v8-01 v8 ENABLED ACTIVE 409600 CONCAT - RW
sd disk1-01 v8-01 disk1 0 409600 0 c2t8d18 ENA
pl v8-02 v8 ENABLED ACTIVE 409600 CONCAT - RW
sd disk2-01 v8-02 disk2 0 409600 0 c2t8d19 ENA
dc v8_dco v8 v8_dcl
v v8_dcl - ENABLED ACTIVE 544 SELECT - gen
pl v8_dcl-01 v8_dcl ENABLED ACTIVE 544 CONCAT - RW
sd disk6-01 v8_dcl-01 disk6 0 544 0 c2t8d17 ENA
pl v8_dcl-02 v8_dcl ENABLED ACTIVE 544 CONCAT - RW
sd disk3-01 v8_dcl-02 disk3 0 544 0 c2t8d20 ENA
sp v8snapvol_snp v8 v8_dco

v v8snapvol - DISABLED ACTIVE 409600 ROUND - fsgen
pl v8-03 v8snapvol DISABLED ACTIVE 409600 CONCAT - RW
sd disk4-01 v8-03 disk4 0 409600 0 c2t8d21 ENA
dc v8snapvol_dco v8snapvol v8snapvol_dcl
v v8snapvol_dcl - DISABLED ACTIVE 544 ROUND - gen
pl v8_dcl-03 v8snapvol_dcl DISABLED ACTIVE 544 CONCAT - RW
sd disk4-02 v8_dcl-03 disk4 409600 544 0 c2t8d21 ENA
sp v8_snp v8snapvol v8snapvol_dco



9. Start the snap volume as it is in disabled state

Refresh the snap volume with start the resync process with the orignial volume.
========================================================
pw250(root)::vxvol -g tdg start v8snapvol
pw250(root)::vxsnap -g tdg refresh v8snapvol

Veritas Traditional Volume Snapshot.

Traditional Volume Snapshots
==============================

make pitc
----------
1. vxvol set fastresync=on

2. vxassist -g xxxdg snapstart datavol

3. vxassist -g xxxdg snapshot datavol snapvol

use pitc
---------
4. vxdg split
5. vxdg join

update pitc
------------
6.vxassist -g xxxdg snapback snapvol

or

7. vxassist -g xxxdg -o resyncfromreplica snapback snapvol


display pitc info
------------------
8. vxassist -g xxxdg snapprint datavol


abort the snapshot
--------------------
To remove a snapshot mirror that has not been detached and moved to a snapshot volume.

9. vxassist -g xxxdg snapabort datavol



destroy pitc
-------------
10.destroy pitc

Wednesday, October 03, 2007

Linux VIO Considerations

Here's the support info provided by IBM:

1. For AIX 5L V5.3 VIO clients, only the APV VIOS is supported by IBM.
2. Linux VIO clients may use the APV VIOS or the Linux VIO server.


So it seems to be that having Linux VIO client is a better choice.
But do i want to run linux on such expensive IBM hardware??!

I can achieve better performance, availability and serviceability by running linux on x64/x86 server.

Conclusion is Linux VIO client / server is only meant for rich and affordable customers.