0
点赞
收藏
分享

微信扫一扫

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

Python百事通 2022-07-12 阅读 62

实验目标:实现磁盘组中的数据文件批量复制到本地磁盘.

实际操作如下:

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 rows selected.

如下单个文件复制.

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

上述复制命令的成功执行,需要将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@dbserver home]# pwd

/home

[root@dbserver home]# chmod g+x oracle

[root@dbserver home]# ll

total 8

drwx------.  7 grid   oinstall  221 Jul  4 10:15 grid

drwx--x---. 22 oracle oinstall 4096 Jul  4 10:16 oracle

组权限只有“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_64 Error: 13: Permission denied

Additional information: 9

ORA-15120: ASM file name '/home/oracle/apnurrec.dbf' does not begin with the ASM prefix character

ORA-06512: at "SYS.X$DBMS_DISKGROUP", line 617

ORA-06512: at line 3 (DBD ERROR: OCIStmtExecute)

用户权限:

[root@dbserver home]# pwd

/home

[root@dbserver home]# ll

total 8

drwx------.  7 grid   oinstall  221 Jul  4 10:15 grid

drwx-w----. 22 oracle oinstall 4096 Jul  6 13:03 oracle

组权限同时拥有“wx”时,复制无异常

ASMCMD> cp +DATA/ORCLCDB/DATAFILE/apnurrec.dbf /home/oracle/apnurrec.dbf

copying +DATA/ORCLCDB/DATAFILE/apnurrec.dbf -> /home/oracle/apnurrec.dbf

用户权限:

[root@dbserver home]# pwd

/home

[root@dbserver home]# ll

total 8

drwx------.  7 grid   oinstall  221 Jul  4 10:15 grid

drwx-wx---. 22 oracle oinstall 4096 Jul  6 13:03 oracle

举报

相关推荐

0 条评论