Oracle Data Guard_ 主库添加数据文件或创建表空间

2023-10-08 18:58

本文主要是介绍Oracle Data Guard_ 主库添加数据文件或创建表空间,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

8.3 Managing Primary Database Events That Affect the Standby Database

8.3 管理主库能影响备库的事件

To prevent possible problems, you must be aware of events on the primary database that affect a standby database and learn how to respond to them. This section describes these events and the recommended responses to these events.

In some cases, the events or changes that occur on a primary database are automatically propagated through redo data to the standby database and thus require no extra action on the standby database. In other cases, you might need to perform maintenance tasks on the standby database.

Table 8-1 indicates whether or not a change made on the primary database requires additional intervention by the database administrator (DBA) to be propagated to the standby database. It also briefly describes how to respond to these events. Detailed descriptions of the responses are described in the section references provided.

The following events are automatically administered by redo transport services and Redo Apply, and therefore require no intervention by the database administrator:

  • A SQL ALTER DATABASE statement is issued with the ENABLE THREAD or DISABLE THREAD clause.

  • The status of a tablespace changes (changes to read/write or read-only, placed online or taken offline).

  • A datafile is added or tablespace is created when the STANDBY_FILE_MANAGEMENT initialization parameter is set to AUTO.


Table 8-1 Actions Required on a Standby Database After Changes to a Primary Database

ReferenceChange Made on Primary DatabaseAction Required on Standby Database

Section 8.3.1

Add a datafile or create a tablespace

添加文件或创建表空间

If you did not set the STANDBY_FILE_MANAGEMENT initialization parameter to AUTO, you must copy the new datafile to the standby database.

如果STANDBY_FILE_MANAGEMENT初始化参数没有设置为AUTO,那么你必须将新的数据文件拷贝到备库

Section 8.3.2

Drop or delete a tablespace or datafile

删除表空间或数据文件

Delete datafiles from primary and standby databases after the archived redo log file containing the DROP or DELETE command was applied.

从主库删除数据文件,备库机会应用包含DROP或者DELETE命令的归档重做日志来应用

Section 8.3.3

Use transportable tablespaces

使用传输表空间

Move tablespaces between the primary and standby databases.

在主备库之间移动表空间

Section 8.3.4

Rename a datafile

重命名一个数据文件

Rename the datafile on the standby database.

在备库重命令数据文件

Section 8.3.5

Add or drop redo log files

添加或删除重做日志文件爱你

Synchronize changes on the standby database.

在备库上同步改变

Section 8.3.6

Perform a DML or DDL operation using the NOLOGGING or UNRECOVERABLE clause

使用NOLOGGING 或者UNRECOVERABLE 执行DML或者DDL操作,

Send the datafile containing the unlogged changes to the standby database.

向备库发送包含没有日志记录的文件

Chapter 13

Change initialization parameters

改变初始化参数

Dynamically change the standby parameters or shut down the standby database and update the initialization parameter file.

动态的改变备用的参数或者关闭备库,再更新初始化参数文件


8.3.1 Adding a Datafile or Creating a Tablespace

8.3.1添加一个数据文件或者创建一个表空间


The initialization parameter, STANDBY_FILE_MANAGEMENT, enables you to control whether or not adding a datafile to the primary database is automatically propagated to the standby database, as follows:

STANDBY_FILE_MANAGEMENT初始化参数文件,能使用控制是否在添加数据文件到主库自动传播到备库,如下:


  • If you set the STANDBY_FILE_MANAGEMENT initialization parameter in the standby database server parameter file (SPFILE) to AUTO, any new datafiles created on the primary database are automatically created on the standby database as well.

    如果STANDBY_FILE_MANAGEMENT这个初始化参数文件在备库中的spfile是AUTO,那么任何在主库上新创建的数据文件会自动的在备库创建。



  • If you do not specify the STANDBY_FILE_MANAGEMENT initialization parameter or if you set it to MANUAL, then you must manually copy the new datafile to the standby database when you add a datafile to the primary database.

    如果STANDBY_FILE_MANAGEMENT没有设置或者设置为MANUAL,那么当你在主库添加数据文件时,你必须手动拷贝新的数据文件到备库


Note that if you copy an existing datafile from another database to the primary database, then you must also copy the new datafile to the standby database and re-create the standby control file, regardless of the setting of STANDBY_FILE_MANAGEMENT initialization parameter.

注意,如果你从另一个数据库已存在的数据文件拷贝到到主库,那么你必须也要拷贝到倒库,然后重新创建备用控制文件,除非你设置了STANDBY_FILE_MANAGEMENT 初始化参数。


