пятница, 5 сентября 2014 г.

SysRq

Если SysRq вызывается с использованием Fn то следует зажать Alt + Fn + SysRq, затем отпустить Fn и ввести букву команды.
Alt + SysRq + HHelp — выводит все доступные возможности SysRq, выделяя большой буквой клавишу действия;
Alt + SysRq + 0-9loglevel0-9 — позволяет менять уровень подробности вывода от 0 (только критические сообщения) до 8 (самый подробный режим);
Alt + SysRq + BreBoot — выполняет немедленную перезагрузку системы аналогично кнопке RESET (без синхронизации и размонтирования файловых систем);
Alt + SysRq + CCrashdump — выполняет директиву kexec для перезагрузки чтобы получить сведения об ошибках;
Alt + SysRq + DholDs — показывает все блокировки, которые держат устройства или файлы;
Alt + SysRq + OpowerOff — корректно выключает систему (если настроено и поддерживается, обычно это прямая команда отключения);
Alt + SysRq + SSync — пытается синхронизировать все примонтированные файловые системы, при этом пишет в консоли «Emergency Sync». При успешно завершении выводится «Emergency Sync Complete»;
Alt + SysRq + UUnmount — пытается перемонтировать все примонтированные файловые системы в режим «только чтение»;
Alt + SysRq + TshowTasks — выдаст список текущих задач и информацию о них в текущую консоль;
Alt + SysRq + NNice — используется для того, чтобы сбросить приоритет задачи реального времени или просто с измененным приоритетом;
Alt + SysRq + WshoW-blocked-tasks — выдаст список всех непрерываемых (заблокированных, ждущих окончание ввода-вывода) задач;
Alt + SysRq + MshowMem — выдаст информацию о доступной и занятой оперативной памяти, а также степени использования свопа;
Alt + SysRq + FFull — позволяет вызвать обработчик oom_kill (out-of-memory kill) для прерывания приложений, забравших слишком много памяти (может занять продолжительное время). Используйте его, если свободная память совсем истощилась, так что система не реагирует ни на какой иной ввод (курсор мыши не движется, индикаторы NumLock/CapsLock не включаются, но индикатор работы накопителя всё время включен);
Alt + SysRq + Ksecure access Key — убивает все процессы на текущей консоли. Её следует применять для снятия зависшего X-сервера. При этом графический сервер будет остановлен и невозможно будет увидеть ввод-вывод либо пока X-сервер не перезапустится, либо пока видеорежим не будет исправлен вручную;
Alt + SysRq + RunRaw — перехватывает управление мышью и клавиатурой у Х-сервера, что полезно, если Х-сервер завис: так можно перейти в консоль, убить Х-сервер или проверить логи;
Alt + SysRq + EtErm — послать сигнал завершения работы SIGTERM всем процессам, кроме init;
Alt + SysRq + IKILL — послать сигнал немедленного завершения работы SIGKILL всем процессам, кроме init.
То есть, например, для аварийной синхронизации данных следует выполнить последовательность Alt + SysRq + S, далее Alt + SysRq + U. После этого можно жать на сброс или, что то же самое, Alt + SysRq + B.
Более правильно экстренную перезагрузку стоит проводить, зажав клавиши Alt + SysRq и с интервалом в 2-3 секунды нажать последовательно: R E I S U B
unRaw (перехватить управление клавиатурой),
tErminate (послать SIGTERM всем процессам),
kIll (послать SIGKILL всем процессам, которые не смогли завершиться предыдущей командой),
Sync (синхронизировать файловые системы),
Unmount (перемонтировать файловые системы в режим «только чтение»),
reBoot. (и напоследок, совершить перезагрузку)

How to Reset MYSQL Database Root Password

he MySQL root password can be set using the following procedure:
Stop the MySQL service:

# service mysqld stop
Stopping MySQL:                                            [  OK  ]

Start MySQL with:
# /usr/bin/mysqld_safe –skip-grant-tables &
On Red Hat Enterprise Linux 3, mysqld_safe was called safe_mysqld:
# /usr/bin/safe_mysqld –skip-grant-tables &

Note: mysql_safe is a shell script which invokes mysqld, but additionally traps any forceful terminations of the MySQL server and avoids any database corruption.
 
Change the password of the root user:

# mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD(‘new_password’) WHERE user=’root’;
mysql> FLUSH PRIVILEGES;
mysql> exit;

