Арап Нанда
Использование интерфейса командной строки в среде ASM
(Commanding ASM, By Arup Nanda)
Источник: журнал Oracle Magazine, March/April 2006
(http://www.oracle.com/technology/oramag/oracle/06-mar/o26asm.html).
[Комментарий редактора русского перевода: нам представляется, этот перевод может быть полезен системным администраторам, которые не знают SQL и английский язык.]
[От редакции OM/RE: На сайте корпорации Oracle появилась Oracle ACE
(
http://www.oracle.com/technology/community/oracle_ace/index.html) - "Аллея славы", то есть галерея
наиболее прославленных Oracle-авторов,среди которых заслуженное место занимает автор данной статьи Arup Nanda.
Из этой "Аллеи славы" взята публикуемая здесь фотография автора статьи.]
===***===***===***===
Доступ, пересылка и администрирование ASM-файлов без использования SQL-операторов.
В сервере Oracle Database 10g Release 1 появилась технология Automatic Storage Management (ASM, автоматическое управление хранением данных), новая среда сопровождения файлов базы данных Oracle. Технология ASM предоставляет фундамент для высокоэффективного управления хранением с обеспечением на уровне ядра СУБД асинхронного и прямого ввода-вывода, избыточности, страйпинга и легких способов управления внешней памятью. В технологию ASM включен набор функциональных возможностей для управления томами, подобных тем, которые имеются в универсальных диспетчерах логических томов (LVM, logical volume manager).
В сервере Oracle Database 10g Release 1 управление ASM-файлами с помощью SQL-интерфейсов озадачивало системных администраторов, которые не очень хорошо знали язык SQL; они предпочитали более привычный интерфейс командной строки. В сервере Oracle Database 10g Release 2 имеется опция управления ASM-файлами с помощью утилиты ASMCMD – мощного и легкого в использовании инструмента с интерфейсом командной строки.
В сервере Oracle Database 10g Release 1 дисковые группы среды ASM не видимы за пределами среды базы данных, а они нужны для выполнения регулярных задач системного администрирования, таких как копирование и создание каталогов. В сервере Oracle Database 10g Release 2 появилась возможность передачи файлов из среды ASM за пределы дисковых групп, используя протокол FTP или веб-браузеры, использующие протокол HTTP.
В этой статье показано, как использовать эти усовершенствования технологии ASM для выполнения повседневных задач.
Инструмент с интерфейсом командной строки
Инструмент ASMCMD инсталлируется при инсталляции сервера Oracle Database 10g Release 2; не нужны никакие дополнительные действия.
Для использования этого инструмента сначала установите в переменной ORACLE_SID правильное имя ASM-экземпляра. Обычно он называется +ASM:
export ORACLE_SID=+ASM
В командной строке ОС введите asmcmd, что позволит перейти на уровень командной строки среды ASM:
ASMCMD>
Простые команды
Можно запускать инструмент ASMCMD с параметром –p, который позволяет всегда получать имя текущего каталога в самом приглашении. Для перехода в конкретный каталог используйте команду cd. Для проверки, какие каталоги и файлы доступны в каталоге используйте команду ls. На практике это выглядит так:
$ asmcmd -p
ASMCMD [+] > ls
USERDG1/
USERDG2/
USERDG3/
USERDG4/
USERDG5/
ASMCMD [+] > cd USERDG1
ASMCMD [+USERDG1] >
Обратите внимание, как изменилось приглашение; теперь оно показывает текущий каталог USERDG1.
Для создания каталога используйте команду mkdir:
ASMCMD [+USERDG1] > mkdir test
Для удаления каталога используйте команду rm, которая удаляет как каталоги, так и файлы.
Расширенные команды
Для вывода не только простых имен, но и детальной информации о файлах и каталогах используйте в команде ls параметр -l. Использование команды ls -l показано на листинге 1.
|
ЛИСТИНГ 1: модификатор -l команды ls. |
ASMCMD [+USERDG2/DBA102] > ls -l
Type Striped Sys
Redund Time Name
Y CONTROLFILE/
Y DATAFILE/
Y ONLINELOG/
Y TEMPFILE/
N control01.ctl => +USERDG2/DBA102/CONTROLFILE/Current.260.573852215
N control02.ctl => +USERDG2/DBA102/CONTROLFILE/Current.261.573852215
N control03.ctl => +USERDG2/DBA102/CONTROLFILE/Current.262.573852215
N example01.dbf => +USERDG2/DBA102/DATAFILE/UNKNOWN.267.573852295
N redo01.log => +USERDG2/DBA102/ONLINELOG/group_1.263.573852243
N redo02.log => +USERDG2/DBA102/ONLINELOG/group_2.264.573852249
N redo03.log => +USERDG2/DBA102/ONLINELOG/group_3.265.573852255
N sysaux01.dbf => +USERDG2/DBA102/DATAFILE/SYSAUX.257.573852115
N xsystem01.dbf => +USERDG2/DBA102/DATAFILE/SYSTEM.256.573852113
N xtemp01.dbf => +USERDG2/DBA102/TEMPFILE/TEMP.266.573852277
N undotbs01.dbf => +USERDG2/DBA102/DATAFILE/UNDOTBS1.258.573852115
N xusers01.dbf => +USERDG2 |
В столбце Name показываются имена файлов или каталогов, причем показываются как реальные имена, так и псевдонимы. Например, псевдоним control01.ctl ссылается на реальный ASM-файл +USERDG2/DBA102/CONTROLFILE/Current.260.573852215.
В столбце Sys показывается, был ли файл или каталог создан ASM-системой или пользователем. Например, каталог CONTROLFILE был создан ASM-системой, поэтому в столбце Sys показано "Y". Этот каталог был создан во время создания базы данных.
У псевдонимов, таких как каталог CONTROLFILE, столбцы с атрибутами псевдонима, такими как размер, свободное пространство, избыточность, показываются пустыми.
Если же вы будете использовать эту команду ls -l для реального файла, +USERDG2/DBA102/CONTROLFILE/Current.260.573852215, вы увидите эти атрибуты. Для получения информации об использовании файлового пространства используйте в команде опцию –ls, как это показано на листинге 2
(
http://www.oracle.com/technology/oramag/oracle/06-mar/o26asm_l2.html).
Столбец Type указывает тип файла. В этом примере тип всех файлов – CONTROLFILE. В зависимости от типа файла в этом столбце могут быть следующие значения:
- CONTROLFILE (управляющий файл);
- DATAFILE (файл данных);
- ONLINELOG (файл оперативного журнала);
- ARCHIVELOG (файл архивного журнала);
- TEMPFILE (файл временного табличного пространства);
- BACKUPSET (файл комплекта резервных копий);
- XTRANSPORT (файл табличного пространства с межплатформенной переносимостью);
- PARAMETERFILE (постоянный файл параметров инициализации – SPFILE);
- DATAGUARDCONFIG (файл конфигурации для аварийного восстановления);
- FLASHBACK (файл журнала для ретроспективного восстановления);
- CHANGETRACKING (файл отслеживания изменений блоков);
- DUMPSET (дамп-файл среды Oracle Data Pump);
- AUTOBACKUP (автоматически сгенерированная резервная копия управляющего файла).
В этом примере каждый файл дисковой группы размещается только на одном физическом диске, поэтому столбец Redund (redundancy, избыточность) показывает значение UNPROT (unprotected, незащищенный). (Обратите внимание, дисковая группа может зеркалироваться на аппаратном уровне, о котором в среде ASM ничего не известно. В этом случае в среде ASM файлы по-прежнему будут считаться незащищенными.) Файлы, показанные на листинге 2, – управляющие файлы, в столбце Striped (страйпинг) показано значение "FINE", это означает, что для этих файлов был использован мелкозернистый ASM-страйпинг. В столбце Time показано время создания каждого файла. В столбце Sys для каждого файла показано значение "Y"; это означает, что управляющие файлы были созданы ASM-системой, а не пользователем. В столбцах Blocks (блоки) и Block_Size (размер блоков) показано для каждого файла количество блоков и их размер (в байтах). Общий размер файлов показан в столбце Bytes (байты). Реальное пространство, выделенное каждому файлу, может превышать реальный размер файла и показано в байтах в столбце Space (пространство).
Для определения, сколько пространства используется в каталоге, можно воспользоваться командой du:
ASMCMD [+USERDG1] > du .
Used_MB Mirror_used_MB
14 14
Общее пространство, использованное в каталоге, показано в мегабайтах в столбце Used_MB. Если дисковая группа зеркалируется, то размер зеркального пространства показывается в столбце Mirror_used_MB. В данном случае значения столбцов совпадают, поскольку эта дисковая группа не зеркалируется.
Для получения информации о дисковых группах в ASM-памяти можно воспользоваться командой lsdg, как это показано на листинге 3
(
http://www.oracle.com/technology/oramag/oracle/06-mar/o26asm_l3.html).
Имя дисковой группы показано в последнем столбце Name. В столбце Type показан тип избыточности дисковой группы. На листинге 3 в столбце Type показано значение "EXTERN", потому что эти группы были созданы как внешне (externally) зеркалируемые. В столбце State (состояние) показан статус дисков – MOUNTED (смонтирован), DISMOUNTED (размонтирован) и т.д. Если требуется перебалансирование (rebalancing) дисковой группы то в столбце Unbal (unbalance, разбаланс) показывается значение "Y".
Общее пространство, доступное в дисковой группе, показывается в мегабайтах в столбце Total_MB, а неиспользуемое пространство – в столбце Free_MB. Если вместо внешнего зеркалирования на аппаратном уровне я бы использовал ASM-зеркалирование, то для него бы понадобилось некоторое пространство. Его размер показывается в столбце Req_mir_free_MB.Значения столбца Usable_file_MB показывают доступное файловое пространство, они совпадают с результатами вычисления Free_MB - Req_mir_free_MB.
ASM-экземпляр выполняет функции контейнера для хранения; у него нет своей базы данных. Другие экземпляры баз данных используют пространство ASM-экземпляра для своих файлов данных, управляющих файлов и т.д. Как узнать, для каких баз данных используется ASM-экземпляр? Эту информацию можно получить с помощью простой команды lsct, как это показано на листинге 4. Имена баз данных показываются в столбце DB_Name.
|
ЛИСТИНГ 4: получение реальных атрибутов ASM-файла. |
ASMCMD [+USERDG1] > lsct
DB_Name Status Software_Version Compatible_version Instance_Name
DBA102 CONNECTED 10.2.0.1.0 10.2.0.1.0 DBA102
EMREP CONNECTED 10.2.0.1.0 10.2.0.1.0 EMREP |
Доступ по протоколам FTP и HTTP
ASM-система – не обычная файловая система, поэтому для доступа к ASM-файлам вы не можете использовать стандартные FTP- и HTTP-сервисы. Для доступа к этим файлам вы можете использовать функциональные средства отображения файлов, доступные в технологии Oracle XML Database (Oracle XML DB). В этом разделе показано, как настроить доступ к ASM-файлам по протоколам FTP и HTTP, а также, как пересылать их как обычные файлы ОС. Для организации такого доступа требуется одноразовая настройка.
Настройка. FTP- и HTTP-сервисы отображаются на порты сервера. По умолчанию они работают на портах 21 и 80 соответственно. Однако в среде ASM не используются стандартные сервисы, а используются специализированные сервисы среды Oracle XML DB. Вы должны использовать два разных порта – один для FTP-, а другой для HTTP-сервисов. Обычно пользователи Oracle выбирают 7777 для FTP и 8080 для HTTP, но вы можете выбирать любые неиспользуемые номера портов. В моей настройке я хочу использовать 8080 для HTTP и 7787 для FTP. Я использую порт 7787 сознательно, чтобы показать, как использовать разные номера портов.
Для настройки доступа по протоколам FTP и HTTP я сначала должен в среде Oracle XML DB настроить доступ к ASM-папкам. Я могу сделать это, выполнив скрипт catxdbdbca.sql, который находится в каталоге $ORACLE_HOME/rdbms/admin. Этот скрипт имеет два параметра: номера портов для FTP- и HTTP-сервисов соответственно. Итак, я запускаю этот скрипт следующим образом:
@catxdbdbca 7787 8080
Выполнение скрипта позволяет включить прослушивание FTP-сервиса по порту 7787, а HTTP-сервиса – по порту 8080.
Доступ по протоколу FTP. Я могу обращаться к ASM-папкам из внешних источников, используя обычных FTP-клиентов (таких как ftp.exe в среде Windows). На листинге 5 показан простой FTP-сеанс доступа к ASM-папкам в ОС Windows. Для упрощения объяснения я снабдил каждую строку номером; в реальном выводе номера отсутствуют.
|
ЛИСТИНГ : взаимодействие ASM-файлами по протоколу FTP. |
1. C:\WUTemp>ftp
2. ftp> open prolin1 7787
3. Connected to prolin1.
4. 220- prolin1
5. Unauthorized use of this FTP server is
prohibited and may be subject to civil and
criminal prosecution.
6. 220 prolin1 FTP Server (Oracle XML DB/Oracle
Database) ready.
7. User (prolin1:(none)): system
8. 331 pass required for SYSTEM
9. Password:
10. 230 SYSTEM logged in
11. ftp> cd /sys/asm
12. 250 CWD Command successful
13. ftp> ls
14. 200 PORT Command successful
15. 150 ASCII Data Connection
16. USERDG5
17. USERDG4
18. USERDG3
19. USERDG2
20. USERDG1
21. 226 ASCII Transfer Complete
22. ftp: 45 bytes received in 0.26Seconds
0.17Kbytes/sec.
23. ftp> cd USERDG2
24. 250 CWD Command successful
25. ftp> ls
26. 200 PORT Command successful
27. 150 ASCII Data Connection
28. emrep
29. DBA102
30. 226 ASCII Transfer Complete
31. ftp: 15 bytes received in 0.01Seconds
1.50Kbytes/sec.
32. ftp> cd DBA102
33. 250 CWD Command successful
34. ftp> ls
35. 200 PORT Command successful
36. 150 ASCII Data Connection
37. DATAFILE
38. system01.dbf
39. sysaux01.dbf
40. undotbs01.dbf
41. users01.dbf
42. CONTROLFILE
43. control01.ctl
44. control02.ctl
45. control03.ctl
46. ONLINELOG
47. redo01.log
48. redo02.log
49. redo03.log
50. TEMPFILE
51. temp01.dbf
52. example01.dbf
53. 226 ASCII Transfer Complete
54. ftp: 208 bytes received in 0.02Seconds
10. 40Kbytes/sec.
55. ftp> bin
56. 200 Type set to I.
57. ftp> get users01.dbf
58. 200 PORT Command successful
59. 150 BIN Data Connection
60. 226 BIN Transfer Complete
61. ftp: 5251072 bytes received in 7.97Seconds
658.69Kbytes/sec. |
Строки 1-6 показывают, как я подключался к FTP-серверу, который работает на порте 7787 сервера с именем prolin1. Строка 6 показывает, что FTP-сервер работает в среде Oracle XML DB/Oracle Database. Строки 7 и 8 показывают, как я для подключения к серверу вводил имя пользователя и пароль. Технология ASM работает в среде сервера базы данных, поэтому это реальные имя пользователя базы данных и пароль. В данном случае я использовал имя пользователя SYSTEM.
После подключения к серверу я могу перейти в каталог, в котором содержатся файлы. Но ASM-файлы на самом деле не являются файлами файловой системы; они – указатели, которые кажутся файлами только серверу базы данных. Как же FTP-клиент может видеть ASM-файлы и каталоги?
Это обеспечивается технологией Oracle XML DB. Дисковые группы среды ASM доступны за пределами среды базы данных через виртуальную файловую систему по порту Oracle XML DB FTP. На строке 11 я перехожу в каталог виртуальной файловый системы /sys/asm.
Чтобы увидеть доступные файлы я на строке 13 выдаю команду ls. Она показывает содержимое ASM-памяти (строки 16-20). Затем я могу перейти в любой из этих каталогов, например, USERDG2 (строка 23).
Наконец, я пересылаю файл users01.dbf. Это файл данных Oracle, поэтому я пересылаю его, используя двоичный режим (по умолчанию используется ASCII-режим); двоичный режим я устанавливаю командой bin (строка 55). Затем я пересылаю файл в локальный каталог, используя команду get (строка 57). Она передает виртуальный файл из ASM-памяти и создает файл ОС с таким же именем (users01.dbf). Если вы используете ASM-память для хранения дамп-файлов среды Oracle Data Pump, то протокол FTP – идеальный способ их пересылки.
Доступ по протоколу HTTP. Напоминаю, я создал два порта – один для FTP-сервиса (7787), а другой для HTTP-сервиса (8080); в предыдущем разделе я показал, как использовать протокол FTP. Я также могу выгружать ASM-файлы с помощью веб-браузера, используя HTTP-порт. Для протокола HTTP я назначил порт 8080, поэтому мне доступен веб-прослушиватель, работающий на этом порту. В моем браузере я ввожу следующий URL -адрес:
http://prolin1:8080
Браузер подключается к среде Oracle XML DB по протоколу HTTP и выводит на экран результаты, показанные на рис. 1. Я щелкаю на гиперссылке sys, а затем на гиперссылке asm; теперь я могу видеть все дисковые группы. Для выгрузки конкретного файла на локальный диск я могу щелкнуть на его имени.
|

|
|
Рисунок 1. ASM-файлы, доступные на HTML-клиенте |
Заключение
Для управления средой ASM с помощью интерфейса командной строки, поддерживаемого инструментом ASMCMD, не требуется язык SQL. Этот интерфейс также предоставляет возможности написания скриптов, выполняемых в среде ASM. FTP- и HTTP-интерфейсы, доступные в среде Oracle XML DB, обеспечивают доступ к ASM-файлам и возможность их копирования и использования как обычных файлов ОС.
Арап Нанда (Arup Nanda) (arup@proligence.com) – администратор баз данных Oracle с двенадцатилетним стажем. Он занимается всеми аспектами администрирования – от оптимизации производительности до информационной безопасности и аварийного восстановления. Арап – соавтор книги "PL/SQL for DBAs" (O'Reilly Media, 2005). В 2003 г. он был удостоен награды журнала Oracle Magazine "Oracle's DBA of the Year" (администратор года баз данных Oracle). |