1.切换用户
su - oracle
2.切换实例
export ORACLE_SID=instancename(ORACLE_SID请大写,实例名大小写敏感)
3.登录dba用户
sqlplus / as sysdba
4.登录普通用户
sqlplus 'username/"password"'@sid 这样的写法可以解决密码有@字符的情况
5.查看归档日志路径
select dest_id,destination from v$archive_dest where dest_id=1;(不太好用)
SELECT NAME, VALUE FROM V$PARAMETER WHERE NAME LIKE 'log_archive_dest%'
ORDER BY NAME;
可以使用rman查询,第一步:先确认当前实例是否正确,第二步:登录rman执行语法 list archivelog all;
6.模糊查询文件名
find /u01 -name '*archivelog*'
7.删除某段时间以前的文件
tips:-f表示强制删除,不加-r则只能删除文件,如果路径有目录则需添加-r
find /path/to/directory -type f -mtime +90 -exec rm -f {} \;
find /path/to/directory -type f -mtime +90 | xargs rm -f;
8.查看当前目录的各文件磁盘大小
du -sh *
9删除归档日志后,使其生效
首先确认当前的实例名是否正确,查看当前监听状态lrsnctl stat
切换实例export ORACLE_SID=pay
用RMAN维护控制文件
1.进入rman
oracle> rman
2.连接到目标数据库
RMAN> connect target /;
3.查看所有日志情况
RMAN> list archivelog all;
#查看过期日志情况
RMAN> list expired archivelog all;
4.检查一些无用的archivelog
RMAN> crosscheck archivelog all;
5.删除截止到前一天的所有archivelog #这个时间自己定
RMAN> DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-1';
注:
SQL> show parameter control_file_record_keep_time; $查看控制文件保留的时长天数。
RMAN> delete archivelog all completed before 'sysdate-7';
6.删除过期的归档
RMAN> delete expired archivelog all;
10.查看数据库监听状态
lsnrctl stat