模拟用户zytuser的表空间ZYTUSER_TBS表空间添加数据文件到本地。
--环境准备
1.创建一个表空间
--创建表空间
create tablespace ZYTUSER_TBS datafile '+DATA' size 10m;
ALTER user ZYTUSER DEFAULT TABLESPACE ZYTUSER_TBS;
GRANT dba TO userzyt;
conn ZYTUSER/ZYTUSER
create table table1 as select * from dba_objects;
insert into table1 select * from table1;

2.首先查看db_create_file_dest参数指定数据文件创建路径。指定为+DATA;当它为Null时,默认位置为$ORACLE_HOME/dbs
SQL> show parameter db_create_file_dest

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_create_file_dest string +DATA

3.给这个表空间添加数据文件到本地
--正确
00:37:10 SYS@zytrac1>ALTER TABLESPACE ZYTUSER_TBS ADD DATAFILE SIZE 10m AUTOEXTEND ON NEXT 10M MAXSIZE 20m;

Tablespace altered.

--错误
1.
ALTER TABLESPACE ZYTUSER_TBS ADD DATAFILE ' +DATA'SIZE 10m AUTOEXTEND ON NEXT 10M MAXSIZE 20m;
2.
ALTER TABLESPACE ZYTUSER_TBS ADD DATAFILE 'DAT' SIZE 10m AUTOEXTEND ON NEXT 10M MAXSIZE 20m;

TABLESPACE_NAME FILE_NAME BIG FILE_ID AUT UG TG
------------------------------ -------------------------------------------------- --- ---------- --- ---------- ----------
ZYTUSER_TBS +DATA/zytrac/datafile/zytuser_tbs.289.1001722641 NO 7 NO .009765625 0
ZYTUSER_TBS +DATA/zytrac/datafile/zytuser_tbs.288.1001723845 NO 8 YES .009765625 .01953125
ZYTUSER_TBS /picclife/app/oracle/product/11.2.0/db_1/dbs/ +DA NO 9 YES .009765625 .01953125
TA

4.--alert
节点一alert正常,节点二alert报错。
SQL> select count(*) from table1;

COUNT(*)
----------
36864


SQL> select count(*) from table1;
select count(*) from table1
*
ERROR at line 1:
ORA-01157: cannot identify/lock data file 9 - see DBWR trace file
ORA-01110: data file 9: '/picclife/app/oracle/product/11.2.0/db_1/dbs/ +DATA'

5.解决方法
--mos两个
ORA-01157: cannot identify/lock data file 66 - see DBWR trace file ORA-01110: data file 66: (Doc ID 1612244.1)
How to move a datafile from a file system to ASM (Doc ID 390274.1)--Oracle Database - Enterprise Edition - Version 10.1.0.5 to 10.2.0.5.0 [Release 10.1 to 10.2]

How to Move a Datafile from Filesystem to ASM Using ASMCMD CP Command. (Doc ID 1610615.1)--Oracle Database - Enterprise Edition - Version 11.2.0.1 to 12.2.0.1 [Release 11.2 to 12.2]

NOTE: To copy datafiles from primary to standby databases on ASM it is recommended to use RMAN.
How to Copy ASM datafile From Primary Database to Standby Database on ASM using RMAN(Doc ID 605234.1)

--处理

--问题解决
--第一种方式
alter database datafile 9 offline;
RMAN> copy datafile '/picclife/app/oracle/product/11.2.0/db_1/dbs/ +DATA' to '+DATA/zytrac/datafile/zytuser_tbs.2019';
--RMAN> copy datafile '/picclife/app/oracle/product/11.2.0/db_1/dbs/ +DATA' to '+DATA';

alter database rename file '/picclife/app/oracle/product/11.2.0/db_1/dbs/ +DATA' to '+DATA/zytrac/datafile/zytuser_tbs.2019';
Database altered.
SQL> recover datafile '+DATA/zytrac/datafile/zytuser_tbs.2019';
Media recovery complete.
SQL> alter database datafile '+DATA/zytrac/datafile/zytuser_tbs.2019' online;
--alter database datafile 9 online;

--第二种方式
Doc ID 1610615.1
1) Make sure the datafile to be moved is OFFLINE
SQL> alter system switch logfile;
System altered.
SQL> select file_name, file_id from dba_data_files;

FILE_NAME FILE_ID
-------------------------------------------------- ----------
+DATA/zytrac/datafile/users.259.989696237 4
+DATA/zytrac/datafile/undotbs1.258.989696237 3
+DATA/zytrac/datafile/sysaux.257.989696237 2
+DATA/zytrac/datafile/system.256.989696237 1
+DATA/zytrac/datafile/example.267.989696347 5
+DATA/zytrac/datafile/undotbs2.268.989696591 6
+DATA/zytrac/datafile/zytuser_tbs.289.1001722641 7
+DATA/zytrac/datafile/zytuser_tbs.288.1001723845 8
+DATA/zytrac/datafile/zytuser_tbs.2019 9
/picclife/app/oracle/product/11.2.0/db_1/dbs/DATA 10
/picclife/app/oracle/product/11.2.0/db_1/dbs/DAT 11

