oracle實驗記錄 (手動 duplicate database(3))

fufuh2o發表於2009-08-27

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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章