пятница, 25 января 2013 г.

Как установить Windows 7 с флешки

Вызвать утилиту:
diskpart

выполнить в ней команды:
list disk
select disk X (где X номер диска из списка команды "list disk", который обозначает флеш-накопитель)
clean
create partition primary
select partition 1
active
format fs=NTFS QUICK
assign
exit

Из папки "boot", которая находится на диске с дистрибутивом MS Windows 7, выполните команду:
bootsect /nt60 (ТУТ БУКВА ФЛЕШ-НАКОПИТЕЛЯ)

После этого нужно скопировать содержимое диске с дистрибутивом MS Windows 7 на флеш-накопитель.

Пример:
C:\WINDOWS\system32>diskpart

Microsoft DiskPart, версия 10.0.14393.0

(С) Корпорация Майкрософт (Microsoft Corporation), 1999-2013.
На компьютере: IRK-NK-14-4

DISKPART> list disk

Диск ### Состояние Размер Свободно Дин GPT
-------- ------------- ------- ------- --- ---
Диск 0 В сети 465 Gбайт 444 Mбайт
Диск 1 В сети 7509 Mбайт 9 Mбайт

DISKPART> select disk 1

Выбран диск 1.

DISKPART> clean

DiskPart: очистка диска выполнена успешно.

DISKPART> create partition primary

DiskPart: указанный раздел успешно создан.

DISKPART> select partition 1

Выбран раздел 1.

DISKPART> active

DiskPart: раздел помечен как активный.

DISKPART> format fs=NTFS QUICK

Завершено (в процентах): 100

Программа DiskPart успешно отформатировала том.

DISKPART> assign

DiskPart: назначение имени диска или точки подключения выполнено успешно.

DISKPART> exit

Завершение работы DiskPart...

C:\WINDOWS\system32>e:

E:\>cd boot

E:\boot>bootsect.exe /nt60 d:
Target volumes will be updated with BOOTMGR compatible bootcode.

D: (\\?\Volume{93381bdc-9f34-11e4-a516-d850e63b9fd6})

Successfully updated NTFS filesystem bootcode.

Bootcode was successfully updated on all targeted volumes.

E:\boot>

---
По мотивам: http://windows.microsoft.com/ru-RU/windows7/installing-windows-7-on-a-netbook

вторник, 22 января 2013 г.

Терминал: Есть приостановленные задачи.

Периодически при завершении работы в терминале, выполняя команду 'exit' вижу сообщение:
"There are suspended jobs" (русск. "Есть приостановленные задачи").
Раньше не придавал этому значения, и просто повторял выполнение команды 'exit', что приводило к тому, что терминал закрывался, а вот процесс, о котором мне и сообщала система, оставался в памяти.

Узнал, что управлять ими можно с помощью команд 'fg', 'bg'. Чуть позднее познакомлюсь с ними поближе.

Команда screen

Меня долго время смущала ситуация, что рестор баз данных Oracle очень рискованно запускать в putty, потому что процесс долгий, а соединение к Linux-серверу, на котором установлена СУБД, может оборваться, в следствие чего непонятно, как вернуться к просмотру статуса процесса. Физически подключать монитор к серверу не хотелось, потому что ... ну это же Linux-сервер, я к нему подхожу не чаще чем 1 раз в 3 месяца, да и то, чтобы пыль протереть с корпуса.

Чтобы хоть как-то решить задачу я научился настраивать VNC-сервер. Т.е. я запускал процесс рестора БД в терминале, который открыт в VNC-сессии, таким образом, даже если соединение оборвется, я все равно знал, что процесс всегда будет на виду, стоит лишь подключиться VNC-клиентом и я увижу рабочий стол в том виде, в котором я его оставил, а именно на рабочем столе будет открыто окно терминала с процессом рестора. Но все же мне это решение не нравилось, потому что, putty мне нравится больше чем VNC (из-за отсутствия графической составляющей).

Сегодня, наконец-то, смог правильно сформулировать запрос к Google и получил долгожданный ответ: о команде screen.

Чтобы принудительно завершить зависший сеанс screen пригодится команда:
screen -X -S <sessionname> quit

Горячие клавиши: http://xgu.ru/wiki/man:screen

пятница, 18 января 2013 г.

Невалидные/инвалидные/недействительные объекты Oracle (invalid_objects.sh)

