重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1693|回复: 2
打印 上一主题 下一主题

[Oracle] 磁盘组中的数据文件批量复制到本地磁盘

[复制链接]
跳转到指定楼层
楼主
发表于 2022-7-6 09:58:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
实验目标:实现磁盘组中的数据文件批量复制到本地磁盘.
实际操作如下:
SQL>select name from v$datafile;
NAME
--------------------------------------------------------------------------------
+DATA/ORCLCDB/DATAFILE/system.257.1082993319
+DATA/ORCLCDB/DATAFILE/sysaux.258.1082993363
+DATA/ORCLCDB/DATAFILE/undotbs1.259.1082993389
+DATA/ORCLCDB/86B637B62FE07A65E053F706E80A27CA/DATAFILE/system.270.1082993933
+DATA/ORCLCDB/86B637B62FE07A65E053F706E80A27CA/DATAFILE/sysaux.271.1082993933
+DATA/ORCLCDB/DATAFILE/users.260.1082993391
+DATA/ORCLCDB/86B637B62FE07A65E053F706E80A27CA/DATAFILE/undotbs1.272.1082993933
+DATA/ORCLCDB/CBB47E352F7AAEA7E0537885A8C03007/DATAFILE/system.276.1082994661
+DATA/ORCLCDB/CBB47E352F7AAEA7E0537885A8C03007/DATAFILE/sysaux.277.1082994661
+DATA/ORCLCDB/CBB47E352F7AAEA7E0537885A8C03007/DATAFILE/undotbs1.275.1082994661
+DATA/ORCLCDB/CBB47E352F7AAEA7E0537885A8C03007/DATAFILE/users.279.1082994667
NAME
--------------------------------------------------------------------------------
/home/oracle/tsp_idx01.dbf
/home/oracle/tsp_item01.dbf
+DATA/ORCLCDB/CBB47E352F7AAEA7E0537885A8C03007/DATAFILE/tsp_test01.dbf
+DATA/ORCLCDB/DATAFILE/tsp_treate.dbf
+DATA/ORCLCDB/DATAFILE/apnurrec.dbf
+DATA/ORCLCDB/DATAFILE/apnurrec01.dbf
+DATA/ORCLCDB/DATAFILE/apnurrec02.dbf
+DATA/ORCLCDB/DATAFILE/apnurrec03.dbf
+DATA/ORCLCDB/DATAFILE/apnurrec04.dbf
20 rowsselected.
如下单个文件复制.
SQL>cp +DATA/ORCLCDB/DATAFILE/system.257.1082993319/home/oracle/system.257.1082993319
如果数据文件很多,就需要批量生成复制语句,既提高效率同时也减少误操作.
使用如下语句生成:
SQL>  select 'cp ' ||name || ' /home/oracle/' ||substr(name,instr(name,'/',-1)+1)
       from v$datafile
'CP'||NAME||'/HOME/ORACLE/'||SUBSTR(NAME,INSTR(NAME,'/',-1)+1)
------------------------------------------------------------------------------------------------------------------------------------
cp+DATA/ORCLCDB/DATAFILE/system.257.1082993319 /home/oracle/system.257.1082993319
cp+DATA/ORCLCDB/DATAFILE/sysaux.258.1082993363 /home/oracle/sysaux.258.1082993363
cp+DATA/ORCLCDB/DATAFILE/undotbs1.259.1082993389/home/oracle/undotbs1.259.1082993389
cp+DATA/ORCLCDB/86B637B62FE07A65E053F706E80A27CA/DATAFILE/system.270.1082993933/home/oracle/system.270.1082993933
cp+DATA/ORCLCDB/86B637B62FE07A65E053F706E80A27CA/DATAFILE/sysaux.271.1082993933/home/oracle/sysaux.271.1082993933
cp+DATA/ORCLCDB/DATAFILE/users.260.1082993391 /home/oracle/users.260.1082993391
cp+DATA/ORCLCDB/86B637B62FE07A65E053F706E80A27CA/DATAFILE/undotbs1.272.1082993933/home/oracle/undotbs1.272.1082993933
cp+DATA/ORCLCDB/CBB47E352F7AAEA7E0537885A8C03007/DATAFILE/system.276.1082994661/home/oracle/system.276.1082994661
cp+DATA/ORCLCDB/CBB47E352F7AAEA7E0537885A8C03007/DATAFILE/sysaux.277.1082994661/home/oracle/sysaux.277.1082994661
cp+DATA/ORCLCDB/CBB47E352F7AAEA7E0537885A8C03007/DATAFILE/undotbs1.275.1082994661/home/oracle/undotbs1.275.1082994661
cp+DATA/ORCLCDB/CBB47E352F7AAEA7E0537885A8C03007/DATAFILE/users.279.1082994667/home/oracle/users.279.1082994667
'CP'||NAME||'/HOME/ORACLE/'||SUBSTR(NAME,INSTR(NAME,'/',-1)+1)
------------------------------------------------------------------------------------------------------------------------------------
cp/home/oracle/tsp_idx01.dbf /home/oracle/tsp_idx01.dbf
cp/home/oracle/tsp_item01.dbf /home/oracle/tsp_item01.dbf
cp+DATA/ORCLCDB/CBB47E352F7AAEA7E0537885A8C03007/DATAFILE/tsp_test01.dbf/home/oracle/tsp_test01.dbf
cp+DATA/ORCLCDB/DATAFILE/tsp_treate.dbf /home/oracle/tsp_treate.dbf
cp+DATA/ORCLCDB/DATAFILE/apnurrec.dbf /home/oracle/apnurrec.dbf
cp+DATA/ORCLCDB/DATAFILE/apnurrec01.dbf /home/oracle/apnurrec01.dbf
cp+DATA/ORCLCDB/DATAFILE/apnurrec02.dbf /home/oracle/apnurrec02.dbf
cp+DATA/ORCLCDB/DATAFILE/apnurrec03.dbf /home/oracle/apnurrec03.dbf
cp+DATA/ORCLCDB/DATAFILE/apnurrec04.dbf /home/oracle/apnurrec04.dbf

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

