ITPub博客

首页 > Linux操作系统 > Linux操作系统 > oracle实验记录 (手动 duplicate database(3))

oracle实验记录 (手动 duplicate database(3))

原创 Linux操作系统 作者:fufuh2o 时间:2009-08-27 22:17:10 0 删除 编辑

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 ?


指定日志: {=suggested | filename | AUTO | CANCEL}
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 ?


指定日志: {=suggested | filename | AUTO | CANCEL}
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 中


指定日志: {=suggested | filename | AUTO | CANCEL}
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博客 ” ,链接:http://blog.itpub.net/12020513/viewspace-613443/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-06-26

  • 博文量
    182
  • 访问量
    426900