Oracle数据库启动出现ORA-27101错误之ORA-19815处理方式及数据备份

ORA-27101: sharedmemory realm does not exist之ORA-19815处理

重启数据库(数据库:muphy),登陆是越到错误:

ORA-27101: shared memory realm does notexist

首先越到错误查看警告日志alert_muphy.log

Wed Dec 12 22:19:36 2018

Errors in file D:\APP\ORCL\diag\rdbms\muphy\muphy\trace\muphy_m000_5020.trc:

ORA-19815: WARNING:db_recovery_file_dest_size of 2147483648 bytes is 100.00% used, and has 0remaining bytes available.Wed Dec 12 22:19:36 2018

************************************************************************

You have following choices to free up spacefrom recovery area:

1. Consider changing RMAN RETENTION POLICY.If you are using Data Guard,

then consider changing RMAN ARCHIVELOG DELETION POLICY.

2. Back up files to tertiary device such astape using RMAN

BACKUP RECOVERY AREA command.

3. Add disk space and increasedb_recovery_file_dest_size parameter to

reflect the new space.

4. Delete unnecessary files using RMANDELETE command. If an operating

system command was used to delete files, then use RMAN CROSSCHECK and

DELETE EXPIRED commands.

从这段话看出来错误的原因是归档日志文件分配的空间已经使用完成

解决办法1

备份和数据库并整理归档日志文件,顺便学习一下rman的使用

rman全库备份

backupdatabase;(未压缩),或者 backup as compressed backupsetdatabase; (压缩)

命令查看备份信息

listbackupset;

如果需要压缩备份全库及归档日志可以执行如下命令:

backupas compressed backupset database plus archivelog;

rman增量备份

1.      零级备份

backupincremental level 0 database;或者 backup incremental level =0 database;

增量备份都需要一个0级备份为基础,0级备份与全备份的区别在于0级可以用来增量恢复,而全备份则不可以

2.      一级差异增量

backupincremental level 1 database;

差异增量(Differential):是备份低级别或者相同级别备份以来变化的所有数据块,顾名思议,也就是要备前期备份以来的差异数据块

若前面的备份同时存在低级别和相同级别,则优先选择备份从最近的低级别(n-1)以来变化的数据块,

若没有n-1级别备份,则选择备份同级别备份以来变化的数据块,

若没有同级别的备份,则备份更低级别以来(n-x)变化的数据

若前面同时有n-1级别和相同级别,则备份相同级别以来变化的数据

3.      一级累计增量

backupincremental level 1 cumulative database;

累积增量(Cumulative):是备份n-1级别(上级)或更低级别以来变化的所有数据块

若前面的备份同时存在低级别和n-1级别,则优先选择备份从n-1级别以来变化的数据块

若没有n-1级别,则备更低级别的(n-x)

删除归档日志

--->校验日志的可用性

crosscheckarchivelog all;

--->列出所有失效的归档日志

listexpired archivelog all;

--->删除log sequence为16及16之前的所有归档日志

deletearchivelog until sequence 16;

--->删除系统时间7天以前的归档日志,不会删除闪回区有效的归档日志

deletearchivelog all completed before 'sysdate-7';

--->同上,1天以前的

deletearchivelog all completed before 'sysdate - 1';

--->注意这个命令,删除系统时间1天以内到现在的归档日志

deletearchivelog from time 'sysdate-1';

--->该命令清除所有的归档日志

deletenoprompt archivelog all completed before 'sysdate';

--->同上一命令

deletenoprompt archivelog all;

重启数据库

SYS@muphy>startup

ORACLE例程已经启动。

Total System Global Area  411041792 bytes

Fixed Size                  3046272 bytes

Variable Size             322962560 bytes

Database Buffers           79691776 bytes

Redo Buffers                5341184 bytes

数据库装载完毕。

数据库已经打开。

检查空间使用情况

selece* from v$flash_recovery_area_usage;

解决办法2

还可以通过扩大个缓冲区大小来暂时缓解,但这种方法应属于指标不治本。

1.        数据库没法启动的情况

重命名SPFILEMUPHY.ORA为SPFILEMUPHY_bak.ORA

修改参数文件INITmuphy.ORA

将*.db_recovery_file_dest_size=6420m的参数6420m改为8192m

重启数据库Startup命令

重新创建spfile文件

Createspfile from pfile

2.        数据库可以启动的情况

altersystem set db_recovery_file_dest_size=4G scope=both;

上一篇:oracle数据库--启动和关闭


下一篇:e_msg_c_as_login_req 和 e_msg_c_as_login_if_no_register_req