您的位置:首页 > 数据库 > Oracle

Redhat 5.5 Orcle 10G 文件系统单实例迁移至ASM实战

2012-12-30 01:15 351 查看
Redhat 5.5 Orcle 10G 文件系统单实例迁移至ASM实战

1.安装ASMlib RPM包:

       rpm -ivhoracleasm-support-2.1.7-1.el5.i386.rpm
       rpm -ivh oracleasm-2.6.18-194.el5-2.0.5-1.el5.i686.rpm
       rpm -ivhoracleasmlib-2.0.4-1.el5.i386.rpm

 

2.建立分区:

[root@source ~]# fdisk -l /dev/sdb
 
Disk /dev/sdb: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
 
   Device Boot      Start         End      Blocks  Id  System
/dev/sdb1              1         730     5863693+ 83  Linux
/dev/sdb2            731        1305     4618687+ 83  Linux

 

fdisk /dev/sdb(详细步骤省略,两个分区各5G)
partprobe /dev/sdb
 
[root@source ~]# fdisk -l

Disk /dev/sda: 16.1 GB, 16106127360 bytes

255 heads, 63 sectors/track, 1958 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

 

   Device Boot      Start         End      Blocks  Id  System

/dev/sda1   *           1          25      200781  83  Linux

/dev/sda2              26        1894   15012742+  83  Linux

/dev/sda3           1895        1958      514080  82  Linux swap / Solaris

 

Disk /dev/sdb: 10.7 GB, 10737418240 bytes

255 heads, 63 sectors/track, 1305 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

 

   Device Boot      Start         End      Blocks  Id  System

/dev/sdb1              1         730     5863693+ 83  Linux

/dev/sdb2            731        1305     4618687+ 83  Linux

 

3.配置ASM:

[root@source ~]#/etc/init.d/oracleasm configure

Configuring the Oracle ASMlibrary driver.

 

This will configure theon-boot properties of the Oracle ASM library

driver.  The following questions will determinewhether the driver is

loaded on boot and whatpermissions it will have.  The currentvalues

will be shown in brackets('[]').  Hitting <ENTER> withouttyping an

answer will keep that currentvalue.  Ctrl-C will abort.

 

Default user to own thedriver interface []: oracle

Default group to own thedriver interface []: oinstall

Start Oracle ASM library driveron boot (y/n) [y]: y

Scan for Oracle ASM disks onboot (y/n) [y]: y

Writing Oracle ASM librarydriver configuration: done

Initializing the OracleASMLib driver:                     [  OK  ]

Scanning the system forOracle ASMLib disks:               [  OK  ]

 

/etc/init.d/oracleasmconfigure
 /etc/init.d/oracleasm createdisk V0L1/dev/sdb1
 /etc/init.d/oracleasm createdisk V0L2/dev/sdb2
  [root@source ~]#/etc/init.d/oracleasm listdisks
V0L1
V0L2
 
4.配置css进程(配置好后,进程开机启动):
[root@source bin]# /u01/oracle/product/10.2.0/bin/localconfigadd
/etc/oracle does not exist. Creating it now.
Successfully accumulated necessary OCR keys.
Creating OCR keys for user 'root', privgrp 'root'..
Operation successful.
Configuration for local CSS has been initialized
 
Adding to inittab
Startup will be queued to init within 90 seconds.
Checking the status of new Oracle init process...
Expecting the CRS daemons to be up within 600 seconds.
CSS is active on these nodes.
        source
CSS is active on all nodes.
Oracle CSS service is installed and running underinit(1M)
 
[oracle@source ~]$ ps -ef|grep oracle
root     4751     1  0 10:18 ?        00:00:00 /bin/su -l oracle -c sh -c 'cd/u01/oracle/product/10.2.0/log/source/cssd; ulimit -c unlimited; exec /u01/oracle/product/10.2.0/bin/ocssd
'
oracle   4843  4751  0 10:19 ?        00:00:00/u01/oracle/product/10.2.0/bin/ocssd.bin
 

5.配置ASM实例:

创建ASM实例参数文件,添加相关参数:

[oracle@source ~]$ cd /u01/oracle/product/10.2.0/dbs/
[oracle@source dbs]$ touch init+ASM.ora
[oracle@source dbs]$ vim init+ASM.ora
instance_type=asm
large_pool_size=12m
remote_login_passwordfile=exclusive
asm_diskstring=
background_dump_dest=/u01/oracle/admin/+ASM/bdump
core_dump_dest=/u01/oracle/admin/+ASM/cdump
user_dump_dest=/u01/oracle/admin/+ASM/udump
 
