如何rename datafile name中存在乱码的数据文件
2011-11-25 20:48
411 查看
存在这样的情况create tablespace.. datafile or alter tablespace add datafile时加入数据文件的datafile name中存在乱码,例如以下例子:
以上直接rename存在乱码的数据文件可能遇到ORA-01516错误,对于这种由于存在乱码导致的数据文件管理问题,可以参考以下几种方案:
方法1. 通过alter database backup controlfile to trace; 修改backup controlfile to trace生成的CREATE CONTROLFILE脚本,把存在乱码的数据文件名修改为目标文件名; 这种方法稍微费力一点.............
方法2.
通过以下动态SQL执行alter database rename来修改数据文件名:
这种方法通过动态SQL不涉及到乱码的输出和装换所以可以成功。请注意ONLINE 该数据文件!!
方法3.
直接使用RMAN COPY+ SWITCH DATAFILE TO COPY或者SETNAME都可以代劳帮助你解决该问题,因为RMAN可以直接使用FILE#指代而不需要如ALTER DATABASE RENAME FILE这样必须输入员文件名。本文出自 “Ask Maclean Liu Oracle” 博客,请务必保留此出处http://maclean.blog.51cto.com/2923249/1278181
SQL> select file#,name from v$datafile where file#=20; FILE# NAME ---------- -------------------------------------------------- 20 /s01/锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟dbf SQL> alter database rename file '/s01/锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟dbf' to '/s01/rename.dbf'; alter database rename file '/s01/锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟dbf' to '/s01/rename.dbf' * ERROR at line 1: ORA-01511: error in renaming log/data files ORA-01516: nonexistent log file, datafile, or tempfile "/s01/锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟dbf"
以上直接rename存在乱码的数据文件可能遇到ORA-01516错误,对于这种由于存在乱码导致的数据文件管理问题,可以参考以下几种方案:
方法1. 通过alter database backup controlfile to trace; 修改backup controlfile to trace生成的CREATE CONTROLFILE脚本,把存在乱码的数据文件名修改为目标文件名; 这种方法稍微费力一点.............
方法2.
通过以下动态SQL执行alter database rename来修改数据文件名:
declare x varchar2(600); y varchar2(600); begin y:='/s01/rename.dbf'; select file_name into x from dba_data_files where file_id=20; execute immediate 'alter database rename file '''||x||''' to '''||y||''''; end; / PL/SQL procedure successfully completed. SQL> select name,file# from v$datafile where file#=20; NAME -------------------------------------------------------------------------------- FILE# ---------- /s01/rename.dbf 20
这种方法通过动态SQL不涉及到乱码的输出和装换所以可以成功。请注意ONLINE 该数据文件!!
方法3.
RMAN> copy datafile 20 to '/s01/rename1.dbf'; RMAN> switch datafile 20 to copy 2> ; datafile 20 switched to datafile copy "/s01/rename1.dbf" RMAN> recover datafile 20; RMAN> sql ' alter database datafile 20 online'; sql statement: alter database datafile 20 online
直接使用RMAN COPY+ SWITCH DATAFILE TO COPY或者SETNAME都可以代劳帮助你解决该问题,因为RMAN可以直接使用FILE#指代而不需要如ALTER DATABASE RENAME FILE这样必须输入员文件名。本文出自 “Ask Maclean Liu Oracle” 博客,请务必保留此出处http://maclean.blog.51cto.com/2923249/1278181
相关文章推荐
- 如何rename datafile name中存在乱码的数据文件
- 如何rename datafile name中存在乱码的数据文件
- 如何rename datafile name中存在乱码的数据文件
- 如何缩小或者扩大数据文件 How to Resize a Datafile (Doc ID 1029252.6)
- Exporting Mailbox Data to a PST File in Exchange 2007 SP1(如何导出邮箱数据为PST文件)
- Oracle 数据文件(Datafile ) 大小 限制 说明
- 利用c++Test生成构建数据文件 ("build data file"),bdf文件
- dg备库数据文件路径与db_file_name_convert设置不一致
- 把音频数据保存 wav文件, save audio data to wav file
- 如何让Log4net日志文件按每月归成一个文件夹,StaticLogFileName参数的用法
- ajax请求的数据存在中文乱码,如何设定编码格式
- Resize Datafile时ORA-03297: 文件包含在请求的 RESIZE 值以外使用的数据
- Oracle 数据文件(Datafile ) 大小 限制 说明
- 存在datafile offline,如何进行异机恢复?
- RMAN实战8:控制文件和数据文件SCN、v$datafile_header视图用途
- ORA-01111: name for data file 119 is unknown - rename to correct file
- 使用alter database create datafile恢复丢失数据文件
- Oracle 数据文件(Datafile ) 大小 限制 说明
- ORA-01110 ORA-01111: name for data file 69 is unknown - rename to correct file
- 存在datafile offline,如何进行异机恢复?