2015-01-26

VMWare vSphere ESXi 5.5 update process

===========================================
Current Version:
===========================================
VMWare vSphere ESXi 5.5.0 1623387 (5.5 Update 1, Release date: 2014-03-11, KB 2065832)
Image Profile: ESXi-5.5.0-20140302001-standard
===========================================
Updates Available (ESXi 5.5 all):
===========================================
ESXi550-201312001 Build Number: 1474528 KB 2063795 Release Date: 2013-12-22
update-from-esxi5.5-5.5_update01 Build Number: 1623387 KB 2065832 Release Date: 2014-03-11
ESXi550-201404001 Build Number: 1746018 KB 2076120 Release Date: 2014-04-19
ESXi550-201404020 Build Number: 1746974 KB 2076586 Release Date: 2014-04-19
ESXi550-201406001 Build Number: 1881737 KB 2077359 Release Date: 2014-06-10
ESXi550-201407001 Build Number: 1892794 KB 2077405 Release Date: 2014-07-01
update-from-esxi5.5-5.5_update02 Build Number: 2068190 KB 2079725 Release Date: 2014-09-09
ESXi550-201410001 Build Number: 2143827 KB 2087358 Release Date: 2014-10-15
ESXi550-201412001 Build Number: 2302651 KB 2096281 Release Date: 2014-12-02
===========================================
Install process:
===========================================
#mkdir patches on local storage root
#download patches in same directory
#poweroff all vm on esxi host
#connect to ssh esxi
vim-cmd hostsvc/maintenance_mode_enter
cd /vmfs/volumes/datastore1/patches/
esxcli software vib update -d "/vmfs/volumes/datastore1/patches/ESXi550-201404001.zip"
esxcli software vib list
reboot
vim-cmd hostsvc/maintenance_mode_exit
#poweron all vm on esxi host
#upgrade vmware-tools if needed

Читать далее

2015-01-23

Oracle 8.1.7.4 битые блоки продолжение

Имеем следующее:

