重命名数据库表空间和数据文件

来源:互联网 发布:烟袋斜街10号网络剧3集 编辑:程序博客网 时间:2024/06/05 19:00
一、重命名数据库表空间名
使用alter tablespace… rename to命令,可以重命名一个永久或者临时表空间。例如,下面重命名users表空间:
Alter tablespace tbs_name rename to new_tbs_name;
当你重命名一个表空间时,数据库将会更新与该表空间相关的在数据字典、控制文件和联机数据文件头中相关信息。数据库不会修改该表空间的id,所以当重命名一个表空间时,将其作为默认表空间的用户将自动修改过来,可以通过dba_users视图来查看。以下一些情况需要注意:
1. Compatible参数必须为10.0或以上。即表明10g以上才支持表空间重命名。
2. System和sysaux表空间不能重命名。
3. 如果该表空间中有任何一个数据文件处于脱机状态或者表空间处于脱机状态,则不能进行重命名。
4. 如果表空间为只读,则数据文件头不能更新。这不能被认为是corruption。代替之,它将向警告日志写一些信息,表明数据文件头不能重命名。数据字典和控制文件是可以更新的。
5. 如果该表空间是默认临时表空间,则关于数据库特性表被更新,可以通过database_properties视图可以查看。
6. 如果表空间为undo表空间,并且满足以下条件,则表空间名称被更新到spfile文件中。
    数据库用spfile来启动数据库。
    反应给所有指定的实例。
    如果使用pfile启动数据库,则会向警告日志写一条信息,声明初始化参数必须手工修改。
二、重命名数据库表空间文件名
过程步骤:OFFLINE表空间 --> 修改操作系统上的文件名 --> 修改数据库中的文件名 --> ONLINE表空间
重点提示:数据库必须运行在归档模式下,因为要进行介质恢复
1.OFFLINE表空间
    SQL> alter tablespace tbs_test_a offline;
    Tablespace altered.
2.使用操作系统命令复制表空间文件
    SQL>Host copy
    F:\DISK1\ORATABLESPACE\tbs_test_a_01.DBF 
    F:\DISK1\ORATABLESPACE\tbs_test_a_02.DBF;
3.修改数据库中的文件名
    SQL> ALTER DATABASE RENAME FILE 
    ‘F:\DISK1\ORATABLESPACE \tbs_test_a_01' TO
    ‘F:\DISK1\ORATABLESPACE\tbs_test_a_02.DBF'
    Database altered.
4.执行命令,完成介质恢复
    SQL> recover datafile 'F:\DISK1\ORATABLESPACE\ tbs_test_a_02.DBF';
    完成介质恢复。
5.ONLINE表空间
    SQL> alter tablespace tbs_test_a online;
    Tablespace altered.
6.确认修改成功
   SQL> select tablespace_name,file_name from dba_data_files where tablespace_name = 'tbs_test_a ';
   TABLESPACE_NAME FILE_NAME
   --------------- ---------------------------------------
   TBS_TEST_A       F:\DISK1\ORATABLESPACE\ tbs_test_a_02.DBF
原创粉丝点击