首页 / 数据库 / 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本文永久更新链接地址