. . exporting table                   TGROUPSCHEMA          8 rows exported
. . exporting table                          THEAD
EXP-00056: ORACLE error 1578 encountered
ORA-01578: ORACLE data block corrupted (file # 66, block # 107197)
ORA-01110: data file 66: '/u02/oradata/main/umc_data01.ora'
. . exporting table                     TMATHERIAL     156757 rows exported

Действия:

adonis:~ # su - oracle
oracle@adonis:~> dbv file=/u02/oradata/main/umc_data01.ora blocksize=8192

DBVERIFY: Release 8.1.7.4.0 - Production on Fri Jan 23 10:38:07 2015

(c) Copyright 2000 Oracle Corporation.  All rights reserved.

DBVERIFY - Verification starting : FILE = /u02/oradata/main/umc_data01.ora
Block Checking: DBA = 276931261, Block Type = KTB-managed data block
Found block already marked corrupted


DBVERIFY - Verification complete

Total Pages Examined         : 128000
Total Pages Processed (Data) : 45601
Total Pages Failing   (Data) : 0
Total Pages Processed (Index): 70514
Total Pages Failing   (Index): 0
Total Pages Processed (Other): 460
Total Pages Empty            : 11425
Total Pages Marked Corrupt   : 0
Total Pages Influx           : 0

oracle@adonis:~> export ORACLE_SID=main                                                     
oracle@adonis:~> sqlplus /nolog                                                                                               
                                                                                                                              
SQL*Plus: Release 8.1.7.0.0 - Production on Fri Jan 23 10:45:14 2015                                                          
                                                                                                                              
(c) Copyright 2000 Oracle Corporation.  All rights reserved.                                                                  

SQL> connect sys as sysdba
Enter password:
Connected.
SQL> select owner, segment_name, segment_type from dba_extents
where file_id=dbms_utility.data_block_address_file(276931261)
and dbms_utility.data_block_address_block(276931261) between block_id and block_id+blocks-1  2    3 
  4  ;

OWNER
------------------------------
SEGMENT_NAME
--------------------------------------------------------------------------------
SEGMENT_TYPE
------------------
UMC_DBA
THEAD
TABLE

Ну это и так было понятно.

SQL> SET serveroutput on
DECLARE num_corrupt INT;
BEGIN
num_corrupt := 0;
DBMS_REPAIR.CHECK_OBJECT (
     SCHEMA_NAME => 'UMC_DBA',
     OBJECT_NAME => 'THEAD',
     REPAIR_TABLE_NAME => 'REPAIR_TABLE',
     corrupt_count =>  num_corrupt);
DBMS_OUTPUT.PUT_LINE('number corrupt: ' || TO_CHAR (num_corrupt));
END;
SQL>   2    3    4    5    6    7    8    9   10   11 
 12  /
number corrupt: 2

PL/SQL procedure successfully completed.

SQL> SELECT object_name, block_id, corrupt_type, marked_corrupt,
corrupt_description, repair_description
FROM repair_table;  2    3 

OBJECT_NAME                      BLOCK_ID CORRUPT_TYPE MARKED_COR
------------------------------ ---------- ------------ ----------
CORRUPT_DESCRIPTION
--------------------------------------------------------------------------------
REPAIR_DESCRIPTION
--------------------------------------------------------------------------------
FOR_AUDIT                           98250         6148 TRUE

mark block software corrupt

THEAD                               19130         6148 TRUE

mark block software corrupt

OBJECT_NAME                      BLOCK_ID CORRUPT_TYPE MARKED_COR
------------------------------ ---------- ------------ ----------
CORRUPT_DESCRIPTION
--------------------------------------------------------------------------------
REPAIR_DESCRIPTION
--------------------------------------------------------------------------------

THEAD                              107197         6148 TRUE

mark block software corrupt

SQL> SET serveroutput on
DECLARE num_fix INT;
BEGIN
num_fix := 0;
DBMS_REPAIR.FIX_CORRUPT_BLOCKS (
     SCHEMA_NAME => 'UMC_DBA',
     OBJECT_NAME=> 'THEAD',
     OBJECT_TYPE => dbms_repair.table_object,
     REPAIR_TABLE_NAME => 'REPAIR_TABLE',
     FIX_COUNT=> num_fix);
DBMS_OUTPUT.PUT_LINE('num fix: ' || to_char(num_fix));
END;
/SQL>   2    3    4    5    6    7    8    9   10   11   12 
num fix: 0

PL/SQL procedure successfully completed.

SQL> SELECT object_name, block_id, marked_corrupt
     FROM repair_table;  2 

OBJECT_NAME                      BLOCK_ID MARKED_COR
------------------------------ ---------- ----------
FOR_AUDIT                           98250 TRUE
THEAD                               19130 TRUE
THEAD                              107197 TRUE

SQL> select index_name from dba_indexes
where table_name = 'THEAD'
  and owner = 'UMC_DBA';
/  2    3 
INDEX_NAME
------------------------------
I_HD_ACCEPTOR
I_HD_AGREE_PARTNER_LINK
I_HD_CORRECTION
I_HD_CORRECTOR
I_HD_CREATION
I_HD_CREATOR
I_HD_DIVCODE
I_HD_DOC_DATE
I_HD_DOC_NUM
I_HD_DRAFT_HEAD_ID
I_HD_OP_DT_SENDER

INDEX_NAME
------------------------------
I_HD_OP_KIND_ID
I_HD_OWNERID
I_HD_PARENT_ID
I_HD_PARTNER_ID
I_HD_PARTNER_TYPE
I_HD_SENDER
PK_HEAD

18 rows selected.

Теперь проверяем все индексы.

SQL> SET serveroutput on
DECLARE num_orphans INT;
BEGIN
num_orphans := 0;
DBMS_REPAIR.DUMP_ORPHAN_KEYS (
     SCHEMA_NAME => 'UMC_DBA',
     OBJECT_NAME => 'PK_HEAD',
     OBJECT_TYPE => dbms_repair.index_object,
     REPAIR_TABLE_NAME => 'REPAIR_TABLE',
     ORPHAN_TABLE_NAME=> 'ORPHAN_KEY_TABLE',
     KEY_COUNT => num_orphans);
DBMS_OUTPUT.PUT_LINE('orphan key count: ' || to_char(num_orphans));
END;
/SQL>   2    3    4    5    6    7    8    9   10   11   12   13 
orphan key count: 46

PL/SQL procedure successfully completed.

orphan key count д.б. = 0. Как видим, тут 46. Это жопа.
По остальным:
I_HD_SENDER 46
I_HD_PARTNER_TYPE 46
I_HD_PARTNER_ID 1
I_HD_PARENT_ID 15
I_HD_OWNERID 46
I_HD_OP_KIND_ID 46
I_HD_OP_DT_SENDER 46
I_HD_DRAFT_HEAD_ID 0
I_HD_DOC_NUM 46
I_HD_DOC_DATE 46
I_HD_DIVCODE 46
I_HD_CREATOR 46
I_HD_CREATION 46
I_HD_CORRECTOR 46
I_HD_CORRECTION 46
I_HD_AGREE_PARTNER_LINK 1
I_HD_ACCEPTOR 46

Теперь у нас  в ORPHAN_KEY_TABLE куча данных :)

