广告
返回顶部
首页 > 资讯 > 数据库 >数据库重命名和迁移日志文件、数据文件的方法是什么
  • 705
分享到

数据库重命名和迁移日志文件、数据文件的方法是什么

2024-04-02 19:04:59 705人浏览 独家记忆
摘要

本篇内容介绍了“数据库重命名和迁移日志文件、数据文件的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所

本篇内容介绍了“数据库重命名和迁移日志文件、数据文件的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

目的:在某些情况下,数据文件或者日志文件必须被重新命名或迁移到新的位置上,然而想要让这些文件仍然有效,那么就需要为这些文件定义一个物理的名字或者物理位置,例如,在以下情况发生时,就需要重新命名数据文件或者日志文件:

1.出于性能或者维护原因,需要将一个数据库文件移动到一个不同的磁盘上

2.从备份中恢复一个数据文件,但是这个以前存放数据文件的磁盘已经崩溃,那么就需要将这个数据文件重新分配到一个新的磁盘上

3.在操作系统级别,已经移动或者重命名一个数据文件,但是在数据库层即数据库内却没有进行重命名,在数据库启动的过程中得到 ORA-01157 和 ORA-01110 报错信息。如果数据库处于打开状态下,在操作系统级别重命名了数据文件或者移动了数据文件到其他的位置,当通过nORMal 或者 immediate 方式关闭数据库的时候,会得到 ORA-01116 和 ORA-01110 报错;

以下将通过三个方面来对本主题进行相关的讨论:

I    数据库打开的状态下,重命名或者移动数据文件

II  数据库关闭的状态下,重命名或者移动数据文件

III  重命名或者移动日志文件

【注意】

如果要重命名或者移动的数据文件是 SYSTEM 表空间中的文件,那么,必须用第 II 种方法来达到最终的目的即“数据库关闭的状态下,重命名或者移动数据文件”,因为在数据库打开的状态下,不能够让 SYSTEM 表空间出于 OFFLINE 即离线的状态;

下面分别来对不同的情景进行说明:

I    数据库打开的状态下,重命名或者移动数据文件

在数据库出于打开的状态下,可以对数据文件进行重新命名或者移动,但是,表空间必须被置于READ-ONLY状态。在 READ-ONLY 状态下,用户可以对这个表空间进行SELECT操作,但不能对表空间进行INSERTS UPDATES 和 DELETES 操作。表空间READ-ONLY状态需要的总时间,取决于数据文件的大小和将一个数据文件从一个位置拷贝到一个新位置的时间消耗

将表空间置于READ-ONLY状态,冻结文件头,从而阻止数据文件头被更新。只有在数据文件处于 READ-ONLY状态下,才有可能在数据库出于打开的状态下,对文件进行拷贝。

通过以下的步骤来达到重命名或者移动数据文件的目的,本例中,以 USERS 表空间为数据文件所在的表空间:

1. 查看 USERS表空间中有多少数据文件

sql>select file_name, status from dba_data_files where tablespace_name = 'USERS';

FILE_NAME                     STATUS

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

/u01/oradata/test/users01.dbf       AVaiLABLE

2. 确保,在返回的查询结果中,所有数据文件的状态即STATUS的值都是 AVAILABLE

3. 将 USERS表空间置为 READ ONLY状态

altertablespace users read only;

4. 确保 USERS表空间在数据字典中已经被置于 READ ONLY状态

SQL>select tablespace_name, status from dba_tablespaces where tablespace_name ='USERS';

TABLESPACE_NAME        STATUS

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

USERS                 READ ONLY

5. 使用操作系统命令,将数据文件拷贝到一个新的位置。当数据文件被拷贝到一个新的位置之后,需要做的也是最重要的就是要比较两个数据文件的大小是否一致,因为可能在复制的过程中出现数据丢失的情况

oracle> cp /u01/oradata/test/users01.dbf /jiachunyun/test/users01.dbf

注意哦:同样,可以利用上面的方法,进行数据文件的重命名,也改变数据文件的位置。(我只改变了位置/jiachunyun/test)

6. 当数据文件已经拷贝到新的位置之后,将USERS表空间置于 OFFLINE状态

altertablespace users offline;

7. 当表空间被置于 OFFLINE状态时,需要做的是在数据库层重新命名数据文件到新的位置上,这个操作会更新控制文件中的数据文件的位置信息

alter database rename file '/u01/oradata/test/users01.dbf' to '/jiachunyun/test/users01.dbf';

8. 当确认所有的 rename操作完成之后,将 USERS表空间上线即 ONLINE

alter tablespace users online;

9. 当将表空间重新置为 ONLINE状态,需要将表空间重新置为 READ WRITE即读写状态

alter tablespace users read write;

10. 检查表空间的状态是否为READ WRITE状态

SQL>select tablespace_name, status from dba_tablespaces where tablespace_name ='USERS';

TABLESPACE_NAME        STATUS

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

USERS                 ONLINE

11. 查看修改后的数据文件的位置

SQL>select file_name, status from dba_data_files where tablespace_name = 'USERS';

