вторник, 7 февраля 2012 г.

SQL Server. Определение размера таблиц в БД

У меня иногда возникает необходимость найти наиболее "тяжелые" таблицы в той или иной базе данных, и их удалить. Нет, я не сошел с ума, просто иногда требуется создать "маленькую и шуструю" копию той или иной БД, в которой нет ничего лишнего. Можно, конечно, выбирать только нужные таблицы и переносить их в новую БД выборочно, но это получается дольше и требует больших усилий. Этот вариант я рассматривать не буду.
А вот для выбора тех таблиц, которые нужно удалить, есть чудо-процедура sp_spaceused, но этой заразе нужно передавать имя таблицы в качестве параметра. Можно, конечно, совместить ее с sp_msForEachTable и результат становится более или менее приемлимым, но остаются минусы - например, оно возвращает все "цифры" как varchar, из-за чего сортировка становится не очень удобной. В общем, я просто оставлю это здесь:

(раньше здесь была большая портянка, стыренная отсюда, но, благодаря Алексею Нестерову, всё стало намного лучше)

declare @t table (name varchar(255), row varchar(255), reserved varchar(255), data varchar(255), index_size varchar(255), unused varchar(255))

insert into @t
exec sp_msforeachtable N'exec sp_spaceused ''?'''

select * from @t
where CONVERT(bigint,REPLACE(data,' KB','')) > 10000
order by CONVERT(bigint,REPLACE(data,' KB','')) DESC

вторник, 31 января 2012 г.

Глупенький пост про установку 1С с помощью msiexec

Для того, чтобы установить 1С на все компьютеры в сети, 1С предлагает варианты установки через логон-скрипт, либо через групповые политики. В силу определенных причин, наш системный администратор не хочет использовать ни тот, ни другой. Обычно установка производится батником, с помощью программы RemoteExec, запускающей этот батник на всех машинах.
Ну и просто, чтоб я в следующий раз снова не вспомниал как это все делается, то вот содержимое такого батника:

msiexec /i "D:\soft\!1C 8.2 platform\8.2.14.540\x86\1CEnterprise 8.2.msi" /quiet THICKCLIENT=1 THINCLIENT=0 WEBSERVEREXT=0 SERVER=0 CONFREPOSSERVER=0 CONVERTER77=0 SERVERCLIENT=1 LANGUAGES=RU 

Путь, естественно, будет заменен на сетевой. Ключ /i показывает, что мы устанавливаем новую программу, а /quiet прячет от пользователя все окна. В результате, на машинах будут установлены толстые клиенты и компоненты для доступа к серверам.

четверг, 19 января 2012 г.

Запускаем 2 сервера 1С 8.2 на одной машине

В связи с предстоящим переходом на 8.2.14.540 с установленной сейчас 8.2.13.205, потребовалось протестировать новую платформу. У нас есть два сервера - рабочий, виртуальный, к которому ключи проброшены средствами VMWare ESXi и тестовый, физический, в котором ключи воткнуты "напрямую".
На тестовом сервере я и начал играться.
Первый блин вышел комом. При установке я не снял галку "запускать серверную часть как службу" и 14-я платформа благополучно установилась ВМЕСТО 13-й. К счастью, 8.2 устанавливается не затирая файлы предыдущей версии и все что мне потребовалось сделать - в реестре изменить путь к исполняемому файлу ragent (с "C:\Program Files (x86)\1Cv82\8.2.14.540\bin\ragent.exe" на  "C:\Program Files (x86)\1Cv82\8.2.13.205\bin\ragent.exe").
"Хорошо", - подумал я. И попытался запустить ragent.exe из командной строки (все порты были изменены так, чтобы не пересекаться с портами других серверов, как 1С 8.1, так и 8.2, плюс, дополнительно был изменен каталог с серверной информацией - temp_srvinfo):

"C:\Program Files (x86)\1cv82\8.2.14.540\bin\ragent.exe" -regport 2641 -port 2640 -range 2660:2691 -d "C:\Program Files (x86)\1cv82\temp_srvinfo" -debug

