系统用户登录:
sqlplus / as sysdba
-- 登录失败
ERROR:
ORA-09817: Write to audit file failed.
Linux-x86_64 Error: 28: No space left on device
Additional information: 12
ORA-01075: you are currently logged on
df -h
/dev/sda6 121G 121G 0 100% /home
cd /home
# 查看文件或目录所占用的磁盘空间的大小
du -ah --max-depth=1
# du命令查询 -a显示目录占用的磁盘空间大小 h人类能看懂的方式 --max-depth目录的深度为1
82G ./oracle
进入 oracle 或者 home 临时移走/删除某些文件腾出一点空间,进行后续的操作。
-- 看看archive log所在位置
show parameter log_archive_dest;
-- 结果VALUE为空时,可以用archive log list,检查一下归档目录和log sequence
archive log list;
-- 检查flash recovery area的使用情况
-- 可以看见archivelog已经很大了,达到96.62
select * from V$FLASH_RECOVERY_AREA_USAGE;
-- 计算flash recovery area已经占用的空间
select sum(percent_space_used)*3/100 from v$flash_recovery_area_usage;
-- 找到recovery目录, show parameter recover
show parameter recover;
转移或清除对应的归档日志, 删除一些不用的日期目录的文件,注意保留最后几个文件。
**注意: **
在删除归档日志后,必须用RMAN维护控制文件,否则空间显示仍然不释放。
-- RMAN维护
rman target sys/syspwd
-- 检查一些无用的archivelog
crosscheck archivelog all;
-- 删除过期的归档
delete expired archivelog all;
-- 也可以删除截止到前一天的所有archivelog(或指定180天前之类)
delete archivelog until time 'sysdate-1' ;
-- 成功输出
Deleted 999 objects
-- 检查flash recovery area的使用情况
select * from V$FLASH_RECOVERY_AREA_USAGE;
如果前面移走的文件,记得挪回来。
当前还没有观点发布,欢迎您留下足迹!
很多运维人员习惯采用默认安装的方式安装Oracle数据库,而Oracle日志默认放置在/opt目录下,绝大多数Linux环境的大磁盘往往挂载在/home,因此经常会出现磁盘空间不足的情况,采用本文配置可指定并迁移日志
Linux系统下的Oracle数据库实用常用的维护命令整理,本文内容偏向运维,主要包含:基础启动重启、表空间维护、数据库角色与用户维护、字符集配置等,并给出各类场景的实例语句
存储过程是个好东西,WEB工程在架构阶段会设计很多存储过程,后续在架构中开发需求的时候,反而会直接写SQL完成各项诉求。所以说,这玩意儿略微有那么一点点伪高端。
Oracle 9i版本引入MERGE INTO语句,其主要用于实现条件入库能力,用于解决对于已有数据更新升级的情况,即可实现不存在数据则插入,存在数据则更新的分支判断形式的更新能力
对于数据库而言,多表连接操作可以算的上是基本操作,在 MongoDB 通过 $lookup 聚合查询可以实现多表左连接查询,在后续的版本中 $lookup 得到了一系列的增强,实现更为复杂的关联查询
当我们需要清理或删除某张表或数据的时候,通常会有采取DELETE、TRUNCATE、DROP的任意一种形式的SQL语句,他们之间作用的对象不同所产生的效果也各不相同,包括执行结果和效率