The following sections provide examples of adding a datafile to the primary and standby databases when the STANDBY_FILE_MANAGEMENTinitialization parameter is set to AUTO and MANUAL, respectively.

按以下提供的例子来添加一个数据文件到主库,备库的STANDBY_FILE_MANAGEMENT分别设置为AUTO和MANUAL。


8.3.1.1 When STANDBY_FILE_MANAGEMENT Is Set to AUTO
8.3.1.1 当 STANDBY_FILE_MANAGEMENT设置为AUTO时,

The following example shows the steps required to add a new datafile to the primary and standby databases when the STANDBY_FILE_MANAGEMENTinitialization parameter is set to AUTO.

以下的例子给出了主库添加一个数据文件,备库的STANDBY_FILE_MANAGEMENT为AUTO时的步骤。


  1. Add a new tablespace to the primary database:

    1.添加一个新的表空间到主库:

    SQL> CREATE TABLESPACE new_ts DATAFILE '/disk1/oracle/oradata/payroll/t_db2.dbf'
    2> SIZE 1m AUTOEXTEND ON MAXSIZE UNLIMITED;

  2. Archive the current online redo log file so the redo data will be transmitted to and applied on the standby database:

    归档当前现在重做日志,这样,重做日志会传输到备库,并且备库会应用传输过来的日志:

    SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;

  3. Verify the new datafile was added to the primary database:

    3.验证新的数据文件被添加到主库:

    SQL> SELECT NAME FROM V$DATAFILE;
    NAME
    ----------------------------------------------------------------------
    /disk1/oracle/oradata/payroll/t_db1.dbf
    /disk1/oracle/oradata/payroll/t_db2.dbf

  4. Verify the new datafile was added to the standby database:

    验证信的数据文件被添加到备库:

    SQL> SELECT NAME FROM V$DATAFILE;
    NAME
    ----------------------------------------------------------------------
    /disk1/oracle/oradata/payroll/s2t_db1.dbf
    /disk1/oracle/oradata/payroll/s2t_db2.dbf


    ###########################################################################################################
    我的实验:主库添加新的表空间,备库中的STANDBY_FILE_MANAGEMENT参数设置为AUTO
    主库:PROD
    备库:PRODSTD

    1.查看备库STANDBY_FILE_MANAGEMENT参数是否为AUTO
    SYS@PRODSTD>show parameter STANDBY_FILE_MANAGEMENT

    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    standby_file_management              string      AUTO

    2.在主库增加一个新的表空间
    SYS@PROD>create tablespace SWTICH_TBS datafile '/u01/app/oracle/oradata/PROD/Disk1/swtich_tbs01.dbf' size 10m;

    Tablespace created.

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

    Sat Mar 29 16:27:18 2014
    create tablespace SWTICH_TBS datafile '/u01/app/oracle/oradata/PROD/Disk1/swtich_tbs01.dbf' size 10m
    Sat Mar 29 16:27:21 2014
    Completed: create tablespace SWTICH_TBS datafile '/u01/app/oracle/oradata/PROD/Disk1/swtich_tbs01.dbf' size 10m

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

    3.手动归档,查看主备库告警日志
    SYS@PROD>alter system archive log current;

    System altered.
    ---------------------------------------------------------------------------------------------------------------
    主库告警日志:
    LNS1 started with pid=55, OS id=3972
    Sat Mar 29 16:29:54 2014
    Thread 1 advanced to log sequence 32
      Current log# 5 seq# 32 mem# 0: /u01/app/oracle/oradata/PROD/Disk1/redo05.log
      Current log# 5 seq# 32 mem# 1: /u01/app/oracle/oradata/PROD/Disk2/redo05_1.log
    Sat Mar 29 16:29:56 2014
    LNS: Standby redo logfile selected for thread 1 sequence 32 for destination LOG_ARCHIVE_DEST_2
    Sat Mar 29 16:29:58 2014
    ARC7: Standby redo logfile selected for thread 1 sequence 31 for destination LOG_ARCHIVE_DEST_2

    备库告警日志:
    Sat Mar 29 16:29:55 2014
    Redo Shipping Client Connected as PUBLIC
    -- Connected User is Valid
    RFS[2]: Assigned to RFS process 8613
    RFS[2]: Identified database type as 'physical standby'
    Primary database is in MAXIMUM PERFORMANCE mode
    Primary database is in MAXIMUM PERFORMANCE mode
    RFS[2]: Successfully opened standby log 7: '/u01/app/oracle/oradata/PRODSTD/Disk1/standby07.log'
    Sat Mar 29 16:29:57 2014
    Redo Shipping Client Connected as PUBLIC
    -- Connected User is Valid
    RFS[3]: Assigned to RFS process 8615
    RFS[3]: Identified database type as 'physical standby'
    RFS[3]: Successfully opened standby log 6: '/u01/app/oracle/oradata/PRODSTD/Disk1/standby06.log'
    ---------------------------------------------------------------------------------------------------------------
    4,在主库验证是否有新的表空间和数据文件

    SYS@PROD>select name from v$datafile;

    NAME
    ---------------------------------------------------------------------------------------------------------------
    /u01/app/oracle/oradata/PROD/Disk1/system01.dbf
    /u01/app/oracle/oradata/PROD/Disk1/undotbs01.dbf
    /u01/app/oracle/oradata/PROD/Disk1/sysaux01.dbf
    /u01/app/oracle/oradata/PROD/Disk1/example01.dbf
    /u01/app/oracle/oradata/PROD/Disk1/swtich_tbs01.dbf
    /u01/app/oracle/oradata/PROD/Disk1/users01.dbf

    6 rows selected.

    5,在备库验证是否有新的表空间和数据文件

    SYS@PRODSTD>select name from v$datafile;

    NAME
    ----------------------------------------------------------------------------------------
    /u01/app/oracle/oradata/PRODSTD/Disk1/system01.dbf
    /u01/app/oracle/oradata/PRODSTD/Disk1/undotbs01.dbf
    /u01/app/oracle/oradata/PRODSTD/Disk1/sysaux01.dbf
    /u01/app/oracle/oradata/PRODSTD/Disk1/example01.dbf
    /u01/app/oracle/oradata/PRODSTD/Disk1/PRODSTD/datafile/o1_mf_swtich_t_9m21f1f0_.dbf
    /u01/app/oracle/oradata/PRODSTD/Disk1/users01.dbf

    6 rows selected.