В одном из отделений столкнулся с ситуацией, когда "Oracle Enterprise Manager" не работает, а компилировать недействительные объекты вручную трудоемко, поэтому решил задачу таким образом:
(в академических целях реализовано с помощью пакета "my_package")

Компилируем:
CREATE OR REPLACE PACKAGE my_package as
    PROCEDURE recompile_invalid_objects;
END my_package;

CREATE OR REPLACE PACKAGE BODY my_package as
    PROCEDURE recompile_invalid_objects IS
    BEGIN
        FOR stmt IN (
            select
             case
              when object_type = 'PACKAGE BODY' then 'ALTER PACKAGE ' || owner || '.' || object_name || ' COMPILE BODY'
              else 'ALTER ' || object_type || ' ' || owner || '.' || object_name || ' COMPILE'
             end as txt
            from dba_objects where status = 'INVALID' order by object_type, owner        
        ) LOOP
        BEGIN
        EXECUTE IMMEDIATE stmt.txt;
        COMMIT;
        EXCEPTION WHEN OTHERS THEN
            /* Сообщаем о любой ошибке и пропускаем итерацию */
            DBMS_OUTPUT.put_line (TO_CHAR(SYSTIMESTAMP, 'DD.MM.YYYY HH24:MI:SS.FF3') || ',ERROR,' || stmt.txt);
            DBMS_OUTPUT.put_line (SQLERRM);
            CONTINUE;
        END;
        /* Если ошибок не было, то сообщаем об успешном выполнении */
        DBMS_OUTPUT.put_line (TO_CHAR(SYSTIMESTAMP, 'DD.MM.YYYY HH24:MI:SS.FF3') || ',SUCCESS,' || stmt.txt);
        END LOOP;
    END;
END my_package;

Запускаем:
(предварительно "set serveroutput on")

BEGIN
    my_package.recompile_invalid_objects;
END;

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

Rlwrap для утилит Linux

Утилита rlwrap очень полезна в случаях, когда другие консольные утилиты, либо не имеют возможности хранить и работать с историей своих же команд, либо когда эта возможность реализована непривычно/неудобно, например, как у SQLPLUS:

Download the latest rlwrap software from the following URL.

http://utopia.knoware.nl/~hlub/uck/rlwrap/
Unzip and install the software using the following commands.

gunzip rlwrap*.gz
tar -xvf rlwrap*.tar
cd rlwrap*
./configure
make
make check
make install

Run the following commands, or better still append then to the ".bash_profile" of the oracle software owner.

alias rlsqlplus='rlwrap sqlplus'
alias rlrman='rlwrap rman'

... отсюда

Yum - незавершенные задачи

Когда yum сообщает о том, что есть незавершенные задачи, их можно "поднять" и завершить с помощью:
yum-complete-transaction
из пакета
yum-utils.

воскресенье, 13 января 2013 г.

Утилита "which" для Windows (как в UNIX)

Следующий текст нужно вставить в текстовый файл и сохранить под именем which.bat.

@echo off

:: check for illegal charecters
if "%1"=="" goto USAGE
echo %1 | find /v ":" | find /v "\" | find /v "*" | find /v "?" | find /v "," | find /v ";" | find /v "/" | find "%1" > nul
if errorlevel 1 goto USAGE

:: actual 'which' logic
for %%a in (.;%pathext%) do for %%b in (%1%%a) do ( echo %%~f$PATH:b | find /i "%1" )
goto END

:USAGE
:: Help screen:

echo.
echo UNIX-like which utility for Windows
echo Written by Ibrahim - www.digitalinternals.com
echo.
echo Usage: which executable_name
echo.
echo you may specify executable_name with or without
echo extension, but without a drive, path,
echo spaces or wildcards character(s).
echo.

rem from here: http://www.digitalinternals.com/147/20101105/unix-like-which-utility-for-windows/

:END

Удаление используемой схемы Oracle

Порой нужно удалить (тестовую) схему Oracle, а она кем-то используется, и на команду
drop user <my_username> cascade;
Oracle отвечает:
ORA-01940: cannot drop a user that is currently connected

Тогда помогает это:
select sid, serial# from v$session where username = '<my_username>';
alter user <my_username> account lock;
alter system kill session '<sid from v&session>,<serial# from v$session>';

Архив