使用RMAN迁移文件系统数据库到ASM

--==================================

-- 使用RMAN移文件系统数ASM

--==================================

实际的工作程中,由于ASM管理的便利性,因此很多候需要文件系库迁移到ASM,本文演示了如何文件系统数库迁移到ASM例。

如何ASM例及ASM管理请参

建ASM实例及数据库

ASM 磁盘组及磁盘的管理

使用 ASMCMD 工具管理ASM实例

一、主要步(假定ASM例已)

1.算目标数(文件系)的大小

2.根据目标数的大小,ASM()可用磁

3.为辅配置初始化参数文件,密文件,建目

4.备份标数

5.移目标数

二、

本次移在同一台主机实现,因此采用不同的ORACLE_SID

境:Oracle Linux 5.4 + Oracle 10g R2

标数orcl

orclasm

1.算目标数(文件系)的大小

SQL> show parameter db_name

NAMETYPEVALUE

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

db_name                              stringorcl

SQL> select * from v$version whererownum<2;

BANNER

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

Oracle Database10g Enterprise Edition Release 10.2.0.4.0 - Prod

SQL> selectsum(bytes)/1024/1024 ||'MB'from dba_segments;

SUM(BYTES)/1024/1024||'MB'

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

1195.5MB       

2.为辅可用空,下面DG1中有3016MB可用空,可以移的需要

ASMCMD> ls -s

Sector  BlockAU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Name

512409610485766134603203016         0DG1/

5124096104857620471997019970REV/

3.配置

a.启动标数并为标数库创pfile

[oracle@oradb ~]$ echo $ORACLE_SID

orcl

[oracle@oradb ~]$ sqlplus / assysdba

idle> startup

sys@ORCL> createpfilefromspfile;

b.制目标数pfile生成pfile并对行修改

[oracle@oradb dbs]$ cd $ORACLE_HOME/dbs

[oracle@oradb dbs]$ cp initorcl.ora initorclasm.ora

修改initorclasm.ora

文件中所有的orcl使用替命令替换为orclasm(使用vi工具 :%s/orcl/orclasm/g)

修改控制文件1(DG1使用了normal redundancy),路径为'+DG1/orclasm/controlfile/'--使用ASM注意目录结构

               修改db_recovery_file_dest径为'+REV'

修改log_archive_dest_1径为'LOCATION=+REV/orclasm'

修改db_create_file_dest径为'+DG1'

增加下列参数()

*.db_file_name_convert=("orcl","orclasm")

                 *.log_file_name_convert=("orcl","orclasm")

下面列出化的几重要参数

*.audit_file_dest='/u01/app/oracle/admin/orclasm/adump'

*.background_dump_dest='/u01/app/oracle/admin/orclasm/bdump'

*.control_files='+DG1/orclasm/controlfile/control01.ctl'

*.core_dump_dest='/u01/app/oracle/admin/orclasm/cdump'

*.db_name='orclasm'

*.db_recovery_file_dest='+REV/orclasm'

*.log_archive_dest_1='LOCATION=+REV/orclasm'

*.user_dump_dest='/u01/app/oracle/admin/orclasm/udump'

*.db_create_file_dest='+DG1'

*.db_file_name_convert=("orcl","orclasm")

*.log_file_name_convert=("orcl","orclasm")

c.根据刚刚修改参数创建目

[oracle@oradb ~]$ mkdir -p $ORACLE_BASE/admin/orclasm/{a,b,c,u}dump

[oracle@oradb ~]$ ls $ORACLE_BASE/admin/orclasm

adump  bdump  cdump  udump

d.建密文件

[oracle@oradb dbs]$ orapwd file=$ORACLE_HOME/dbs/orapworclasm password=oracle entries=8

4.备份标数

a.标数库应处归档模式下

SQL> selectname,log_mode from v$database;

NAMELOG_MODE

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

ORCL      ARCHIVELOG

b.接到RMAN并进备份,此使用了非catalog方式

[oracle@oradb ~]$ uniread rman target sys/oracle@orcl nocatalog

RMAN> crosscheck archivelogall;       --验归档日志

RMAN> delete expired archivelogall;   --无效的归档日志

RMAN> report obsolete;

RMAN> delete noprompt obsolete;        --弃的备份

RMAN> show channel;                    --看缺省的备份

RMAN configuration parameters are:

CONFIGURE CHANNEL DEVICE TYPEDISK FORMAT   '/u01/bk/orcl/data_%d_%U';

RMAN> showcontrolfile autobackup;    --看控制文件的自动备份启用情

using target database control fileinsteadofrecovery catalog

RMAN configuration parameters are:

CONFIGURE CONTROLFILE AUTOBACKUP ON;

RMAN> showcontrolfile autobackup format;   --看控制文件的备份、格式

RMAN configuration parameters are:

CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPEDISKTO'/u01/bk/orcl/auto_ctl_%d_%F';

RMAN> run{     --标数库进备份,此备份为0增量包含了归档日志,控制文件spfile动备份

2> allocate channel ch1 device typedisk;

3> backupas compressed backupset

4> incremental level0database format '/u01/bk/orcl/data_%d_%U'

5> plus archivelog format '/u01/bk/orcl/bk_lg_%U'

6> tag='Inc0_log';

7> release channel ch1;}      

5.移目标数据到ASM

a.看目标数SEQUENCE10,便于恢复时指定SEQUENCE

SQL> select * from v$log;  

GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIM

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

            119524288001YES ACTIVE                  52044530-OCT-10

2110524288001NOCURRENT52058530-OCT-10