8.3.1.2 When STANDBY_FILE_MANAGEMENT Is Set to MANUAL
8.3.1.2 当 STANDBY_FILE_MANAGEMENT设置为MANUAL时

This section shows how to add a new datafile to the primary and standby database when the STANDBY_FILE_MANAGEMENT initialization parameter is set to MANUAL. You must set the STANDBY_FILE_MANAGEMENT initialization parameter to MANUAL when the standby datafiles reside on raw devices. This section also describes how to recover from errors after they have occurred.

这个部分展示的是添加一个新的数据文件到主库,而备库的STANDBY_FILE_MANAGEMENT参数设置为MAUNAL,当备库的数据文件放在裸设备时,你必须将STANDBY_FILE_MANAGEMENT初始化参数设置为MANUAL。这部分也描述怎么恢复遇到的错误。


Note:

Do not use the following procedure with databases that use Oracle Managed Files. Also, if the raw device path names are not the same on the primary and standby servers, use the DB_FILE_NAME_CONVERT initialization parameter to convert the path names.
数据库在OMF管理时不要使用以下的步骤,同样,如果裸设备路径不跟主库和备库的一样,使用 DB_FILE_NAME_CONVERT初始化参数来转换路径的名称。

8.3.1.2.1 Using the STANDBY_FILE_MANAGEMENT Parameter with Raw Devices

By setting the STANDBY_FILE_MANAGEMENT parameter to AUTO whenever new datafiles are added or dropped on the primary database, corresponding changes are made in the standby database without manual intervention. This is true as long as the standby database is using a file system. If the standby database is using raw devices for datafiles, then the STANDBY_FILE_MANAGEMENT initialization parameter will continue to work, but manual intervention is needed. This manual intervention involves ensuring the raw devices exist before log apply services on the standby database recover the redo data that will create the new datafile.On the primary database, create a new tablespace where the datafiles reside in a raw device. At the same time, create the same raw device on the standby database. For example:


STANDBY_FILE_MANAGEMENT设置为AUTO,无论什么时候在主库上添加或删掉新的数据文件,备库不用人工干预相应的改变即可发生在备库。这是针对于备库为文件系统才行的。如果备库使用裸设备来放数据文件,那么 STANDBY_FILE_MANAGEMENT参数将继续工作,但是手动干预是必须的。这个手动干预包括确定裸设备是否存在在备库上日志应用服务恢复创建新的数据文件的重做日志。在主库上,在裸设备上创建一个新的表空间,同时,在备库创建相同的裸设备,例如:


SQL> CREATE TABLESPACE MTS2 DATAFILE '/dev/raw/raw100' size 1m;
Tablespace created.
SQL> ALTER SYSTEM SWITCH LOGFILE;
System altered.

The standby database automatically adds the datafile as the raw devices exist. The standby alert log shows the following:

备库自动添加数据文件到以存在的裸设备,备用告警之日如下:


Fri Apr  8 09:49:31 2005
Media Recovery Log /u01/MILLER/flash_recovery_area/MTS_STBY/archivelog/2005_04_08/o1_mf_1_7_15ffgt0z_.arc
Recovery created file /dev/raw/raw100
Successfully added datafile 6 to media recovery
Datafile #6: '/dev/raw/raw100'
Media Recovery Waiting for thread 1 sequence 8 (in transit)

However, if the raw device was created on the primary system but not on the standby, then the MRP process will shut down due to file-creation errors. For example, issue the following statements on the primary database:

然而,如果在主库上创建了裸设备而没有在备库上创建裸设备,那么MRP进程会因为文件创建错误而关闭,例如,在主库上发出以下语句:


SQL> CREATE TABLESPACE MTS3 DATAFILE '/dev/raw/raw101' size 1m;
Tablespace created.
SQL> ALTER SYSTEM SWITCH LOGFILE;
System altered.

The standby system does not have the /Dave/raw/raw101 raw device created. The standby alert log shows the following messages when recovering the archive:

备用系统没有创建/dev/raw/raw101这个裸设备,备用告警日志如下:


Fri Apr  8 10:00:22 2005
Media Recovery Log /u01/MILLER/flash_recovery_area/MTS_STBY/archivelog/2005_04_08/o1_mf_1_8_15ffjrov_.arc
File #7 added to control file as 'UNNAMED00007'.
Originally created as:
'/dev/raw/raw101'
Recovery was unable to create the file as:
'/dev/raw/raw101'
MRP0: Background Media Recovery terminated with error 1274
Fri Apr  8 10:00:22 2005
Errors in file /u01/MILLER/MTS/dump/mts_mrp0_21851.trc:
ORA-01274: cannot add datafile '/dev/raw/raw101' - file could not be created
ORA-01119: error in creating database file '/dev/raw/raw101'
ORA-27041: unable to open file
Linux Error: 13: Permission denied
Additional information: 1
Some recovered datafiles maybe left media fuzzy
Media recovery may continue but open resetlogs may fail
Fri Apr  8 10:00:22 2005
Errors in file /u01/MILLER/MTS/dump/mts_mrp0_21851.trc:
ORA-01274: cannot add datafile '/dev/raw/raw101' - file could not be created
ORA-01119: error in creating database file '/dev/raw/raw101'
ORA-27041: unable to open file
Linux Error: 13: Permission denied
Additional information: 1
Fri Apr  8 10:00:22 2005
MTS; MRP0: Background Media Recovery process shutdown
ARCH: Connecting to console port...

8.3.1.2.2 Recovering From Errors
8.3.1.2.2 恢复以上错误

To correct the problems described in Section 8.3.1.2.1, perform the following steps:

修改上节提到的错误,执行以下步骤:


  1. Create the raw device on the standby database and assign permissions to the Oracle user.

    在备库上创建裸设备,赋予oracle用户权限


  2. Query the V$DATAFILE view. For example:

    SQL> SELECT NAME FROM V$DATAFILE;
    NAME
    --------------------------------------------------------------------------------
    /u01/MILLER/MTS/system01.dbf
    /u01/MILLER/MTS/undotbs01.dbf
    /u01/MILLER/MTS/sysaux01.dbf
    /u01/MILLER/MTS/users01.dbf
    /u01/MILLER/MTS/mts.dbf
    /dev/raw/raw100
    /u01/app/oracle/product/10.1.0/dbs/UNNAMED00007
    SQL> ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=MANUAL;
    SQL> ALTER DATABASE CREATE DATAFILE
      2  '/u01/app/oracle/product/10.1.0/dbs/UNNAMED00007'
      3  AS
      4  '/dev/raw/raw101';

  3. In the standby alert log you should see information similar to the following:

    在备用告警日志里你应该会看见以下相似的信息:

    Fri Apr  8 10:09:30 2005
    alter database create datafile
    '/dev/raw/raw101' as '/dev/raw/raw101'
    Fri Apr  8 10:09:30 2005
    Completed: alter database create datafile
    '/dev/raw/raw101' a

  4. On the standby database, set STANDBY_FILE_MANAGEMENT to AUTO and restart Redo Apply:

    在备库,设置STANDBY_FILE_MANAGEMENT 为AUTO,然后重新启用重做应用:

    SQL> ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO;
    SQL> RECOVER MANAGED STANDBY DATABASE DISCONNECT;