Restart mysqld using mysqladmin to ensure that the service shuts down successfully (as it was started manually in step 2).
# mysqladmin shutdown

Restart the MySQL service as per normal:
# service mysqld start

Using vsftpd under Veritas VCS Application agent


Add a group

haconf -makerw
hagrp -add vsftpd_grp
hagrp -modify vsftpd_grp SystemList Node01 0 Node02 1
hagrp -autoenable vsftpd_grp -sys Node01
hagrp -autoenable vsftpd_grp -sys Node02
hagrp -modify vsftpd_grp OnlineRetryLimit 3
# start group on both nodes
hagrp -modify vsftpd_grp AutoFailOver 0
hagrp -modify vsftpd_grp Parallel 1

Add Resource

hares -add vsftpd_res Application vsftpd_grp
hares -modify vsftpd_res StartProgram "/etc/init.d/vsftpd start"
hares -modify vsftpd_res StopProgram  "/etc/init.d/vsftpd stop"
# if you want to run as root - ignore this line
hares -modify vsftpd_res User a_user_name
# command will be executed as su - a_user_name
hares -modify vsftpd_res UseSUDash 1                  
# Monitor process - whole string as appears in ps -ef output
hares -modify vsftpd_res MonitorProcesses \ 
   "/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf"
# not tested
hares -modify vsftpd_res MonitorProgram "/etc/init.d/vsftpd status"
# does not write a pid file - ignore it
hares -modify vsftpd_res PidFiles "/var/run/vsftpd.pid"         
hares -modify vsftpd_res Enabled 1
# Make group dependendt on cluster filesystem (or any other group you wish)
hagrp -link vsftpd_grp CFS_Group online local firm
haconf -dump -makero

Bring vsftpd online

hagrp -online vsftpd_grp -sys Node01
hagrp -online vsftpd_grp -sys Node02

Snip from config file

group mq_group (
        SystemList = { Node01 = 0, Node02 = 1 }
        AutoFailOver = 0
        Parallel = 1
        AutoStartList = { Node01, Node02 }
        OnlineRetryLimit = 3
        )

        Application activemq (
                StartProgram = "/etc/init.d/vsftpd start"
                MonitorProcesses = { "/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf" }
                StopProgram = "/etc/init.d/vsftpd stop"
                )

        requires group CFS_Group online local firm

понедельник, 23 июня 2014 г.

Шпаргалка по VxVM

Привожу здесь краткую шпаргалку по VxVM, как обещал в этом посте. Здесь перечислены только самые базовые возможности, которые будут полезны администратору баз данных.
Посмотреть статус дисков в группеvxdisk list
Создать дисковую группуvxdg init diskgroup diskname=device
Добавить диск к группеvxdg -g diskgroup adddisk diskname=device
Удалить диск из группыvxdg –g diskgroup rmdisk diskname
Удалить группуvxdg destroy diskgroup
Посмотреть список дисковых группvxdg list [diskgroup]
Посмотреть количество свободного места в группеvxdg -g diskgroup free
Создать томvxassist -g diskgroup make vol_name size layout=format diskname
Удалить томvxedit -g diskgroup -rf rm vol_name
или
vxassist -g diskgroup remove volume vol_name
Посмотреть сведения о томеvxprint -g diskgroup -vt vol_name
или
vxprint -g diskgroup –l vol_name
Изменить размер томаvxresize -g diskgroup vol_name new_size

Транзакции, потребляющие UNDO

Чтобы узнать, какие транзакции наиболее активно потребляют место в Undo tablespaces с привязкой к сессиям, поможет такой запрос (для версий 10g и выше):
SELECT DISTINCT s.sid, s.serial#, s.schemaname, s.osuser, s.program, t.start_time,  
       t.used_ublk, r.name rollback_segment_name, 
       st.sql_text, st_prev.sql_text prev_sql_text, s.event
FROM v$session s, v$transaction t, v$rollname r, v$sql st, v$sql st_prev
WHERE 
 t.addr = s.taddr AND
 t.USED_UBLK > 0 AND 
 t.xidusn = r.usn AND
 st.SQL_ID(+) = s.SQL_ID AND
 st_prev.SQL_ID(+) = s.SQL_ID
ORDER BY t.USED_UBLK DESC;

Список отсортирован по убыванию. Думаю, нужно пояснить назначение только двух полей:USED_UBLKи START_TIME.
USED_UBLK - это количество блоков undo, используемых данной транзакцией.
START_TIME - время начала транзакции (не сессии!).

