Friday, May 23, 2008

По переносу базы MS SQL 2005 на другой диск

Обратились ароматизаторы с проблемкой, в рамках которой нужно было перенести одну из баз MS SQL Server 2005 на другой диск. Нашел ссылку http://technet.microsoft.com/ru-ru/library/ms187858.aspx , но открыв MS SQL Management Studio и прикинув как это сделать через GUI, попробовал и .... прикольно, не думал, что так просто переместить базу в сиквеле :)

Wednesday, May 21, 2008

Дефрагментация таблиц, индексов (with LOB and partitions) с перемещением в другой TS

Столкнулся с проблемой, когда после удаления данных таблицы сильно дефрагментировались. Короче база на базе одной ASM diskgroup, в которой одна дисковая группа на базе 2 Lun's. Один размером 512Gb, другой - 72Gb. Запрос "select sum(bytes) from dba_segments" возвращает не более 100Gb, т.е. у меня более 400Gb свободно, но .... запрос "select total_mb,free_mb from v$asm_diskgroup" из более чем 500Гб возвращает свободных только 60Гб. А мне нужно вывести из этой дисковой группы Lun размером 72Гб. Но для того, чтобы вывести диск из группы необходимо достаточное свободного места для ребалансинга.
После команд
alter diskgroup dg1 drop disk dg_0001;
alter diskgroup dg1 rebalance power 6;
и после очистки содержимого v$asm_operation, говорящего нам о завершении ребалансинга
запрос "select name,path,state from v$asm_disk" возвращает состояние диска Hung. Согласно Reference "HUNG - Disk drop operation cannot continue because there is insufficient space to relocate the data from the disk being dropped". Вот так вот.
Сделать shrink невозможно, т.к. segment space management для табличных пространств в manual.
Спросил совета - Г. посоветовал сделать единственно верное в данном случае. Переместить все данные из одного из таблспэйса в другой вновь созданный соответствующего размера (select sum(bytes) from dba_segments where tablespace_name='MYDB_2006') и затем удалить исходный таблспэйс.
И вот решил "записать" скриптики, которые я использовал.
==========
-- Moving LOB PACKAGE_IN_DB to tablespace MYDB_TEST
set head off
set heading off
set pagesize 1000
set linesize 1000
set long 999999999
spool move_table_lob.sql
select 'ALTER TABLE '||TABLE_OWNER||'.'||TABLE_NAME|| ' move partition '||PARTITION_NAME|| ' LOB(PACKAGE_IN_DB)
STORE AS (TABLESPACE MYDB_2006);' from dba_tab_partitions where table_name='PACKAGES'
and tablespace_name='MYDB_TEST';
spool off;
@move_table_lob.sql
exit;
/
-- Moving partitions to tablespace MYDB_TEST
set head off
set heading off
set pagesize 1000
set linesize 1000
set long 999999999
spool move_table_part.sql
select 'ALTER TABLE '||TABLE_OWNER||'.'||TABLE_NAME|| ' move partition '
||PARTITION_NAME|| ' tablespace MYDB_2006;' from dba_tab_partitions where
table_name='PACKAGES' and tablespace_name='MYDB_TEST';
spool off;
@move_table_part.sql
exit;
/
--Moving subpartitions to MYDB_TEST
set head off
set heading off
set pagesize 1000
set linesize 1000
set long 999999999
spool move_table_subpart.sql
select 'ALTER TABLE '||TABLE_OWNER||'.'||TABLE_NAME|| ' move subpartition '
||SUBPARTITION_NAME|| ' tablespace MYDB_TEST;' from dba_tab_subpartitions
where table_name='MV_VOLUMES' and tablespace_name='MYDB_2006';
spool off;
@move_table_subpart.sql
exit;
/
--Moving Indexes to MYDB_TEST
set head off
set heading off
set pagesize 1000
set linesize 1000
set long 999999999
spool move_ind_part.sql
select 'ALTER INDEX '||INDEX_OWNER||'.'||INDEX_NAME|| ' rebuild partition '||PARTITION_NAME ||' TABLESPACE MYDB_TEST;'
from dba_ind_partitions where tablespace_name='MYDB_2006';
spool off;
@move_ind_part.sql
exit;
/
-- Moving LOB-partitions (LOBINDEXES,LOBSEGMENTS) to tablespace MYDB_2006
set head off
set heading off
set pagesize 1000
set linesize 1000
set long 999999999
spool move_table_lob.sql
select 'ALTER TABLE '||TABLE_OWNER||'.'||TABLE_NAME|| ' move partition '||PARTITION_NAME|| ' LOB(' ||COLUMN_NAME||')
STORE AS (TABLESPACE MYDB_2006);' from dba_lob_partitions where tablespace_name='MYDB_TEST';
spool off;
@move_table_lob.sql
exit;
/

