ITPub博客

首页 > 数据库 > Oracle > Oracle 11g单实例ASM迁移到文件系统

Oracle 11g单实例ASM迁移到文件系统

原创 Oracle 作者:woshishui11211 时间:2015-03-16 16:23:31 0 删除 编辑

Oracle11g单实例ASM迁移到文件系统

 

1.    环境:

CentOS5.8Oracle11.2.0.1单实例名sdzy建在ASM

 

ASM:/dev/sdb1->+DATA ASM 20GB

 

 

2.    相关信息:

[oracle/grid]$crs_stat -t

Name           Type           Target    State     Host       

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

ora.DATA.dg    ora....up.type ONLINE    ONLINE    oracle     

ora....ER.lsnr ora....er.type ONLINE    ONLINE    oracle     

ora.asm        ora.asm.type   ONLINE    ONLINE    oracle     

ora.cssd       ora.cssd.type  ONLINE    ONLINE    oracle     

ora.diskmon    ora....on.type ONLINE    ONLINE    oracle     

ora.sdzy.db    ora....se.type ONLINE    ONLINE    oracle     

 

[oracle/grid]$asmcmd

ASMCMD> lsdg

State    Type    Rebal  Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Voting_files  Name

MOUNTED  EXTERN  N         512   4096  1048576     20473    17842                0           17842              0             N  DATA/

 

 

SQL> select file_name,bytes/1024/1024 MB,tablespace_name from dba_data_files;

 

FILE_NAME                                             MB TABLESPACE_NAME

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

+DATA/sdzy/datafile/system.264.851788437             700 SYSTEM

+DATA/sdzy/datafile/sysaux.265.851788459             600 SYSAUX

+DATA/sdzy/datafile/undotbs1.266.851788475           850 UNDOTBS1

+DATA/sdzy/datafile/users.268.851788491                5 USERS

SQL>  select * from v$logfile;

 

    GROUP# STATUS  TYPE    MEMBER                                        IS_

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

         1         ONLINE  +DATA/sdzy/onlinelog/group_1.258.851788425    NO

         1         ONLINE  +DATA/sdzy/onlinelog/group_1.259.851788427    YES

         2         ONLINE  +DATA/sdzy/onlinelog/group_2.260.851788429    NO

         2         ONLINE  +DATA/sdzy/onlinelog/group_2.261.851788431    YES

         3         ONLINE  +DATA/sdzy/onlinelog/group_3.262.851788433    NO

         3         ONLINE  +DATA/sdzy/onlinelog/group_3.263.851788435    YES

 

 

SQL> show parameter pfile;

 

NAME                                 TYPE        VALUE

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

spfile                               string      +DATA/sdzy/spfilesdzy.ora

 

SQL> show parameter control;

 

NAME                                 TYPE        VALUE

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

control_file_record_keep_time        integer     7

control_files                        string      +DATA/sdzy/controlfile/current

                                                 .256.851788423, +DATA/sdzy/con

                                                 trolfile/current.257.851788425

 

 

SQL> select file#,status,bytes/1024/1024 MB,TS#,name from v$tempfile;

 

     FILE# STATUS          MB        TS# NAME

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

         1 ONLINE          68          3 +DATA/sdzy/tempfile/temp.267.851788481

 

SQL> archive log list;

Database log mode              Archive Mode

Automatic archival             Enabled

Archive destination            USE_DB_RECOVERY_FILE_DEST

Oldest online log sequence     68

Next log sequence to archive   70

Current log sequence           70

 

SQL> show parameter DB_RECOVERY_FILE_DEST;

 

NAME                                 TYPE        VALUE

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

db_recovery_file_dest                string      +DATA

db_recovery_file_dest_size           big integer 4977M

 

 

connected to target database: SDZY (DBID=1456076355)

 

RMAN>

 

3.    迁移思路:

备份参数和控制文件

关闭数据库,启动到nomount状态,恢复控制文件

再使用backup as copy命令复制ASM数据文件到文件系统

 

4.    修改pfile控制文件参数为文件系统位置

SQL> alter system set control_files='/db/oracle/admin/sdzy/oradata/control01.ctl','/db/oracle/admin/sdzy/oradata/control02.ctl' scope=spfile;

 

5.    备份PFILE和控制文件

SQL> create pfile='/home/oracle/pfile.ora' from spfile;

RMAN> backup current controlfile format '/home/oracle/controlfile.ctl';

 

Starting backup at 2014-07-14 23:00:27

using target database control file instead of recovery catalog

allocated channel: ORA_DISK_1

channel ORA_DISK_1: SID=28 device type=DISK

channel ORA_DISK_1: starting full datafile backup set

channel ORA_DISK_1: specifying datafile(s) in backup set

including current control file in backup set

channel ORA_DISK_1: starting piece 1 at 2014-07-14 23:00:29

channel ORA_DISK_1: finished piece 1 at 2014-07-14 23:00:30

piece handle=/home/oracle/controlfile.ctl tag=TAG20140714T230028 comment=NONE

channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01

Finished backup at 2014-07-14 23:00:30

 

 

6.    关闭数据库

RMAN> shutdown immediate;

 

7.    利用备份修改后的pfile文件启动到nomount状态

RMAN> startup nomount pfile='/home/oracle/pfile.ora';

 

connected to target database (not started)

Oracle instance started

 

Total System Global Area    1503199232 bytes

 

Fixed Size                     2213536 bytes

Variable Size               1006635360 bytes

Database Buffers             486539264 bytes

Redo Buffers                   7811072 bytes

 

 

8.    利用备份的控制文件恢复控制文件到pfile指定文件

 

