用户反映NC测试库不能连接,报ORA-00257错误,截图如下:
ORA-00257.png
错误原因是很常见的‘归档日志’写满‘快闪恢复区’(flash recovery area)导致的问题。解决方法如下:
一、删除过期的归档文件;
二、修改快闪恢复区(flash recovery area)的大小;

具体操作步骤如下:
1、使用sysdba用户登录查看archive log 存放位置:

查看是否启用归档模式
[oracle@ncdbtest2 ~]$ sqlplus  / as sysdba
SQL> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     3480
Next log sequence to archive   3480
Current log sequence           3482

查看archiv log所在位置
SQL> show parameter log_archive_dest_1;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_1                   string
log_archive_dest_10                  string
log_archive_dest_11                  string
log_archive_dest_12                  string
log_archive_dest_13                  string
log_archive_dest_14                  string
log_archive_dest_15                  string
log_archive_dest_16                  string
log_archive_dest_17                  string
log_archive_dest_18                  string
log_archive_dest_19                  string

默认log_archive_dest_1的VALUE值为空,代表了归档日志路径使用默认值,即使用快闪恢复区。
查看快闪恢复区最大值及目录地址
SQL> show parameter recover;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest                string      /data/app/oracle/fast_recovery
                                                 _area
db_recovery_file_dest_size           big integer 4182M
db_unrecoverable_scn_tracking        boolean     TRUE
recovery_parallelism                 integer     0

查看快闪恢复区flash_recovery_area使用情况
[oracle@ncdbtest2 oracle]$ du -h --max-depth=1 /data/app/oracle/fast_recovery_area/
4.1G    /data/app/oracle/fast_recovery_area/ORCL
9.4M    /data/app/oracle/fast_recovery_area/orcl
4.1G    /data/app/oracle/fast_recovery_area/
磁盘使用已经达到的快闪恢复区(4182M)的最大值.

登录rman,检查一些无用的archivelog

rman target /
RMAN> crosscheck archivelog all;    ——检查所有归档日志
RMAN> delete expired archivelog all;    ——删除过期的归档日志
RMAN> delete archivelog until time 'sysdate-1' ; 删除截止到前一天的所有archivelog
问题解决,系统已经可以使用

扩大快闪恢复区(flash recovery area)的大小为50G:

SQL> alter system set db_recovery_file_dest_size=50G scope=both;

System altered.

查看调整后的状态:
SQL> show parameter recover;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest                string      /data/app/oracle/fast_recovery
                                                 _area
db_recovery_file_dest_size           big integer 50G
db_unrecoverable_scn_tracking        boolean     TRUE
recovery_parallelism                 integer     0
SQL> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     3480
Next log sequence to archive   3483
Current log sequence           3483

归档模式下日志应定期清理,要么会卡住,引起事故。

Tags标签: 日志,归档,rman Tags相关文章如下:

上一篇:MySQL8.0.21连接报错Plugin caching_sha2_password could not be loaded解决方法

下一篇:MySQL 8.0.21重置root密码