FILE_NAME                     STATUS

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

/jiachunyun/test/users01.dbf             AVAILABLE

13. 在操作系统级别,在原来的旧的目录中,将旧的数据文件删除

ORACLE> rm -rf /u01/oradata/test/users01.dbf

II   数据库关闭的状态下,重命名或者移动数据文件

1. 查看 USERS表空间中,数据文件的位置

SQL>select file_name,tablespace_name,file_id from dba_data_files wheretablespace_name = 'USERS';

FILE_NAME                     TABLESPACE_NAME         FILE_ID

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

/u01/oradata/users01.dbf             USERS                     4

2. 关闭数据库

shutdown immediate

3. 在操作系统级别将数据文件重命名或者移动到新的位置上,或者移动新的位置上并且重命名

ORACLE> cp /u01/oradata/test/users01.dbf /jiachunyun/test/users01.dbf     等

4. 启动数据库到 mount状态

startup mount;

【说明】:这个操作会读取控制文件,但是不会将数据文件 mount

5. 在数据库内重新命名数据文件

alter database rename file '/u01/oradata/users01.dbf' to '/jiachunyun/test/users01.dbf';

alter database rename file '/u01/oradata/sysaux01.dbf' to '/jiachunyun/test/sysaux01.dbf';

alter database rename file '/u01/oradata/undotbs01.dbf' to '/jiachunyun/test/undotbs01.dbf';

alter database rename file '/u01/oradata/users01.dbf' to '/jiachunyun/test/users01.dbf';

6. 打开数据库

alter database open;

7. 查询 v$dbfile视图,来确认修改已经成功

SQL>select name from v$datafile ;

NAME
------------------------------------------------

/jiachunyun/test/users01.dbf

/jiachunyun/test/sysaux01.dbf

/jiachunyun/test/undotbs01.dbf

/jiachunyun/test/users01.dbf

/jiachunyun/test/undotb1.dbf

8. 在操作系统级别,将旧的数据文件从旧的目录位置中删除

ORACLE>rm -rf /u01/oradata/users01.dbf          等

数据库关闭的状态下,重命名或者移动控制文件 【注意】最好分3个不同的磁盘 ,以便坏了一块磁盘

1. 查看 USERS表空间中,控制文件的位置

SQL>select name from v$controlfile;

NAME                   

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

/u01/oradata/control01.ctl

/u01/oradata/control02.ctl     

2 改变第二个控制文件路径,并且告诉spfile,(文件有几个写几个,02的原/u01/oradata/test,新/jiachunyun/test)

SQL> alter system set control_files='/u01/oradata/test/control01.ctl','/jiachunyun/test/control02.ctl' scope=spfile;

 

2. 关闭数据库

shutdown immediate

3.在操作系统级别将控制文件重命名或者移动到新的位置上,或者移动新的位置上并且重命名

ORACLE> cp /u01/oradata/test/control01.ctl /jiachunyun/test/control02.ctl             --02路径一定要对应上面的alter路径

4. 启动数据库,并验证

SQL>startup

SQL> select name from v$controlfile;

5.添加第三条控制文件03

SQL>alter system set control_file='/u01/oradata/test/control01.ctl','/jiachunyun/test/control02.ctl','/u01/oradata/test/control03.ctl' scope=spfile;

6. 关闭数据库

shutdown immediate

7.在操作系统级别将控制文件重命名或者移动到新的位置上,

ORACLE> cp /u01/oradata/test/control01.ctl /jiachunyun/test/control03.ctl       

8. 启动数据库,并验证

SQL>startup

SQL> select name from v$controlfile;

NAME
--------------------------------------------------------------------------------
/u01/oradata/test/control01.ctl
/jiachunyun/test/control02.ctl
/u01/oradata/test/control03.ctl

III  重命名或者移动日志文件

1. 关闭数据库

2. 在操作系统级别,将日志文件重命名或者移动到新的位置上,或者移动新的位置上并且重命名

ORACLE> cp /u01/oradata/test/redo01.log /jiachunyun/test/redo01.log     等

3. 将数据库启动到 mount状态

startup mount

4. 在数据库级别,重命名日志文件

alter database rename file '/u01/oradata/test/redo01.log' to'/jiachunyun/test/redo01.log';     等

5. 打开数据库

alter database open;

6. 在操作系统级别,将旧的数据文件从旧的目录位置中删除

ORACLE> rm -rf /u01/oradata/test/redo01.log

7.验证

ORACLE>select mane from v$logfile;

“数据库重命名和迁移日志文件、数据文件的方法是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

您可能感兴趣的文档:

--结束END--

本文标题: 数据库重命名和迁移日志文件、数据文件的方法是什么

