08.08.28 实验
C:\Documents and Settings\6688>cd\
C:\>sqlplus "/ as sysdba"
SQL*Plus: Release 10.1.0.2.0 - Production on 星期四 8月 28 10:38:44 2008
Copyright (c) 1982, 2004, Oracle. All rights reserved.
连接到:
Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL>
SQL> create pfile from spfile;
文件已创建。
修改成复制库的 参数
*.background_dump_dest='d:\xhtest6\bdump'
*.compatible='10.1.0.2.0'
*.control_files='d:\xhtest6\control01.ctl'
*.core_dump_dest='d:\xhtest6\cdump'
*.db_block_size=8192
*.db_cache_size=25165824
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_name='xhtest6'
*.db_recovery_file_dest_size=2147483648
*.db_recovery_file_dest='d:\xhtest6'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=xhtestXDB)'
*.java_pool_size=50331648
*.job_queue_processes=10
*.large_pool_size=8388608
*.log_archive_dest_1='location=D:\xhtest6\archive'
*.open_cursors=300
*.pga_aggregate_target=25165824
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.shared_pool_size=200000000
*.sort_area_size=65536
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='d:\xhtest6\udump'
*.instance_name='xhtest6'
*.service_names='xhtest6'
SQL> create spfile='d:\rman复制参数\spfilexhtest6.ora' from pfile='d:\rman复制参
数\initxhtest6.ora';
文件已创建。
C:\>oradim -new -sid xhtest6 -intpwd a831115
例程已创建。
SQL> alter database begin backup;
数据库已更改。
SQL> @D:\oracle实验脚本\os备份数据文件.txt
已复制 1 个文件。
已复制 1 个文件。
已复制 1 个文件。
已复制 1 个文件。
已复制 1 个文件。
已复制 1 个文件。
SQL> alter database end backup;
数据库已更改。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~把文件都复制到xhtest6目录下
主库在 备份完数据文件后有些变化~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SQL> select * from test
2 ;
A
----------
8
8
444
2
99
989
6666
7777
8888
8
8
已选择11行。
SQL> insert into test values (898989);
已创建 1 行。
SQL> commit;
提交完成。
SQL> alter system switch logfile;
系统已更改。
SQL> insert into test values (595959);
已创建 1 行。
SQL> alter system switch logfile;
系统已更改。
SQL> insert into test values (6969696969);
已创建 1 行。
SQL> alter system archive log current;
系统已更改。
SQL> select * from test;
A
----------
8
8
444
2
99
989
6666
7777
8888
898989
595959
A
----------
6969696969
8
8
已选择14行。
SQL>
C:\>set oracle_sid=xhtest6
C:\>sqlplus "/ as sysdba"
SQL*Plus: Release 10.1.0.2.0 - Production on 星期四 8月 28 12:04:14 2008
Copyright (c) 1982, 2004, Oracle. All rights reserved.
已连接到空闲例程。
SQL> startup nomount;
ORACLE 例程已经启动。
Total System Global Area 289406976 bytes
Fixed Size 788552 bytes
Variable Size 263190456 bytes
Database Buffers 25165824 bytes
Redo Buffers 262144 bytes
SQL> @D:\oracle实验脚本\duplicate控制文件脚本.txt
控制文件已创建
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~复制所有备份文件到xhtest6目录
SQL>
SQL> startup force mount;
ORACLE 例程已经启动。
Total System Global Area 289406976 bytes
Fixed Size 788552 bytes
Variable Size 263190456 bytes
Database Buffers 25165824 bytes
Redo Buffers 262144 bytes
数据库装载完毕。
*
SQL> startup nomount
ORACLE 例程已经启动。
Total System Global Area 289406976 bytes
Fixed Size 788552 bytes
Variable Size 263190456 bytes
Database Buffers 25165824 bytes
Redo Buffers 262144 bytes
SQL> @D:\oracle实验脚本\duplicate控制文件脚本.txt
CREATE CONTROLFILE set DATABASE "XHTEST6" NORESETLOGS ARCHIVELOG~~~~~~~~~~~一个小实验, noresetlogs,控制文件需要redofile信息,但xhtest还没有redofile
*
第 1 行出现错误:
ORA-01503: CREATE CONTROLFILE ??
ORA-01223: ???? RESETLOGS ?????????
改成这样CREATE CONTROLFILE set DATABASE "XHTEST6" RESETLOGS ARCHIVELOG
SQL> @D:\oracle实验脚本\duplicate控制文件脚本.txt~~~~~~~~~~~~~~~~~~~ 创建好 ,直接就到了 mount加载状态
控制文件已创建
SQL>
SQL> select open_mode from v$database;
OPEN_MODE
----------
MOUNTED
SQL>
SQL> select checkpoint_change# from v$datafile_header;
CHECKPOINT_CHANGE#
------------------
2065273
2065273
2065273
2065273
2065273
2065273
已选择6行。
SQL> select checkpoint_change#,last_change# from v$datafile;
CHECKPOINT_CHANGE# LAST_CHANGE#
------------------ ------------
2065273
2065273
2065273
2065273
2065273
2065273
已选择6行。
SQL> select checkpoint_change# from v$database;
CHECKPOINT_CHANGE#
------------------
0
SQL>
SQL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-01589: ??????????? RESETLOGS ? NORESETLOGS ??
SQL> alter database open resetlogs;
alter database open resetlogs
*
第 1 行出现错误:
ORA-01195: ?? 1 ??????????????????
ORA-01110: ???? 1: 'D:\XHTEST6\SYSTEM01.DBF'
SQL> recover database;
ORA-00283: ??????????
ORA-01610: ?? BACKUP CONTROLFILE ??????????
SQL> set logsource 'F:\归档备份'
SQL> recover database using backup controlfile until cancel;
ORA-00279: ?? 2065273 (? 08/28/2008 11:58:54 ??) ???? 1 ????
ORA-00289: ??:
F:\F:\ORACLE\PRODUCT\10.1.0\DB_1F:\ORACLE\PRODUCT\10.1.0\DB_1F:\ORACLE\PRODUCT\1
0.1.0\DB_1F:\ORACLE\PRODUCT\10.1.0\DB_1ARC00084_0663689986.001
ORA-00280: ?? 2065273 (???? 1) ??? #84 ?
指定日志: {
auto
ORA-00308: ????????
'F:\F:\ORACLE\PRODUCT\10.1.0\DB_1F:\ORACLE\PRODUCT\10.1.0\DB_1F:\ORACLE\PRODUCT\
10.1.0\DB_1F:\ORACLE\PRODUCT\10.1.0\DB_1ARC00084_0663689986.001'
ORA-27041: ??????
OSD-04002: ????????????
O/S-Error: (OS 123) ????????????????????????????????
ORA-00308: ????????
'F:\F:\ORACLE\PRODUCT\10.1.0\DB_1F:\ORACLE\PRODUCT\10.1.0\DB_1F:\ORACLE\PRODUCT\
10.1.0\DB_1F:\ORACLE\PRODUCT\10.1.0\DB_1ARC00084_0663689986.001'
ORA-27041: ??????
OSD-04002: ????????????
O/S-Error: (OS 123) ????????????????????????????????
ORA-01547: ??: RECOVER ??? OPEN RESETLOGS ???????
ORA-01195: ?? 1 ??????????????????
ORA-01110: ???? 1: 'D:\XHTEST6\SYSTEM01.DBF'
SQL> alter database open resetlogs;
alter database open resetlogs
*
第 1 行出现错误:
ORA-01195: ?? 1 ??????????????????
ORA-01110: ???? 1: 'D:\XHTEST6\SYSTEM01.DBF'
SQL> recover database using backup controlfile until cancel;
ORA-00279: ?? 2065273 (? 08/28/2008 11:58:54 ??) ???? 1 ????
ORA-00289: ??:
F:\F:\ORACLE\PRODUCT\10.1.0\DB_1F:\ORACLE\PRODUCT\10.1.0\DB_1F:\ORACLE\PRODUCT\1
0.1.0\DB_1F:\ORACLE\PRODUCT\10.1.0\DB_1ARC00084_0663689986.001
ORA-00280: ?? 2065273 (???? 1) ??? #84 ?
指定日志: {
auto
ORA-00308: ????????
'F:\F:\ORACLE\PRODUCT\10.1.0\DB_1F:\ORACLE\PRODUCT\10.1.0\DB_1F:\ORACLE\PRODUCT\
10.1.0\DB_1F:\ORACLE\PRODUCT\10.1.0\DB_1ARC00084_0663689986.001'
ORA-27041: ??????
OSD-04002: ????????????
O/S-Error: (OS 123) ????????????????????????????????
ORA-00308: ????????
'F:\F:\ORACLE\PRODUCT\10.1.0\DB_1F:\ORACLE\PRODUCT\10.1.0\DB_1F:\ORACLE\PRODUCT\
10.1.0\DB_1F:\ORACLE\PRODUCT\10.1.0\DB_1ARC00084_0663689986.001'
ORA-27041: ??????
OSD-04002: ????????????
O/S-Error: (OS 123) ????????????????????????????????
ORA-01547: ??: RECOVER ??? OPEN RESETLOGS ???????
ORA-01195: ?? 1 ??????????????????
ORA-01110: ???? 1: 'D:\XHTEST6\SYSTEM01.DBF'
SQL> recover datafile 1;
ORA-00283: ??????????
ORA-01610: ?? BACKUP CONTROLFILE ??????????
SQL>
SQL> select group#,status,sequence# from v$log
2 ;
GROUP# STATUS SEQUENCE#
---------- ---------------- ----------
1 UNUSED 0
2 UNUSED 0
3 INVALIDATED 0
SQL> startup force mount;
ORACLE 例程已经启动。
Total System Global Area 289406976 bytes
Fixed Size 788552 bytes
Variable Size 263190456 bytes
Database Buffers 25165824 bytes
Redo Buffers 262144 bytes
数据库装载完毕。
SQL> set logsource 'F:\归档备份'
SQL> recover database using backup controlfile until cancel;
ORA-00279: 更改 2065273 (在 08/28/2008 11:58:54 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:\归档备份\ARC00084_0663689986.001
ORA-00280: 更改 2065273 (用于线程 1) 在序列 #84 中
指定日志: {
auto
ORA-00279: 更改 2068637 (在 08/28/2008 13:37:36 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:\归档备份\ARC00085_0663689986.001
ORA-00280: 更改 2068637 (用于线程 1) 在序列 #85 中
ORA-00278: 此恢复不再需要日志文件 'F:\归档备份\ARC00084_0663689986.001'
ORA-00279: 更改 2070928 (在 08/28/2008 14:02:46 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:\归档备份\ARC00086_0663689986.001
ORA-00280: 更改 2070928 (用于线程 1) 在序列 #86 中
ORA-00278: 此恢复不再需要日志文件 'F:\归档备份\ARC00085_0663689986.001'
ORA-00279: 更改 2072583 (在 08/28/2008 14:24:49 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:\归档备份\ARC00087_0663689986.001
ORA-00280: 更改 2072583 (用于线程 1) 在序列 #87 中
ORA-00278: 此恢复不再需要日志文件 'F:\归档备份\ARC00086_0663689986.001'
ORA-00279: 更改 2074329 (在 08/28/2008 14:56:46 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:\归档备份\ARC00088_0663689986.001
ORA-00280: 更改 2074329 (用于线程 1) 在序列 #88 中
ORA-00278: 此恢复不再需要日志文件 'F:\归档备份\ARC00087_0663689986.001'
ORA-00279: 更改 2074428 (在 08/28/2008 15:00:08 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:\归档备份\ARC00089_0663689986.001
ORA-00280: 更改 2074428 (用于线程 1) 在序列 #89 中
ORA-00278: 此恢复不再需要日志文件 'F:\归档备份\ARC00088_0663689986.001'
ORA-00279: 更改 2075948 (在 08/28/2008 15:33:37 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:\归档备份\ARC00090_0663689986.001
ORA-00280: 更改 2075948 (用于线程 1) 在序列 #90 中
ORA-00278: 此恢复不再需要日志文件 'F:\归档备份\ARC00089_0663689986.001'
ORA-00279: 更改 2075964 (在 08/28/2008 15:34:24 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:\归档备份\ARC00091_0663689986.001
ORA-00280: 更改 2075964 (用于线程 1) 在序列 #91 中
ORA-00278: 此恢复不再需要日志文件 'F:\归档备份\ARC00090_0663689986.001'
ORA-00279: 更改 2075980 (在 08/28/2008 15:34:57 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:\归档备份\ARC00092_0663689986.001
ORA-00280: 更改 2075980 (用于线程 1) 在序列 #92 中
ORA-00278: 此恢复不再需要日志文件 'F:\归档备份\ARC00091_0663689986.001'
ORA-00308: 无法打开归档日志 'F:\归档备份\ARC00092_0663689986.001'
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。
SQL>
SQL> alter database open resetlogs;
数据库已更改。
SQL>
SQL>
SQL> select * from test;
A
----------
8
8
444
2
99
989
6666
7777
8888
898989
8
A
----------
8
已选择12行。 6 595959 6969696969,少了这2数据,原因很简单不在归档日志里,归档时候这2数据还在logbuffer中没写进redologfile
6969696969 是启动alter system archive log current 归档当前日志没有产生CKPT
595959 是alter system switch logfile 这个命令 会吧 已经COMMIT的数据写进数据文件
SQL>
~~~~~简单例:
~~~~~~~~~~未COMMIT的 可以rollback
SQL> select * from test;(XHTEST)上
A
----------
8
8
444
2
99
989
6666
7777
8888
898989
595959
A
----------
6969696969
8
8
已选择14行。
SQL> insert into test values(777777778);
已创建 1 行。
SQL> alter system switch logfile;
系统已更改。
SQL> select * from test;
A
----------
8
8
444
2
99
989
6666
7777
8888
898989
8
A
----------
8~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~回退了
已选择12行。
SQL> insert into test values (6969696969);
已创建 1 行。
SQL> commit;~~~~~~~~~~~~~~~~提交
提交完成。
SQL> rollback;
回退已完成。
SQL> select * from test;
A
----------
8
8
444
2
99
989
6666
7777
8888
898989
6969696969~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~一旦提交就回退不了了
A
----------
8
8
已选择13行。
SQL>
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/12020513/viewspace-613443/ ,如需转载,请注明出处,否则将追究法律责任。