SQL> BEGIN
DBMS_REPAIR.REBUILD_FREELISTS (
     SCHEMA_NAME => 'UMC_DBA',
     OBJECT_NAME => 'THEAD',
     OBJECT_TYPE => dbms_repair.table_object);
END;  2    3    4    5    6 
  7  /

PL/SQL procedure successfully completed.


SQL> BEGIN
DBMS_REPAIR.SKIP_CORRUPT_BLOCKS (
     SCHEMA_NAME => 'UMC_DBA',
     OBJECT_NAME => 'THEAD',
     OBJECT_TYPE => dbms_repair.table_object,
     FLAGS => dbms_repair.skip_flag);
END;
/
  2    3    4    5    6    7    8 
PL/SQL procedure successfully completed.

SQL> SELECT owner, table_name, skip_corrupt
FROM dba_tables
WHERE owner = 'UMC_DBA'
AND skip_corrupt = 'ENABLED';  2    3    4 

OWNER                          TABLE_NAME                     SKIP_COR
------------------------------ ------------------------------ --------
UMC_DBA                        THEAD                          ENABLED

alter index I_HD_ACCEPTOR rebuild;
alter index I_HD_AGREE_PARTNER_LINK rebuild;
alter index I_HD_CORRECTION rebuild;
alter index I_HD_CORRECTOR rebuild;
alter index I_HD_CREATION rebuild;
alter index I_HD_CREATOR rebuild;
alter index I_HD_DIVCODE rebuild;
alter index I_HD_DOC_DATE rebuild;
alter index I_HD_DOC_NUM rebuild;
alter index I_HD_DRAFT_HEAD_ID rebuild;
alter index I_HD_OP_DT_SENDER rebuild;
alter index I_HD_OP_KIND_ID rebuild;
alter index I_HD_OWNERID rebuild;
alter index I_HD_PARENT_ID rebuild;
alter index I_HD_PARTNER_ID rebuild;
alter index I_HD_PARTNER_TYPE rebuild;
alter index I_HD_SENDER rebuild;
alter index PK_HEAD rebuild;



Читать далее

2015-01-21

Склерозник. MySQL, PHPMyAdmin, MediaWiki

Ставим SLES11 SP3, в нем ставим все компоненты из названия темы, нехитрым путем добавления репозиториев.

MySQL

f01:~ # chkconfig mysql on
f01:~ # /etc/init/d/mysql start
f01:~ # mysqladmin -u root password 'root'

Apache2

f01:~ # chkconfig apache2 on
f01:~ # /etc/init.d/apache2 start

После этого можемзайти на http://url/phpmyadmin под root с паролем root.



Читать далее

2015-01-17

Риторически - замена Jira + Confluence от Atlassian

В свое время заворотили мы в конторе офигительную связку - Atlassian Jira + Atlassian Confluence + Subversion. Подсадили на нее всех и вся, настроили мегакучу плагинов. Юзеры теперь знают, что для того, чтоб к ним прибежал ситовец можно просто отправить письмо на ящик сит, получить уведомление о создании задания, увидеть, кому оно назначено и т.д. Программеры кучу доки в конфу зарядили, хрен разгребешь. Начальник наглядно видит загрузку персонала и все существующие работы... В общем все неплохо, кроме одного  - цен на продукцию Atlassian.

Соответственно есть такой вопрос. Ни к кому - к себе, ибо надо разбираться. А вопрос в следующем - можно ли Jira + Confluence заменить на Redmine + MediaWiki (или что-то другое) с сохранением связки с остальными продуктами и сохранением функционала по получению информации и работе с пользователями через email

А????



Читать далее

2015-01-13

PostgreSQL Streaming replication config files example

Server 1 - master (111.111.111.22)

postgresql.conf

#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------

listen_addresses = '*'
max_connections = 3000

#------------------------------------------------------------------------------
# RESOURCE USAGE (except WAL)
#------------------------------------------------------------------------------

shared_buffers = 40000MB
max_prepared_transactions = 2000
work_mem = 360MB
maintenance_work_mem = 1024MB

#------------------------------------------------------------------------------
# WRITE AHEAD LOG
#------------------------------------------------------------------------------

synchronous_commit = off
checkpoint_segments = 20