К моему удивлению, все запустилось:

После этого я успешно запустил консоль кластера, создал новый кластер и подсоединил к нему имеющуюся базу данных. Я всегда считал, что это показатель того, что ключ виден и успешно используется. Но, когда я попытался запустить клиента на своей машине и соединиться с созданной БД, меня ждало громадное разочарование - "На сервере нет ключа", - кричала 1С. Точнее, сообщение было таким:
На компьютере сервера не обнаружена лицензия для использования сервера 1С:Предприятия! Если Ваш комплект поставки включает информацию для получения лицензии из центра лицензирования (пинкоды), то Вы можете получить лицензию для использования программы на данном компьютере. Если Вы используете комплект с аппаратной лицензией (ключом защиты), то проверьте установку ключа. Получить лицензию из центра лицензирования? Да/ Нет
После этого я попробовал запустить клиента на другой машине - результат тот же самый. Потом, я попробовал запустить клиента на том же сервере (и из той же сессии), но результат остался точно таким же. В свойствах БД стоял запрет на раздачу лицензий, я попробовал включить его, но результат оставался тем же самым.

Поиск в интернетах показал, что есть люди у которых все работает, но, увы, никто из них не делился конкретным рецептом как это сделать.
Тогда я решил попробовать остановить службу 8.2.13.205 и запустить оба сервера "как приложения". Оба запустились замечательно, но в итоге, ни к одному из них не получилось подключиться, ошибка все та же.
Поиск в интернетах привел на мисту. В итоге, все оказалось очень и очень просто. Подключившись "напрямую" к тестовому серверу через IP-KVM, я запустил сервер, и БИНГО! Все заработало.
Жаль, что этот момент ("Все "однотипные" сервера должны запускаться как службы, либо НЕ из терминальной сессии") напрямую не прописан нигде.
Результат. 8.2.14.540
и 8.2.13.205

upd 20.08.2015

Понадобилось мне запустить два сервера 8.3, причём оба как службы, поскольку запускалось всё на виртуальной машине и KVM бы не помог. Всё оказалось не намного сложнее. Стояла и была запущена как служба 8.3.6.2041, установил как обычное приложение 8.3.6.2152. Запустил FAR от администратора, из него cmd и выполнил sc create 1CNewServer binPath= "C:\Program Files\1Cv8\8.3.6.2152\bin\ragent.exe". В "Службах" появилась новая служба, отредактировал через regedit параметр ImagePath и всё, на одном сервере запущены две службы 8.3.

понедельник, 16 января 2012 г.

Книголюбя

Внезапно открыл для себя чудо-сервис bookmate - это шикарная онлайн-библиотека. Не знаю сколько в ней книг, но то что мне было интересно (из художественной литературы), я нашел.
Библиотека платная - 100 рублей в месяц или 1000 в год (хотя есть книги, которые можно читать бесплатно - Достоевский, Толстой, Чехов, в общем, преимущественно классика). Я пока купил подписку только на месяц, но думаю, что вскоре продлю на год. Прелесть заключается в том, что у них есть приложения для Symbian, Android и iOS, с помощью которых можно искать и читать книги с мобильного устройства. И приложения эти регулярно синхронизируются с сервером - т.е. в обед я читаю книгу с телефона, а вечером читаю за ноутбуком дома, причем с того самого места, где остановился в обед.
В случае, если предполагается, что читать я буду там где связи нет, книги можно загрузить себе на телефон и читать их без связи. Единственное, что потом, перед тем как открыть книгу на компьютере (с другого устройства), мне надо соединиться с сервером и синхронизировать библиотеку.
Возможно, восторг со временем поутихнет, но сейчас я более чем доволен. Это, пожалуй, первый случай, когда я готов пользоваться в "частной" жизни легальным контентом за деньги (в частной - поскольку на работе у меня все лицензионное :)).

воскресенье, 25 декабря 2011 г.

Миссия невыполнима: Протокол Фантом (+спойлеры)

Вчера посмотрели новую "миссию".