创建ASM密码文件:
orapwd file=orapw+ASM entries=5 password=oracle
 
6.启动ASM实例:
[oracle@source dbs]$ export ORACLE_SID=+ASM
[oracle@source dbs]$ sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on Fri Dec28 10:43:21 2012
 
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
SQL> conn / as sysdba
Connected to an idle instance.
SQL> startup
ASM instance started
 
Total System Global Area   83886080 bytes
Fixed Size                  1217836 bytes
Variable Size              57502420 bytes
ASM Cache                  25165824 bytes
ORA-15110: no diskgroups mounted
 
报错是因为还没有建立磁盘组,忽略此报错,接下来建立ASM磁盘.

 

SQL> select name,state,free_mb,required_mirror_free_mb,usable_file_mb from v$asm_diskgroup;
no rows selected
 
修改asm_diskstring参数,参数的含义官方文档解释如下:
A comma-separated list of strings that limits the setof disks that ASM discovers. May include wildcard characters. Only disks thatmatch one of the strings are discovered. String format
depends on the ASMlibrary in use and on the operating system. The standard system library for ASMsupports glob pattern matching.
 
SQL>  alter system set asm_diskstring='/dev/oracleasm/disks/V0L*';
System altered.
 
SQL>  create diskgroupdg1
external redundancy disk'/dev/oracleasm/disks/V0L1';
Diskgroup created.
 
SQL> create diskgrouprecovery
external redundancy disk '/dev/oracleasm/disks/V0L2';
Diskgroup created.
 
SQL> select name,state,free_mb,required_mirror_free_mb,usable_file_mb from v$asm_diskgroup;
NAME                           STATE          FREE_MB REQUIRED_MIRROR_FREE_MBUSABLE_FILE_MB
------------------------------ ----------- --------------------------------- --------------
DG1                            MOUNTED           5676                       0           5676
RECOVERY                       MOUNTED           4460                       0           4460
 
7.备份原库:

RMAN>

run {
allocate channel c1 device type  disk;                                
allocate channel c2 device type disk;                                
backup database format '/home/oracle/full_databse%U'include current controlfile plus archivelog ;
release channel c1;
release channel c2;
}

 

8.修改原库参数:

alter system set db_create_file_dest='+DG1'; 
alter SYSTEM SET db_recovery_file_dest='+RECOVERY';
alter SYSTEM SET db_recovery_file_dest_size=5G;
alter system set db_create_online_log_dest_1='+DG1';

 

9.迁移联机日志文件到ASM

select group#,member from v$logfile;
    GROUP#MEMBER
------------------------------------------------------------
   3 /u01/oracle/oradata/sourcedb/redo03.log
   2/u01/oracle/oradata/sourcedb/redo02.log
   1 /u01/oracle/oradata/sourcedb/redo01.log
 

SQL> alter database add logfile member '+DG1' togroup 1;
Database altered.
 
SQL> alter database add logfile member '+DG1' togroup 2;
Database altered.
 
SQL> alter database add logfile member '+DG1' togroup 3;
Database altered.
 
SQL> select group#,member from v$logfile;
    GROUP#MEMBER
------------------------------------------------------------
         3/u01/oracle/oradata/sourcedb/redo03.log
         2/u01/oracle/oradata/sourcedb/redo02.log
         1/u01/oracle/oradata/sourcedb/redo01.log
         1+DG1/sourcedb/onlinelog/group_1.256.803217799
         2+DG1/sourcedb/onlinelog/group_2.257.803217809
         3+DG1/sourcedb/onlinelog/group_3.258.803217813
 

删除文件系统上的联机日志成员

SQL>alter database droplogfile member '/u01/oracle/oradata/sourcedb/redo02.log';

SQL> alter system switchlogfile;

SQL> alter database droplogfile member '/u01/oracle/oradata/sourcedb/redo01.log';

SQL> alter system switchlogfile;

SQL> alter database droplogfile member '/u01/oracle/oradata/sourcedb/redo03.log';

