首页 技术 正文
技术 2022年11月23日
0 收藏 884 点赞 3,153 浏览 3955 个字

出现ORA-00257错误(空间不足错误),通过查找资料,绝大部分说这是由于归档日志太多,占用了全部的硬盘剩余空间导致的,通过简单删除日志或加大存储空间就能够解决。

(一)、oralce 11g更改归档模式、目录、日志大小(本人采用的这种做法

一、更改Oracle为归档模式
   1.关闭oracle
SQL> shutdown immediate;
   Database closed.
   Database dismounted.
   ORACLE instance shut down.

    2.启动为mount状态
SQL> startup mount

ORACLE instance started.

Total System Global Area 2572144640 bytes
Fixed Size                  2283984 bytes
Variable Size             738199088 bytes
Database Buffers         1828716544 bytes
Redo Buffers                2945024 bytes
Database mounted.

3.更改为归档模式
SQL>   alter database archivelog
  Database altered.
备注:‘archivelog’为 归档模式;‘noarchivelog’为非归档模式。

4.更改数据库为‘打开’状态
SQL>  alter database open

5.查看归档模式信息
SQL>   archvie log list
它会提示归档的模式、是否启用、参数
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     88
Next log sequence to archive   90
Current log sequence           90

二、更改归档目录
   1.查看参数db_recovery_file_dest

(1)“db_recovery_file_dest”是用于定义存储归档日志的目录。通过show parameter命令,显示参数的值为(默认为)fast_recovery_area。示例如下:

SQL> show parameter db_recovery

NAME                                 TYPE        VALUE
———————————— ———– ——————————
db_recovery_file_dest                string      /usr/local/oracle/flash_recovery_area
db_recovery_file_dest_size           big integer 4182M

(2)查看v$recovery_file_dest视图,可得知fast_recovery_area的空间限制、已使用的空间、文件数等。

SQL> select * from v$recovery_file_dest;

NAME     SPACE_LIMIT      SPACE_USED     SPACE_RECLAIMABLE     NUMBER_OF_FILES
———– ———- —————– —————
D:\oracle\fast_recovery_area  4385144832    4346230272           2741248             102

2.更改归档日志目录
   语法:alter system set   参数=值  scope=spfile;(设置成比较大的空间的目录,我这里是设置成了home下面)

示例:SQL> alter system set db_recovery_file_dest=’/home/oracle/flash_recovery_area’ scope=spfile;

System altered.

三、更改归档日志大小

1.查看参数’db_recovery_file_dest_size’值
SQL> show parameter db_recov

NAME                                 TYPE        VALUE
———————————— ———– ——————————
db_recovery_file_dest                string      /usr/local/oracle/flash_recovery_area
db_recovery_file_dest_size           big integer 4182M

2.更改参数’db_recovery_file_dest_size’值大小

SQL> alter system set db_recovery_file_dest_size=41820M scope=spfile;

System altered.

3.关闭数据库,重启数据库

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

SQL> startup open;
ORACLE instance started.

Total System Global Area 2572144640 bytes
Fixed Size                  2283984 bytes
Variable Size             738199088 bytes
Database Buffers         1828716544 bytes
Redo Buffers                2945024 bytes
Database mounted.
Database opened.

4.再次查看参数’db_recovery_file_dest_size’值
SQL> show parameter db_reco
NAME                                 TYPE        VALUE
———————————— ———– ——————————
db_recovery_file_dest                string      /home/oracle/flash_recovery_area
db_recovery_file_dest_size           big integer 41820M

此时重启之后,就可以了。

=========================================================================

(以下仅供参考)

(二)、百度经验的解决方案:如下

解决:

1、

SecureCRT登录服务器,切换用户oracle,连接oracle

[root@userbeta~]# su – oracle

[oracle@userbeta~]$ sqlplus /nolog

SQL> connect /as sysdba

2、

检查flash recovery area的使用情况,可以看见archivelog已经很大了,达到99.94

SQL> select * from V$FLASH_RECOVERY_AREA_USAGE;

3、

计算flash recovery area已经占用的空间

SQL> select sum(percent_space_used)*3/100 from v$flash_recovery_area_usage;

以上是检查,可以直接设置归档文件大大小,如下:

4、

修改FLASH_RECOVERY_AREA的空间修改为6GB,修改前确认磁盘有足够空间

SQL> ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE=8g;

5、

现在来清理一下archivelog归档日志,生产环境建议备份

查询日志目录位置

show parameter recover;

删除归档日志,USERDB是数据库实例名

cd /u01/app/oracle/flash_recovery_area/USERDB/archivelog

使用root帐户删除该目录下的文件或者备份其它地方

6、

使用rman 操作,内容太多,只做部分截图

[oracle@userbeta archivelog]$ rman

RMAN> connect target sys/sys_passwd

crosscheck backup;

delete obsolete;

delete expired backup;

crosscheck archivelog all;

delete expired archivelog all;

//此步会有提示,输入 YES 回车

host;   //退出rman

7、

确认是否操作成功

#  sqlplus /nolog

SQL>  connect /as sysdba

SQL> select * from V$FLASH_RECOVERY_AREA_USAGE;

8、删除完成,重新连接数据库

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,958
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,482
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,328
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,111
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,743
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,777