Статья
Версия для печати
Обсудить на форуме (13)
Миграция с Sun SVM в Oracle ASM


Автор: McZim
Дата написания: 25.05.2011

Сегодня я хочу рассказать о том, как можно мигрировать данные БД с Sun SVM в Oracle ASM, с минимальным временем простоя.
Мы имеем Sun сервер с СУБД Oracle 10g. Два SCSI диска в зеркале, каждый по 36Гб, под управлением Sun SVM. На этом зеркале расположены файлы данных рабочей базы данных. Задача — мигрировать файлы базы данных в Oracle ASM, с минимальным временем простоя, имея в распоряжении только эти два диска.

Solaris Volume Manager (SVM).

Из документации:

Цитата
Solaris Volume Manager is a software product that lets you manage large numbers of disks and the data on those disks. Although there are many ways to use Solaris Volume Manager, most tasks include the following:

  • Increasing storage capacity
  • Increasing data availability
  • Easing administration of large storage devices

In some instances, Solaris Volume Manager can also improve I/O performance.

Подробную информацию о SVM, вы можете найти в этом документе.

Oracle Automatic Storage Management (ASM).

Из документации:

Цитата
Automatic Storage Management (ASM) is an integrated file system and volume manager expressly built for Oracle database files. ASM provides the performance of raw I/O with the easy management of a file system. It simplifies database administration by eliminating the need for you to directly manage potentially thousands of Oracle database files. It does this by enabling you to divide all available storage into disk groups. You manage a small set of disk groups and ASM automates the placement of the database files within those disk groups.

Подробную информацию о Oracle ASM, вы можете найти в этом документе.



Итак, посмотрим как выглядит наша конфигурация SVM.

root@Server$ metastat
d62: Mirror
    Submirror 0: d36
      State: Okay        
    Submirror 1: d46
      State: Okay        
    Pass: 1
    Read option: roundrobin (default)
    Write option: parallel (default)
    Size: 69208884 blocks (33 GB)

d36: Submirror of d62
    State: Okay        
    Size: 69208884 blocks (33 GB)
    Stripe 0:
        Device     Start Block  Dbase        State Reloc Hot Spare
        c1t2d0s6          0     No            Okay   Yes


d46: Submirror of d62
    State: Okay        
    Size: 69208884 blocks (33 GB)
    Stripe 0:
        Device     Start Block  Dbase        State Reloc Hot Spare
        c1t3d0s6          0     No            Okay   Yes

Видим что есть зеркало d62 и два подзеркала d36 и d46. Выводим подзеркало d46 из конфигурации.

root@Server$ metadetach d62 d46
d62: submirror d46 is detached

Смотрим что получилось.

root@Server$ metastat
d62: Mirror
    Submirror 0: d36
      State: Okay        
    Pass: 1
    Read option: roundrobin (default)
    Write option: parallel (default)
    Size: 69208884 blocks (33 GB)

d36: Submirror of d62
    State: Okay        
    Size: 69208884 blocks (33 GB)
    Stripe 0:
        Device     Start Block  Dbase        State Reloc Hot Spare
        c1t2d0s6          0     No            Okay   Yes

В конфигурации SVM у нас осталось зеркало с одним подзеркалом. Начнем подготовку устройства, которое мы только что вывели из конфигурации SVM. Мы знаем, что это устройство c1t3d0 (смотри вывод metastat).

root@Server$ format
Searching for disks...done


AVAILABLE DISK SELECTIONS:
       0. c1t0d0 <SUN36G cyl 24620 alt 2 hd 27 sec 107>
          /pci@1c,600000/scsi@2/sd@0,0
       1. c1t1d0 <SUN36G cyl 24620 alt 2 hd 27 sec 107>
          /pci@1c,600000/scsi@2/sd@1,0
       2. c1t2d0 <SUN36G cyl 24620 alt 2 hd 27 sec 107>
          /pci@1c,600000/scsi@2/sd@2,0
       3. c1t3d0 <SUN36G cyl 24620 alt 2 hd 27 sec 107>
          /pci@1c,600000/scsi@2/sd@3,0
Specify disk (enter its number): 3
selecting c1t3d0
[disk formatted]