Я, конечно, ничего особенного от нее не ждал, но все равно был разочарован.
Русские в фильме предствлены как в боевиках 90-х годов, ладно хоть все не было красными флагами увешано. Кремль - просто проходной двор. Русские спецслужбы - образец некомпетентности какой-то. Ну скажите, какого хрена они вдруг решили расстрелять машину с американским "министром"?
Неприступная серверная на 136-м этаже небоскреба. В нее нельзя войти изнутри здания, но можно залезть снаружи, выбив окно. И, конечно, в стране с песчаными бурями, не то что в комнатах, но даже в серверной нет сигнализации на окнах. Зачем?
Американские навигаторы, работающие в эпицентре песчаной бури - это нормально, да.
Медиамагнат, ведущийся на красивую задницу и выдающий ей секретные коды, вместо того чтобы нажать какую-нибудь секретную кнопку для вызова охраны.
Сервера, взламываемые путем вставки в них USB-флэшки. И, кстати, гениальный Том Круз, сразу выбирающий нужный сервер из сотни таких же.
Русский физик-ядерщик в отставке, назубок помнящий коды для управления ядерными ракетами. Да, блядь, его бы грохнули сразу же, как он в отставку ушел, или, по крайней мере, сменили нахер все коды. Но нет... И из страны его можно вывезти спокойно, русские спецслужбы заняты расстрелом американских дипломатов - такие мелочи их не интересуют.
И, конечно, апофеоз - это внезапное самоубйство главного злодея. Он, видимо, понял, что иначе стареющий Круз не успеет спасти мир и облегчил ему задачу.
Негрила из "Девяти ярдов" появился только в конце. Да и то - только для того, чтобы сказать, что он не доволен действиями новой команды Круза.
В общем, сплошное расстройство. Если бы не Саймон Пегг на втором плане (который, внезапно, сдал экзамен и теперь работает в поле), ушел бы с фильма практически сразу. 

четверг, 22 декабря 2011 г.

Переход на VMWare ESXi 5

Тихой сапой прошел переход на VMWare ESXi 5.
Я участия в нем практически не принимал, только в самом конце, мне нужно было прокинуть USB-ключи на втором сервере и убедиться, что все работает нормально. Что, собственно, и было сделано.
В нашем случае все довольно просто, поскольку у нас есть два абсолютно одинаковых сервера, соединенных с NetApp'ом. Несколько недель назад мы "согнали" все виртуальные машины на один из них, чтобы убедиться, что в случае, если какая-то железяка на одном из них накроется, работа предприятия не остановится. Некоторые VM пришлось ужать по выделяемой процессорной мощности и памяти, но, поскольку, раздавали мы их "с запасом", проблем не возникло.
После того как VM некоторое время поработали на одном сервере, решили сразу все обновить. В результате, системный администратор накатил обновление на один из серверов и тут выяснилась интересная вещь. Оказалось, что usb-флэшки имеют свойство подыхать в самый неподходящий момент и существует вероятность, что перезагрузив однажды "железный" сервер, он не сможет подняться (поскольку ESXi грузится с флэшки). Очень так удачненько совпало, в итоге, у нас теперь есть запас флэшек с ESXi, регулярно обновляемых системным администратором :).
Сегодня утром перегнали все машины на обновленный сервер и обновили ESXi на второй машине. Пять часов, полет нормальный.
Очень понравилась возможность миграции виртуальных машин. Раньше не было повода ей воспользоваться. Если купим второй комплект ключей для 1С (мечты-мечты), возможно, получится делать миграцию и для сервера с 1С. А пока, попробовали мигрировать SQL-сервер. Активность пользователей в этот момент была почти нулевая и машинка "переехала" всего за 4 минуты.
Самая приятная, для меня, возможность ESXi 5 - это возможность отдавать одной машине больше четырех ядер. Меня этот момент очень смущал, когда мы решили виртуализировать SQL-сервера.
Вот как это выглядит:
На скриншоте видно, что теперь можно не только управлять количеством ядер, отдаваемых виртуальной машине, но и определять как гостевая ОС будет их видеть. Т.е., можно как раньше выделить, например, 4 "одноядерных" процессора, а можно выделить 2 двухядерных, или, как на скриншоте - 2 четырехядерных. Мне это очень по нраву.