SQL> select member from v$logfile;
MEMBER
--------------------------------------------------
+DG1/sourcedb/onlinelog/group_1.256.803217799
+DG1/sourcedb/onlinelog/group_2.257.803217809
+DG1/sourcedb/onlinelog/group_3.258.803217813
 

10.迁移临时表空间文件到ASM:

 

 

SQL> select name from v$tempfile;
NAME
---------------------------------------------------------------------------
/u02/temp02.dbf
SQL> alter tablespace temp add tempfile;
Tablespace altered.
 
SQL> select file_name,tablespace_name fromdba_temp_files;
FILE_NAME
---------------------------------------------------------------------------
TABLESPACE_NAME
------------------------------
+DG1/sourcedb/tempfile/temp.259.803218283
TEMP
/u02/temp02.dbf
TEMP
 
SQL> alter tablespace temp drop tempfile'/u02/temp02.dbf';
Tablespace altered.
 
SQL> select file_name,tablespace_name fromdba_temp_files;
FILE_NAME
---------------------------------------------------------------------------
TABLESPACE_NAME
------------------------------
+DG1/sourcedb/tempfile/temp.259.803218283
TEMP
 

11.迁移控制文件和数据文件到ASM

首先修改参数文件:

SQL> alter system setcontrol_files='+DG1/sourcedb/CONTROLFILE/control01.ctl','+DG1/sourcedb/CONTROLFILE/control02.ctl'scope=spfile;
System altered.

 

SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup nomount;
ORACLE instance started.
 
Total System Global Area  167772160 bytes
Fixed Size                  1218316 bytes
Variable Size              88082676 bytes
Database Buffers           75497472 bytes
Redo Buffers                2973696 bytes
 

[oracle@source ~]$ rman target /
RMAN> restore controlfile from'/u01/oracle/oradata/sourcedb/control01.ctl';
 
Starting restore at 28-DEC-12
using channel ORA_DISK_1
 
channel ORA_DISK_1: copied control file copy
output filename=+DG1/sourcedb/control01.ctl
output filename=+DG1/sourcedb/control02.ctl
Finished restore at 28-DEC-12

 

RMAN> alter database mount;
 
database mounted
released channel: ORA_DISK_1
 

12.开始恢复数据文件到ASM:

run{
set newname for datafile'/u01/oracle/oradata/sourcedb/system01.dbf' to '+DG1/sourcedb/DATAFILE/system01.dbf';
set newname for datafile'/u01/oracle/oradata/sourcedb/undotbs301.dbf' to'+DG1/sourcedb/DATAFILE/undotbs301.dbf';
set newname for datafile'/u01/oracle/oradata/sourcedb/sysaux01.dbf' to '+DG1/sourcedb/DATAFILE/sysaux01.dbf';
set newname for datafile'/u01/oracle/oradata/sourcedb/users01.dbf' to'+DG1/sourcedb/DATAFILE/users01.dbf';
set newname for datafile'/u01/oracle/oradata/sourcedb/example01.dbf' to'+DG1/sourcedb/DATAFILE/example01.dbf';
set newname for datafile '/u01/oracle/oradata/sourcedb/gguser.dbf'to '+DG1/sourcedb/DATAFILE/gguser.dbf';
restore database;
switch datafile all;
recover database;
}

 

13.迁移结束,验证一下:

SQL> select name fromv$controlfile;

NAME

---------------------------------------------------------------------------

+DG1/sourcedb/controlfile/control01.ctl

+DG1/sourcedb/controlfile/control02.ctl

 

SQL> select name fromv$datafile;

NAME

---------------------------------------------------------------------------+DG1/sourcedb/datafile/system01.dbf

+DG1/sourcedb/datafile/undotbs301.dbf

+DG1/sourcedb/datafile/sysaux01.dbf

+DG1/sourcedb/datafile/users01.dbf

+DG1/sourcedb/datafile/example01.dbf

+DG1/sourcedb/datafile/gguser.dbf

 

SQL> select member fromv$logfile;

MEMBER

---------------------------------------------------------------------------

         1+DG1/sourcedb/onlinelog/group_1.256.803217799
         2+DG1/sourcedb/onlinelog/group_2.257.803217809
         3+DG1/sourcedb/onlinelog/group_3.258.803217813
 

SQL> select name fromv$tempfile;

NAME

---------------------------------------------------------------------------

+DG1/sourcedb/tempfile/temp.259.803218283
 
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  asm ORACLE 迁移