RMAN-06817: Pluggable Database CHARLESPDB cannot be backed up in NOARCHIVELOG mode.

本文记录了在非归档模式下使用RMAN备份可插拔数据库(PDB)遇到的问题及解决过程。通过将数据库调整到归档模式并重新启动备份,最终成功完成备份。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.错误现象

[oracle@localhost ~]$ rman target /

Recovery Manager: Release 12.2.0.1.0 - Production on Wed Mar 15 10:09:49 2017

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

connected to target database: CHARLES (DBID=1208806606)

RMAN> backup database charlespdb;

Starting backup at 15-MAR-17
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=65 device type=DISK
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of backup command at 03/15/2017 10:10:12
RMAN-06817: Pluggable Database CHARLESPDB cannot be backed up in NOARCHIVELOG mode.

RMAN> exit


2.解决步骤

因为只有cdb才有redo,所以非归档模式与归档模式也应该在cdb里修改

[oracle@localhost ~]$ sqlplus / as sysdba

SQL*Plus: Release 12.2.0.1.0 Production on Wed Mar 15 10:24:17 2017

Copyright (c) 1982, 2016, Oracle.  All rights reserved.


Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

SQL> show con_name;

CON_NAME
------------------------------
CDB$ROOT
SQL> 

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

Total System Global Area  771751936 bytes
Fixed Size		    8797536 bytes
Variable Size		  608174752 bytes
Database Buffers	   46137344 bytes
Redo Buffers		    3784704 bytes
In-Memory Area		  104857600 bytes
Database mounted.
SQL> alter database archivelog;

Database altered.

SQL> alter database open;

Database altered.

3.再次备份成功
RMAN> backup  database charlespdb;

Starting backup at 15-MAR-17
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=63 device type=DISK
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00013 name=/u01/app/oralce/oradata/charles/charlespdb/test01.dbf
input datafile file number=00010 name=/u01/app/oralce/oradata/charles/charlespdb/sysaux01.dbf
input datafile file number=00009 name=/u01/app/oralce/oradata/charles/charlespdb/system01.dbf
input datafile file number=00011 name=/u01/app/oralce/oradata/charles/charlespdb/undotbs01.dbf
input datafile file number=00012 name=/u01/app/oralce/oradata/charles/charlespdb/users01.dbf
channel ORA_DISK_1: starting piece 1 at 15-MAR-17
channel ORA_DISK_1: finished piece 1 at 15-MAR-17
piece handle=/u01/app/oralce/product/12.2.0/dbhome_1/dbs/01rv6efs_1_1 tag=TAG20170315T102252 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:03
Finished backup at 15-MAR-17

Starting Control File and SPFILE Autobackup at 15-MAR-17
piece handle=/u01/app/oralce/product/12.2.0/dbhome_1/dbs/c-1208806606-20170315-00 comment=NONE
Finished Control File and SPFILE Autobackup at 15-MAR-17

