我想使用 RMAN 复制到同一台服务器 Oracle 数据库。我已经为 Oracle 数据库配置了闪回恢复区。我的数据库正在使用 SPFILE,如下所示。
SQL> SELECT DECODE(value, NULL, 'PFILE', 'SPFILE') "Init File Type"
FROM sys.v_$parameter WHERE name = 'spfile
SPFILE
Run Code Online (Sandbox Code Playgroud)
我的问题是:
如果我的源数据库使用 SPFILE 那么我是否从 SPFILE 创建了一个 PFILE?如果是这样,我该怎么做?
他们这是什么意思?
您只需要创建在 PFILE 或 SPFILE 中引用的目录。
需要创建哪些目录?
生产数据库:/u01/app/oracle/oradata/DB11G/
。我的 SPFILE ( spfileDB11g.ora
):
DB11G.__java_pool_size=4194304
DB11G.__large_pool_size=4194304
DB11G.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
DB11G.__pga_aggregate_target=155189248
DB11G.__sga_target=264241152
DB11G.__shared_io_pool_size=0
DB11G.__shared_pool_size=171966464
DB11G.__streams_pool_size=4194304
*.audit_file_dest='/u01/app/oracle/admin/DB11G/adump'
*.audit_trail='db'
*.compatible='11.2.0.0.0'
*.control_files='/u01/app/oracle/oradata/DB11G/control01.ctl','/u01/app/oracle/oradata/DB11G/control02.ctl'#Restore Controlfile
*.db_block_size=8192
*.db_domain='localdomain'
*.db_flashback_retention_target=720
*.db_name='DB11G'
*.db_recovery_file_dest='/u01/app/oracle/fra'
*.db_recovery_file_dest_size=3221225472
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=DB11GXDB)'
*.log_archive_dest_1='location=/u01/app/oracle/archive_logs'
*.log_archive_format='db11g%r_%t_%s.arc'
*.memory_target=417333248
*.open_cursors=3^AC^@^@C"^@^@^D^@^@^@^@^@^@^@^@^@^A^DU^F^@^@00
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.undo_tablespace='UNDOTBS1'
Run Code Online (Sandbox Code Playgroud)如果备份文件(自动备份和备份集)位于源主机上的不同路径(不是默认 FRA 路径),那么我如何使用重复命令?顺便说一句,只有闪回日志位于默认位置 …
我在 Oracle Linux 7 上运行 12.1 SE 数据库。我在尝试恢复时从我的 rman 脚本中收到有关丢失数据文件的夜间错误/警告。
我一直在使用以下脚本将 rman 运行到本地驱动器:
RUN {
RECOVER COPY OF DATABASE WITH TAG 'r2cig_incr' UNTIL TIME 'SYSDATE-7';
BACKUP INCREMENTAL LEVEL 1 FOR RECOVER OF COPY WITH TAG 'r2cig_incr' DATABASE;
BACKUP DEVICE TYPE DISK TAG 'r2cig_inc' ARCHIVELOG ALL NOT BACKED UP DELETE ALL INPUT;
DELETE NOPROMPT OBSOLETE DEVICE TYPE DISK;
}
Run Code Online (Sandbox Code Playgroud)
由于磁盘空间问题,添加了第二个磁盘,我尝试通过更改通道设备来移动 rman 以使用该磁盘,例如
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/u01/rman/r2cig/rman/%U' maxpiecesize 10G;
Run Code Online (Sandbox Code Playgroud)
(事后看来,符号链接可能是更好的选择,但当时我更喜欢在单独的驱动器上明确/明显地指定备份的位置)。
这个频道变化似乎没有任何影响。最初我怀疑是因为我设置了 7 天保留期并且旧图像仍然有效,但是 7 天后数据文件图像仍在旧位置创建。
随着磁盘空间变得越来越紧张,我更改了备份脚本以使用不同的 TAG 尝试强制在新磁盘上创建一组新的备份映像。这似乎有效 - …
我正在尝试学习 RMAN,但每次阅读 Oracle 文档时都会感到困惑!
有人可以帮助我有什么区别以及何时使用以下内容吗?
BACKUP DATABASE PLUS ARCHIVELOG DELETE INPUT
BACKUP FULL
Run Code Online (Sandbox Code Playgroud)
其中来自:
run{
backup full tag='INC000000325026'
(database format='/u04/backups/paris/rman/%d_%U_%T' include current controlfile);
}
run{
ALLOCATE CHANNEL d1 DEVICE TYPE DISK FORMAT '/u01/backups/rman/%d_%U_%T';
BACKUP DATABASE PLUS ARCHIVELOG DELETE INPUT TAG ='FRISK_DB';
}
Run Code Online (Sandbox Code Playgroud)
我想/需要以一种简单的方式对数据库进行冷完整备份,那么哪一个合适?
任何人都可以在oracle 11g(Windows平台)中使用另一个数据库名称共享RMAN还原到另一台服务器的正确方法。我对我发现的所有 RMAN 还原方法完全感到困惑。我已经使用命令进行了备份
BACKUP AS COMPRESSED BACKUPSET DATABASE PLUS ARCHIVELOG;
Run Code Online (Sandbox Code Playgroud)
请确认是否需要单独进行控制文件备份。
任何帮助将不胜感激。
我已经完成了以下步骤:
删除INCREMENTAL LEVEL 0备份而不告诉控制文件。所以手动删除了。并没有进行交叉检查。
使用INCREMENTAL LEVEL 1备份数据库(不进行交叉检查)。多么令人惊讶,日志显示我成功完成了增量级别 1。
请注意,我没有INCREMENTAL LEVEL 0备份,但控制文件不知道。我只有INCREMENTAL LEVEL 1。
我试图用这个备份恢复数据库,但当然不能。它告诉我没有找到数据文件 1-5 的备份...
如果控制文件事先知道过期的备份,再增量级别1备份首先会做0级增量之后,该增量级别1。
如何避免这种情况。我必须在备份脚本中使用 chrosscheck 吗?或者在 RMAN 中设置恢复窗口?
我有 Oracle 11g 数据库。备份由 Netbackup 服务器进行。因此,Netbackup 通过其保留来删除备份本身。RMAN 保留策略配置为 REDUNDANCY 2。
请给我建议。
我有来自 AIX 服务器的 RMAN 备份,想要在 Linux 操作系统上恢复。你能告诉我是否有办法做到这一点吗?
非常感谢您在这方面的帮助。