联机日志损坏时的恢复(正常关闭数据库),创建一个表T2插入两行数据,第一行数据写如果归档日志,第二行数据在联机日志中。
1.创建一个表t2插入两行数据,第一行数据写如果归档日志,第二行数据在联机日志中
sql> create table t2(
a1 number(10),
a2 char(10)) tablespace users;
sql> insert into t2 values (11,'aa');
sql> commit;
sql> alter system switch logfile;
sql> insert into t2 values(22,'bb');
sql> commit;
2.查询日志文件
sql> select member from v$logfile;
member
--------------------------------------------------------------------------------
/database/ykg/ykg1a.log
/database/ykg/ykg2a.log
3.正常关闭数据库
sql> shutdown immediate
database closed.
database dismounted.
oracle instance shut down.
4.模拟联机日志文件损坏
sql> host rm -rf /database/ykg/ykg*.log
5.正常启动数据库报错
sql> startup
oracle instance started.
total system global area 293601280 bytes
fixed size 2020392 bytes
variable size 92277720 bytes
database buffers 197132288 bytes
redo buffers 2170880 bytes
database mounted.
ora-00313: open failed for members of log group 1 of thread 1
ora-00312: online log 1 thread 1: '/database/ykg/ykg1a.log'
6.查看当前联机日志的sequence号
sql> archive log list;
database log mode archive mode
automatic archival enabled
archive destination use_db_recovery_file_dest
oldest online log sequence 191
next log sequence to archive 192
current log sequence 192
7.假装执行不完全恢复来恢复日志组
rman> run {
2> recover database until sequence 193 thread 1;
3> alter database open resetlogs;}
8.验证日志成员已恢复,数据没有丢失
sql> select member from v$logfile;
member
--------------------------------------------------------------------------------
/database/ykg/ykg1a.log
/database/ykg/ykg2a.log

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号