مقدمه:

حالت های بسیاری در خرابی پایگاه داده اوراکل و اجزای آن داریم که می توان برای هرکدام راهکاری را داشت. در یکی از حالت ها که سرور دچار مشکل می شود و Instance های موجود در سرور از بین می روند، یکی از این Instance ها مربوط به ASM می باشند اما دیسک های ASM که داده های ما بر روی آنها قرار دارند سالم هستند در این شرایط می توان با راه اندازی سرور جدید و انتقال دیسک ها به آن، داده ها را بازیابی کرد. در این مستند، سناریو مربوطه را با هم مرور خواهیم کرد.

MOUNT کردن دیسک های ORACLE ASM به یک ASM Instance جدید

سناریو بازیابی دیسک های ASM در سرور جدید:

برای اینکار سیستم عامل را با تمام نیازمندی های مربوطه نصب و Oracle and Grid Software را همان ورژن سرور قدیم انتخاب و بر روی سرور نصب کنیم.

دیسک ها را بر روی سرور جدید Mount کرده و دستور زیر آنها را اسکن می کنیم و آنها را در لیست دیسک ها مشاهده خواهیم کرد.

# oracleasm scandisks

Reloading disk partitions: done

Cleaning any stale ASM disks…

Scanning system for ASM disks…

# oracleasm listdisks

DISK1

DISK2

DISK3

DISK4

DISK5

FRA1

در ادامه Grid را در حالت Oracle Grid Infrastructure software only  نصب کنید تا بقیه موارد را در ادامه به صورت دستی تنظیم کنیم.

بعد از اینکه نصب پایان یافت اسکریپت زیر را اجرا می کنیم

To configure Grid Infrastructure for a Stand-Alone Server run the following command as the root user:

/u01/app/11.2.0.1/grid/perl/bin/perl -I/u01/app/11.2.0.1/grid/perl/lib -I/u01/app/11.2.0.1/grid/crs/install /u01/app/11.2.0.1/grid/crs/install/roothas.pl

در ادامه CSSD را استارت می کنیم .

# ./crsctl stat res -t

——————————————————————————–

NAME           TARGET  STATE        SERVER                   STATE_DETAILS

——————————————————————————–

Cluster Resources

——————————————————————————–

ora.cssd

      1        OFFLINE OFFLINE

ora.diskmon

      1        OFFLINE OFFLINE

# ./crs_start ora.cssd

Attempting to start `ora.cssd` on member `asterix`

Attempting to stop `ora.diskmon` on member `asterix`

Stop of `ora.diskmon` on member `asterix` succeeded.

Attempting to start `ora.diskmon` on member `asterix`

Start of `ora.diskmon` on member `asterix` succeeded.

Start of `ora.cssd` on member `asterix` succeeded.

در ادامه پارامتر فایل مربوط به ASM را می سازیم.

init+ASM.ora

*.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 Instance را استارت می کنیم

$ export ORACLE_SID=+ASM

$ export ORACLE_HOME=/u01/app/11.2.0.1/grid

$ srvctl add asm -p $ORACLE_HOME/dbs/init+ASM.ora

$ srvctl start asm

$ srvctl status asm

ASM is running on asterix

از اینجا به بعد در محیط گرافیکی دیسک ها را Mount می کنیم.

asmca

در ادامه Oracle RDBMS را نصب می کنیم و پارامتر فایل آن را می سازیم و پایگاه داده را استارت می کنیم

$ export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1

$ export ORACLE_SID=ora11gr2

$ cd $ORACLE_HOME/dbs

$ cat initora11gr2.ora

*.spfile=’+DATA1/ora11gr2/spfileora11gr2.ora’

$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Wed Oct 29 14:29:37 2014

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

Connected to an idle instance.

SQL> startup

ORACLE instance started.

Total System Global Area  668082176 bytes

Fixed Size                  2216344 bytes

Variable Size             222301800 bytes

Database Buffers          436207616 bytes

Redo Buffers                7356416 bytes

Database mounted.

Database opened.

SQL>

SQL>

SQL> select name from v$datafile;

NAME

——————————————————————————–

+DATA1/ora11gr2/datafile/system.297.844627929

+DATA1/ora11gr2/datafile/sysaux.265.844627967

+DATA1/ora11gr2/datafile/undotbs1.266.844627991

+DATA1/ora11gr2/datafile/users.267.844628031

+DATA2/ora11gr2/datafile/marko.261.859213577

پایگاه داده استارت شده و با دستور SRVCTL آن را رجیستر می کنیم

$ srvctl add database -d $ORACLE_SID -o $ORACLE_HOME -p $ORACLE_HOME/dbs/initora11gr2.ora

$ srvctl start database -d $ORACLE_SID

کار تمام شد و پایگاه داده جدید با داده های قدیم را خواهیم داشت .

وضعیت آن را بررسی می کنیم

$ ./crsctl stat res -t

——————————————————————————–

NAME           TARGET  STATE        SERVER                   STATE_DETAILS

——————————————————————————–

Local Resources

——————————————————————————–

ora.DATA1.dg

               ONLINE  ONLINE       asterix

ora.DATA2.dg

               ONLINE  ONLINE       asterix

ora.FRA1.dg

               ONLINE  ONLINE       asterix

ora.asm

               ONLINE  ONLINE       asterix                  Started

——————————————————————————–

Cluster Resources

——————————————————————————–

ora.cssd

      1        ONLINE  ONLINE       asterix

ora.diskmon

      1        ONLINE  ONLINE       asterix

ora.ora11gr2.db

      1        ONLINE  ONLINE       asterix                  Open