b.看目标数据文件的相息,后需要datafile指定文件名

RMAN> reportschema;

Reportofdatabaseschema

ListofPermanentDatafiles

===========================

FileSize(MB) TablespaceRB segs DatafileName

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

1480SYSTEM***     /u01/app/oracle/oradata/orcl/system01.dbf

225UNDOTBS1             ***     /u01/app/oracle/oradata/orcl/undotbs01.dbf

3240SYSAUX***     /u01/app/oracle/oradata/orcl/sysaux01.dbf

45USERS***     /u01/app/oracle/oradata/orcl/users01.dbf

5100EXAMPLE              ***     /u01/app/oracle/oradata/orcl/example01.dbf

ListofTemporary Files

=======================

FileSize(MB) TablespaceMaxsize(MB) TempfileName

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

120TEMP                 32767/u01/app/oracle/oradata/orcl/temp01.dbf

c.asm例是否已正常提供服,以及磁状态并启动新的orclasm

SQL> show parameter instance_name

NAMETYPEVALUE

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

instance_name                        string+ASM

SQL> select group_number,name,state,type,total_mb,free_mb,usable_file_mb from v$asm_diskgroup;

GROUP_NUMBER NAMESTATE       TYPETOTAL_MB    FREE_MB USABLE_FILE_MB

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

1 DG1                            MOUNTED     NORMAL6134    60323016

2 REV                            MOUNTED     EXTERN       204719971997

d.启动辅nomount状态

[oracle@oradb ~]$ export ORACLE_SID=orclasm

[oracle@oradb ~]$ sqlplus / assysdba

idle> startup nomount

ORACLE instance started.

e.使用RMAN接到目标数库来完成

[oracle@oradb dbs]$ rman auxiliary / target sys/redhat@orcl

connected to target database: ORCL (DBID=1263182651)

connected to auxiliary database: ORCLASM (not mounted)

RMAN> run {

2> allocate auxiliary channel ach1 device typedisk;

3> setuntilsequence10thread1;

4> set newname fordatafile1to'+DG1';

5> set newname fordatafile2to'+DG1';

6> set newname fordatafile3to'+DG1';

7> set newname fordatafile4to'+DG1';

8> set newname fordatafile5to'+DG1';

9> set newname fortempfile1to'+DG1';

10duplicate target databaseto orclasm logfile

11group1('+DG1') size5m reuse,

12group2('+DG1') size5m reuse;

13}

contentsofMemory Script:

   {

Alterclonedatabaseopenresetlogs;

}

executing Memory Script

database opened

Finished Duplicate Db at30-OCT-10

6.续处

a.库状态并关闭数

[oracle@oradb ~]$ export ORACLE_SID=orclasm

[oracle@oradb ~]$ sqlplus / assysdba

SQL> selectname,open_mode from v$database;

NAMEOPEN_MODE

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

ORCLASM   READWRITE

SQL> shutdownimmediate;

b.使用vi工具编辑initorclasm.ora   

除下列参数

*.db_file_name_convert=("orcl","orclasm")

*.log_file_name_convert=("orcl","orclasm")

c.启动数库并创spfile

SQL> startup

SQL> createspfilefrompfile;

SQL> startup force--如果是生产库shutdown immediate,然后startup

7.验证迁

SQL> show parameter db_name

NAMETYPEVALUE

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

db_name                              stringorclasm

SQL> col name format a60

SQL> selectname,status from v$datafile;

NAMESTATUS

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

+DG1/orclasm/datafile/system.256.752170937                   SYSTEM

+DG1/orclasm/datafile/undotbs1.259.752170937                 ONLINE

+DG1/orclasm/datafile/sysaux.257.752170937                   ONLINE

+DG1/orclasm/datafile/users.260.752170937                    ONLINE

+DG1/orclasm/datafile/example.258.752170937                  ONLINE

SQL> select * from v$log;

GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIM

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

11552428802YES INACTIVE                56371627-MAY-11

21652428802NOCURRENT58398527-MAY-11

SQL> select * from v$logfile;

GROUP# STATUS  TYPEMEMBERIS_

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

2ONLINE+DG1/orclasm/onlinelog/group_2.263.752171103       NO

1 STALE   ONLINE+DG1/orclasm/onlinelog/group_1.262.752171103       NO

1 STALE   ONLINE+REV/orclasm/onlinelog/group_1.256.752171103       YES

2ONLINE+REV/orclasm/onlinelog/group_2.257.752171105       YES

SQL> select file#,creation_change#, status,enabled,bytes,namefrom v$tempfile;

FILE# CREATION_CHANGE# STATUS  ENABLEDBYTES NAME

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

1464714ONLINEREADWRITE20971520 +DG1/orclasm/tempfile/temp.264.752171113  

--如果在使用duplicate时没有生成tempfile文件,可以使用下面的方式添加tempfile文件。

altertablespace temp addtempfile'+DG1'size100m autoextendoff;      

--可以添加归档修改一下归档

--接到ASM归档

SQL> select instance_name,status from v$instance;

INSTANCE_NAME                  STATUS

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

+ASMSTARTED

SQL> alterdiskgroup REV adddirectory'+REV/orclasm/arch';

   

Diskgroup altered.

--在orclasm例中修改归档

SQL> select instance_name,status from v$instance;

INSTANCE_NAME    STATUS

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

orclasm          OPEN

SQL> altersystemset log_archive_dest_1='LOCATION=+REV/orclasm/arch';

System altered.

SQL> selectnamefrom v$archived_log whererownum<2orderby stamp;

NAME

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

+REV/orclasm/1_1_752171102.arc

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值