oracle db recover参数,【参数】恢复db_recovery_file_dest_size参数为默认值“0”方法

db_recovery_file_dest_size参数的作用是限制闪回恢复区可存放文件总大小。一旦将参数db_recovery_file_dest_size设置为非零值后“很难”恢复为默认值“0”。这里我给出两种可以将此参数恢复为默认值“0”的方法,一种是“迂回策略”,一种是reset方法。1.查看默认情况下db_recovery_file_dest_size参数值db_recovery_file_dest_size参数的默认值是“0”。SYS@PROD> show parameter db_recovery_file_dest_sizeNAME                                 TYPE        VALUE------------------------------------ ----------- -------------db_recovery_file_dest_size           big integer 0SYS@PROD> col name for a20SYS@PROD> select * from v$recovery_file_dest;NAME  SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE NUMBER_OF_FILES----- ----------- ---------- ----------------- ---------------0          0                 0               02.将db_recovery_file_dest_size参数调整为非零值SYS@PROD> alter system set db_recovery_file_dest_size=4g;System altered.SYS@PROD> show parameter db_recovery_file_dest_sizeNAME                                 TYPE        VALUE------------------------------------ ----------- ------------db_recovery_file_dest_size           big integer 4GSYS@PROD> select * from v$recovery_file_dest;NAME  SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE NUMBER_OF_FILES----- ----------- ---------- ----------------- ---------------4294967296          0                 0               03.尝试将db_recovery_file_dest_size参数修改为“0”SYS@PROD> alter system set db_recovery_file_dest_size=0;alter system set db_recovery_file_dest_size=0*ERROR at line 1:ORA-02097: parameter cannot be modified because specified value is invalidORA-19803: Parameter DB_RECOVERY_FILE_DEST_SIZE is out of range (1 -18446744073709551614)报错信息非常显然,db_recovery_file_dest_size参数大小必须介于1~18446744073709551614之间,也就是说不可以调整为其默认值“0”。有朋友说,是不是可以尝试使用scope=spfile方式调整此参数。注意,也是不可以的。验证如下。SYS@PROD> alter system set db_recovery_file_dest_size=0 scope=spfile;System altered.此处貌似修改成功,但是这样调整后数据库将无法重新启动,报错信息如下。SYS@PROD> startup;ORA-19803: Parameter DB_RECOVERY_FILE_DEST_SIZE is out of range (1 - 18446744073709551614)一样的报错原因,db_recovery_file_dest_size参数大小必须介于1~18446744073709551614之间。4.迂回处理方法既然使用常规方法无法达到我们将db_recovery_file_dest_size参数调整为“0”的目的,那我们应该如何应对这个需求呢。经过尝试,可以通过pfile迂回的达到恢复的目的。1)使用当前的spfile生成pfileSYS@PROD> create pfile from spfile;File created.2)使用vi命令将pfile中的db_recovery_file_dest_size参数信息删除掉[oracle@secdb1 ~]$ vi $ORACLE_HOME/dbs/initPROD.ora……*.db_recovery_file_dest_size=4294967296……注:如果经过上面scope=spfile方法调整过的话,pfile中的信息如下:*.db_recovery_file_dest_size=0方法是一样的,将整行信息删除掉。3)停止数据库并生成spfile,并用spfile启动数据库SYS@PROD> shutdown immediate;Database closed.Database dismounted.ORACLE instance shut down.SYS@PROD> create spfile from pfile;File created.SYS@PROD> startup;ORACLE instance started.Total System Global Area  314572800 bytesFixed Size                  1219184 bytesVariable Size             109053328 bytesDatabase Buffers          201326592 bytesRedo Buffers                2973696 bytesDatabase mounted.Database opened.4)查看修改成果SYS@PROD> show parameter db_recovery_file_dest_sizeNAME                                 TYPE        VALUE------------------------------------ ----------- -----------db_recovery_file_dest_size           big integer 0SYS@PROD> col name for a20SYS@PROD> select * from v$recovery_file_dest;NAME   SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE NUMBER_OF_FILES------ ----------- ---------- ----------------- ---------------0          0                 0               0目的达到。

5.使用直截了当的reset方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Oracle 19c中搭建ADG(Active Data Guard),需要执行以下步骤: 1. 在主数据库上启用归档模式: ``` SQL> ALTER DATABASE ARCHIVELOG; ``` 2. 创建一个备用数据库的实例: ``` $ export ORACLE_SID=ORACLE_19C_ADG $ sqlplus / as sysdba SQL> CREATE SPFILE FROM PFILE; ``` 3. 将主数据库的备份复制到备用服务器上,并在备用服务器上还原备份: ``` $ scp /backup/maindb/* oracle@adg_server:/backup/adg/ $ cd /backup/adg/ $ unzip maindb_backup.zip $ export ORACLE_SID=ORACLE_19C_ADG $ rman target / RMAN> DUPLICATE DATABASE FOR STANDBY FROM ACTIVE DATABASE SPFILE SET db_unique_name='ORACLE_19C_ADG' SET LOG_ARCHIVE_DEST_2='SERVICE=ORACLE_19C ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=ORACLE_19C' SET fal_client='ORACLE_19C' SET fal_server='ORACLE_19C_ADG' NOFILENAMECHECK; ``` 4. 配置主数据库的tnsnames.ora文件和备用数据库的tnsnames.ora文件,以便它们互相访问。 5. 在主数据库上创建一个log shipping连接,并将日志传输到备用数据库: ``` SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=ORACLE_19C_ADG ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=ORACLE_19C_ADG' SCOPE=BOTH; SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE SCOPE=BOTH; ``` 6. 在备用数据库上启用日志应用: ``` SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION; ``` 完成上述步骤后,ADG就已经搭建完成了。可以使用以下命令检查ADG的状态: ``` SQL> SELECT DATABASE_ROLE FROM V$DATABASE; ``` 如果返回的结果为“PHYSICAL STANDBY”,则表示ADG已经成功搭建。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值