Иногда возникает необходимость посмотреть чем занята память на сервере в СУБД. У MS SQL есть команда DBCC MEMORYSTATUS, которая показывает состояние памяти в общем, но вывод этой команды предоставляет много данных и не совсем удобочитаемый. Continue reading
Тестирование IIS с помощью WCat
Не давно я столкнулся с такой задачей, нужно было подобрать конфигурацию сервера для одного веб сервиса, который написан на ASP.NET и будет работать на IIS 7, к тому же сервис хранил все данные в базе MS SQL. Веб сервис должен выдерживать определенное кол-вод пользователе в течении дня. Я сразу понял, что без нагрузочных тестов будет тяжело понять какое железо нужно для проекта. Continue reading
Установка и настройка OpenVPN
Иногда бывает необходимость закрыть свой реальный ip-адрес в сети Интернет или подставить адрес другой страны или просто иметь один и тот же ip-адрес независимо от того каким интернет соединением вы пользуетесь. Для решениях всех этих задач придет на помощь OpenVPN, который устанавливается на VPS, VDS или выделенном сервере. В отличии от PPTP технологии, которая использует GRE пакеты для связи с сервером, openvpn использует протоколы TCP/IP или UDP и может использовать любые порты, поэтому openvpn может работать за любыми firewall и NAT. Continue reading
Редирект с www на без www и наоборот
Как известно доступ к большинству сайтов можно получить набрав имя их домена с www поддоменом или без него. Но иногда возникает необходимость чтобы сайт работал только без www поддомена или только с www поддоменом. Для реализации этой задачи нам помогут правила модуля mod_rewrite. В файле htaccess нужно будет добавить следующие строки:
Для работы домена без www:
1 2 3 |
RewriteEngine on RewriteCond %{HTTP_HOST} ^www\.blog-admina\.ru$ [NC] RewriteRule ^(.*)$ http://blog-admina.ru/$1 [R=301,L] |
Для работы домена только с www:
1 2 3 |
RewriteEngine on RewriteCond %{HTTP_HOST} !^www\.blog-admina\.ru$ [NC] RewriteRule ^(.*)$ http://www.blog-admina.ru/$1 [R=301,L] |
В последнем примере правило написано так, что если даже набрать любой поддомен (forum.blog-admina.ru, web.blog-admina.ru, mail.blog-admina.ru и т.д. ), то будет осуществляться переход на домен www.blog-admina.ru. Если вам необходимо что бы при наборе любого поддомена происходило перенаправление на домен без www, то правило будет выглядеть так:
1 2 3 |
RewriteEngine on RewriteCond %{HTTP_HOST} !^blog-admina\.ru$ [NC] RewriteRule ^(.*)$ http://blog-admina.ru/$1 [R=301,L] |
Выяснить какие права у процедуры в Oracle
Иногда возникает задача проверить какие права имеет пакет в определенной схеме в СУБД ORACLE.
Это можно проверить легко выполнив пару SQL запросов.
Сперва стоит убедиться есть ли в наличии пакет, у которого мы хотим проверить права, это можно сделать SQL запросом:
1 |
SELECT * FROM dba_objects WHERE object_type IN ('PROCEDURE','FUNCTION','PACKAGE','PACKAGE BODY') AND owner = 'USER'; |
Результатом выполнения будет список пакетов, процедур и функций принадлежащих данному пользователю:
1 2 3 4 |
OWNER OBJECT_NAME SUBOBJECT_NAME OBJECT_ID DATA_OBJECT_ID OBJECT_TYPE CREATED LAST_DDL_TIME TIMESTAMP STATUS ----------- ------------------ ---------------- ---------- -------------- -------------- --------- ------------- ------------------- ------- USER EXT_TABLE 79689 PACKAGE 05-ИЮЛ-13 15-ЯНВ-14 2013-07-05:17:58:58 VALID USER EXT_TABLE 79690 PACKAGE BODY 05-ИЮЛ-13 05-ИЮЛ-13 2013-07-05:17:58:58 VALID |
Из результата видно, что у пользователя USER есть пакет под названием EXT_TABLE и нам как раз нужно узнать какие выданы права на пакет.
Выполняем запрос:
1 |
SELECT * FROM TABLE_PRIVILEGES WHERE table_name = 'EXT_TABLE'; |
Результатом выполнения будет:
1 2 3 |
GRANTEE OWNER TABLE_NAME GRANTOR SELECT_PRIV INSERT_PRIV DELETE_PRIV UPDATE_PRIV REFERENCES_PRIV ALTER_PRIV INDEX_PRIV CREATED ---------- ------------ -------------- ------------ ----------- ----------- ----------- ----------- --------------- ---------- ---------- -------- PUBLIC USER EXT_TABLE USER N N N N N N N |
Из результата видно, что пакету EXT_TABLE выданы права на выполнения PUBLIC (всем пользователям).
Скрипт очистки таблиц, с определенными именами
Если вам нужно очистить таблицы с определенными именами или именами которые например начинаются на ACCESS, то следующий скрипт позволит это сделать быстро.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
SET SERVEROUTPUT ON DECLARE -- Объявляем курсор CURSOR del_table1 IS SELECT TABLE_NAME FROM ALL_TABLES WHERE TABLE_NAME LIKE 'ACCESS_%' AND OWNER = 'HR_DBA'; trun_table1 varchar2(250); BEGIN -- Открываем курсор OPEN del_table1; LOOP FETCH del_table1 INTO trun_table1; -- Очищаем таблицы EXECUTE IMMEDIATE 'TRUNCATE TABLE HR_DBA.'||trun_table1; DBMS_OUTPUT.enable; DBMS_OUTPUT.put_line('TABLE: HR_DBA.'||trun_table1|| ' Очищена'); EXIT WHEN del_table1%NOTFOUND; END LOOP; -- Закрываем курсор CLOSE del_table1; END; |
Увеличение размера диска в виртуальной машине VMware ESXi
Недавно потребовалось увелчить объем дискового пространства на виртуальной машине под упревлением Cetnos 6.x. Как оказалось данная операция происходит быстро и без потери данных, но конечно перед началом моих действия я сдела снапшот, малоли что, ну и конечно уменя был бекап данных с этой машины. Я настоятельно рекомендую делать бекап перед началом работа с диском. Continue reading