وبلاگ مسعود حاجی حسن پور

راهکار های عملی اوراکل

راهکار های عملی اوراکل

این وبلاگ جهت به اشتراک گذاری تجربیات و راهکار های عملی در زمینه پایگاه داده اوراکل می باشد.

دستاوردها
طبقه بندی موضوعی

۱ مطلب با کلمه‌ی کلیدی «asm» ثبت شده است

جابجایی ASM Spfile به diskgroup دیگر

حالتی ممکن است به وجود بیاید که شما نیاز دارید دیتا های خود را از یک diskgroup به diskgroup دیگر جابجا کنید. فرض کنید شما diskgroup دارید در حالت normal redundancy و میخواهید آن را به حالت external redundancy در بیاورید، چون عملیات mirroring درحال حاضر در لایه سخت افزار انجام شده و نیاز به mirroring در asm diskgroup نمی باشد. ( best practice ).

در مرحله اول باید ببنید که asm spfile شما کجاست ؟

خیلی خوب بیایید فرض کنیم مشکلی در asm ما نیست و asm نیز بالاست. با دستورات زیر میتوانیم ببینیم asm spfile کجاست:

from ASMCMD:

[grid@racp1vm1 ~]$ asmcmd spget
+DATA/mas/ASMPARAMETERFILE/registry.253.905527691
from SQLPLUS:
[grid@racp1vm1 ~]$ sqlplus -s / as sysasm
show parameter spfile
 
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string      +DATA/mas/ASMPARAMETERFILE/reg
                                                 istry.253.905527691
from ASMCMD all spfiles:
[grid@racp1vm1 ~]$ asmcmd find --type PARAMETERFILE '*' '*'
+DATA/mas/ASMPARAMETERFILE/registry.253.905527691
+DATA/RACDB/PARAMETERFILE/spfile.269.906247759
+DATA/RACDB/spfileRACDB.ora

و همچنین فرض بعدی این هست که asm مشکل دارد و بالا نیست ( به هر دلیلی asm spfile مشکل دار شده است) توجه توجه خیلی راحت چنین مشکلی ممکن هست ایجاد شود. مثلا اگر یک پارامتری که deprecated هست در spfile نویشته شود asm spfile مشکل دار میشود.


from gpnptoll:
[grid@racp1vm1 ~]$ gpnptool get -o- | xmllint --format - | grep SPFile
Success.
  <orcl:ASM-Profile id="asm" DiscoveryString="" SPFile="+DATA/mas/ASMPARAMETERFILE/registry.253.905527691" Mode="remote"/>

هر نود در OCW به gpnp نیازمند است و در اینجا آدرس vote disks و asm spfile را میخواند اگر این آدرس ها درست نباشند OCW بالا نمیاید. در اینجا فرض بر این هست که در gpnp به asm spfile درست اشاره میشود.


روش دیگر استفاده از kfed میباشد. در این حالت شما باید ببنید asm spfile در کدام دیسک هست و با offset اشاره شده از شروع block دیسک آن را بخوانید:


ls /dev/oracleasm/disks/*
/dev/oracleasm/disks/DATA1
/dev/oracleasm/disks/DATA2

#  $GRID_HOME/bin/kfed read /dev/oracleasm/disks/DATA1  | egrep 'spf|ausize'
kfdhdb.ausize:                  1048576 ; 0x0bc: 0x00100000
kfdhdb.spfile:                        0 ; 0x0f4: 0x00000000
kfdhdb.spfflg:                        0 ; 0x0f8: 0x00000000
spfflg=0 --> No spfile

#  $GRID_HOME/bin/kfed read /dev/oracleasm/disks/DATA2  | egrep 'spf|ausize'
kfdhdb.ausize:                  1048576 ; 0x0bc: 0x00100000
kfdhdb.spfile:                       59 ; 0x0f4: 0x0000003b
kfdhdb.spfflg:                        1 ; 0x0f8: 0x00000001
spfflg=1 --> SPfile at offset 59

#  dd if=/dev/oracleasm/disks/DATA2  of=SPFile_ASM.dat bs=1M count=1 skip=59 
1+0 records in
1+0 records out
1048576 bytes (1.0 MB) copied, 0.00882297 s, 119 MB/s

# strings SPFile_ASM.dat
+ASM1.asm_diskgroups='OCR','ACFS'#Manual Mount
+ASM2.asm_diskgroups='ACFS'#Manual Mount
*.asm_diskstring='/dev/oracleasm/disks/*'
*.asm_power_limit=1
*.diagnostic_dest='/u01/app/grid'
*.instance_type='asm'
*.large_pool_size=12M
*.remote_login_passwordfile='EXCLUSIVE'

البته که بهتره همیشه یه بکاپی از asm spfile  داشته باشیم:


from ASMCMD:
[grid@racp1vm1 ~]$ asmcmd spbackup +DATA/mas/ASMPARAMETERFILE/registry.253.905527691 /tmp/asmspfile.bak
from SQLPLUS:
[grid@racp1vm1 ~]$ sqlplus / as sysasm
crate pfile='/tmp/asmspfile.bak' from spfile;

File created.

حالا برویم سر اصل قضیه، جابجایی asm spfile به diskgroup دیگر:

راستش برای این کار هم چند راه کار هست که یکی از ساده ترین ها را خواهم گفت که تمام OCW را متاثر میکند ( مثلا gpnp را نیز آپدیت میکند و ...):

ساده ترین کار ساخت pfile از spfile و دباره ساخت spfile از pfile هست.


from SQLPLUS:
[grid@racp1vm1 ~]$ sqlplus / as sysasm
crate spfie='+DATA2' from pfile='/tmp/asmspfile.bak';

File created.

این دستور هم خیلی عالی هست به کلید -u توجه کنید معنی آن این هست که در OCW کانفیگ جدید را broadcast کن.

[grid@racp1vm1 ~]$ asmcmd spcopy -u +DATA/mas/ASMPARAMETERFILE/registry.253.905527691 '+DATA2'

حالا چک میکنیم ببنیم واقعا فایل جابجا شده است ؟ و همچنین pgnp فایل و OCR فایل هم بروز شده است یا خیر ؟!


from gpnptoll:
[grid@racp1vm1 ~]$ gpnptool get -o- | xmllint --format - | grep SPFile
Success.
  <orcl:ASM-Profile id="asm" DiscoveryString="" SPFile="+DATA2/mas/ASMPARAMETERFILE/registry.259.905527691" Mode="remote"/>
[grid@racp1vm1 ~]$ asmcmd spget
+DATA2/mas/ASMPARAMETERFILE/registry.259.905527691

 در نهایت باید یک بار Cluster را پایین و بالا کنید که از روی spfile جدید کار را دنبال کند.


دوستان عزیز امیدوارم مطلب کاربردی بوده باشد.

شاد و پیروز باشید.