oracle 19c 容器数据库 RMAN备份与恢复(二)

目录

RMAN備份

在CDB下进入RMAN进行备份

备份集

備份整個 CDB數據庫

備份指定的pdb

只备份root容器

备份某一个pdb数据库下的指定表空间

镜像备份

在PDB下面进入rman进行备份

备份策略

RMAN備份特性

創建多通道備份和多個備份集

RMAN性能調優


RMAN備份

在CDB下进入RMAN进行备份

备份集

備份整個 CDB數據庫

備份的是cdb$root和所有的pdb和pdbseed

1.首先指定要備份的CDB的sid

export ORACLE_SID=CDB1

2.然后将数据库设为归档模式

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.

Total System Global Area 4294963960 bytes
Fixed Size		    9143032 bytes
Variable Size		  973078528 bytes
Database Buffers	 3305111552 bytes
Redo Buffers		    7630848 bytes
Database mounted.
SQL> alter database archivelog;

Database altered.

SQL> archive log list;
Database log mode	       Archive Mode
Automatic archival	       Enabled
Archive destination	       /u01/app/oracle/oradata
Oldest online log sequence     15
Next log sequence to archive   17
Current log sequence	       17

[oracle@oracle19c oradata]$ rman target /

Recovery Manager: Release 19.0.0.0.0 - Production on Sun Sep 10 18:58:42 2023
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.

connected to target database: CDB (DBID=2260625579, not open)

如果需要經常備份的話我們應該指定一個固定的備份目錄。

RMAN> backup database plus archivelog;--------备份 所有的数据文件,控制文件,spfile文件和归档日志文件

数据文件和归档日志文件都备份到了同一个地方:

以下模拟数据文件丢失,然后用刚才的备份恢复数据库:

1.删除一个pdbusers.dbf表空间文件,打开pdb1的时候报错

RMAN> select status from v$instance;

STATUS      
------------
OPEN        

RMAN> shutdown immediate;

database closed
database dismounted
Oracle instance shut down

RMAN> startup mount--------需要将数据库启动到mount状态下恢复

connected to target database (not started)
Oracle instance started
database mounted

Total System Global Area     838858864 bytes

Fixed Size                     9140336 bytes
Variable Size                557842432 bytes
Database Buffers             268435456 bytes
Redo Buffers                   3440640 bytes

RMAN> restore database;

Starting restore at 01-JAN-24
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=427 device type=DISK
allocated channel: ORA_DISK_2
channel ORA_DISK_2: SID=428 device type=DISK

skipping datafile 5; already restored to file /u01/app/oracle/oradata/CDB/pdbseed/system01.dbf
skipping datafile 8; already restored to file /u01/app/oracle/oradata/CDB/pdbseed/undotbs01.dbf
skipping datafile 6; already restored to file /u01/app/oracle/oradata/CDB/p

### Oracle 19c 数据库备份最佳实践 #### 物理备份方法 物理备份主要针对整个数据库文件,包括数据文件、控制文件和重做日志文件。对于Oracle 19c而言,在执行物理备份之前应当关闭目标容器数据库或者将其置于受限模式下以减少并发访问带来的风险[^1]。 ```sql -- 将PDB设置为受限状态 ALTER PLUGGABLE DATABASE pdb_name RESTRICTED; ``` 接着可以利用操作系统命令复制这些进制文件至安全位置保存;更推荐的做法是采用RMAN工具来完成这项工作,它提供了更加简便且可靠的接口用于管理磁盘或磁带上的备份集[^2]。 #### 使用 RMAN 进行全量备份 通过RMAN(Recovery Manager),能够实现高效稳定的增量级联式备份策略。下面是一段简单的脚本实例展示怎样连接到CDB根目录并启动对指定可插拔数据库(PDB)的完全备份过程: ```bash rman target / RUN { ALLOCATE CHANNEL c1 DEVICE TYPE DISK FORMAT '/backup/%U'; BACKUP PLUGGABLE DATABASE pdb01 PLUS ARCHIVELOG DELETE INPUT; } ``` 此段代码会分配一个名为`c1`的工作通道给DISK设备,并按照设定好的路径格式化输出备份(`%U`),随后即刻开始对pdb01及其归档日志实施全面保护措施。 #### 逻辑备份方式 除了上述基于文件级别的物理备份外,还可以考虑采取逻辑备份方案——expdp实用程序。这种方法允许用户仅导出特定对象的数据定义语句(DDLs),而无需关心底层存储结构的变化情况。这使得跨平台迁移变得异常简单快捷[^3]。 ```sql -- 导出单个PDB中的所有表空间 expdp system/password DIRECTORY=DATA_PUMP_DIR DUMPFILE=pdb_export.dmp FULL=Y ``` 以上命令将把选定PDB内的全部内容打包成单一转储文件(.dmp),便于后续恢复或其他用途时调用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值