沙发
发表于 2022-7-6 11:54:06 | 只看该作者
本帖最后由 郑全 于 2022-7-6 11:56 编辑

这个脚本是哪个用户去执行,如果是ORACLE用户去执行?能成功执行吗?能否把执行脚本的过程发出来看看
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2022-7-6 13:21:18 | 只看该作者
本帖最后由 denglj 于 2022-7-6 14:03 编辑
郑全 发表于 2022-7-6 11:54
这个脚本是哪个用户去执行,如果是ORACLE用户去执行?能成功执行吗?能否把执行脚本的过程发出来看看

上述复制脚本需由grid用户进入asmcmd命令窗口执行,同时需要在系统层面将oracle用户home目录的组权限添加上“wx”权限.
当组权限只有“x”时,复制报错
ASMCMD>cp +DATA/ORCLCDB/DATAFILE/tsp_treate.dbf /home/oracle/tsp_treate.dbf
ASMCMD-9463:operation failed due to lack of write permissions
权限查看:
[root@dbserverhome]# pwd
/home
[root@dbserverhome]# chmod g+x oracle
[root@dbserverhome]# ll
total 8
drwx------.  7 grid  oinstall  221 Jul  4 10:15 grid
drwx--x---.22 oracle oinstall 4096 Jul  4 10:16oracle
当组权限只有“w”时,复制报错
ASMCMD>cp +DATA/ORCLCDB/DATAFILE/apnurrec.dbf /home/oracle/apnurrec.dbf
copying+DATA/ORCLCDB/DATAFILE/apnurrec.dbf -> /home/oracle/apnurrec.dbf
ASMCMD-8016:copy source '+DATA/ORCLCDB/DATAFILE/apnurrec.dbf' and target'/home/oracle/apnurrec.dbf' failed
ORA-19505:failed to identify file "/home/oracle/apnurrec.dbf"
ORA-27037:unable to obtain file status
Linux-x86_64Error: 13: Permission denied
Additionalinformation: 9
ORA-15120:ASM file name '/home/oracle/apnurrec.dbf' does not begin with the ASM prefixcharacter
ORA-06512:at "SYS.X$DBMS_DISKGROUP", line 617
ORA-06512:at line 3 (DBD ERROR: OCIStmtExecute)
权限查看:
[root@dbserverhome]# pwd
/home
[root@dbserverhome]# ll
total 8
drwx------.  7 grid  oinstall  221 Jul  4 10:15 grid
drwx-w----.22 oracle oinstall 4096 Jul  6 13:03oracle
组权限同时拥有“wx”时,复制无异常
ASMCMD>cp +DATA/ORCLCDB/DATAFILE/apnurrec.dbf /home/oracle/apnurrec.dbf
copying+DATA/ORCLCDB/DATAFILE/apnurrec.dbf -> /home/oracle/apnurrec.dbf
权限查看:
[root@dbserverhome]# pwd
/home
[root@dbserverhome]# ll
total 8
drwx------.  7 grid  oinstall  221 Jul  4 10:15 grid
drwx-wx---. 22 oracleoinstall 4096 Jul  6 13:03 oracle

以下oracle、grid用户的信息,可以看到oracle、grid同属ointall组.
[root@dbserver ~]# id oracle
uid=1001(oracle) gid=1006(oinstall) groups=1006(oinstall),1003(asmdba),1004(dba),1005(oper),1007(backupdba),1008(dgdba),1009(kmdba),1010(racdba)
[root@dbserver ~]# id grid
uid=1002(grid) gid=1006(oinstall) groups=1006(oinstall),1001(asmadmin),1002(asmoper),1003(asmdba),1004(dba),1010(racdba)
说明:通常情况因为权限问题,我们采用的是复制到/home/grid目录.



回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2024-6-20 19:52 , Processed in 0.090288 second(s), 20 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表