Использование утилиты vxstat


В Solaris и HP-UX есть утилита iostat, которая позволяет посмотреть статистику ввода-вывода по дискам. Но если используется Veritas Volume Manager, то удобнее будет воспользоваться утилитой /usr/sbin/vxstat, т.к. она показывает статистику не только по дискам, но и по томам, субдискам, плексам, и т.д.
Вот, например, как можно посмотреть статистику ввода-вывода в группе test с использованием мегабайт вместо блоков в качестве единицы измерения:
vxstat -g test -v -u m
Будет выведен список томов и значения статистики с момента старта системы. В колонках BLOCKS будет значение не в блоках, а в мегабайтах.
Если запустить команду таким образом:
vxstat -r
то статистика будет сброшена без перезагрузки системы, но это надо делать от имени root. Без опции-r утилиту могут запускать и другие пользователи.
Пара полезных ссылок: 12

вторник, 27 мая 2014 г.

Serial Split Brain detected. Run vxsplitlines

 vxsplitlines -g ams2ndg -v
  551  /usr/lib/vxvm/bin/vxsplitlines -g ams2ndg -v
  552  /usr/lib/vxvm/bin/vxsplitlines -g ams2ndg
  553  /usr/sbin/vxdg (-s) -o selectcp=1396850515.18.******.ru import ams2ndg
  554  /usr/sbin/vxdg  -o selectcp=1396850515.18.rh1.*****.ru import ams2ndg
  555  /usr/sbin/vxdg  -o selectcp=1293694112.13.rh2.****.ru import ams2ndg
  556  vxdisk list
  557  vxvol -g ams2ndg start vol01
  559  vxrecover -g ams2ndg -sb
  560  cat /etc/fstab
  561  fsck -F vxfs /dev/vx/rdsk/ams2ndg/vol01
  562  fsck -F vxfs /dev/vx/rdsk/ams2ndg/vol01
  563  fsck -t vxfs /dev/vx/rdsk/ams2ndg/vol01
  564  vxdisk -o alldgs list
  575  vxdisk list -o alldgs
  576  /usr/lib/vxvm/bin/vxsplitlines -g ams2ndg -v
  577  /usr/lib/vxvm/bin/vxsplitlines -g ams2ndg -v
  578  /usr/lib/vxvm/bin/vxsplitlines -g ams2ndg


http://www.symantec.com/business/support/index?page=content&id=TECH33020

четверг, 22 мая 2014 г.

How to change LUN IO queue depth

To change queue depth from 16 to 32 for Q-Logic HBA

cat /sys/module/qla2xxx/parameters/ql2xmaxqdepth
16
echo 32 > /sys/module/qla2xxx/parameters/ql2xmaxqdepth
cat /sys/module/qla2xxx/parameters/ql2xmaxqdepth

Modify /etc/modprobe.conf to retain it over reboot
options qla2xxx ql2xmaxqdepth=32 qlport_down_retry=14 ql2xloginretrycount=30


cat /proc/scsi/sg/device_hdr cat /proc/scsi/sg/devices
host   chan    id      lun     type    opens   qdepth  busy   online
3       0       0       12      0       1       32     5       1

Netbackup script restore

LOCATION:
for Window : \Veritas\Netbackup\bin 
for Unix:  /usr/openv/netbackup/bin
the command can be initiated from the client (destination) or from the master server

#!/bin/sh
DATE=`date +%m/%d/%Y`;
OLD=`date +%m/%d/%Y --date="-6 day"`;
/usr/openv/netbackup/bin/bprestore -C nb1 -D nb1 -L /home/user/restore.log -f /home/user/backup.list -R /home/user/rename_list

backup.list
/home/user/test3

rename_list
change /home/user/test3 to /home/user/test5

-L <progress log>
-C <sourceClient>
-D <destinationClient>

-R <RenameFileList>
-f<RestoreFileList>

вторник, 20 мая 2014 г.

Ручной запуск клиента netbackup

Ручной запуск клиента
/usr/openv/netbackup/bin/vnetd -standalone
/usr/openv/netbackup/bin/bpcd -standalone

Netbackup Administration Console - Restricted Access

/usr/openv/java/auth.conf

How to create a yum repository on RHEL/CentOS 5.x with CD/DVD or ISO images

How to create a yum repository on RHEL/CentOS 5.x with CD/DVD or ISO images

Mount your CD/DVD or ISO images