Monday, May 19, 2008

Тест с добавлением/мультпасингом LUN-ов из HP XP 1024

Исходные данные: сервер HP Proliant DL360 на Linux Centos 4.6 с базой Oracle 10.2.0.3 с ASM, который создан на основе LUN'а из массива HP EVA5000.
Задача: необходимо перевести базу на LUN'ы массива HP XP1024.
Итак, необходимо "увидеть" презентованные из XP1024 луны, настроить для них multipathing при помощи device-mapper'а. Затем данные луны добавить в существующую дисковую группу и в случае успешных тестов вывести старый диск EVA5000 из существующей дисковой группы.
В случае успеха провести данную операцию на боевом сервере.
От 23 мая - к сожалению тест пока завершился неуспешно. Презентованные LUNы видны, но каждый получаемый путь в /dev/mpath содержит отдельный путь к презентованному LUNу. Позже нашел в документе с www.hp.com "Installation and Reference Guide Device Mapper Multipath Enablement Kit for HP StorageWorks Disk Arrays", где для XP1024 было примечание -
*If you useXP128/1024,the system modes 140 and 293 must be switched on,otherwise
the XP does not respond to a SCSI inquiry to code page 0x83 with a unique serial number (scsi_id tool). This prevents the HPDM Multipath from detecting the redundant paths.
Таких режимов 140 и 293 в прошивке нашего XP1024 не оказалось.
Ссылка на документы
Т.о. продолжение тестов отложено до начала июня, когда Д. вернется из штатов с форума HP-шников.
p.s. Спустя 7 часов ближе к концу раб. дня Д. позвонил в Москву в HP и спросил об этих режимах. Там сообщили, что есть такие режимы и что перезвонят через "10 минут".

Sunday, May 18, 2008

Сдал на OCA - Oracle 10g Administration I

Вчера, 17 мая 2008, (спустя почти 2 года как решился перевестись на должность DBA с переездом со своей семьей во Владик) сдал свой первый экзамен по Oracle - 1z0-042 - OCA Oracle 10g Administration I. Получил OCA (Oracle Certified Associate), если сдать еще один тест - 1z0-043, то получу OCP (Oracle Certified Professional) ..... Так-то какая-никакая черта под идею стать DBA-йщиком подведена и я немного рад. Хотя понимаю, что это на самом деле мало что значит, это лишь "бумажка" да и у нас в отделе это не определяет истинную квалификацию и далеко не всегда OCP-шники воспринимаются всерьез :) Согласен с ними - тем более, что они сильные и нах им эти экзамены не сдались :) А я решил иметь бумажки на случай смены работы :) Смены работы не только в ближайшее время, а вообще на будущее - в подтверждение опыта работы с Oracle на основе времени с момента получения статусов OCA, OCP.
Так что хорошо бы в ближайшее время поднапрячься и сдать 1z0-043 и получив OCP cразу написать письмо Марие о получении статуса OCP, чтобы обновили CV. Думаю, они могут это учесть как положительный фактор и им было бы полегче придумывать должность и круг обязанностей :) Видно будет...

Saturday, May 17, 2008

По переводу ASM с EVA5000 на XP1024

Сегодня, в субботу, в 10.40 час. позвонил Д.(человек круглосуточно болеет за дело и обдумывает его), спросил как вчера прошли работы (я вчера вечером просто срестартил одну базу по ченджу) и попросил пока не ставить restore базы ITC в тестовую, т.к. там какие-то проблемы еще с DataProtector. Я сказал, что Restore запустил вчера вечером и еще не прилетало сообщения ни об ошибке ни об успехе. Д. предположил, что ресторинг заклинило на mount request (позже в понедельник М.С. сказал, что так и было - были mount request'ы, которые ему приходилось проталкивать вручную все выходные).
Затем Д. озвучил в своем стиле то ради чего и звонил - просьбу-задачку провести тесты с настройкой Multipathing'а для дисков массива XP1024 на тестовой машине, на которой я месяцев сколько-то назад настроил его для дисков EVA5000 по подобию боевого сервера.
Т.е. нужно сделать Multipathing на оба массива как на EVA так и на XP, протестировать failover, "выдернув шнурочек" и на основе тестов разработать план перевода ASM боевого ITC c EVA5000 на XP1024.
Утилиту xpinfo, которая отображает всю информацию по презентованным хосту дискам, Д. положил в хоум рута.
Думаю, очень интересная задачка, и с понедельника начнем.