本文链接: https://www.lsjlt.com/news/63072.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 数据库重命名和迁移日志文件、数据文件的方法是什么
    本篇内容介绍了“数据库重命名和迁移日志文件、数据文件的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所...
    99+
    2022-10-18
  • Sql Server 压缩数据库日志文件的方法
    Sql Server 日志 _log.ldf文件太大,数据库文件有500g,日志文件也达到了500g,占用磁盘空间过大,且可能影响程序性能,需要压缩日志文件。 压缩日志脚本里要填的名字从要压缩的数据库属性里查看 脚本文...
    99+
    2022-11-24
    SqlServer压缩数据库 SqlServer日志文件
  • exchange企业实战之邮箱数据库与日志文件迁移
    移动邮箱数据库和日志,将执行3个步骤 如果目标数据库已经装载,首先卸除邮箱数据库; ...
    99+
    2022-10-18
  • MongoDB数据库的日志文件有什么用
    这篇文章主要介绍MongoDB数据库的日志文件有什么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!日志信息的格式<日志时间> <严重级别> <信息所属...
    99+
    2022-10-18
  • centos重命名文件的方法是什么
    在CentOS中,可以使用`mv`命令来重命名文件。命令的基本语法如下:```mv [选项] 原文件名 新文件名```例如,要将文件...
    99+
    2023-09-15
    centos
  • python重命名文件的方法是什么
    这篇文章主要介绍“python重命名文件的方法是什么”,在日常操作中,相信很多人在python重命名文件的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”python重命名文件的方法是什么”的疑惑有所...
    99+
    2023-07-05
  • Oracle数据文件迁移的方法有哪些
    这篇文章主要讲解了“Oracle数据文件迁移的方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Oracle数据文件迁移的方法有哪些”吧!(一) 方法...
    99+
    2022-10-19
  • vue下载文件及文件重命名的方法是什么
    这篇文章主要介绍“vue下载文件及文件重命名的方法是什么”,在日常操作中,相信很多人在vue下载文件及文件重命名的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue下载文件及文件重命名的方法是什么...
    99+
    2023-07-04
  • 添加和删除InnoDB数据和日志文件的方法
    这篇文章主要介绍“添加和删除InnoDB数据和日志文件的方法”,在日常操作中,相信很多人在添加和删除InnoDB数据和日志文件的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解...
    99+
    2022-10-18
  • oracle12C 新特性——之在线重命名和移动数据文件
    【摘要】在12c版本之前,是不能够在线重命名和移动数据文件的。很多情况下,需要移动数据文件或重命名,那么只能停机操作了。但是到了12c,这个操作就变的非常简单了,可以在线操作,并且对应用业务没有任何影响,大...
    99+
    2022-10-18
  • 清除SQL Server数据库日志(ldf文件)的方法汇总
    目录解决方案1 - 直接删除本地ldf日志文件:(比较靠谱方案!)解决方案2 -收缩数据库日志文件(最靠谱方案!)解决方案3 - 采用SQL脚本删除。清除SQL Server数据库日志(ldf文件)的几种方法 随着系统...
    99+
    2022-10-16
  • 数据库日志文件过大清理的方法有哪些
    这篇文章主要介绍“数据库日志文件过大清理的方法有哪些”,在日常操作中,相信很多人在数据库日志文件过大清理的方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”数据库日志文...
    99+
    2022-10-18
  • 清除SQL Server数据库日志(ldf文件)的方法汇总
    目录解决方案1 - 直接删除本地ldf日志文件:(比较靠谱方案!)解决方案2 -收缩数据库日志文件(最靠谱方案!)解决方案3 - 采用SQL脚本删除。清除SQL Server数据库日...
    99+
    2022-11-13
    SQL Server数据库日志 清除SQL Server数据库日志ldf文件
  • mysql数据库迁移的方法是什么
    这篇文章主要介绍了mysql数据库迁移的方法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇mysql数据库迁移的方法是什么文章都会有所收获,下面我们一起来看看吧。简介数据...
    99+
    2023-02-15
    mysql 数据库
  • oracle数据库迁移的方法是什么
    Oracle数据库迁移的方法有以下几种:1. 物理迁移:将源数据库的数据文件、控制文件、重做日志文件等物理文件直接复制到目标数据库。...
    99+
    2023-08-21
    oracle数据库
  • python复制文件并重命名的方法是什么
    在Python中,可以使用shutil模块的copy2函数来复制文件并重命名。下面是一个示例代码:pythonimport shut...
    99+
    2023-10-18
    python
  • Linux ubantu文件重命名的有效方法是什么
    这期内容当中小编将会给大家带来有关Linux ubantu文件重命名的有效方法,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Linux ubantu文件重命名提供了一种解决批处理重名文件的方法,而且使用起...
    99+
    2023-06-16
  • Oracle数据库云迁移的方法是什么
    这篇文章主要讲解了“Oracle数据库云迁移的方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Oracle数据库云迁移的方法是什么”吧!  与其他软...
    99+
    2022-10-19
  • SQLServer数据库中怎么对文件进行批量重命名
    SQLServer数据库中怎么对文件进行批量重命名,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。  SQLServer数据库如何对文件进行...
    99+
    2022-10-18
  • Oracle数据库升级或数据迁移的方法是什么
    本篇文章给大家分享的是有关Oracle数据库升级或数据迁移的方法是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。这里论述了oracle数据库升级的升级前的准备、升级过程和升...
    99+
    2023-06-06
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作