Docs/数据库/oracle/归档日志及备份处理.md

173 lines
5.3 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 归档
## 关闭归档
```sql
archive log list; #查看是否是归档方式
alter system set log_archive_start=false scope=spfile; #禁用自动归档
shutdown immediate;
startup mount; #打开控制文件,不打开数据文件
alter database noarchivelog; #将数据库切换为非归档模式
alter database open; #将数据文件打开
archive log list; #查看此时便处于非归档模式
```
## 开启归档
```sql
# 关闭oracle
shutdown immediate;
# 启动为mount状态
startup mount
# 更改为归档模式
alter database archivelog
# 更改数据库为‘打开’状态
alter database open
```
## 查看归档日志使用情况
```sql
sqlplus / as sysdba
select * from v$recovery_file_dest;
select * from V$FLASH_RECOVERY_AREA_USAGE;
```
## 按小时统计归档量
```sql
SELECT SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH:MI:SS'),1,5) Day,
SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'),10,2),'00',1,0)) H00,
SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'),10,2),'01',1,0)) H01,
SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'),10,2),'02',1,0)) H02,
SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'),10,2),'03',1,0)) H03,
SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'),10,2),'04',1,0)) H04,
SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'),10,2),'05',1,0)) H05,
SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'),10,2),'06',1,0)) H06,
SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'),10,2),'07',1,0)) H07,
SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'),10,2),'08',1,0)) H08,
SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'),10,2),'09',1,0)) H09,
SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'),10,2),'10',1,0)) H10,
SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'),10,2),'11',1,0)) H11,
SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'),10,2),'12',1,0)) H12,
SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'),10,2),'13',1,0)) H13,
SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'),10,2),'14',1,0)) H14,
SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'),10,2),'15',1,0)) H15,
SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'),10,2),'16',1,0)) H16,
SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'),10,2),'17',1,0)) H17,
SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'),10,2),'18',1,0)) H18,
SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'),10,2),'19',1,0)) H19,
SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'),10,2),'20',1,0)) H20,
SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'),10,2),'21',1,0)) H21,
SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'),10,2),'22',1,0)) H22,
SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'),10,2),'23',1,0)) H23,
COUNT(*) TOTAL
FROM v$log_history a
WHERE first_time>=to_char(sysdate-11)
GROUP BY SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH:MI:SS'),1,5)
ORDER BY SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH:MI:SS'),1,5) DESC;
```
## 查询日志目录位置
```sql
show parameter recover;
```
## 计算fast_recovery_area已经占用的空间
```sql
select sum(percent_space_used)*3/100 from v$flash_recovery_area_usage;
```
## 修改fast_recovery_aread的空间
```sql
ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE=8g;
```
## rman登录
```sql
rman target /
```
## 删除过期归档日志
```sql
# 检查日志
crosscheck archivelog all;
# 删除提示
delete expired archivelog all;
# 无删除提示
delete noprompt expired archivelog all;
```
## 删除所有的Archivelog files
```sql
delete archivelog all; 
```
## 删除昨天以前的归档日志
```sql
# 无删除提示
delete noprompt archivelog until time 'sysdate-1';
# 强制删除昨天之前的日志
delete force archivelog until time 'sysdate-1';
# 无提示强制删除昨天之前的日志
delete noprompt force archivelog until time 'sysdate -1';
```
# 备份
## 列出备份信息
```sql
list backup;
list backup summary;
list backup of database;
list backup of tablespace table_name;
list backup of controlfile;
list backup of spfile;
list backupset id;
```
## 校验备份
```sql
crosscheck backup;
crosscheck backup of database;
crosscheck backup of tablespace system;
crosscheck backup of controlfile;
crosscheck backup of spfile;
crosscheck backup of archivelog all;
```
## 删除陈旧备份
```sql
delete obsolete;
delete noprompt obsolete;
```
## 删除所有expired的备份包括归档日志、控制文件、备份聚
```sql
delete expired backup;
```
## 删除所有备份
```sql
delete backup;
```
## 删除指定tag备份
```sql
delete backup tag xxx;
```
## 改为长期备份
```sql
change backupset id unavailable;
change backupset id keep forever logs;
change backupset id keep until time 'sysdate+30' logs;
change backupset id nokeep;
```
## 改为基于时间的备份
```sql
configure retention policy to recovery window of 30 days;
```
# 其他
## 显示rman配置
```sql
show all;
```
## 报告目标数据库的物理结构
```sql
report schema;
```
## 报告陈旧备份
```sql
report obsolete;
```
## 报告不可恢复的数据文件
```sql
report unrecoverable;
```
## 改为基于冗余数量的备份
```sql
configure retention policy to redundancy n ;
```
## 取消备份保留策略
```sql
configure retention policy to none;
```