#------------------------------------------------------------------------------
# REPLICATION
#------------------------------------------------------------------------------                                               

max_wal_senders = 5                                                                                                           
wal_level = hot_standby                                                                                                       
wal_keep_segments = 100                                                                                                       
archive_mode = on                                                                                                             
archive_command = 'test ! -f /u04/pgarch/%f && cp %p  /u04/pgarch/%f'

#------------------------------------------------------------------------------                                               
# QUERY TUNING                                                                                                                
#------------------------------------------------------------------------------                                               

join_collapse_limit = 100                                                                                                     
seq_page_cost = 0.0000001                                                                                                     
random_page_cost = 2.0
cpu_operator_cost = 0.0000001
constraint_exclusion = on

#------------------------------------------------------------------------------
# ERROR REPORTING AND LOGGING
#------------------------------------------------------------------------------

log_destination = 'stderr'
logging_collector = on
log_line_prefix = '%d %u %h %a %s %t %p '
log_min_duration_statement = 15000
log_statement = ddl
log_hostname = on
log_temp_files = 0
log_lock_waits = on

#------------------------------------------------------------------------------
# AUTOVACUUM PARAMETERS
#------------------------------------------------------------------------------

autovacuum = off

#------------------------------------------------------------------------------
# CLIENT CONNECTION DEFAULTS
#------------------------------------------------------------------------------

datestyle = 'iso, dmy'
lc_messages = 'ru_RU.UTF-8'
lc_monetary = 'ru_RU.UTF-8'
lc_numeric = 'ru_RU.UTF-8'
lc_time = 'ru_RU.UTF-8'
default_text_search_config = 'pg_catalog.russian'

#------------------------------------------------------------------------------
# LOCK MANAGEMENT
#------------------------------------------------------------------------------

max_locks_per_transaction = 250
max_pred_locks_per_transaction = 250

pg_hba.conf

local   all         all                               trust
host    all         all         127.0.0.1/32          trust
host    all         all         0.0.0.0/0             password
host    replication replicator  111.111.111.29/32        md5

Server 2 - slave (111.111.111.29)

postgresql.conf

#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------

listen_addresses = '*'
max_connections = 3000

#------------------------------------------------------------------------------                                               
# RESOURCE USAGE (except WAL)                                                                                                 
#------------------------------------------------------------------------------                                               

shared_buffers = 10000MB                                                                                                      
max_prepared_transactions = 2000                                                                                              
work_mem = 100MB                                                                                                              
maintenance_work_mem = 1024MB                                                                                                 

#------------------------------------------------------------------------------                                               
# WRITE AHEAD LOG                                                                                                             
#------------------------------------------------------------------------------                                               

synchronous_commit = off                                                                                                      
checkpoint_segments = 20                                                                                                      

#------------------------------------------------------------------------------
# REPLICATION
#------------------------------------------------------------------------------

hot_standby = on
max_wal_senders = 5
wal_level = hot_standby
wal_keep_segments = 100
archive_mode = on
archive_command = 'test ! -f /u04/pgarch/%f && cp %p /u04/pgarch/%f'

#------------------------------------------------------------------------------
# QUERY TUNING
#------------------------------------------------------------------------------

join_collapse_limit = 100
seq_page_cost = 0.0000001
random_page_cost = 2.0
cpu_operator_cost = 0.0000001
constraint_exclusion = on

#------------------------------------------------------------------------------
# ERROR REPORTING AND LOGGING
#------------------------------------------------------------------------------

log_destination = 'stderr'
logging_collector = on
log_line_prefix = '%d %u %h %a %s %t %p '
log_min_duration_statement = 15000
log_statement = ddl
log_hostname = on
log_temp_files = 0
log_lock_waits = on
log_checkpoints = on

#------------------------------------------------------------------------------
# AUTOVACUUM PARAMETERS
#------------------------------------------------------------------------------

autovacuum = off

#------------------------------------------------------------------------------
# CLIENT CONNECTION DEFAULTS
#------------------------------------------------------------------------------

datestyle = 'iso, dmy'
lc_messages = 'ru_RU.UTF-8'
lc_monetary = 'ru_RU.UTF-8'
lc_numeric = 'ru_RU.UTF-8'
lc_time = 'ru_RU.UTF-8'
default_text_search_config = 'pg_catalog.russian'

#------------------------------------------------------------------------------
# LOCK MANAGEMENT
#------------------------------------------------------------------------------

max_locks_per_transaction = 250
max_pred_locks_per_transaction = 250



Читать далее