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

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

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值