gpt4 book ai didi

oracle - 使用 SQLPLUS oracle 创建控制文件

转载 作者:行者123 更新时间:2023-12-04 03:09:09 24 4
gpt4 key购买 nike

我需要有关使用 sqlplus 创建控制文件的帮助。我已经使用了后续步骤,我更改了 spfile,关闭数据库,启动 nomount,使用下一个命令创建控制文件但它失败了:

create controlfile
set database orcl
logfile controlnew1
('\oracle\oradata\orcl\controlnew1.log’,
'\oracle\oradata\orcl\controlnew1.log’)
resetlogs;

我的规范是在位置 CONTROL01 中创建 2 个名为 contronew1 和 controlnew2 的新控制文件。我在 oracle 文档中找到了相关文章,但我不明白。如果您能帮助解决这个问题,我将不胜感激。

最佳答案

这可能应该在 DBA 堆栈交换中进行,但我不确定如何实现。

我建议阅读有关 Creating Control Files 的 Oracle 12c 文档

如果您正在创建控制文件,我认为这意味着您没有要复制的现有控制文件。复制一个控制文件比创建一个新的控制文件要简单得多,而且是首选。如果控制文件的所有现有副本都消失了,或者您正在修改控制文件配置或数据库名称,那么您应该只创建一个新的控制文件。

如果你有一个现有的控制文件来复制它,你可以:

  • 关闭数据库。
  • 使用操作系统命令将现有控制文件复制到新位置。
  • 编辑数据库初始化参数文件中的CONTROL_FILES参数以添加新的控制文件名,或更改现有的控制文件名。
  • 重启数据库。

如果您有一个现有的控制文件,您可以将它写出到 sqlplus 的跟踪文件中(应该转到 diagnostic_dest)。这对于创建或复制控制文件不是必需的,但会有所帮助。

ALTER DATABASE BACKUP CONTROLFILE TO TRACE;

如果您无法复制现有的控制文件并需要创建一个新的控制文件,这里有一些关于您的 CREATE CONTROLFILE 命令的注意事项

  • logfile 子句用于指定 REDO 日志,而不是新的控制文件。
  • 您在日志文件 controlnew1 中有相同的文件名
  • 您没有任何数据文件

下面是 oracle 的 CREATE CONTROLFILE 示例。创建新控制文件的第一步是列出数据库的所有数据文件和重做日志文件。重做日志文件将放在 LOGFILE 部分,数据文件将放在 DATAFILE 部分。

CREATE CONTROLFILE
SET DATABASE orcl
LOGFILE GROUP 1 ('/u01/oracle/prod/redo01_01.log',
'/u01/oracle/prod/redo01_02.log'),
GROUP 2 ('/u01/oracle/prod/redo02_01.log',
'/u01/oracle/prod/redo02_02.log')
RESETLOGS
DATAFILE '/u01/oracle/prod/system01.dbf' SIZE 3M,
'/u01/oracle/prod/rbs01.dbs' SIZE 5M,
'/u01/oracle/prod/users01.dbs' SIZE 5M,
'/u01/oracle/prod/temp01.dbs' SIZE 5M
MAXLOGFILES 50
MAXLOGMEMBERS 3
MAXLOGHISTORY 400
MAXDATAFILES 200
MAXINSTANCES 6
ARCHIVELOG;

创建文件后,您需要编辑 CONTROL_FILES 初始参数并打开数据库。根据数据库的状态,您可能需要在打开它之前进行额外的恢复,并且可能需要使用

ALTER DATABASE OPEN RESETLOGS;

如果您的控制文件使用了 RESETLOGS。

关于oracle - 使用 SQLPLUS oracle 创建控制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46677950/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com