使用dbms_file_transfer从asm中抽取文件

 

使用dbms_file_transfer从asm中抽取文件

================================

10g中可以对数据文件、控制文件、日志文件进行抽取
不能对参数文件进行抽取

抽取文件需要创建两个directory
一个位于asm、一个位于文件系统

create or replace directory arch_d as '+data2/emrep/archivelog/2011_12_19';
create or replace directory arch_dk as '/oracle/arch';


--复制文件
BEGIN
dbms_file_transfer.copy_file(source_directory_object =>'arch_d',
               source_file_name => 'thread_1_seq_23.261.770299557',
               destination_directory_object => 'arch_dk',
               destination_file_name => 'thread_1_seq_23.261.770299557');
END;
/


--获取文件
BEGIN
dbms_file_transfer.get_file(source_directory_object =>'arch_d',
               source_file_name => 'thread_1_seq_25.262.770299949',
               SOURCE_DATABASE => 'EMREP',
               destination_directory_object => 'arch_dk',
               destination_file_name => 'thread_1_seq_25.262.770299949');
END;
/


--上传文件
BEGIN
dbms_file_transfer.put_file(source_directory_object =>'arch_dk',
               source_file_name => 'thread_1_seq_24.260.770299871',
               destination_directory_object => 'arch_d',
               destination_file_name => 'thread_1_seq_24.260.770299871',
               SOURCE_DATABASE => 'EMREP');
END;
/


---------------------

问题

使用dbms_file_transfer对asm中文件进行传输后在asmcmd中删除文件就会报错

ASMCMD [+data2/emrep/archivelog/2011_12_19] > rm -f thread_1_seq_24.260.770299871
ORA-15032: not all alterations performed
ORA-15028: ASM file '+data2/emrep/archivelog/2011_12_19/thread_1_seq_24.260.770299871' not dropped; currently being accessed (DBD ERROR: OCIStmtExecute)
ASMCMD [+data2/emrep/archivelog/2011_12_19] > asmcmd: caught the interrupt signal; exiting

 

处理:
重启下数据库,可能是bug


 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/13177610/viewspace-713552/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/13177610/viewspace-713552/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`CREATE_FILE_SET` 是 `DBMS_BACKUP_RESTORE` 包的一个存储过程,它用于创建备份文件集,备份文件集是一个包含了备份和恢复所需的文件信息的数据结构。在调用其他备份和恢复存储过程之前,需要先创建备份文件集。 `CREATE_FILE_SET` 存储过程的语法如下: ```sql DBMS_BACKUP_RESTORE.CREATE_FILE_SET ( file_set_name IN VARCHAR2, backup_type IN BINARY_INTEGER, backupset_key IN VARCHAR2 DEFAULT NULL, backupset_stamp IN VARCHAR2 DEFAULT NULL, tag IN VARCHAR2 DEFAULT NULL, backup_format IN VARCHAR2 DEFAULT NULL, compress IN BINARY_INTEGER DEFAULT 0, encryption IN BINARY_INTEGER DEFAULT 0, description IN VARCHAR2 DEFAULT NULL); ``` 其,参数的含义如下: - `file_set_name`:备份文件集的名称。 - `backup_type`:备份类型,可以是 `DB_FULL`、`DB_INCR` 或 `DB_COLD`。 - `backupset_key`:备份集的关键字。 - `backupset_stamp`:备份集的时间戳。 - `tag`:备份集的标签。 - `backup_format`:备份文件格式,可以是 `BACKUPSET` 或 `IMAGE COPY`。 - `compress`:备份是否启用压缩,可以是 `0`(不启用)或 `1`(启用)。 - `encryption`:备份是否启用加密,可以是 `0`(不启用)或 `1`(启用)。 - `description`:备份文件集的描述信息。 `CREATE_FILE_SET` 存储过程会创建一个包含备份文件集信息的控制文件,并将其保存在 `$ORACLE_HOME/dbs` 目录下。在创建备份文件集之后,可以使用 `DBMS_BACKUP_RESTORE.ADD_FILE_TO_FILE_SET` 存储过程向备份文件添加数据文件、控制文件、日志文件等备份所需的文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值