Friday 16 November 2012 | |

Steps to migrate 11g R2 database from non-asm storage to asm storage



Login to ASMCMD as grid user
+DATA is are target for storing the files :
ASMCMD> pwd
+DATA/IRT
ASMCMD> cd IRT
ASMCMD> ls -lt
ASMCMD> mkdir TEMPFILE PARAMETERFILE ONLINELOG DATAFILE CONROLFILE BACKUPSET
ASMCMD> ls -lt
Type  Redund  Striped  Time             Sys  Name
                                        N    TEMPFILE/
                                        N    PARAMETERFILE/
                                        N    ONLINELOG/
                                        N    DATAFILE/
                                        N    CONROLFILE/
                                        N    BACKUPSET/
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Change the Database to SPFILE instead of Pfile and set parameters:
bash-4.1$ pwd
/scratch/app/oracle/product/11.2.0/db_1/dbs
sqlplus '/as sysdba'
SQL> create spfile from pfile='/scratch/app/oracle/product/11.2.0/db_1/dbs/initIRT.ora';
File created.
SQL> !ls -tlr
total 40532
-rw-r--r-- 1 orausr oinstall      452 Nov 16 12:05 initIRT.ora
-rw-r----- 1 orausr asmadmin     1536 Nov 16 12:52 spfileIRT.ora
SQL> shutdown immediate
SQL> startup;
SQL> alter database disable block change tracking ;  --Applies only if BCT is on
SQL> --Configuring the FRA
SQL> alter system set db_recovery_file_dest_size = 1024M;
SQL> alter system set db_recovery_file_dest = '+FRA';
SQL> alter system set control_files = '+DATA/IRT/controlfile/control_irt.dbf' scope=spfile;
SQL> shutdown immediate;
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Moving the files to ASM storage.

RMAN> startup nomount;
Oracle instance started
Total System Global Area    1068937216 bytes
Fixed Size                     2235208 bytes
Variable Size                620758200 bytes
Database Buffers             440401920 bytes
Redo Buffers                   5541888 bytes

rman target /

Recovery Manager: Release 11.2.0.3.0 - Production on Fri Nov 16 12:55:26 2012
Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.
connected to target database: IRT (not mounted)

RMAN> restore controlfile from '/scratch/app/oracle/oradata/IRT/controlfiles/control1.ctl';
RMAN> alter database mount;
RMAN> backup as copy database format '+DATA';

Starting backup at 16-NOV-12
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=5 device type=DISK
channel ORA_DISK_1: starting datafile copy
input datafile file number=00001 name=/scratch/app/oracle/oradata/IRT/datafiles/system01.dbf
output file name=+DATA/irt/datafile/system.278.799505801 tag=TAG20121116T125640 RECID=1 STAMP=799505802
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:03
channel ORA_DISK_1: starting datafile copy
input datafile file number=00002 name=/scratch/app/oracle/oradata/IRT/datafiles/sysaux01.dbf
output file name=+DATA/irt/datafile/sysaux.279.799505803 tag=TAG20121116T125640 RECID=2 STAMP=799505804
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01
channel ORA_DISK_1: starting datafile copy
input datafile file number=00004 name=/scratch/app/oracle/oradata/IRT/datafiles/users01.dbf
output file name=+DATA/irt/datafile/users.280.799505805 tag=TAG20121116T125640 RECID=3 STAMP=799505805
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01
channel ORA_DISK_1: starting datafile copy
input datafile file number=00003 name=/scratch/app/oracle/oradata/IRT/datafiles/undotbs01.dbf
output file name=+DATA/irt/datafile/undotbs1.281.799505805 tag=TAG20121116T125640 RECID=4 STAMP=799505806
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01
channel ORA_DISK_1: starting datafile copy
copying current control file
output file name=+DATA/irt/controlfile/backup.282.799505807 tag=TAG20121116T125640 RECID=5 STAMP=799505807
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
including current SPFILE in backup set
channel ORA_DISK_1: starting piece 1 at 16-NOV-12
channel ORA_DISK_1: finished piece 1 at 16-NOV-12
piece handle=+DATA/irt/backupset/2012_11_16/nnsnf0_tag20121116t125640_0.283.799505809 tag=TAG20121116T125640 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 16-NOV-12

RMAN> switch database to copy;
datafile 1 switched to datafile copy "+DATA/irt/datafile/system.278.799505801"
datafile 2 switched to datafile copy "+DATA/irt/datafile/sysaux.279.799505803"
datafile 3 switched to datafile copy "+DATA/irt/datafile/undotbs1.281.799505805"
datafile 4 switched to datafile copy "+DATA/irt/datafile/users.280.799505805"

RMAN> exit

sqlplus '/as sysdba'
SQL> alter database open;
SQL> select file_name from dba_data_files;
FILE_NAME
--------------------------------------------------------------------------------
+DATA/irt/datafile/system.278.799505801
+DATA/irt/datafile/sysaux.279.799505803
+DATA/irt/datafile/undotbs1.281.799505805
+DATA/irt/datafile/users.280.799505805

SQL> select name from v$controlfile;
NAME
--------------------------------------------------------------------------------
+DATA/control_irt.dbf

