zoukankan      html  css  js  c++  java
  • 【实验】修改数据文件名字的三种途径

    【问题现象】
    在给表空间添加文件后,发现数据文件的添加的位置或名字不规范,需要规范性的更正
    如下述场景:
    sys@ora10g> col tablespace_name for a15
    sys@ora10g> col file_name for a50
    sys@ora10g> select tablespace_name,file_name from dba_data_files where tablespace_name = 'TBS_SEC_D';

    TABLESPACE_NAME FILE_NAME
    --------------- --------------------------------------
    TBS_SEC_D       /oracle/oradata/ora10g/tbs_sec_d01dbf

    细心地您应该看到这个数据文件名字应该为tbs_sec_d01.dbf,这里少了一个点。(另外一种场景是错误的将数据文件添加到了不正确的路径中需要修改)
    这种错误也许您也会遇到。
    首先声明一下:如果保持这个错误名字不变,不会影响到数据库的正常运行,但为了防止在维护过程中产生不必要的干扰,还是应该将其更正的。

    【处理方法1】OFFLINE数据文件 --> 修改操作系统上的文件名 --> 修改数据库中的文件名 --> 对数据文件进行恢复 --> ONLINE数据文件
    特别强调:需要归档模式!因为需要对数据文件进行恢复

    1.OFFLINE数据文件
    sys@ora10g> alter database datafile '/oracle/oradata/ora10g/tbs_sec_d01dbf' offline;

    Database altered.

    2.修改操作系统上的文件名
    ora10g@testdb /oracle/oradata/ora10g$ mv tbs_sec_d01dbf tbs_sec_d01.dbf

    3.修改数据库中的文件名
    sys@ora10g> alter database rename file '/oracle/oradata/ora10g/tbs_sec_d01dbf' to '/oracle/oradata/ora10g/tbs_sec_d01.dbf';

    Database altered.

    4.对数据文件进行恢复
    sys@ora10g> recover datafile '/oracle/oradata/ora10g/tbs_sec_d01.dbf';
    Media recovery complete.

    5.ONLINE数据文件
    alter database datafile '/oracle/oradata/ora10g/tbs_sec_d01.dbf' online;

    6.确认修改成功
    sys@ora10g> select tablespace_name,file_name from dba_data_files where tablespace_name = 'TBS_SEC_D';

    TABLESPACE_NAME FILE_NAME
    --------------- ---------------------------------------
    TBS_SEC_D       /oracle/oradata/ora10g/tbs_sec_d01.dbf

    【处理方法2】OFFLINE表空间 --> 修改操作系统上的文件名 --> 修改数据库中的文件名 --> ONLINE表空间
    1.OFFLINE表空间
    sys@ora10g> alter tablespace tbs_sec_d offline;

    Tablespace altered.

    2.修改操作系统上的文件名
    ora10g@testdb /oracle/oradata/ora10g$ mv tbs_sec_d01dbf tbs_sec_d01.dbf

    3.修改数据库中的文件名
    sys@ora10g> alter database rename file '/oracle/oradata/ora10g/tbs_sec_d01dbf' to '/oracle/oradata/ora10g/tbs_sec_d01.dbf';

    Database altered.

    4.ONLINE表空间
    sys@ora10g> alter tablespace tbs_sec_d online;

    Tablespace altered.

    5.确认修改成功
    sys@ora10g> select tablespace_name,file_name from dba_data_files where tablespace_name = 'TBS_SEC_D';

    TABLESPACE_NAME FILE_NAME
    --------------- ---------------------------------------
    TBS_SEC_D       /oracle/oradata/ora10g/tbs_sec_d01.dbf

    【处理方法3】SHUTDOWN数据库 --> 修改操作系统上的文件名 --> 数据库启动到MOUNT --> 修改数据库中的文件名 --> OPEN数据库
    1.SHUTDOWN数据库
    sys@ora10g> shutdown immediate;
    Database closed.
    Database dismounted.
    ORACLE instance shut down.

    2.修改操作系统上的文件名
    ora10g@testdb /oracle/oradata/ora10g$ mv tbs_sec_d01dbf tbs_sec_d01.dbf

    3.数据库启动到MOUNT
    NotConnected@> startup mount;
    ORACLE instance started.

    Total System Global Area  562036736 bytes
    Fixed Size                  2022312 bytes
    Variable Size             171967576 bytes
    Database Buffers          381681664 bytes
    Redo Buffers                6365184 bytes
    Database mounted.

    4.修改数据库中的文件名
    NotConnected@> alter database rename file '/oracle/oradata/ora10g/tbs_sec_d01dbf' to '/oracle/oradata/ora10g/tbs_sec_d01.dbf';

    Database altered.

    5.OPEN数据库
    NotConnected@> alter database open;

    Database altered.

    6.确认修改成功
    sys@ora10g> select tablespace_name,file_name from dba_data_files where tablespace_name = 'TBS_SEC_D';

    TABLESPACE_NAME FILE_NAME
    --------------- ---------------------------------------
    TBS_SEC_D       /oracle/oradata/ora10g/tbs_sec_d01.dbf

    【总结】
    以上三个实验是按照对数据库运行影响加深的顺序进行的。很显然,需要停起数据库对数据库的可用性影响是最大的,单独对特定数据文件进行修改的影响最小,对表空间offline的方法影响介于其之间。

  • 相关阅读:
    cs ip 通过jmp转移命令间接赋值。无法直接对其赋值。
    8086 cpu为什么要把段地址*16+偏移量形成物理地址呢?
    保护模式和实模式的区别
    计算机的内存是以字节为单位的, 这个认知很重要。
    计算机的内存是以字节为单位的。
    一个字 word 是16位, 一个字由两个字节组成 , 字节=byte ,一个字节8位, 位=bit 如果没有特殊说明kb 就是指 k*bit
    物理地址为20位 如10000H 用段地址*16+偏移地址表示
    深入学习Java线程池
    在线考试系统镜像构建、推送、部署
    容器 变成镜像提交到阿里云镜像仓库
  • 原文地址:https://www.cnblogs.com/einyboy/p/2608759.html
Copyright © 2011-2022 走看看