DVD Disk or DVD ISO image

  • If you have DVD disk, please mount dvd-rom first, and then create yum repository:
  • # mkdir /mnt/dvd/
    # mount /dev/cdrom /mnt/dvd/
  • If you use DVD iso, please copy it to the system, and then create yum repository:
  • # mkdir /mnt/dvd/
    # mount -o loop /root/rhel5.1-dvd.iso /mnt/dvd

CD images

If you have multiple CD image files, you should mount all iso images and then create yum repository.
  • Mount all iso images:
  • # mkdir -p /mnt/{1,2,3,4,5}
    # mount -o loop rhel5.1-disc1.iso /mnt/1
    # mount -o loop rhel5.1-disc2.iso /mnt/2
    # mount -o loop rhel5.1-disc3.iso /mnt/3
    # mount -o loop rhel5.1-disc4.iso /mnt/4
    # mount -o loop rhel5.1-disc5.iso /mnt/5

Install necessary package

  • Find and install 'createrepo' package in /mnt directory:
  • # find /mnt -iname 'createrepo*'
    /mnt/dvd/Server/createrepo-0.4.11-3.el5.noarch.rpm
    
    # rpm -ivh /mnt/dvd/Server/createrepo-0.4.11-3.el5.noarch.rpm

Create yum repository

Create metadata

  • Create yum repository:
  • # cd /mnt/
    # createrepo .

Define yum repository

Create yum repository define file /etc/yum.repos.d/dvdiso.repo:
[MailRepo]
name=MailRepo
baseurl=file:///mnt/
enabled=1
gpgcheck=0

Test it

# yum clean all
# yum list
If 'yum list' list all packages in DVD/CD disks or ISO images, it works. :)

вторник, 1 апреля 2014 г.

How to find information of a HBA card (WWN, …) on Rad Hat Linux

The /sys/class/fc_host directory contents information for all HBAs. A directory called hostX (the count begins at 1) is created for each available interfaces.

cd /sys/class/fc_host/
ls
host1  host2
In the directory you could find a lot of information like the speed of the connection, the status, the WWN, …
cd host1
ls
device        issue_lip        npiv_vports_inuse  port_state  speed       supported_classes  system_hostname  vport_create
dev_loss_tmo  max_npiv_vports  port_id            port_type   statistics  supported_speeds   tgtid_bind_type  vport_delete
fabric_name   node_name        port_name          power       subsystem   symbolic_name      uevent
Show the state :
cat port_state
Online
Show the speed :
cat speed
4 Gbit
Show the WWN :
cat port_name
0x21000042ee046678
But the easiest method consists to use the systool command that is not maybe installed by default. You can install it with the yum command :
yum install sysfsutils
If you cannot use yum you must install two rmp packages : libsysfs-version.ditribution.arch and sysfsutils-version.ditribution.arch.

The following command shows you all information for a card (the hosX value finded previously must be yused as parameter) :
systool -c fc_host -v -d hostX
systool -c fc_host -v -d host1
Class = "fc_host"
  Class Device = "host1"
  Class Device path = "/sys/devices/pci0000:00/0000:00:05.0/0000:03:00.0/host1/fc_host/host1"
    dev_loss_tmo        = "45"
    fabric_name         = "0x1000000422b4bc02"
    issue_lip           = <store method only>
    max_npiv_vports     = "127"
    node_name           = "0x20000042ee046678"
    npiv_vports_inuse   = "0"
    port_id             = "0xdeb580"
    port_name           = "0x21000042ee046678"
    port_state          = "Online"
    port_type           = "NPort (fabric via point-to-point)"
    speed               = "4 Gbit"
    supported_classes   = "Class 3"
    supported_speeds    = "1 Gbit, 2 Gbit, 4 Gbit"
    symbolic_name       = "QLE2460 FW:v5.06.05 DVR:v8.04.00.04.06.3-k"
    system_hostname     = ""
    tgtid_bind_type     = "wwpn (World Wide Port Name)"
    uevent              =
    vport_create        = <store method only>
    vport_delete        = <store method only>
    Device = "host1"
    Device path = "/sys/devices/pci0000:00/0000:00:05.0/0000:03:00.0/host1"
      fw_dump             =
      nvram               = "ISP "
      optrom              =
      optrom_ctl          = <store method only>
      reset               = <store method only>
      sfp                 = ""
      uevent              = "DEVTYPE=scsi_host"
      vpd                 = "0"