SQL> select member,group# from v$logfile;
MEMBER                                                                     GROUP#
---------------------------------------------------------------------- ----------
/scratch/app/oracle/oradata/IRT/onlinelogfiles/redo01.log                       1
/scratch/app/oracle/oradata/IRT/onlinelogfiles/redo02.log                       2
/scratch/app/oracle/oradata/IRT/onlinelogfiles/redo03.log                       3

SQL> select file_name from dba_temp_files;
FILE_NAME
------------------------------------------------------
/scratch/app/oracle/oradata/IRT/tempfiles/temp01.dbf

SQL> select tablespace_name from dba_temp_files;
TABLESPACE_NAME
------------------------------
TEMPTS1

SQL>  alter tablespace TEMPTS1 add tempfile size 100m;
Tablespace altered.

SQL> alter database tempfile '/scratch/app/oracle/oradata/IRT/tempfiles/temp01.dbf' drop;
Database altered.

SQL> alter database add logfile group 5 size 100M;
Database altered.

SQL>  alter database add logfile group 6 size 100M;
Database altered.

SQL> alter database add logfile group 7 size 100M;
Database altered.

SQL> select member,group# from v$logfile;
MEMBER                                                                     GROUP#
---------------------------------------------------------------------- ----------
/scratch/app/oracle/oradata/IRT/onlinelogfiles/redo01.log                       1
/scratch/app/oracle/oradata/IRT/onlinelogfiles/redo02.log                       2
/scratch/app/oracle/oradata/IRT/onlinelogfiles/redo03.log                       3
+DATA/irt/onlinelog/group_5.285.799508049                                       5
+DATA/irt/onlinelog/group_6.286.799508059                                       6
+DATA/irt/onlinelog/group_7.287.799508065                                       7

SQL> alter database drop logfile group 1;
Database altered.

SQL> alter database drop logfile group 2;
Database altered.

SQL> alter database drop logfile group 3;
Database altered.

SQL> select member,group# from v$logfile;
MEMBER                                                                     GROUP#
---------------------------------------------------------------------- ----------
+DATA/irt/onlinelog/group_5.285.799508049                                       5
+DATA/irt/onlinelog/group_6.286.799508059                                       6
+DATA/irt/onlinelog/group_7.287.799508065                                       7

SQL> create pfile='/scratch/app/oracle/product/11.2.0/db_1/dbs/initIRT.ora' from spfile;

File created.

SQL> shutdown immediate;

@@@@@@@@@@@@@@@@@@@@@@@@
Login to asmcmd as grid
ASMCMD> pwd
+DATA
ASMCMD> cp control_irt.dbf control_irt01.ctl
copying +DATA/control_irt.dbf -> +DATA/control_irt01.ctl
ASMCMD> cp control_irt01.ctl control_irt02.ctl
copying +DATA/control_irt01.ctl -> +DATA/control_irt02.ctl
ASMCMD> cp control_irt01.ctl control_irt03.ctl
copying +DATA/control_irt01.ctl -> +DATA/control_irt03.ctl
ASMCMD> exit
@@@@@@@@@@@@@@@@@@@@@@@@
Edit the pfile /scratch/app/oracle/product/11.2.0/db_1/dbs/initIRT.ora  for  control_files value:
-bash-4.1$ cat /tmp/init.ora
IRT.__db_cache_size=436207616
IRT.__java_pool_size=4194304
IRT.__large_pool_size=12582912
IRT.__oracle_base='/scratch/app/oracle'#ORACLE_BASE set from environment
IRT.__pga_aggregate_target=432013312
IRT.__sga_target=641728512
IRT.__shared_io_pool_size=0
IRT.__shared_pool_size=176160768
IRT.__streams_pool_size=0
*.control_files='+DATA/control_irt01.ctl','+DATA/control_irt02.ctl','+DATA/control_irt03.ctl'    #This is the value we are interested in
*.db_block_size=8192
*.db_create_file_dest='+DATA'
*.db_name='IRT'
*.fast_start_mttr_target=500
*.job_queue_processes=10
*.memory_max_target=1024M
*.memory_target=1024M
*.open_cursors=300
*.processes=300
*.remote_login_passwordfile='EXCLUSIVE'
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'

Now start the database using this pfile.
SQL> sqlplus '/as sysdba'
SQL> startup nomount pfile='/scratch/app/oracle/product/11.2.0/db_1/dbs/initIRT.ora';
SQL> alter database mount;
SQL> create spfile '+DATA/irt/spfile' from pfile;
SQL> shutdown immediate;
@@@@@@@@@@@@@@@@@@@@@@@@
Now that we have created SPFILE from pfile , edit the pfile in the dbs dir and create a link to the spfile.
-bash-4.1$ pwd
/scratch/app/oracle/product/11.2.0/db_1/dbs
-bash-4.1$ cat initIRT.ora
spfile='+DATA/irt/spfile'
@@@@@@@@@@@@@@@@@@@@@@@@
startup the databae
sqlplus '/as sysdba'
SQL> startup;
@@@@@@@@@@@@@@@@@@@@@@@@
After these control file , online redo logfile and datafiles folder can be removed.

0 comments:

Post a Comment