RMAN> restore controlfile from '/home/oracle/controlfile.ctl';

 

Starting restore at 2014-07-14 23:15:00

allocated channel: ORA_DISK_1

channel ORA_DISK_1: SID=1146 device type=DISK

 

channel ORA_DISK_1: restoring control file

channel ORA_DISK_1: restore complete, elapsed time: 00:00:01

output file name=/db/oracle/admin/sdzy/oradata/control01.ctl

output file name=/db/oracle/admin/sdzy/oradata/control02.ctl

Finished restore at 2014-07-14 23:15:02

 

 

9.    恢复数据库到mount状态

 

RMAN> alter database mount;

 

database mounted

released channel: ORA_DISK_1

 

 

10.         复制ASM磁盘组数据文件到文件系统

 

backup as copy datafile '+DATA/sdzy/datafile/system.264.851788437' format '/db/oracle/admin/sdzy/oradata/system01.dbf'; 

backup as copy datafile '+DATA/sdzy/datafile/sysaux.265.851788459' format '/db/oracle/admin/sdzy/oradata/sysaux01.dbf'; 

backup as copy datafile '+DATA/sdzy/datafile/undotbs1.266.851788475' format '/db/oracle/admin/sdzy/oradata/undotbs1.dbf'; 

backup as copy datafile '+DATA/sdzy/datafile/users.268.851788491' format '/db/oracle/admin/sdzy/oradata/users01.dbf'; 

备注:backup as copy 命令是以副本的方式备份数据库,其作用和操作系统的COPY

命令是一样的,只是二者的执行者不同而已。这里必须同时制定ASM文件的名字和

副本的名字。而且backup as copy 命令只备份数据文件,不备份日志文件,也不备份临时文件

clip_image002

 

 

11.         修改控制文件内部数据文件指针

rman>switch database to copy;

 

备注:因为控制文件内部对数据文件的指向依然是ASM文件的目录路径。我们的目的

是让它的指向修改为文件系统的数据库文件。该命令的功能正是如此。

【注意】此处不能使用alter database rename file 命令修改控制文件内部数据文件

的指针。因为alter database rename file命令不能跨越系统进行操作。所

不能使用其将ASM系统的ASM文件路径改为文件系统的数据文件路径。

 

 

 

12.         修复数据库文件

rman>recover database;

备注:应用日志到恢复后的数据文件上,以实现对其的修复

 

 

13.         RESETLOGS方式打开数据库

rman>alter database open resetlogs;

 

 

 

14.         修改联机日志文件组

 

sql>alter database add logfile group 4 '/db/oracle/admin/sdzy/oradata/redo04_01.log' size 50m;

sql>alter database add logfile group 5 '/db/oracle/admin/sdzy/oradata/redo05_01.log' size 50m;

sql>alter database add logfile group 6 '/db/oracle/admin/sdzy/oradata/redo06_01.log' size 50m;

 

sql>alter system switch logfile;

sql>alter system checkpoint;

sql>alter database drop logfile group 1;

sql>alter database drop logfile group 2;

sql>alter database drop logfile group 3;

 

【备注】因为backup as copy database 命令只复制数据文件不复制联机日志文件,所

以需要手工添加联机日志文件,删除位于ASM磁盘组的日志文件。在删除过程中,

日志文件可能处于当前使用状态或者是活动状态,故分别使用如下命令进行解决:

alter system switch logfile;(日志切换)

alter system checkpoint;(将脏数据写入数据文件,以使日志文件状态变为非活动)

15.         添加临时表空间文件

SQL> alter tablespace temp add tempfile '/db/oracle/admin/sdzy/oradata/temp01.dbf' size 100M;

 

Tablespace altered.

 

SQL> alter tablespace temp drop tempfile '+DATA/sdzy/tempfile/temp.267.851788481';

 

Tablespace altered.

 

【备注】因为backup as copy database 命令只复制数据文件不复制临时文件,所

 

以需要手工添加临时文件。

 

16.         修改归档路径

事先创建归档目录:

/db/oracle/admin/sdzy/oradata/arch

 

 

关闭数据库

SQL> shutdown immediate;

 

修改备份的pfile文件:

*.db_create_file_dest='/db/oracle/admin/sdzy/oradata'

*.db_recovery_file_dest='/db/oracle/admin/sdzy/oradata/arch'

 

利用备份的pfile文件启动数据库:

SQL> startup pfile='/home/oracle/pfile.ora';

ORACLE instance started.

 

Total System Global Area 1503199232 bytes

Fixed Size                  2213536 bytes

Variable Size            1006635360 bytes

Database Buffers          486539264 bytes

Redo Buffers                7811072 bytes

Database mounted.

Database opened.

 

创建SPFILE文件

SQL> create spfile from pfile='/home/oracle/pfile.ora';

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> startup;

ORACLE instance started.

 

Total System Global Area 1503199232 bytes

Fixed Size                  2213536 bytes

Variable Size            1006635360 bytes

Database Buffers          486539264 bytes

Redo Buffers                7811072 bytes

Database mounted.

Database opened.

 

 

17.         检查迁移后的文件路径

确认数据文件、归档、参数文件、控制文件、临时文件、日志文件等都迁移到文件系统中,且数据未丢失

 

确认ASM不再使用,可以将ASM磁盘组删除

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26217983/viewspace-1461698/,如需转载,请注明出处,否则将追究法律责任。

下一篇: Linux上安装DB2 V10
请登录后发表评论 登录
全部评论

注册时间:2014-03-15

  • 博文量
    39
  • 访问量
    271780