11 rows selected.

SQL> alter database datafile 11 offline;
Database altered.
SQL> select file_name, file_id, online_status from dba_data_files where file_id=11;
FILE_NAME FILE_ID ONLINE_
-------------------------------------------------- ---------- -------
/picclife/app/oracle/product/11.2.0/db_1/dbs/ +DATA 9 RECOVER

2) Use ASMCMD to copy the file from filesystem to the diskgroup
ASMCMD> cp /picclife/app/oracle/product/11.2.0/db_1/dbs/DAT +DATA/zytrac/datafile/share1.dbf
ASMCMD> cp /picclife/app/oracle/product/11.2.0/db_1/dbs/DAT +DATA/zytrac/datafile/share1.dbf
copying /picclife/app/oracle/product/11.2.0/db_1/dbs/DAT -> +DATA/zytrac/datafile/share1.dbf
ASMCMD>
ASMCMD> ls -lt
Type Redund Striped Time Sys Name
N zytuser_tbs.2019 => +DATA/ZYTRAC/DATAFILE/ZYTUSER_TBS.276.1001727549
DATAFILE UNPROT COARSE MAR 23 13:00:00 Y ZYTUSER_TBS.289.1001722641
DATAFILE UNPROT COARSE MAR 23 13:00:00 Y ZYTUSER_TBS.288.1001723845
DATAFILE UNPROT COARSE MAR 23 13:00:00 Y ZYTUSER_TBS.276.1001727549
DATAFILE UNPROT COARSE MAR 23 13:00:00 Y USERS.259.989696237
DATAFILE UNPROT COARSE MAR 23 13:00:00 Y UNDOTBS2.268.989696591
DATAFILE UNPROT COARSE MAR 23 13:00:00 Y UNDOTBS1.258.989696237
DATAFILE UNPROT COARSE MAR 23 13:00:00 Y SYSTEM.256.989696237
DATAFILE UNPROT COARSE MAR 23 13:00:00 Y SYSAUX.257.989696237
DATAFILE UNPROT COARSE MAR 23 13:00:00 Y EXAMPLE.267.989696347
N share1.dbf => +DATA/ASM/DATAFILE/share1.dbf.297.1001729237

3. Once the file is copied, rename the datafile
SQL> alter database rename file '/picclife/app/oracle/product/11.2.0/db_1/dbs/DAT' to '+DATA/zytrac/datafile/share1.dbf';
Database altered.

4. Recover the datafile and bring it ONLINE.
SQL> alter database recover datafile 11;
Database altered.

SQL> alter database datafile 11 online;
Database altered.

5. Confirm correct name and location:
SQL> select file_name, file_id, online_status from dba_data_files where file_id=11;
FILE_NAME FILE_ID ONLINE_STATUS
---------- -------
+DATA/zytrac/datafile/share1.dbf 11 ONLINE

--总结
在主库需要将数据文件offline,否则会提示正在使用;如果备库应该不需要。

最新文章

  1. Java _Map接口的使用(转载)
  2. TCP/IP入门学习(1)---分层概述
  3. 《转》如何成为一个牛逼的C/C++程序员?
  4. Spingmvc项目注册登录图片验证码(比较灵活的验证码)
  5. H5编辑器核心算法和思想-遁地龙卷风
  6. CocosCreator游戏开发---菜鸟学习之路(一)
  7. 【移动开发】 Android隐藏输入法软键盘的一些说明
  8. jenkins-参数化构建(一)
  9. 解决ps不能直接把文件拖进去的问题
  10. windows安装mysql8
  11. 第一个SpringBoot应用
  12. Java RMI 使用例子
  13. ThreadLocal 那点事儿(续集)
  14. css特效博客
  15. apiCloud 上拉加载
  16. UOJ 117 欧拉回路(套圈法+欧拉回路路径输出+骚操作)
  17. 【IT笔试面试题整理】判断一个树是否是另一个的子树
  18. 【POJ3250】Bad Hair Day 单调栈
  19. SVN提交修改时出现:Checksum mismatch
  20. Java的框架是什么意思

热门文章

  1. java web课程设计(简单商城的前后端双系统,基于maven三模块开发)
  2. servlet初识servletConfig
  3. 10分钟学会windows中iis搭建服务器集群实现负载均衡和nginx代理转发
  4. 【SpringMVC】RESTFul简介以及案例实现
  5. 786. 第k个数
  6. 关于 antd tree 组件的推拽操作
  7. 洛谷P1083 借教室 题解
  8. Redis哨兵机制的实现及与SpringBoot的整合
  9. epoll代码框架
  10. MacOS安装和卸载Java