zoukankan      html  css  js  c++  java
  • 创建重做日志组和成员

    规划数据库的重做日志,并在数据库创建期间创建所有必需的组和重做日志文件的成员。但是,您可能希望创建其他组或成员。例如,将组添加到重做日志可以纠正重做日志组可用性问题。

    要创建新的重做日志组和成员,您必须具有ALTER DATABASE系统特权。数据库最多可包含MAXLOGFILES组。

    有关ALTER DATABASE语句的完整说明,请参见Oracle数据库SQL语言参考

    创建重做日志组

    要创建一组新的重做日志文件,请使用带有ADD LOGFILE子句的SQL语句ALTER DATABASE。

    以下语句将一组新的重做日志添加到数据库:

    ALTER DATABASE
      ADD LOGFILE ('/oracle/dbs/log1c.rdo', '/oracle/dbs/log2c.rdo') SIZE 100M;

    提供新日志成员的完整路径名以指定其位置。否则,将在数据库服务器的缺省目录或当前目录中创建文件,具体取决于您的操作系统。

    您还可以使用GROUP子句指定标识组的编号:

    ALTER DATABASE 
      ADD LOGFILE GROUP 10 ('/oracle/dbs/log1c.rdo', '/oracle/dbs/log2c.rdo')
          SIZE 100M BLOCKSIZE 512;

    使用组号可以更轻松地管理重做日志组。但是,组编号必须介于1和MAXLOGFILES之间。不要跳过重做日志文件组编号(即,不要对组10,20,30等编号),否则将占用数据库控制文件中不必要的空间。

    在前面的语句中,BLOCKSIZE子句是可选的。有关详细信息,请参阅“规划重做日志文件的块大小”。

    创建重做日志成员

    在某些情况下,可能没有必要创建一组完整的重做日志文件。组可能已存在,但由于组中的一个或多个成员被删除(例如,由于磁盘故障),因此不完整。在这种情况下,您可以将新成员添加到现有组。

    要为现有组创建新的重做日志成员,请使用带有ADD LOGFILE MEMBER子句的SQL语句ALTER DATABASE。以下语句将新的重做日志成员添加到重做日志组编号2:

    ALTER DATABASE ADD LOGFILE MEMBER '/oracle/dbs/log2b.rdo' TO GROUP 2;

    请注意,必须指定文件名,但不能指定大小。新成员的大小由该组现有成员的大小确定。

    使用ALTER DATABASE语句时,您也可以通过在TO子句中指定组的所有其他成员来标识目标组,如以下示例所示:

    ALTER DATABASE ADD LOGFILE MEMBER '/oracle/dbs/log2c.rdo'
        TO ('/oracle/dbs/log2a.rdo', '/oracle/dbs/log2b.rdo'); 

    完全指定新日志成员的文件名,以指示应在何处创建操作系统文件。否则,将在数据库服务器的默认目录或当前目录中创建文件,具体取决于您的操作系统。您还可能注意到新日志成员的状态显示为INVALID。这是正常现象,在首次使用时会变为活动状态(空白)。

    参考资料

    https://docs.oracle.com/cd/E11882_01/server.112/e25494/onlineredo.htm#ADMIN11319

  • 相关阅读:
    [OpenCV] Ptr类模板
    [OpenCV]Mat类详解
    [C++] Vector用法
    [OpeCV] highgui头文件
    c++中的.hpp文件
    【2017】KK English
    CMake Tutorial & Example
    [g2o]C++图优化库
    Teradata基础教程中的数据库试验环境脚本
    Oracle中对象权限与系统权限revoke
  • 原文地址:https://www.cnblogs.com/ZeroTiny/p/9267549.html
Copyright © 2011-2022 走看看