但行好事
莫论前程❤

Oracle数据库的归档和闪回开关

一、归档的开关

Oracle分为非归档模式(NOARCHIVELOG) 和归档模式(ARCHIVELOG)。非归档模式不产生归档日志,虽然节省了硬盘空间,但是备份方案选择很有限,通常只能选择冷备份。还原也只能还原到备份那一时刻的数据,通常也仅在开发时使用(据说在数据仓库中也使用),Oracle安装默认就是非归档模式。在生产环境中我们因该使用归档模式,它会产生归档日志,可以使用多种备份和还原方案,对与Oracle管理员来说应该更改模式是必然的选择。

0、 以操作系统权限认证的oracle sys管理员登陆

sqlplus / as sysdba

1、查看归档是否开启:

SQL> select name,log_mode from v$database;
#  也可以用下面的语句
SQL> archive log list;(该方法需要as sysdba)

2、设置归档路径

SQL> alter system set log_archive_dest_1='location=d:\arch2';

3、开启数据库归档

SQL> shutdown immediate;     # 关闭数据库
SQL> startup mount;         # 启动到mount状态
SQL> alter database archivelog;   # 开启数据库归档
SQL> alter database open;    # 打开数据库

4、关闭数据库归档

SQL> shutdown immediate;
SQL> startup mount;
SQL> alter database noarchivelog;
SQL> alter database open;

二、删除归档日志

1. su - oracle  # 进入oracle账户
2. sqlplus / as sysdba  # 以操作系统权限认证的oracle sys管理员登陆
3. archive log list     # 查看数据库的归档模式 
                          # 注意:输入archive log list会显示出USE_DB_RECOVERY_FILE_DEST
4. select * from V$RECOVERY_FILE_DEST;   #  查询归档日志空间大小及路径
5. show parameter recover;   # 显示归档文件路径
6. rman target sys/password  # 退出到oracle账户根目录然后进入rman输入以上命令进入rman 
7. RMAN> crosscheck archivelog all;    # 验证的DB的归档日志
8. RMAN> delete expired archivelog all; # 删除所有归档日志
9. RMAN>DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';  # 保留7天的归档日志
10. SQL> select * from V$RECOVERY_FILE_DEST;   # 再查 
11. SQL> alter system set db_recovery_file_dest_size=5G scope=both; # 修改大小

三、闪回区的开关

1、查看是否开启闪回区

SQL> select flashback_on from v$database;

2、设置闪回恢复区的大小

SQL> alter system set db_recovery_file_dest_size=30G scope=both;

3、设置闪回恢复区路径

SQL> alter system set db_recovery_file_dest='/u01/flashback' scope=both;

4、开启闪回

SQL> shutdown immediate;
SQL> startup mount;
SQL> alter database flashback on; --开启闪回
SQL> alter database open;

5、关闭闪回

SQL> alter database flashback off;
赞(1) 打赏
未经允许不得转载:刘鹏博客 » Oracle数据库的归档和闪回开关
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