At this point Redo Apply uses the new raw device datafile and recovery continues.

在这一点,重做应用使用新的裸设备上的数据文件并继续恢复。

 

这篇关于Oracle Data Guard_ 主库添加数据文件或创建表空间的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/167349

相关文章

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

在cscode中通过maven创建java项目

在cscode中创建java项目 可以通过博客完成maven的导入 建立maven项目 使用快捷键 Ctrl + Shift + P 建立一个 Maven 项目 1 Ctrl + Shift + P 打开输入框2 输入 "> java create"3 选择 maven4 选择 No Archetype5 输入 域名6 输入项目名称7 建立一个文件目录存放项目,文件名一般为项目名8 确定

Java 创建图形用户界面(GUI)入门指南(Swing库 JFrame 类)概述

概述 基本概念 Java Swing 的架构 Java Swing 是一个为 Java 设计的 GUI 工具包,是 JAVA 基础类的一部分,基于 Java AWT 构建,提供了一系列轻量级、可定制的图形用户界面(GUI)组件。 与 AWT 相比,Swing 提供了许多比 AWT 更好的屏幕显示元素,更加灵活和可定制,具有更好的跨平台性能。 组件和容器 Java Swing 提供了许多

顺序表之创建,判满,插入,输出

文章目录 🍊自我介绍🍊创建一个空的顺序表,为结构体在堆区分配空间🍊插入数据🍊输出数据🍊判断顺序表是否满了,满了返回值1,否则返回0🍊main函数 你的点赞评论就是对博主最大的鼓励 当然喜欢的小伙伴可以:点赞+关注+评论+收藏(一键四连)哦~ 🍊自我介绍   Hello,大家好,我是小珑也要变强(也是小珑),我是易编程·终身成长社群的一名“创始团队·嘉宾”

论文翻译:arxiv-2024 Benchmark Data Contamination of Large Language Models: A Survey

Benchmark Data Contamination of Large Language Models: A Survey https://arxiv.org/abs/2406.04244 大规模语言模型的基准数据污染:一项综述 文章目录 大规模语言模型的基准数据污染:一项综述摘要1 引言 摘要 大规模语言模型(LLMs),如GPT-4、Claude-3和Gemini的快

Maven创建项目中的groupId, artifactId, 和 version的意思

文章目录 groupIdartifactIdversionname groupId 定义:groupId 是 Maven 项目坐标的第一个部分,它通常表示项目的组织或公司的域名反转写法。例如,如果你为公司 example.com 开发软件,groupId 可能是 com.example。作用:groupId 被用来组织和分组相关的 Maven artifacts,这样可以避免

批处理以当前时间为文件名创建文件

批处理以当前时间为文件名创建文件 批处理创建空文件 有时候,需要创建以当前时间命名的文件,手动输入当然可以,但是有更省心的方法吗? 假设我是 windows 操作系统,打开命令行。 输入以下命令试试: echo %date:~0,4%_%date:~5,2%_%date:~8,2%_%time:~0,2%_%time:~3,2%_%time:~6,2% 输出类似: 2019_06

Oracle type (自定义类型的使用)

oracle - type   type定义: oracle中自定义数据类型 oracle中有基本的数据类型,如number,varchar2,date,numeric,float....但有时候我们需要特殊的格式, 如将name定义为(firstname,lastname)的形式,我们想把这个作为一个表的一列看待,这时候就要我们自己定义一个数据类型 格式 :create or repla

ORACLE 11g 创建数据库时 Enterprise Manager配置失败的解决办法 无法打开OEM的解决办法

在win7 64位系统下安装oracle11g,在使用Database configuration Assistant创建数据库时,在创建到85%的时候报错,错误如下: 解决办法: 在listener.ora中增加对BlueAeri-PC或ip地址的侦听,具体步骤如下: 1.启动Net Manager,在“监听程序”--Listener下添加一个地址,主机名写计

Oracle Start With关键字

Oracle Start With关键字 前言 旨在记录一些Oracle使用中遇到的各种各样的问题. 同时希望能帮到和我遇到同样问题的人. Start With (树查询) 问题描述: 在数据库中, 有一种比较常见得 设计模式, 层级结构 设计模式, 具体到 Oracle table中, 字段特点如下: ID, DSC, PID; 三个字段, 分别表示 当前标识的 ID(主键), DSC 当