воскресенье, 11 декабря 2011 г.

А вот и она. Определенность

Вчера, в субботу, закончились мои курсы по "Защите персональных данных".
В понедельник меня ожидает зачет и, либо получение свидетельства о повышении квалификации, либо ничего. В любом случае курсом я очень доволен.
Были не очень понятные моменты, такие как, разбор предыдущей редакции закона о персональных данных - на это мы потратили два часа. Можно было провести это время более полезно. Второе, что не понравилось - составление частной модели угроз мы "рассмотрели" за 45 минут. Рассмотрели в кавычках, поскольку мы просто посмотрели "рыбу" документа "Частная модель угроз безопасности персональных данных" - из каких разделов она состоит и куда там можно запихнуть выдержки из "Базовой модели угроз". Подробного рассмотрения базовой модели тоже не было.
По плану на составление МУ было отведено 12 часов. Из-за того что преподователь чувствовал себя неважно, мы уложились в 2-3 часа. Считаю, что это очень мало, тем более, что частная модель угроз - это основной документ, от которого очень сильно зависит выбор средств защиты.
Из того, что лично мне понравилось больше всего - это формулировка об СТР-К.
"Поскольку персональные данные относятся к конфиденциальной информации, мы должны руководствоваться всеми документами по защите конфи, в том числе и СТР-К. Таким образом, коммерческое предприятие, руководствуясь СТР-К, делает вывод о том, что в соответствии с СТР-К, использование СТР-К для нее носит рекомендательный, а не обязательный характер.".
Это шикарно, я считаю. Мы, руководствуясь СТР-К, определяем, что мы не обязаны руководствоваться СТР-К.
Второй любопытный момент - вчера нам показывали SecretNet. Штука конечно интересная, но понравился комментарий преподователя о том, что в сетевой версии всегда присутствует центральная машина, на которую собираются ВСЕ логи с остальных машин сети, из-за чего сеть может проседать и в некоторых случаях приходилось отказываться от использования сетевой версии - т.е. на каждой машине в ИСПДн нужно устанавливать и настраивать SecretNet. Это, конечно, ппц.
Оказалось, что в случае если вендор не продлевает сертификат на какой-то продукт, мы можем сами запросить у ФСТЭК продление этого сертификата для ЕДИНИЧНОГО продукта. Т.е. никто не имеет права пользоваться этой штукой, а мы имеем. Здорово. В некоторых случаях, для упрощения продления сертификата, имеет смысл обратиться в одну из лабораторий, благо в Омске их штуки четыре есть.
По итогам курса выработал для себя определенный план действий, надеюсь, начальство его примет.
Поскольку ФСТЭК делает "замену" 58-му приказу (в соответствии с 19-й статьей измененного 152 ФЗ), работы по ТЗКИ лучше отложить до выхода новых положений (вот тут есть об этом). Хотя, конечно, если вдруг нарвемся на проверку будет плохо. Но предприятие, вроде готово к этому - от юристов и ген. директора поступало предложение оттянуть внедрение мер по защите как можно дольше.
Однако, до внедрения средств защиты можно сделать кучу вещей. Заняться организационно-распорядительной документацией, составить тот же перечень ПДн и матрицы доступа, в конце концов - эти работы все равно придется проводить. Стоит подумать о том нужно ли нам брать согласие на обработку персональных данных с сотрудников и с клиентов - возможно, это облегчит нам жизнь. Например, если водители не дадут согласие на обработку своих ПДн для печати доверенностей - тем лучше, будут вписывать паспортные данные самостоятельно, а мы уберем десяток рабочих мест из ИСПДн.
В общем, думаю, что теперь мне будет чем заняться на работе - время и деньги потрачены не зря. Знания систематезированы, какой-то порядок в голове появился - это хорошо.