<think>我们正在处理一个Oracle数据库权限问题,具体是RMAN工具在连接目标数据库时报告权限不足(ORA-01031)。用户提供的引用信息中提到了几种可能的解决方法:1.确保连接RMAN的用户具有sysdba权限(引用[1])。2.检查Oracle网络配置文件(sqlnet.ora,tnsnames.ora,listener.ora)的权限设置(引用[2])。3.检查sqlnet.ora文件中的认证服务设置(引用[3])。根据这些信息,我们可以按以下步骤解决:###步骤1:确保用户具有sysdba权限-使用具有sysdba权限的用户(如SYS)登录数据库,查询`v$pwfile_users`视图,确认目标用户(例如FUN)是否已被授予sysdba权限。-如果没有,使用`GRANTsysdbaTO用户名;`命令授予权限。###步骤2:检查网络配置文件的权限-进入`$ORACLE_HOME/network/admin/`目录,检查sqlnet.ora、tnsnames.ora和listener.ora文件的权限,确保它们对Oracle用户可读(例如权限设置为644)。-如果权限不正确,使用`chmod`命令修改。###步骤3:检查sqlnet.ora中的认证设置-打开sqlnet.ora文件,检查`SQLNET.AUTHENTICATION_SERVICES`参数。该参数用于指定允许的认证方式。在Linux/Unix环境下,如果设置为`(NONE)`,则可能导致密码文件认证失败,从而引发权限不足错误。-通常,我们建议设置为`(ALL)`或者包含`(NTS)`(Windows)或`(ALL)`(Linux/Unix)。但是,在Linux环境下,可能需要设置为`(ALL)`或`(NONE)`,具体取决于环境。如果使用密码文件认证,应确保该参数包含`(NONE)`以外的值,或者注释掉该行(使用默认值)。-在引用[3]中,该参数被注释掉了,这意味着使用默认设置。默认情况下,Oracle允许使用密码文件认证。因此,如果该参数被显式设置为`(NONE)`,则应该修改或注释掉。###步骤4:重新尝试连接-完成上述步骤后,再次尝试使用RMAN连接目标数据库。###示例操作以下是一些具体操作的示例:1.**授予sysdba权限**(以SYS用户登录SQL*Plus):```sqlSQL>GRANTsysdbaTOFUN;```然后检查:```sqlSQL>SELECT*FROMv$pwfile_users;```2.**修改文件权限**(在操作系统命令行):```bashcd$ORACLE_HOME/network/adminchmod644sqlnet.oratnsnames.oralistener.ora```3.**检查sqlnet.ora**:确保`SQLNET.AUTHENTICATION_SERVICES`设置正确。例如,对于Linux,可以设置为:```SQLNET.AUTHENTICATION_SERVICES=(ALL)```或者注释掉该行(使用默认值)。###注意事项-在修改文件权限或配置文件后,通常不需要重启数据库,但可能需要重新启动监听器(如果修改了监听器相关的文件)或重新加载配置。-如果问题仍然存在,还需要检查密码文件(`orapw<ORACLE_SID>`)是否存在,并且该用户是否在密码文件中。可以使用`orapwd`工具重建密码文件。###重建密码文件如果怀疑密码文件损坏或用户未加入密码文件,可以重建:1.关闭数据库(如果使用该密码文件的实例正在运行,需要先关闭)。2.删除或重命名原密码文件(位于`$ORACLE_HOME/dbs`目录下,文件名为`orapw<ORACLE_SID>`)。3.使用`orapwd`命令重建密码文件:```bashorapwdfile=$ORACLE_HOME/dbs/orapw<ORACLE_SID>password=<sys_password>entries=10```4.重新启动数据库。5.重新授予sysdba权限(因为重建密码文件会清空原有权限)。通过以上步骤,应该可以解决RMAN连接时的权限不足问题。###相关问题1.如何检查Oracle用户的sysdba权限?2.如何修改Oracle网络配置文件的权限?3.如何重建Oracle密码文件?4.RMAN连接数据库时还有哪些常见错误?</think>### RMAN权限问题解决方法 您遇到的`RMAN-00554`、`RMAN-04006`和`ORA-01031`错误是由于RMAN连接时权限不足导致的。以下是系统化的解决方案: #### 1. **验证用户权限** - 检查用户是否具有`SYSDBA`权限: ```sql SELECT * FROM v$pwfile_users; ``` 若用户未列出,需授予权限: ```sql GRANT SYSDBA TO 用户名; -- 将"用户名"替换为实际连接RMAN的用户名 ``` #### 2. **检查网络配置文件权限** - 进入`$ORACLE_HOME/network/admin/`目录 - 验证文件权限(需Oracle用户可读): ```bash ls -l sqlnet.ora tnsnames.ora listener.ora ``` 修正权限(示例): ```bash chmod 644 sqlnet.ora tnsnames.ora listener.ora ``` #### 3. **配置认证方式** - 编辑`sqlnet.ora`文件: ```bash vi $ORACLE_HOME/network/admin/sqlnet.ora ``` - 确保认证服务启用(**关键步骤**): ```ini SQLNET.AUTHENTICATION_SERVICES = (ALL) -- 取消注释或添加此配置 ``` 若使用Linux系统,注释掉`NTS`相关配置[^3]。 #### 4. **重建密码文件(可选)** 当权限异常时: ```bash orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=新密码 entries=10 ``` #### 5. **连接验证** 使用正确语法连接RMAN: ```bash rman target 用户名/密码 AS SYSDBA ``` > **原理说明**:RMAN需要`SYSDBA`系统权限进行底层数据库操作,同时Oracle网络层认证配置(`sqlnet.ora`)和文件权限会直接影响身份验证流程。错误码`ORA-01031`直接表明权限校验失败[^1][^2]。 --- ### 相关问题 1. 如何检查Oracle用户的系统权限列表? 2. `sqlnet.ora`中`SQLNET.AUTHENTICATION_SERVICES`不同配置值的区别是什么? 3. RMAN连接数据库时还有哪些常见错误代码需要关注? 4. 如何在Windows和Linux环境下创建Oracle密码文件?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值