FLI-컷오버를 사용한 Oracle 마이그레이션
FC 네트워크 구성을 변경해야 하기 때문에 외부 LUN 임포트 중에는 중단이 불가피합니다. 그러나 운영 중단은 데이터베이스 환경을 재시작하고 FC 조닝을 업데이트하여 호스트 FC 연결을 외부 LUN에서 ONTAP로 전환하는 데 필요한 시간보다 훨씬 오래 지속되지 않습니다.
이 프로세스는 다음과 같이 요약할 수 있습니다.
-
외부 LUN에서 모든 LUN 작업을 중지합니다.
-
호스트 FC 연결을 새 ONTAP 시스템으로 리디렉션합니다.
-
가져오기 프로세스를 트리거합니다.
-
LUN을 다시 검색합니다.
-
데이터베이스를 다시 시작합니다.
마이그레이션 프로세스가 완료될 때까지 기다리지 않아도 됩니다. 특정 LUN의 마이그레이션이 시작되는 즉시 ONTAP에서 사용할 수 있으며 데이터 복사 프로세스가 진행되는 동안 데이터를 제공할 수 있습니다. 모든 읽기는 외부 LUN으로 전달되고 모든 쓰기는 두 스토리지에 동기식으로 기록됩니다. 복사 작업은 매우 빠르고 FC 트래픽 리디렉션의 오버헤드가 최소화되므로 성능에 미치는 영향은 일시적이고 최소화해야 합니다. 문제가 있는 경우 마이그레이션 프로세스가 완료되고 가져오기 관계가 삭제될 때까지 환경 다시 시작을 지연시킬 수 있습니다.
데이터베이스를 종료합니다
이 예에서 환경을 정지하는 첫 번째 단계는 데이터베이스를 종료하는 것입니다.
[oracle@host1 bin]$ . oraenv ORACLE_SID = [oracle] ? FLIDB The Oracle base remains unchanged with value /orabin [oracle@host1 bin]$ sqlplus / as sysdba SQL*Plus: Release 12.1.0.2.0 Copyright (c) 1982, 2014, Oracle. All rights reserved. Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production With the Partitioning, Automatic Storage Management, OLAP, Advanced Analytics and Real Application Testing options SQL> shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down. SQL>
그리드 서비스를 종료합니다
마이그레이션되는 SAN 기반 파일 시스템 중 하나에 Oracle ASM 서비스도 포함됩니다. 기본 LUN을 정지하려면 파일 시스템을 마운트 해제해야 합니다. 즉, 이 파일 시스템에서 열려 있는 파일이 있는 프로세스를 모두 중지해야 합니다.
[oracle@host1 bin]$ ./crsctl stop has -f CRS-2791: Starting shutdown of Oracle High Availability Services-managed resources on 'host1' CRS-2673: Attempting to stop 'ora.evmd' on 'host1' CRS-2673: Attempting to stop 'ora.DATA.dg' on 'host1' CRS-2673: Attempting to stop 'ora.LISTENER.lsnr' on 'host1' CRS-2677: Stop of 'ora.DATA.dg' on 'host1' succeeded CRS-2673: Attempting to stop 'ora.asm' on 'host1' CRS-2677: Stop of 'ora.LISTENER.lsnr' on 'host1' succeeded CRS-2677: Stop of 'ora.evmd' on 'host1' succeeded CRS-2677: Stop of 'ora.asm' on 'host1' succeeded CRS-2673: Attempting to stop 'ora.cssd' on 'host1' CRS-2677: Stop of 'ora.cssd' on 'host1' succeeded CRS-2793: Shutdown of Oracle High Availability Services-managed resources on 'host1' has completed CRS-4133: Oracle High Availability Services has been stopped. [oracle@host1 bin]$
파일 시스템을 마운트 해제합니다
모든 프로세스가 종료되면 마운트 해제 작업이 성공합니다. 사용 권한이 거부되면 파일 시스템에 잠금이 설정된 프로세스가 있어야 합니다. 를 클릭합니다 fuser
명령은 이러한 프로세스를 식별하는 데 도움이 될 수 있습니다.
[root@host1 ~]# umount /orabin [root@host1 ~]# umount /backups
볼륨 그룹을 비활성화합니다
지정된 볼륨 그룹의 모든 파일 시스템이 마운트 해제된 후 볼륨 그룹을 비활성화할 수 있습니다.
[root@host1 ~]# vgchange --activate n sanvg 0 logical volume(s) in volume group "sanvg" now active [root@host1 ~]#
FC 네트워크 변경 사항
이제 FC 존을 업데이트하여 호스트에서 외부 스토리지에 대한 모든 액세스를 제거하고 ONTAP에 대한 액세스를 설정할 수 있습니다.
가져오기 프로세스를 시작합니다
LUN 가져오기 프로세스를 시작하려면 를 실행합니다 lun import start
명령.
Cluster01::lun import*> lun import start -vserver vserver1 -path /vol/new_asm/LUN0 Cluster01::lun import*> lun import start -vserver vserver1 -path /vol/new_asm/LUN1 ... Cluster01::lun import*> lun import start -vserver vserver1 -path /vol/new_lvm/LUN8 Cluster01::lun import*> lun import start -vserver vserver1 -path /vol/new_lvm/LUN9 Cluster01::lun import*>
가져오기 진행 상황을 모니터링합니다
를 사용하여 가져오기 작업을 모니터링할 수 있습니다 lun import show
명령. 아래와 같이 20개의 LUN을 모두 가져오는 작업이 진행 중입니다. 따라서 이제 데이터 복사 작업이 계속 진행되더라도 ONTAP를 통해 데이터에 액세스할 수 있습니다.
Cluster01::lun import*> lun import show -fields path,percent-complete vserver foreign-disk path percent-complete --------- ------------ ----------------- ---------------- vserver1 800DT$HuVWB/ /vol/new_asm/LUN4 5 vserver1 800DT$HuVWBW /vol/new_asm/LUN0 5 vserver1 800DT$HuVWBX /vol/new_asm/LUN1 6 vserver1 800DT$HuVWBY /vol/new_asm/LUN2 6 vserver1 800DT$HuVWBZ /vol/new_asm/LUN3 5 vserver1 800DT$HuVWBa /vol/new_asm/LUN5 4 vserver1 800DT$HuVWBb /vol/new_asm/LUN6 4 vserver1 800DT$HuVWBc /vol/new_asm/LUN7 4 vserver1 800DT$HuVWBd /vol/new_asm/LUN8 4 vserver1 800DT$HuVWBe /vol/new_asm/LUN9 4 vserver1 800DT$HuVWBf /vol/new_lvm/LUN0 5 vserver1 800DT$HuVWBg /vol/new_lvm/LUN1 4 vserver1 800DT$HuVWBh /vol/new_lvm/LUN2 4 vserver1 800DT$HuVWBi /vol/new_lvm/LUN3 3 vserver1 800DT$HuVWBj /vol/new_lvm/LUN4 3 vserver1 800DT$HuVWBk /vol/new_lvm/LUN5 3 vserver1 800DT$HuVWBl /vol/new_lvm/LUN6 4 vserver1 800DT$HuVWBm /vol/new_lvm/LUN7 3 vserver1 800DT$HuVWBn /vol/new_lvm/LUN8 2 vserver1 800DT$HuVWBo /vol/new_lvm/LUN9 2 20 entries were displayed.
오프라인 프로세스가 필요한 경우 명령이 모든 마이그레이션이 성공하고 완료되었음을 나타낼 때까지 서비스 재검색 또는 재시작을 지연시킵니다. lun import show
그런 다음 에 설명된 대로 마이그레이션 프로세스를 완료할 수 "외부 LUN 임포트 - 완료"있습니다.
온라인 마이그레이션이 필요한 경우 새 집에서 LUN을 다시 검색하고 서비스를 시작합니다.
SCSI 장치 변경 사항을 검색합니다
대부분의 경우 새 LUN을 다시 검색하는 가장 간단한 옵션은 호스트를 재시작하는 것입니다. 이렇게 하면 오래된 오래된 장치가 자동으로 제거되고 모든 새 LUN이 올바르게 검색되며 다중 경로 장치와 같은 관련 장치가 구축됩니다. 이 예제에서는 데모를 위한 완전한 온라인 프로세스를 보여 줍니다.
주의: 호스트를 다시 시작하기 전에 의 모든 항목이 있는지 확인하십시오 /etc/fstab
마이그레이션된 참조 SAN 리소스가 주석 처리되었습니다. 이렇게 하지 않고 LUN 액세스에 문제가 있으면 운영 체제가 부팅되지 않을 수 있습니다. 이 상황은 데이터를 손상시키지 않습니다. 그러나 구조 모드 또는 유사한 모드로 부팅하고 를 수정하는 것은 매우 불편할 수 있습니다 /etc/fstab
문제 해결을 위해 운영 체제를 부팅할 수 있습니다.
이 예에 사용된 Linux 버전의 LUN을 로 다시 검색할 수 있습니다 rescan-scsi-bus.sh
명령. 명령이 성공하면 각 LUN 경로가 출력에 표시되어야 합니다. 출력에서 해석하기가 어려울 수 있지만, 조닝 및 igroup 구성이 올바르면 을 포함하는 많은 LUN이 표시되어야 합니다 NETAPP
공급업체 문자열
[root@host1 /]# rescan-scsi-bus.sh Scanning SCSI subsystem for new devices Scanning host 0 for SCSI target IDs 0 1 2 3 4 5 6 7, all LUNs Scanning for device 0 2 0 0 ... OLD: Host: scsi0 Channel: 02 Id: 00 Lun: 00 Vendor: LSI Model: RAID SAS 6G 0/1 Rev: 2.13 Type: Direct-Access ANSI SCSI revision: 05 Scanning host 1 for SCSI target IDs 0 1 2 3 4 5 6 7, all LUNs Scanning for device 1 0 0 0 ... OLD: Host: scsi1 Channel: 00 Id: 00 Lun: 00 Vendor: Optiarc Model: DVD RW AD-7760H Rev: 1.41 Type: CD-ROM ANSI SCSI revision: 05 Scanning host 2 for SCSI target IDs 0 1 2 3 4 5 6 7, all LUNs Scanning host 3 for SCSI target IDs 0 1 2 3 4 5 6 7, all LUNs Scanning host 4 for SCSI target IDs 0 1 2 3 4 5 6 7, all LUNs Scanning host 5 for SCSI target IDs 0 1 2 3 4 5 6 7, all LUNs Scanning host 6 for SCSI target IDs 0 1 2 3 4 5 6 7, all LUNs Scanning host 7 for all SCSI target IDs, all LUNs Scanning for device 7 0 0 10 ... OLD: Host: scsi7 Channel: 00 Id: 00 Lun: 10 Vendor: NETAPP Model: LUN C-Mode Rev: 8300 Type: Direct-Access ANSI SCSI revision: 05 Scanning for device 7 0 0 11 ... OLD: Host: scsi7 Channel: 00 Id: 00 Lun: 11 Vendor: NETAPP Model: LUN C-Mode Rev: 8300 Type: Direct-Access ANSI SCSI revision: 05 Scanning for device 7 0 0 12 ... ... OLD: Host: scsi9 Channel: 00 Id: 01 Lun: 18 Vendor: NETAPP Model: LUN C-Mode Rev: 8300 Type: Direct-Access ANSI SCSI revision: 05 Scanning for device 9 0 1 19 ... OLD: Host: scsi9 Channel: 00 Id: 01 Lun: 19 Vendor: NETAPP Model: LUN C-Mode Rev: 8300 Type: Direct-Access ANSI SCSI revision: 05 0 new or changed device(s) found. 0 remapped or resized device(s) found. 0 device(s) removed.
다중 경로 장치를 확인합니다
LUN 검색 프로세스는 다중 경로 장치의 재구성을 트리거하지만 Linux 다중 경로 드라이버에는 간헐적인 문제가 있는 것으로 알려져 있습니다. 의 출력입니다 multipath - ll
출력이 예상한 대로 나타나는지 확인해야 합니다. 예를 들어, 아래 출력에는 와 연결된 다중 경로 장치가 나와 있습니다 NETAPP
공급업체 문자열 각 디바이스에는 4개의 경로가 있으며, 우선 순위가 50이고 우선 순위가 10인 2개의 경로가 있습니다. 정확한 출력은 Linux 버전에 따라 다를 수 있지만 이 출력은 예상한 대로 표시됩니다.
사용하는 Linux 버전에 대한 호스트 유틸리티 설명서를 참조하여 를 확인하십시오 /etc/multipath.conf 설정이 올바릅니다.
|
[root@host1 /]# multipath -ll 3600a098038303558735d493762504b36 dm-5 NETAPP ,LUN C-Mode size=10G features='4 queue_if_no_path pg_init_retries 50 retain_attached_hw_handle' hwhandler='1 alua' wp=rw |-+- policy='service-time 0' prio=50 status=active | |- 7:0:1:4 sdat 66:208 active ready running | `- 9:0:1:4 sdbn 68:16 active ready running `-+- policy='service-time 0' prio=10 status=enabled |- 7:0:0:4 sdf 8:80 active ready running `- 9:0:0:4 sdz 65:144 active ready running 3600a098038303558735d493762504b2d dm-10 NETAPP ,LUN C-Mode size=10G features='4 queue_if_no_path pg_init_retries 50 retain_attached_hw_handle' hwhandler='1 alua' wp=rw |-+- policy='service-time 0' prio=50 status=active | |- 7:0:1:8 sdax 67:16 active ready running | `- 9:0:1:8 sdbr 68:80 active ready running `-+- policy='service-time 0' prio=10 status=enabled |- 7:0:0:8 sdj 8:144 active ready running `- 9:0:0:8 sdad 65:208 active ready running ... 3600a098038303558735d493762504b37 dm-8 NETAPP ,LUN C-Mode size=10G features='4 queue_if_no_path pg_init_retries 50 retain_attached_hw_handle' hwhandler='1 alua' wp=rw |-+- policy='service-time 0' prio=50 status=active | |- 7:0:1:5 sdau 66:224 active ready running | `- 9:0:1:5 sdbo 68:32 active ready running `-+- policy='service-time 0' prio=10 status=enabled |- 7:0:0:5 sdg 8:96 active ready running `- 9:0:0:5 sdaa 65:160 active ready running 3600a098038303558735d493762504b4b dm-22 NETAPP ,LUN C-Mode size=10G features='4 queue_if_no_path pg_init_retries 50 retain_attached_hw_handle' hwhandler='1 alua' wp=rw |-+- policy='service-time 0' prio=50 status=active | |- 7:0:1:19 sdbi 67:192 active ready running | `- 9:0:1:19 sdcc 69:0 active ready running `-+- policy='service-time 0' prio=10 status=enabled |- 7:0:0:19 sdu 65:64 active ready running `- 9:0:0:19 sdao 66:128 active ready running
LVM 볼륨 그룹을 다시 활성화합니다
LVM LUN이 제대로 검색되면 가 나타납니다 vgchange --activate y
명령이 성공해야 합니다. 이것은 논리적 볼륨 관리자의 값에 대한 좋은 예입니다. 볼륨 그룹 메타데이터가 LUN 자체에 기록되므로 LUN의 WWN이나 일련 번호도 변경하는 것은 중요하지 않습니다.
OS는 LUN을 검색하여 LUN에 기록된 소량의 데이터를 발견했습니다. 이 데이터는 LUN에 속한 물리적 볼륨으로 식별됩니다 sanvg volumegroup
. 그런 다음 필요한 모든 장치를 구축했습니다. 볼륨 그룹을 다시 활성화하기만 하면 됩니다.
[root@host1 /]# vgchange --activate y sanvg Found duplicate PV fpCzdLTuKfy2xDZjai1NliJh3TjLUBiT: using /dev/mapper/3600a098038303558735d493762504b46 not /dev/sdp Using duplicate PV /dev/mapper/3600a098038303558735d493762504b46 from subsystem DM, ignoring /dev/sdp 2 logical volume(s) in volume group "sanvg" now active
파일 시스템을 다시 마운트합니다
볼륨 그룹이 다시 활성화된 후 모든 원본 데이터가 손상되지 않은 상태로 파일 시스템을 마운트할 수 있습니다. 앞서 설명했듯이 백 그룹에서 데이터 복제가 아직 활성 상태인 경우에도 파일 시스템이 완전히 작동합니다.
[root@host1 /]# mount /orabin [root@host1 /]# mount /backups [root@host1 /]# df -k Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/rhel-root 52403200 8837100 43566100 17% / devtmpfs 65882776 0 65882776 0% /dev tmpfs 6291456 84 6291372 1% /dev/shm tmpfs 65898668 9884 65888784 1% /run tmpfs 65898668 0 65898668 0% /sys/fs/cgroup /dev/sda1 505580 224828 280752 45% /boot fas8060-nfs-public:/install 199229440 119368256 79861184 60% /install fas8040-nfs-routable:/snapomatic 9961472 30528 9930944 1% /snapomatic tmpfs 13179736 16 13179720 1% /run/user/42 tmpfs 13179736 0 13179736 0% /run/user/0 /dev/mapper/sanvg-lvorabin 20961280 12357456 8603824 59% /orabin /dev/mapper/sanvg-lvbackups 73364480 62947536 10416944 86% /backups
ASM 장치를 다시 검색합니다
SCSI 장치를 다시 검색할 때 ASMlib 장치를 다시 검색해야 합니다. ASMlib를 다시 시작한 다음 디스크를 검사하여 온라인으로 재검색을 확인할 수 있습니다.
이 단계는 ASMlib가 사용되는 ASM 구성에만 관련이 있습니다. |
주의: ASMlib를 사용하지 않는 경우 /dev/mapper
디바이스가 자동으로 다시 생성되어야 합니다. 그러나 사용 권한이 올바르지 않을 수 있습니다. ASMlib가 없는 경우 ASM에 대한 기본 장치에 특수 권한을 설정해야 합니다. 이러한 작업은 일반적으로 둘 중 하나의 특수 항목을 통해 수행됩니다 /etc/multipath.conf
또는 udev
두 규칙 집합에서 사용할 수 있습니다. 이러한 파일은 WWN 또는 일련 번호 측면에서 환경의 변경 사항을 반영하도록 업데이트하여 ASM 장치에 올바른 권한이 있는지 확인해야 할 수 있습니다.
이 예에서는 ASMlib를 다시 시작하고 디스크 검색을 통해 원래 환경과 동일한 10개의 ASM LUN을 표시합니다.
[root@host1 /]# oracleasm exit Unmounting ASMlib driver filesystem: /dev/oracleasm Unloading module "oracleasm": oracleasm [root@host1 /]# oracleasm init Loading module "oracleasm": oracleasm Configuring "oracleasm" to use device physical block size Mounting ASMlib driver filesystem: /dev/oracleasm [root@host1 /]# oracleasm scandisks Reloading disk partitions: done Cleaning any stale ASM disks... Scanning system for ASM disks... Instantiating disk "ASM0" Instantiating disk "ASM1" Instantiating disk "ASM2" Instantiating disk "ASM3" Instantiating disk "ASM4" Instantiating disk "ASM5" Instantiating disk "ASM6" Instantiating disk "ASM7" Instantiating disk "ASM8" Instantiating disk "ASM9"
그리드 서비스를 다시 시작합니다
이제 LVM 및 ASM 장치가 온라인 상태이고 사용 가능해졌으므로 그리드 서비스를 다시 시작할 수 있습니다.
[root@host1 /]# cd /orabin/product/12.1.0/grid/bin [root@host1 bin]# ./crsctl start has
데이터베이스를 다시 시작합니다
그리드 서비스가 다시 시작된 후 데이터베이스를 불러올 수 있습니다. 데이터베이스를 시작하기 전에 ASM 서비스를 완전히 사용할 수 있도록 몇 분 정도 기다려야 할 수 있습니다.
[root@host1 bin]# su - oracle [oracle@host1 ~]$ . oraenv ORACLE_SID = [oracle] ? FLIDB The Oracle base has been set to /orabin [oracle@host1 ~]$ sqlplus / as sysdba SQL*Plus: Release 12.1.0.2.0 Copyright (c) 1982, 2014, Oracle. All rights reserved. Connected to an idle instance. SQL> startup ORACLE instance started. Total System Global Area 3221225472 bytes Fixed Size 4502416 bytes Variable Size 1207962736 bytes Database Buffers 1996488704 bytes Redo Buffers 12271616 bytes Database mounted. Database opened. SQL>