FORMAT MENU:
        disk       - select a disk
        type       - select (define) a disk type
        partition  - select (define) a partition table
        current    - describe the current disk
        format     - format and analyze the disk
        repair     - repair a defective sector
        label      - write label to the disk
        analyze    - surface analysis
        defect     - defect list management
        backup     - search for backup labels
        verify     - read and display labels
        save       - save new disk/partition definitions
        inquiry    - show vendor, product and revision
        volname    - set 8-character volume name
        !<cmd>     - execute <cmd>, then return
        quit
format> p


PARTITION MENU:
        0      - change `0' partition
        1      - change `1' partition
        2      - change `2' partition
        3      - change `3' partition
        4      - change `4' partition
        5      - change `5' partition
        6      - change `6' partition
        7      - change `7' partition
        select - select a predefined table
        modify - modify a predefined partition table
        name   - name the current table
        print  - display the current table
        label  - write partition map and label to the disk
        !<cmd> - execute <cmd>, then return
        quit
partition> p
Current partition table (original):
Total disk cylinders available: 24620 + 2 (reserved cylinders)

Part      Tag    Flag     Cylinders         Size            Blocks
  0 unassigned    wu       0                0         (0/0/0)            0
  1 unassigned    wu       0                0         (0/0/0)            0
  2 unassigned    wu       0                0         (0/0/0)            0
  3 unassigned    wu       0                0         (0/0/0)            0
  4 unassigned    wu       0                0         (0/0/0)            0
  5 unassigned    wu       0                0         (0/0/0)            0
  6        usr    wu       1 - 23956       33.00GB    (23956/0/0) 69208884
  7   reserved    wm   23957 - 23962        8.46MB    (6/0/0)        17334

Выбирая номера разделов мы должны полчить структуру разделов, как показано выше.
Важно! Основной раздел должен начинаться с 1, а не с 0. После того, как мы подготовили разделы, информацию о них нужно сохранить.
                                                                                                                                                           
partition> lab                                                                                                                                              
Ready to label disk, continue? y                                                                                                                            
                                                                                                                                                            
partition> q                                            

root@Server$ chown oracle:dba /dev/rdsk/c1t3d0s6

Все, диск готов для внесения в конфигурацию ASM. Создадим +ASM инстанс.



Указываем:

  • Пароль пользователя sys.
  • Логин пользователя, кому принадлежит ORACLE_HOME (по умолчанию это oracle).
  • Указываем его пароль.
  • Жмем продолжить.



После завершения увидим следующее:

  • Статус выполнения плохой.
  • На самом деле все в порядке. Просто у нас нет дисковых групп для монтирования.



Вводим параметры конфигурации:

  • Создадим дисковую группу, содержащую один диск. При этом укажем параметр external redundancy.
  • Путь, где искать "сырые" устройства.
  • Путь, куда складывать файлы аудита.
  • Название слушателя входящих соединений.
  • Порт слушателя.



Указываем:

  • Домашнюю директорию инстанса.
  • Указываем пароль для пользователя sys нового инстанса.
  • Подтверждаем его.
  • Указываем владельца домашней директории инстанса.
  • Его пароль.



Теперь мы готовы к миграции данных.



  • Созданная нами дисковая группа.



  • Видим активное чтение с устройства.
  • Видим активную запись в устройство.



  • Миграция успешно завершена.
  • Время простоя 14 минут.



Мы смигрировали нашу базу данных. Теперь оставшееся зеркало и подзеркало нам больше не нужны. Мы их разберем и добавим освободившийся диск к нашей группе в ASM.

root@Server$ metaclear d36
root@Server$ metaclear d62
root@Server$ metadb -d c1t2d0s7
root@Server$ chown oracle:dba /dev/rdsk/c1t2d0s6


  • Добавляем новый диск.



  • Диск пуст.
  • Ожидается выполнение одной операции.



  • Операция перебалансировки данных между дисками группы.
  • Процент завершения.



Видим дисковую активность, теперь наоборот, с устройства c1t3d0 данные переносятся на устройство c1t2d0.



Миграция завершена. Мы создали конфигурацию Oracle ASM с дисковой группой для внешней избыточности, и перенесли данные с 14 минутным временем простоя сервера.
Когда вы создаете дисковую группу с внешней избыточностью, вам нужно позаботиться, что бы какое-то устройство обеспечивало эту избыточность, например дисковый массив. Пример был показан с использованием Oracle Enterprise Manager (OEM). Все то же самое можно проделать, например, с использованием Recovery Manager (RMAN).
Версия для печати
Обсудить на форуме (13)