Wednesday, March 18, 2015

MySQL Connection Error Checking

Current Counts:
select * FROM performance_schema.host_cache;
SHOW GLOBAL STATUS LIKE 'Aborted_connects'


Clear Abort Connections:
mysql > Flush Hosts;
mysqladmin flush-hosts

Sunday, March 15, 2015

Clear BIOS Raid Disks

Get Info:
dmsetup info
dmsetuo list

Clear Specific Device:
dmsetup remove /dev/mapper/ddf1_4c534920202020201000007910009263471147119133e6ca


Clear All Device (be cautious about operational and lvm disks as they are in the list):
dmsetup remove_all



Sunday, March 8, 2015

Update the Boot Archive on a RAID 1 Volume

Check the current meta devices and mirror status before reboot
metastat -p
like d0 d10 d20

Go to fail safe mode:
ok boot -F failsafe or reboot -- "-F failsafe"

Mount primary submirror
mount /dev/dsk/c0t0d0s0 /a

Update vfstab
backup original cp /a/etc/vfstab /a/etc/vfstab.orig

Comment out / filesystem
#/dev/md/dsk/d0     /dev/md/rdsk/d10    /     ufs    1    no    -

Add sub-mirror disk as /
/dev/dsk/c0t0d0s0 /dev/rdsk/c0t0d0s0  /     ufs    1    no    -

Update system conf
Backup original cp /a/etc/system /a/etc/system.orig

Comment out rootdev
* Begin MDD root info (do not edit)
# rootdev:/pseudo/md@0:0,0,blk
* End MDD root info (do not edit)

Update boot archive
bootadm update-archive -R /a

Reboot
umount /a
shutdown -i 6

Detach faulty sub-mirror
metadetach d0 d20

Replace changed file
cp /etc/vfstab.orig /etc/vfstab
cp /etc/system.orig /etc/system

Reboot
shutdown -i 6

Attach sub-mirror
metattach d0 d20

Check resync
metastat

Meta Device in Single Mode

boot cdrom -s

mkdir /tmp/a

ls -lthr /dev/dsk

mount -o ro /dev/dsk/c0t5000CCA01535BEA8d0s0 /tmp/a

cp /tmp/a/kernel/drv/md.conf /kernel/drv/md.conf

umount /tmp/a

update_drv md

metastat /dev/md/dsk/d0

metastat

mount /dev/md/d0 /tmp/a

Wednesday, February 25, 2015

Restart Network Service

Solaris
svcadm restart physical

RedHat
service network restart

Ubunto
service networking restart


Sunday, January 25, 2015

Python Enum

def enum(*sequential, **named):
    enums = dict(zip(sequential, range(len( sequential))), **named)
    reverse = dict((value, key) for key, value in enums.iteritems())
    keys = dict((key, value) for key, value in enums.iteritems())
    enums[ 'values' ] = reverse
    enums[ 'keys' ] = keys
    return type('Enum', (), enums)

ut = enum( M=1, S=2, T=4, V=8 )

ut.keys[ 'M' ] => 1

 ut.values[ 4 ] => 'T'

Thursday, January 1, 2015

Manage Update/Remove of hasMany field

class ManagedTeam {
    String name
    static hasMany = [ users: ManagedUser ]
}

update method in controller:

//clear all users
managedTeamInstance.users = []
//add the selected ones back
params.users.each() {
    def ManagedUser user = ManagedUser.get( it )
    managedTeamInstance.users.add( user )
    log.debug( "in associateUser: added " + user )
};

//try to save the changes
if( !managedTeamInstance.save( flush: true ) )
{
    return error()
}
else{
    flash.message = "Successfully associated users"
}