Welcome 微信登录

首页 / 数据库 / MySQL / 把文件系统的数据文件迁移到ASM存储

把文件系统的数据文件迁移到ASM存储RAC环境,使用的是ASM作存储。
近日在给用户做数据库维护的过程中,发现有一部分数据文件存放在文件系统中,这是不正常的。导致另一台服务器上跑着的实例就不正常了。
 于是需要把文件系统上的数据文件迁移到ASM存储上。如何修改ASM的sys密码 http://www.linuxidc.com/Linux/2013-09/89744.htm如何将ASM中的数据文件复制到操作系统中 http://www.linuxidc.com/Linux/2013-08/88418.htmOracle 11g RAC ASM磁盘全部丢失后的恢复 http://www.linuxidc.com/Linux/2013-07/87000.htmOracle 11g从入门到精通 PDF+光盘源代码 http://www.linuxidc.com/Linux/2013-06/85670.htmRHEL6 ASM方式安装Oracle 11g R2 http://www.linuxidc.com/Linux/2013-06/86002.htmOracle 10g 手工创建ASM数据库 http://www.linuxidc.com/Linux/2013-01/78229.htm下面模拟该场景
 在rac1的节点上操作未添加数据文件前数据文件的情况
 SQL> select name from v$datafile;FILE_NAME
 ------------------------------------------------------------
 +DATA/asmdevdb/datafile/system.273.845258673
 +DATA/asmdevdb/datafile/sysaux.274.845258703
 +DATA/asmdevdb/datafile/undotbs1.264.845258723
 +DATA/asmdevdb/datafile/users.271.8452587614 rows selected.SQL> alter tablespace users add datafile "user01.dbf" size 10m;Tablespace altered.SQL> select file_name from dba_data_files;FILE_NAME
 ------------------------------------------------------------
 +DATA/asmdevdb/datafile/system.273.845258673
 +DATA/asmdevdb/datafile/sysaux.274.845258703
 +DATA/asmdevdb/datafile/undotbs1.264.845258723
 +DATA/asmdevdb/datafile/users.271.845258761
 /u01/oracle/product/11.2.0/db_1/dbs/user01.dbf
 
5 rows selected.我们过一段时间,观测其他节点。
 我们使用sqlplus 登陆会报错误。
 使用conn sys/password@devdb2 as sysdba,报以下错误:
 ERROR:
 ORA-01075: you are currently logged on
 2、以normal 身份的用户连接(conn username/password@devdb2),报以下错误:
 ERROR:
 ORA-00604: 递归 SQL 级别 2 出现错误
 ORA-01157: 无法标识/锁定数据文件 5 - 请参阅 DBWR 跟踪文件
 ORA-01110: 数据文件 5: "/u01/oracle/product/11.2.0/db_1/dbs/user01.dbf"
 ORA-00604: 递归 SQL 级别 2 出现错误
 ORA-01157: 无法标识/锁定数据文件 5 - 请参阅 DBWR 跟踪文件
 ORA-01110: 数据文件 5: "/u01/oracle/product/11.2.0/db_1/dbs/user01.dbf"
下面我采用rman 的方式,把/u01/oracle/product/11.2.0/db_1/dbs/user01.dbf数据文件
 迁移到ASM存储上。
 把数据库启动到mount状态下
 SQL> startup mount
 ORACLE instance started.Total System Global Area  393375744 bytes
 Fixed Size                  1336764 bytes
 Variable Size           276826692 bytes
 Database Buffers          109051904 bytes
 Redo Buffers                6160384 bytes
 Database mounted.
 使用rman链接数据库
pxboracle->rman  target /Recovery Manager: Release 11.2.0.1.0 - Production on Mon May 12 22:49:59 2014Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.connected to target database: DEVDB (DBID=260178701, not open)RMAN> report schema;using target database control file instead of recovery catalog
 Report of database schema for database with db_unique_name ASMDEVDBList of Permanent Datafiles
 ===========================
 File Size(MB) Tablespace         RB segs Datafile Name
 ---- -------- -------------------- ------- ------------------------
 1    700      SYSTEM             ***   +DATA/asmdevdb/datafile/system.273.845258673
 2    600      SYSAUX             ***   +DATA/asmdevdb/datafile/sysaux.274.845258703
 3    200      UNDOTBS1           ***   +DATA/asmdevdb/datafile/undotbs1.264.845258723
 4    5        USERS                ***   +DATA/asmdevdb/datafile/users.271.845258761
 5    10     USERS                ***   /u01/oracle/product/11.2.0/db_1/dbs/user01.dbf
 
List of Temporary Files
 =======================
 File Size(MB) Tablespace         Maxsize(MB) Tempfile Name
 ---- -------- -------------------- ----------- --------------------
 1    20     TEMP               32767     +DATA/asmdevdb/tempfile/temp.275.845258729
 
RMAN> backup as copy datafile 5 format "+DATA";Starting backup at 12-MAY-14
 allocated channel: ORA_DISK_1
 channel ORA_DISK_1: SID=138 device type=DISK
 channel ORA_DISK_1: starting datafile copy
 input datafile file number=00005 name=/u01/oracle/product/11.2.0/db_1/dbs/user01.dbf
 output file name=+DATA/asmdevdb/datafile/users.266.847407067 tag=TAG20140512T225103 RECID=1 STAMP=847407068
 channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:04
 Finished backup at 12-MAY-14RMAN> switch datafile "/u01/oracle/product/11.2.0/db_1/dbs/user01.dbf" to copy;datafile 5 switched to datafile copy "+DATA/asmdevdb/datafile/users.266.847407067"
 
RMAN> alter database open;database openedRMAN> report schema;Report of database schema for database with db_unique_name ASMDEVDBList of Permanent Datafiles
 ===========================
 File Size(MB) Tablespace         RB segs Datafile Name
 ---- -------- -------------------- ------- ------------------------
 1    700      SYSTEM             ***   +DATA/asmdevdb/datafile/system.273.845258673
 2    600      SYSAUX             ***   +DATA/asmdevdb/datafile/sysaux.274.845258703
 3    200      UNDOTBS1           ***   +DATA/asmdevdb/datafile/undotbs1.264.845258723
 4    5        USERS                ***   +DATA/asmdevdb/datafile/users.271.845258761
 5    10     USERS                ***   +DATA/asmdevdb/datafile/users.266.847407067
 
List of Temporary Files
 =======================
 File Size(MB) Tablespace         Maxsize(MB) Tempfile Name
 ---- -------- -------------------- ----------- --------------------
 1    20     TEMP               32767     +DATA/asmdevdb/tempfile/temp.275.845258729
 
 注意:
 以后在添加数据文件时,使用如下命令
 alter tablespace users add datafile "+DATA" size 10m;
 文件的路径要写存储路径,不用写文件名,ASM文件的命名不同于普通文件的命名,它的文件名一般不直接指定,由ASM系统自己生成,并且其管理方式是OMF。SQL> conn / as sysdba
 Connected.
 SQL> alter tablespace users add datafile "+DATA" size 10m;Tablespace altered.SQL> select file_name from dba_data_files;FILE_NAME
 ------------------------------------------------------------
 +DATA/asmdevdb/datafile/system.273.845258673
 +DATA/asmdevdb/datafile/sysaux.274.845258703
 +DATA/asmdevdb/datafile/undotbs1.264.845258723
 +DATA/asmdevdb/datafile/users.271.845258761
 +DATA/asmdevdb/datafile/users.266.847407067
 +DATA/asmdevdb/datafile/users.270.8474087596 rows selected.更多Oracle相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12本文永久更新链接地址