Oracle 培训笔记 9.3 非归档模式备份恢复
来源:互联网 发布:win10 安装 ubuntu 编辑:程序博客网 时间:2024/05/16 16:19
1、环境准备
删除或禁用旧的数据库
创建一个数据库
关闭数据库
完全备份数据库(数据文件、控制文件、日志文件和参数文件)
启动数据库
2、备份内容
数据文件:备份
控制文件:备份
参数文件:参数文件修改后备份
归档日志:备份,冗余设置
密码文件:不用备份,丢失可重建
日志文件:冗余设置
网络配置文件:listener.ora tnsnames.ora
3、非归档模式备份
冷备份:关闭数据库,拷贝文件
不关闭数据库:offline状态,控制文件
4、模拟数据变化
create table t01(id number) tablespace users;
insert into t01 values(100);
commit;
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------------
1 1 10 52428800 1 NO INACTIVE 172868 03-9月 -11
2 1 11 52428800 1 NO CURRENT 186212 03-9月 -11
3 1 9 52428800 1 NO INACTIVE 157248 03-9月 -11
5、模拟数据文件损坏,可恢复
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 251658240 bytes
Fixed Size 1248356 bytes
Variable Size 79692700 bytes
Database Buffers 163577856 bytes
Redo Buffers 7139328 bytes
数据库装载完毕。
ORA-01157: 无法标识/锁定数据文件 4 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 4: 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\MYDB\USERS01.DBF'
SQL> select status from v$instance;
STATUS
------------
MOUNTED
还原数据文件:把备份的users01.dbf拷回
SQL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-01113: 文件 4 需要介质恢复
ORA-01110: 数据文件 4: 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\MYDB\USERS01.DBF'
SQL> select checkpoint_change# from v$database;
CHECKPOINT_CHANGE#
------------------
200481
SQL> select checkpoint_change#,last_change# from v$datafile;
CHECKPOINT_CHANGE# LAST_CHANGE#
------------------ ------------
200481 200481
200481 200481
200481 200481
200481 200481
SQL> select checkpoint_change# from v$datafile_header;
CHECKPOINT_CHANGE#
------------------
200481
200481
200481
199117
SQL> desc v$log_history;
名称 是否为空? 类型
----------------------------------------------------------------------------------------------------------------- -------- -------------------
RECID NUMBER
STAMP NUMBER
THREAD# NUMBER
SEQUENCE# NUMBER
FIRST_CHANGE# NUMBER
FIRST_TIME DATE
NEXT_CHANGE# NUMBER
RESETLOGS_CHANGE# NUMBER
RESETLOGS_TIME DATE
SQL> select sequence#,first_change#,next_change# from v$log_history;
SEQUENCE# FIRST_CHANGE# NEXT_CHANGE#
---------- ------------- ------------
1 1 33790
2 33790 60807
3 60807 77256
4 77256 94417
5 94417 107694
6 107694 124201
7 124201 138119
8 138119 157248
9 157248 172868
10 172868 186212
已选择10行。
SQL> recover datafile 4;
完成介质恢复。
或者 recover database;
SQL> alter database open;
数据库已更改。
SQL> select * from t01;
ID
----------
100
6、模拟数据文件损坏,不可恢复
insert into t01 values(200);
commit;
alter system switch logfile;
insert into t01 values(300);
commit;
alter system switch logfile;
insert into t01 values(400);
commit;
alter system switch logfile;
insert into t01 values(500);
commit;
alter system switch logfile;
insert into t01 values(600);
commit;
alter system switch logfile;
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------------
1 1 16 52428800 1 NO CURRENT 204268 03-9月 -11
2 1 14 52428800 1 NO ACTIVE 204257 03-9月 -11
3 1 15 52428800 1 NO ACTIVE 204261 03-9月 -11
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 251658240 bytes
Fixed Size 1248356 bytes
Variable Size 79692700 bytes
Database Buffers 163577856 bytes
Redo Buffers 7139328 bytes
数据库装载完毕。
ORA-01157: 无法标识/锁定数据文件 4 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 4: 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\MYDB\USERS01.DBF'
还原数据文件
SQL> select checkpoint_change# from v$database;
CHECKPOINT_CHANGE#
------------------
204618
SQL> select checkpoint_change#,last_change# from v$datafile;
CHECKPOINT_CHANGE# LAST_CHANGE#
------------------ ------------
204618 204618
204618 204618
204618 204618
204618 204618
SQL> select checkpoint_change# from v$datafile_header;
CHECKPOINT_CHANGE#
------------------
204618
204618
204618
199117
SQL> select sequence#,first_change#,next_change# from v$log_history;
SEQUENCE# FIRST_CHANGE# NEXT_CHANGE#
---------- ------------- ------------
1 1 33790
2 33790 60807
3 60807 77256
4 77256 94417
5 94417 107694
6 107694 124201
7 124201 138119
8 138119 157248
9 157248 172868
10 172868 186212
11 186212 204248
SEQUENCE# FIRST_CHANGE# NEXT_CHANGE#
---------- ------------- ------------
12 204248 204252
13 204252 204257
14 204257 204261
15 204261 204268
已选择15行。
SQL> select * from v$recover_file;
FILE# ONLINE ONLINE_ ERROR CHANGE# TIME
---------- ------- ------- ----------------------------------------------------------------- ---------- --------------
4 ONLINE ONLINE 199117 03-9月 -11
SQL> select * from v$recovery_log;
THREAD# SEQUENCE# TIME
---------- ---------- --------------
ARCHIVE_NAME
-------------------------------------------------------------------------------------------------------------------------
1 11 03-9月 -11
1 12 03-9月 -11
1 13 03-9月 -11
SQL> recover datafile 4;
ORA-00279: 更改 199117 (在 09/03/2011 09:44:18 生成) 对于线程 1 是必需的
ORA-00289: 建议: E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\MYDB\ARCHIVELOG\2011_09_03\O1_MF_1_11_%U_.ARC
ORA-00280: 更改 199117 (用于线程 1) 在序列 #11 中
指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
cancel
介质恢复已取消。
SQL> shutdown immediate
ORA-01109: 数据库未打开
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 251658240 bytes
Fixed Size 1248356 bytes
Variable Size 79692700 bytes
Database Buffers 163577856 bytes
Redo Buffers 7139328 bytes
数据库装载完毕。
数据库已经打开。
7、非归档模式在线备份
SQL> create table t01(id number) tablespace users;
表已创建。
SQL> insert into t01 values(10);
已创建 1 行。
SQL> commit;
提交完成。
7.1 备份offline状态下的数据文件
SQL> alter tablespace users offline;
拷贝数据文件
SQL> alter tablespace users online;
SQL> insert into t01 values(20);
SQL> commit;
模拟数据文件损坏,将表空间offline,然后还原备份的文件,恢复
SQL> alter tablespace users offline;
还原备份的文件,执行recover
SQL> recover datafile 4;
完成介质恢复。
SQL> alter tablespace users online;
表空间已更改。
SQL> select * from t01;
ID
----------
10
20
7.2 备份read only状态的数据文件
SQL> alter tablespace users read only;
将数据文件备份
数据库变化不影响只读表空间,如果只读表空间数据文件损坏,将备份的文件拷回
即可使用
删除或禁用旧的数据库
创建一个数据库
关闭数据库
完全备份数据库(数据文件、控制文件、日志文件和参数文件)
启动数据库
2、备份内容
数据文件:备份
控制文件:备份
参数文件:参数文件修改后备份
归档日志:备份,冗余设置
密码文件:不用备份,丢失可重建
日志文件:冗余设置
网络配置文件:listener.ora tnsnames.ora
3、非归档模式备份
冷备份:关闭数据库,拷贝文件
不关闭数据库:offline状态,控制文件
4、模拟数据变化
create table t01(id number) tablespace users;
insert into t01 values(100);
commit;
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------------
1 1 10 52428800 1 NO INACTIVE 172868 03-9月 -11
2 1 11 52428800 1 NO CURRENT 186212 03-9月 -11
3 1 9 52428800 1 NO INACTIVE 157248 03-9月 -11
5、模拟数据文件损坏,可恢复
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 251658240 bytes
Fixed Size 1248356 bytes
Variable Size 79692700 bytes
Database Buffers 163577856 bytes
Redo Buffers 7139328 bytes
数据库装载完毕。
ORA-01157: 无法标识/锁定数据文件 4 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 4: 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\MYDB\USERS01.DBF'
SQL> select status from v$instance;
STATUS
------------
MOUNTED
还原数据文件:把备份的users01.dbf拷回
SQL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-01113: 文件 4 需要介质恢复
ORA-01110: 数据文件 4: 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\MYDB\USERS01.DBF'
SQL> select checkpoint_change# from v$database;
CHECKPOINT_CHANGE#
------------------
200481
SQL> select checkpoint_change#,last_change# from v$datafile;
CHECKPOINT_CHANGE# LAST_CHANGE#
------------------ ------------
200481 200481
200481 200481
200481 200481
200481 200481
SQL> select checkpoint_change# from v$datafile_header;
CHECKPOINT_CHANGE#
------------------
200481
200481
200481
199117
SQL> desc v$log_history;
名称 是否为空? 类型
----------------------------------------------------------------------------------------------------------------- -------- -------------------
RECID NUMBER
STAMP NUMBER
THREAD# NUMBER
SEQUENCE# NUMBER
FIRST_CHANGE# NUMBER
FIRST_TIME DATE
NEXT_CHANGE# NUMBER
RESETLOGS_CHANGE# NUMBER
RESETLOGS_TIME DATE
SQL> select sequence#,first_change#,next_change# from v$log_history;
SEQUENCE# FIRST_CHANGE# NEXT_CHANGE#
---------- ------------- ------------
1 1 33790
2 33790 60807
3 60807 77256
4 77256 94417
5 94417 107694
6 107694 124201
7 124201 138119
8 138119 157248
9 157248 172868
10 172868 186212
已选择10行。
SQL> recover datafile 4;
完成介质恢复。
或者 recover database;
SQL> alter database open;
数据库已更改。
SQL> select * from t01;
ID
----------
100
6、模拟数据文件损坏,不可恢复
insert into t01 values(200);
commit;
alter system switch logfile;
insert into t01 values(300);
commit;
alter system switch logfile;
insert into t01 values(400);
commit;
alter system switch logfile;
insert into t01 values(500);
commit;
alter system switch logfile;
insert into t01 values(600);
commit;
alter system switch logfile;
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------------
1 1 16 52428800 1 NO CURRENT 204268 03-9月 -11
2 1 14 52428800 1 NO ACTIVE 204257 03-9月 -11
3 1 15 52428800 1 NO ACTIVE 204261 03-9月 -11
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 251658240 bytes
Fixed Size 1248356 bytes
Variable Size 79692700 bytes
Database Buffers 163577856 bytes
Redo Buffers 7139328 bytes
数据库装载完毕。
ORA-01157: 无法标识/锁定数据文件 4 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 4: 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\MYDB\USERS01.DBF'
还原数据文件
SQL> select checkpoint_change# from v$database;
CHECKPOINT_CHANGE#
------------------
204618
SQL> select checkpoint_change#,last_change# from v$datafile;
CHECKPOINT_CHANGE# LAST_CHANGE#
------------------ ------------
204618 204618
204618 204618
204618 204618
204618 204618
SQL> select checkpoint_change# from v$datafile_header;
CHECKPOINT_CHANGE#
------------------
204618
204618
204618
199117
SQL> select sequence#,first_change#,next_change# from v$log_history;
SEQUENCE# FIRST_CHANGE# NEXT_CHANGE#
---------- ------------- ------------
1 1 33790
2 33790 60807
3 60807 77256
4 77256 94417
5 94417 107694
6 107694 124201
7 124201 138119
8 138119 157248
9 157248 172868
10 172868 186212
11 186212 204248
SEQUENCE# FIRST_CHANGE# NEXT_CHANGE#
---------- ------------- ------------
12 204248 204252
13 204252 204257
14 204257 204261
15 204261 204268
已选择15行。
SQL> select * from v$recover_file;
FILE# ONLINE ONLINE_ ERROR CHANGE# TIME
---------- ------- ------- ----------------------------------------------------------------- ---------- --------------
4 ONLINE ONLINE 199117 03-9月 -11
SQL> select * from v$recovery_log;
THREAD# SEQUENCE# TIME
---------- ---------- --------------
ARCHIVE_NAME
-------------------------------------------------------------------------------------------------------------------------
1 11 03-9月 -11
1 12 03-9月 -11
1 13 03-9月 -11
SQL> recover datafile 4;
ORA-00279: 更改 199117 (在 09/03/2011 09:44:18 生成) 对于线程 1 是必需的
ORA-00289: 建议: E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\MYDB\ARCHIVELOG\2011_09_03\O1_MF_1_11_%U_.ARC
ORA-00280: 更改 199117 (用于线程 1) 在序列 #11 中
指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
cancel
介质恢复已取消。
SQL> shutdown immediate
ORA-01109: 数据库未打开
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 251658240 bytes
Fixed Size 1248356 bytes
Variable Size 79692700 bytes
Database Buffers 163577856 bytes
Redo Buffers 7139328 bytes
数据库装载完毕。
数据库已经打开。
7、非归档模式在线备份
SQL> create table t01(id number) tablespace users;
表已创建。
SQL> insert into t01 values(10);
已创建 1 行。
SQL> commit;
提交完成。
7.1 备份offline状态下的数据文件
SQL> alter tablespace users offline;
拷贝数据文件
SQL> alter tablespace users online;
SQL> insert into t01 values(20);
SQL> commit;
模拟数据文件损坏,将表空间offline,然后还原备份的文件,恢复
SQL> alter tablespace users offline;
还原备份的文件,执行recover
SQL> recover datafile 4;
完成介质恢复。
SQL> alter tablespace users online;
表空间已更改。
SQL> select * from t01;
ID
----------
10
20
7.2 备份read only状态的数据文件
SQL> alter tablespace users read only;
将数据文件备份
数据库变化不影响只读表空间,如果只读表空间数据文件损坏,将备份的文件拷回
即可使用
- Oracle 培训笔记 9.3 非归档模式备份恢复
- Oracle 培训笔记 9.3 归档模式备份恢复
- oracle dba培训教程 第16章 非归档模式下的冷备份和恢复
- oracle 非归档模式下 冷备份恢复 目录不同迁移
- Oracle之RMAN数据库在非归档模式下的备份和恢复
- 非归档模式下RMAN备份的异机恢复
- Oracle恢复(二)------非归档模式下的恢复
- Oracle归档模式有备份,丢失数据文件的恢复
- Oracle归档模式无备份,丢失数据文件的恢复
- Oracle-->数据库备份与恢复-->数据库库归档模式
- Oracle-->数据库备份与恢复-->数据库归档模式设置
- Oracle手工恢复案例(非归档模式)
- oracle非归档模式下物理文件删除恢复
- Oracle 非归档模式下 的备份 迁移
- 非归档模式数据库恢复
- 非归档模式 数据备份
- 非归档模式备份练习
- 备份基础相关-042】【查看当前是归档还是非归档模式】【非归档模式切换到归档模式】【是否使用闪回恢复区修改归档日志格式】【修改归档日志使用闪回恢复区】
- Oracle 培训笔记 9.3 归档模式备份恢复
- linux库
- 设计模式1:单例模式、工厂模式
- 上周学习内容(周二)
- 七款实用网站开发测试工具横向比较
- Oracle 培训笔记 9.3 非归档模式备份恢复
- POSIX多线程编程
- 上周学习内容大放送(周三)
- Oracle 培训笔记 9.4 闪回
- 上周学习内容大放送(周四)
- Oracle 培训笔记 9.4 rman
- 归并排序的实现
- 简单统计
- 流氓软件及反流氓软件的技术分析1