如何rename datafile name中存在乱码的数据文件
2013-03-19 00:48
323 查看
存在这样的情况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这样必须输入员文件名。
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这样必须输入员文件名。
相关文章推荐
- 如何rename datafile name中存在乱码的数据文件
- 如何rename datafile name中存在乱码的数据文件
- 如何rename datafile name中存在乱码的数据文件
- Exporting Mailbox Data to a PST File in Exchange 2007 SP1(如何导出邮箱数据为PST文件)
- 如何缩小或者扩大数据文件 How to Resize a Datafile (Doc ID 1029252.6)
- Oracle 数据文件(Datafile ) 大小 限制 说明
- 使用innodb_data_file_path修改数据文件位置,发生The server quit without updating PID file错误的解决原因及方法。
- Oracle 数据文件(Datafile ) 大小 限制 说明
- 当获取相似数据时,使用不同方法调用不同sp,但是使用同一个方法去用IIDataReader或者SqlDataReader读取数据时需要判断column name是否存在。
- 如果你的数据库文件只剩下数据文件没有日志文件时,如何附加 (摘自:http://www.cnblogs.com/yukaizhao/archive/2008/07/23/sp_attach_single_file_db.html)
- 如何在非root手机中查询/data/data/[app name]中的文件
- Oracle 数据文件(Datafile ) 大小 限制 说明
- 下载apk文件在/data/data/packagename/目录下,如何安装成功
- 如何解决ASP.NET下载时的中文文件名乱码,与TXT文件中存在代码两个问题
- 解决办法:异地冷恢复时 如果发现v$datafile里的有些用户用的数据文件没有备份
- 使用create datafile... as ...迁移数据文件到裸设备
- python:如何将txt文件中的数值数据读入到list中,且在list中存在的格式为float类型或者其他数值类型
- 使用alter tablespace create datafile恢复丢失的数据文件
- oracle数据库之删除数据文件[物理地删除一个数据文件但它的信息仍然记录在数据字典v$datafile中]
- 下载apk文件在/data/data/packagename/files/目录下,如何安装成功