亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 2359 | 回復(fù): 4
打印 上一主題 下一主題

跨越Resetlogs時(shí)間點(diǎn)進(jìn)行恢復(fù)的日志推進(jìn)原理求證-----含案例 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2008-12-31 09:44 |只看該作者 |倒序?yàn)g覽
今天有空又做了一次Oracle 10g跨越Resetlogs時(shí)間點(diǎn)進(jìn)行恢復(fù),對(duì)于其中日志推進(jìn)的問題,以及如何跨越的,進(jìn)行了最大限度的求證。


C:\Documents and Settings\Administrator>rman target /

恢復(fù)管理器: Release 11.1.0.6.0 - Production on 星期二 12月 30 21:13:46 2008

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

連接到目標(biāo)數(shù)據(jù)庫: ORCL (DBID=1202355191)

RMAN> backup database plus archivelog delete all input;



(字?jǐn)?shù)限制,過程略)


恢復(fù)管理器完成。

SQL> alter system switch logfile;    -----這里切換到了序列第60的日志,之前的序列為59

系統(tǒng)已更改。

SQL> select count(*) from t;
select count(*) from t
                     *
第 1 行出現(xiàn)錯(cuò)誤:
ORA-00942: 表或視圖不存在


SQL> select * from nam.t;

        ID TDATE                TSCN
---------- -------------- ----------
         1 30-12月-08         393466
         2 30-12月-08         393466
         3 30-12月-08         393466
         4 30-12月-08         393466
         5 30-12月-08         393466
         6 30-12月-08         393466
         7 30-12月-08         393466
         8 30-12月-08         393466
         9 30-12月-08         393466
        10 30-12月-08         393466

已選擇10行。

SQL> conn nam/nam
已連接。
SQL> begin
  2  for i in 11 .. 20 loop
  3  insert into t values(i,sysdate,dbms_flashback.get_system_change_number);
  4  end loop;
  5  commit;
  6  end;
  7  /

PL/SQL 過程已成功完成。

SQL> alter system switch logfile;      -----這里切換到了序列第61的日志,之前的序列為60

系統(tǒng)已更改。

SQL> begin
  2  for i in 21 .. 30 loop
  3  insert into t values(i,sysdate,dbms_flashback.get_system_change_number);
  4  end loop;
  5  commit;
  6  end;
  7  /

PL/SQL 過程已成功完成。

SQL> alter system switch logfile;     -----這里切換到了序列第62的日志,之前的序列為61

系統(tǒng)已更改。

SQL> select * from t;

        ID TDATE                TSCN
---------- -------------- ----------
        12 30-12月-08         393652
        13 30-12月-08         393652
        14 30-12月-08         393652
        15 30-12月-08         393652
        16 30-12月-08         393652
        17 30-12月-08         393652
        18 30-12月-08         393652
        19 30-12月-08         393652
        20 30-12月-08         393652
        21 30-12月-08         393667
        22 30-12月-08         393667

        ID TDATE                TSCN
---------- -------------- ----------
        23 30-12月-08         393667
        24 30-12月-08         393667
        25 30-12月-08         393667
        26 30-12月-08         393667
        27 30-12月-08         393667
        28 30-12月-08         393667
        29 30-12月-08         393667
        30 30-12月-08         393667
         1 30-12月-08         393466
         2 30-12月-08         393466
         3 30-12月-08         393466

        ID TDATE                TSCN
---------- -------------- ----------
         4 30-12月-08         393466
         5 30-12月-08         393466
         6 30-12月-08         393466
         7 30-12月-08         393466
         8 30-12月-08         393466
         9 30-12月-08         393466
        10 30-12月-08         393466
        11 30-12月-08         393652

已選擇30行。

SQL> archive log list;
數(shù)據(jù)庫日志模式            存檔模式
自動(dòng)存檔             啟用
存檔終點(diǎn)            USE_DB_RECOVERY_FILE_DEST
最早的聯(lián)機(jī)日志序列     60
下一個(gè)存檔日志序列   62
當(dāng)前日志序列           62

C:\Documents and Settings\Administrator>set nls_date_format=yyyy-mm-dd hh24:mi:ss

SQL> select recid,stamp,first_time,sequence# from v$log_history where recid > 94
;


     RECID      STAMP FIRST_TIME           SEQUENCE#
---------- ---------- ------------------- ----------
        95  674860547 2008-12-30 21:14:09         58
        96  674860657 2008-12-30 21:15:46         59
        97  674860793 2008-12-30 21:17:37         60
        98  674860817 2008-12-30 21:19:53         61
        
現(xiàn)在測(cè)試恢復(fù)到60的之前狀態(tài),NAM.T應(yīng)該只有10條記錄。

關(guān)閉數(shù)據(jù)庫,刪除數(shù)據(jù)文件。

SQL> shutdown abort;
ORACLE 例程已經(jīng)關(guān)閉。

RMAN> startup mount;

Oracle 實(shí)例已啟動(dòng)
數(shù)據(jù)庫已裝載

系統(tǒng)全局區(qū)域總計(jì)     535662592 字節(jié)

Fixed Size                     1334380 字節(jié)
Variable Size                213910420 字節(jié)
Database Buffers             314572800 字節(jié)
Redo Buffers                   5844992 字節(jié)

RMAN> run {
2> set until sequence 60 thread 1;
3> restore database;
4> recover database;
5> }

正在執(zhí)行命令: SET until clause
使用目標(biāo)數(shù)據(jù)庫控制文件替代恢復(fù)目錄

啟動(dòng) restore 于 30-12月-08
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=154 設(shè)備類型=DISK

通道 ORA_DISK_1: 正在開始還原數(shù)據(jù)文件備份集
通道 ORA_DISK_1: 正在指定從備份集還原的數(shù)據(jù)文件
通道 ORA_DISK_1: 將數(shù)據(jù)文件 00001 還原到 G:\ORADATA\ORCL\SYSTEM01.DBF
通道 ORA_DISK_1: 將數(shù)據(jù)文件 00002 還原到 G:\ORADATA\ORCL\SYSAUX01.DBF
通道 ORA_DISK_1: 將數(shù)據(jù)文件 00003 還原到 G:\ORADATA\ORCL\UNDOTBS01.DBF
通道 ORA_DISK_1: 將數(shù)據(jù)文件 00004 還原到 G:\ORADATA\ORCL\USERS01.DBF
通道 ORA_DISK_1: 將數(shù)據(jù)文件 00005 還原到 G:\ORADATA\ORCL\NAM01.DBF
通道 ORA_DISK_1: 正在讀取備份片段 G:\BACKUP\B_20081230_43_1
通道 ORA_DISK_1: 段句柄 = G:\BACKUP\B_20081230_43_1 標(biāo)記 = TAG20081230T211418
通道 ORA_DISK_1: 已還原備份片段 1
通道 ORA_DISK_1: 還原完成, 用時(shí): 00:01:06
完成 restore 于 30-12月-08

啟動(dòng) recover 于 30-12月-08
使用通道 ORA_DISK_1

正在開始介質(zhì)的恢復(fù)

線程 1 序列 59 的歸檔日志已作為文件 G:\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2008_
12_30\O1_MF_1_59_4ON7VKC7_.ARC 存在于磁盤上
通道 ORA_DISK_1: 正在開始將歸檔日志還原到默認(rèn)目標(biāo)
通道 ORA_DISK_1: 正在還原歸檔日志
歸檔日志線程=1 序列=58
通道 ORA_DISK_1: 正在讀取備份片段 G:\BACKUP\B_20081230_44_1
通道 ORA_DISK_1: 段句柄 = G:\BACKUP\B_20081230_44_1 標(biāo)記 = TAG20081230T211549
通道 ORA_DISK_1: 已還原備份片段 1
通道 ORA_DISK_1: 還原完成, 用時(shí): 00:00:01
歸檔日志文件名=G:\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2008_12_30\O1_MF_1_58_4ON9
H4QG_.ARC 線程=1 序列=58
通道 default: 正在刪除歸檔日志
歸檔日志文件名=G:\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2008_12_30\O1_MF_1_58_4ON9
H4QG_.ARC RECID=208 STAMP=674862308
歸檔日志文件名=G:\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2008_12_30\O1_MF_1_59_4ON7
VKC7_.ARC 線程=1 序列=59
介質(zhì)恢復(fù)完成, 用時(shí): 00:00:02
完成 recover 于 30-12月-08

RMAN> alter database open resetlogs;

數(shù)據(jù)庫已打開

RMAN> exit


恢復(fù)管理器完成。

-------檢查狀態(tài)


SQL>    conn nam/nam
已連接。
SQL> select * from t;

        ID TDATE                     TSCN
---------- ------------------- ----------
         1 2008-12-30 21:12:49     393466
         2 2008-12-30 21:12:49     393466
         3 2008-12-30 21:12:49     393466
         4 2008-12-30 21:12:49     393466
         5 2008-12-30 21:12:49     393466
         6 2008-12-30 21:12:49     393466
         7 2008-12-30 21:12:49     393466
         8 2008-12-30 21:12:49     393466
         9 2008-12-30 21:12:49     393466
        10 2008-12-30 21:12:49     393466

已選擇10行。

SQL> create tt as select * from t;
create tt as select * from t
       *
第 1 行出現(xiàn)錯(cuò)誤:
ORA-00901: 無效 CREATE 命令


SQL> create table tt as select * from t;

表已創(chuàng)建。

SQL> alter system switch logfile;

系統(tǒng)已更改。

SQL> select count(*) from tt;

  COUNT(*)
----------
        10

SQL> insert into tt select * from tt;

已創(chuàng)建10行。

SQL> commit;

提交完成。

SQL> alter system switch logfile;

系統(tǒng)已更改。

SQL>  select recid,stamp,first_time,sequence# from v$log_history where recid > 94;

     RECID      STAMP FIRST_TIME           SEQUENCE#
---------- ---------- ------------------- ----------
        95  674860547 2008-12-30 21:14:09         58
        96  674860657 2008-12-30 21:15:46         59
        97  674860793 2008-12-30 21:17:37         60
        98  674860817 2008-12-30 21:19:53         61
        99  674863695 2008-12-30 21:45:23          1
       100  674863732 2008-12-30 22:08:15          2

已選擇6行。

SQL>

此時(shí),日志的RECID繼續(xù)增長(zhǎng),控制文件保留了歸檔日志的序列,這也就證明了resetlogs的恢復(fù)成為可能(引用EYGLE的原話)

再次刪除所有數(shù)據(jù)文件,再次恢復(fù)(注意,10g之前使用當(dāng)前resetlogs過的控制文件是不能夠恢復(fù)以前的備份)

RMAN> startup mount;

Oracle 實(shí)例已啟動(dòng)
數(shù)據(jù)庫已裝載

系統(tǒng)全局區(qū)域總計(jì)     535662592 字節(jié)

Fixed Size                     1334380 字節(jié)
Variable Size                213910420 字節(jié)
Database Buffers             314572800 字節(jié)
Redo Buffers                   5844992 字節(jié)

RMAN> run {
2> restore database;
3> recover database;
4> }

啟動(dòng) restore 于 2008-12-30 22:29:39
使用目標(biāo)數(shù)據(jù)庫控制文件替代恢復(fù)目錄
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=154 設(shè)備類型=DISK

通道 ORA_DISK_1: 正在開始還原數(shù)據(jù)文件備份集
通道 ORA_DISK_1: 正在指定從備份集還原的數(shù)據(jù)文件
通道 ORA_DISK_1: 將數(shù)據(jù)文件 00001 還原到 G:\ORADATA\ORCL\SYSTEM01.DBF
通道 ORA_DISK_1: 將數(shù)據(jù)文件 00002 還原到 G:\ORADATA\ORCL\SYSAUX01.DBF
通道 ORA_DISK_1: 將數(shù)據(jù)文件 00003 還原到 G:\ORADATA\ORCL\UNDOTBS01.DBF
通道 ORA_DISK_1: 將數(shù)據(jù)文件 00004 還原到 G:\ORADATA\ORCL\USERS01.DBF
通道 ORA_DISK_1: 將數(shù)據(jù)文件 00005 還原到 G:\ORADATA\ORCL\NAM01.DBF
通道 ORA_DISK_1: 正在讀取備份片段 G:\BACKUP\B_20081230_43_1
通道 ORA_DISK_1: 段句柄 = G:\BACKUP\B_20081230_43_1 標(biāo)記 = TAG20081230T211418
通道 ORA_DISK_1: 已還原備份片段 1
通道 ORA_DISK_1: 還原完成, 用時(shí): 00:01:16
完成 restore 于 2008-12-30 22:31:00

啟動(dòng) recover 于 2008-12-30 22:31:00
使用通道 ORA_DISK_1

正在開始介質(zhì)的恢復(fù)

線程 1 序列 59 的歸檔日志已作為文件 G:\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2008_
12_30\O1_MF_1_59_4ON7VKC7_.ARC 存在于磁盤上
線程 1 序列 1 的歸檔日志已作為文件 G:\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2008_1
2_30\O1_MF_1_1_4ONBTHQX_.ARC 存在于磁盤上
線程 1 序列 2 的歸檔日志已作為文件 G:\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2008_1
2_30\O1_MF_1_2_4ONBVNPY_.ARC 存在于磁盤上
通道 ORA_DISK_1: 正在開始將歸檔日志還原到默認(rèn)目標(biāo)
通道 ORA_DISK_1: 正在還原歸檔日志
歸檔日志線程=1 序列=58
通道 ORA_DISK_1: 正在讀取備份片段 G:\BACKUP\B_20081230_44_1
通道 ORA_DISK_1: 段句柄 = G:\BACKUP\B_20081230_44_1 標(biāo)記 = TAG20081230T211549
通道 ORA_DISK_1: 已還原備份片段 1
通道 ORA_DISK_1: 還原完成, 用時(shí): 00:00:02
歸檔日志文件名=G:\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2008_12_30\O1_MF_1_58_4OND
570H_.ARC 線程=1 序列=58
通道 default: 正在刪除歸檔日志
歸檔日志文件名=G:\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2008_12_30\O1_MF_1_58_4OND
570H_.ARC RECID=215 STAMP=674865063
歸檔日志文件名=G:\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2008_12_30\O1_MF_1_59_4ON7
VKC7_.ARC 線程=1 序列=59
介質(zhì)恢復(fù)完成, 用時(shí): 00:00:06
完成 recover 于 2008-12-30 22:31:10

RMAN> alter database open;

數(shù)據(jù)庫已打開

RMAN>


SQL> select count(*) from t;

  COUNT(*)
----------
        10

SQL> select count(*) from tt;

  COUNT(*)
----------
        20

SQL>

跳過了第60個(gè)日志到第62個(gè)日志,然后正確應(yīng)用了1-2的日志。


到這里我在想,這種恢復(fù)手段的應(yīng)用范圍,也許這樣做的目的僅僅是為了備份一次,然后做了不完全恢復(fù),再繼續(xù)使用數(shù)據(jù)庫但是沒有備份,那么恢復(fù)的時(shí)候自然就跳過了resetlogs的那些個(gè)日志,控制文件里面應(yīng)該記錄的信息就應(yīng)該包含被resetlogs的日志序列,這樣恢復(fù)時(shí)自然會(huì)跳過。


SQL> select recid,stamp,first_time,first_change#,sequence# from v$log_history wh
ere recid > 94;

     RECID      STAMP FIRST_TIME          FIRST_CHANGE#  SEQUENCE#
---------- ---------- ------------------- ------------- ----------
        95  674860547 2008-12-30 21:14:09        393517         58
        96  674860657 2008-12-30 21:15:46        393559         59
        97  674860793 2008-12-30 21:17:37        393610         60
        98  674860817 2008-12-30 21:19:53        393662         61
        99  674863695 2008-12-30 21:45:23        393611          1
       100  674863732 2008-12-30 22:08:15        398609          2
       101  674865190 2008-12-30 22:08:52        398626          3

已選擇7行。

SQL>

注意,60的起始SCN和1的起始SCN是連在一起的,也就是說,從60開始的后續(xù)SCN是作廢的。

于是,我DMUP了控制文件:

***************************************************************************
REDO THREAD RECORDS
***************************************************************************
(size = 256, compat size = 256, section max = 8, section in-use = 1,
  last-recid= 0, old-recno = 0, last-recno = 0)
(extent = 1, blkno = 9, numrecs =
THREAD #1 - status:0xf thread links forward:0 back:0
#logs:3 first:1 last:3 current:1 last used seq#:0x4
enabled at scn: 0x0000.0006018b 12/30/2008 21:45:23   
disabled at scn: 0x0000.00000000 01/01/1988 00:00:00
opened at 12/30/2008 22:33:10 by instance orcl
Checkpointed at scn:  0x0000.00066649 12/30/2008 22:33:10
thread:1 rba0x4.2.10)

這一段信息讓我恍然大悟,跨越恢復(fù)時(shí),應(yīng)該按照SCN進(jìn)行日志推進(jìn),查看v$archived_log

SQL> select stamp,
  2         sequence#,
  3         first_change#,
  4         first_time,
  5         next_change#,
  6         end_of_redo_type
  7    from v$archived_log x
  8   where x.stamp > 674860547
  9   order by first_change#
10  /

     STAMP  SEQUENCE# FIRST_CHANGE# FIRST_TIME  NEXT_CHANGE# END_OF_REDO_TYPE
---------- ---------- ------------- ----------- ------------ ----------------
674860548         58        393517 2008-12-30        393559
674860548         58        393517 2008-12-30        393559
674865063         58        393517 2008-12-30        393559
674862308         58        393517 2008-12-30        393559
674860657         59        393559 2008-12-30        393610
674860657         59        393559 2008-12-30        393610
674860794         60        393610 2008-12-30        393662
674860794         60        393610 2008-12-30        393662
674863696          1        393611 2008-12-30        398609
674863696          1        393611 2008-12-30        398609
674860818         61        393662 2008-12-30        393676
674860818         61        393662 2008-12-30        393676
674862324         62        393676 2008-12-30        394231 RESETLOGS
674862324         62        393676 2008-12-30        394231 RESETLOGS
674863733          2        398609 2008-12-30        398626
674863733          2        398609 2008-12-30        398626
674865192          3        398626 2008-12-30        419400
674865192          3        398626 2008-12-30        419400

18 rows selected

SQL>


把當(dāng)前日志歸檔后,再次DUMP控制文件

SQL> alter system archive log current;

系統(tǒng)已更改。

SQL> alter system switch logfile;

系統(tǒng)已更改。

SQL> alter system switch logfile;

系統(tǒng)已更改。

SQL> alter system switch logfile;

系統(tǒng)已更改。

SQL> alter session set events 'immediate trace name CONTROLF level 4';

會(huì)話已更改。

SQL> select d.value || '/' || lower(rtrim(i.instance, chr(0))) || '_ora_' ||
  2          p.spid || '.trc' trace_file_name
  3     from (select p.spid
  4             from v$mystat m, v$session s, v$process p
  5            where m.statistic# = 1
  6              and s.sid = m.sid
  7              and p.addr = s.paddr) p,
  8          (select t.instance
  9             from v$thread t, v$parameter v
10            where v.name = 'thread'
11              and (v.value = 0 or t.thread# = to_number(v.value))) i,
12          (select value from v$parameter where name = 'user_dump_dest') d
13  /

TRACE_FILE_NAME
-------------------------------------------------------------------------------

e:\oracle\diag\rdbms\orcl\orcl\trace/orcl_ora_2884.trc

SQL>

看一下信息,注意Checkpointed at scn

***************************************************************************
REDO THREAD RECORDS
***************************************************************************
(size = 256, compat size = 256, section max = 8, section in-use = 1,
  last-recid= 0, old-recno = 0, last-recno = 0)
(extent = 1, blkno = 9, numrecs =
THREAD #1 - status:0xf thread links forward:0 back:0
#logs:3 first:1 last:3 current:3 last used seq#:0x9
enabled at scn: 0x0000.0006018b 12/30/2008 21:45:23
disabled at scn: 0x0000.00000000 01/01/1988 00:00:00
opened at 12/30/2008 22:33:10 by instance orcl
Checkpointed at scn:  0x0000.00066d55 12/30/2008 23:18:13
thread:1 rba0x9.2.10)

第一次DUMP信息 Checkpointed at scn 0x0000.00066649,第二次Checkpointed at scn 0x0000.00066d55,但是,enabled at scn: 0x0000.0006018b沒有變化。

繼續(xù)DUMP序列為60的歸檔文件

SQL> select stamp,
  2         NAME,
  3         sequence#
  4         from v$archived_log
  5   where sequence#=60
  6  /

     STAMP NAME                                                                              SEQUENCE#
---------- -------------------------------------------------------------------------------- ----------
674860794 E:\ORACLE\PRODUCT\11.1.0\DB_1\RDBMS\ARC00060_0674761419.001                              60
674860794 G:\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2008_12_30\O1_MF_1_60_4ON7ZSRF_.ARC               60

SQL> alter system dump logfile 'E:\ORACLE\PRODUCT\11.1.0\DB_1\RDBMS\ARC00060_067
4761419.001';

系統(tǒng)已更改。

SQL> select d.value || '/' || lower(rtrim(i.instance, chr(0))) || '_ora_' ||
  2          p.spid || '.trc' trace_file_name
  3     from (select p.spid
  4             from v$mystat m, v$session s, v$process p
  5            where m.statistic# = 1
  6              and s.sid = m.sid
  7              and p.addr = s.paddr) p,
  8          (select t.instance
  9             from v$thread t, v$parameter v
10            where v.name = 'thread'
11              and (v.value = 0 or t.thread# = to_number(v.value))) i,
12          (select value from v$parameter where name = 'user_dump_dest') d
13  /

TRACE_FILE_NAME
--------------------------------------------------------------------------------

e:\oracle\diag\rdbms\orcl\orcl\trace/orcl_ora_3236.trc

SQL>

把59也DUMP一下,比較其中信息:

60記錄的信息比59的要多了很多,但我沒發(fā)現(xiàn)有什么特別有價(jià)值的信息。。看一下控制文件記錄的數(shù)據(jù)文件部分:


***************************************************************************
DATA FILE RECORDS
***************************************************************************
(size = 520, compat size = 520, section max = 100, section in-use = 6,
  last-recid= 23, old-recno = 0, last-recno = 0)
(extent = 1, blkno = 11, numrecs = 100)
DATA FILE #1:
  (name # G:\ORADATA\ORCL\SYSTEM01.DBF
creation size=0 block size=8192 status=0xe head=8 tail=8 dup=1
tablespace 0, index=1 krfil=1 prev_file=0
unrecoverable scn: 0x0000.00000000 01/01/1988 00:00:00
Checkpoint cnt:185 scn: 0x0000.00066649 12/30/2008 22:33:10
Stop scn: 0xffff.ffffffff 12/30/2008 22:28:36
Creation Checkpointed at scn:  0x0000.0000000b 12/27/2008 13:48:04
thread:0 rba0x0.0.0)



所以,我想,ORACLE是怎么判斷跨越恢復(fù)的呢,第一,肯定是按SCN來推進(jìn)的,那么,是怎么銜接的呢?應(yīng)該是控制文件在請(qǐng)求日志推進(jìn)時(shí)首先比較了restore出來的數(shù)據(jù)文件頭記錄的scn,之后和自己記錄的數(shù)據(jù)文件scn做比較,確定恢復(fù)的范圍。然后再根據(jù)自己記錄的enabled at scn: 0x0000.0006018b為歸檔日志的銜接標(biāo)志,當(dāng)從歷史歸檔日志中恢復(fù)到0x0000.0006018a時(shí)后續(xù)部分將不再恢復(fù),轉(zhuǎn)向控制文件中記錄的0x0000.0006018b所對(duì)應(yīng)的新序列日志(可能是歸檔,也可能是REDO)。啟動(dòng)數(shù)據(jù)庫后,v$archived_log里end_of_redo_type字段信息,應(yīng)該也是比較scn得出的結(jié)果,將first_change#與enabled at scn銜接的日志之后的未重置序列號(hào)的日志全部標(biāo)記上RESETLOGS(比如本案例中,60的first_change#是0x0000.0006018a,和控制文件中的enabled at scn: 0x0000.0006018b銜接,所以60之后的兩個(gè)日志,不包含60,都被注上了標(biāo)記RESETLOGS,雖然60沒有被著名標(biāo)記,由于SCN的關(guān)系,它其實(shí)也是個(gè)廢的)。

這只是我能力范圍內(nèi)最大限度的求證了,希望大家指正。

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2008-12-31 11:16 |只看該作者
由于昨天做實(shí)驗(yàn)太晚了,沒有嚴(yán)謹(jǐn)?shù)淖C實(shí)我的論點(diǎn),今天補(bǔ)充測(cè)試內(nèi)容如下。

首先,備份數(shù)據(jù)庫,過程略。。。。。

RMAN> backup database plus archivelog delete all input;

DUMP當(dāng)前的控制文件,注意,REDO和DATA FILE部分,內(nèi)容如下:

***************************************************************************
REDO THREAD RECORDS
***************************************************************************
(size = 256, compat size = 256, section max = 8, section in-use = 1,
  last-recid= 0, old-recno = 0, last-recno = 0)
(extent = 1, blkno = 9, numrecs =
THREAD #1 - status:0xf thread links forward:0 back:0
#logs:3 first:1 last:3 current:3 last used seq#:0x15
enabled at scn: 0x0000.0006018b 12/30/2008 21:45:23
disabled at scn: 0x0000.00000000 01/01/1988 00:00:00
opened at 12/31/2008 09:24:32 by instance orcl
Checkpointed at scn:  0x0000.0006758f 12/31/2008 09:39:06
thread:1 rba0x14.2.10)

***************************************************************************
DATA FILE RECORDS
***************************************************************************
(size = 520, compat size = 520, section max = 100, section in-use = 6,
  last-recid= 25, old-recno = 0, last-recno = 0)
(extent = 1, blkno = 11, numrecs = 100)
DATA FILE #1:
  (name # G:\ORADATA\ORCL\SYSTEM01.DBF
creation size=0 block size=8192 status=0xe head=8 tail=8 dup=1
tablespace 0, index=1 krfil=1 prev_file=0
unrecoverable scn: 0x0000.00000000 01/01/1988 00:00:00
Checkpoint cnt:203 scn: 0x0000.0006759f 12/31/2008 09:39:33
Stop scn: 0xffff.ffffffff 12/31/2008 00:06:41
Creation Checkpointed at scn:  0x0000.0000000b 12/27/2008 13:48:04
thread:0 rba0x0.0.0)

注意enabled at scn: 0x0000.0006018b和scn: 0x0000.0006759f,也就是說,在我們做恢復(fù)之前,備份的數(shù)據(jù)文件SCN應(yīng)該0x0000.0006759f,當(dāng)我們向數(shù)據(jù)庫中添加記錄并切換日志后,CHECKPOINT會(huì)更新這個(gè)SCN。

當(dāng)前的arvhielog及redo相關(guān)信息如下:

SQL> archive log list;
數(shù)據(jù)庫日志模式            存檔模式
自動(dòng)存檔             啟用
存檔終點(diǎn)            USE_DB_RECOVERY_FILE_DEST
最早的聯(lián)機(jī)日志序列     19
下一個(gè)存檔日志序列   21
當(dāng)前日志序列           21
SQL> select * from v$log;

    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS
---------- ---------- ---------- ---------- ---------- --- ---------------
FIRST_CHANGE# FIRST_TIME
------------- --------------
         1          1         19   52428800          1 YES INACTIVE
       423021 31-12月-08

         2          1         20   52428800          1 YES INACTIVE
       423311 31-12月-08

         3          1         21   52428800          1 NO  CURRENT
       423359 31-12月-08


SQL> select recid,stamp,first_time,first_change#,sequence# from v$log_history wh
ere recid > 94;

     RECID      STAMP FIRST_TIME          FIRST_CHANGE#  SEQUENCE#
---------- ---------- ------------------- ------------- ----------
        95  674860547 2008-12-30 21:14:09        393517         58
        96  674860657 2008-12-30 21:15:46        393559         59
        97  674860793 2008-12-30 21:17:37        393610         60
        98  674860817 2008-12-30 21:19:53        393662         61
        99  674863695 2008-12-30 21:45:23        393611          1
       100  674863732 2008-12-30 22:08:15        398609          2
       101  674865190 2008-12-30 22:08:52        398626          3
       102  674867772 2008-12-30 22:33:10        419400          4
       103  674867874 2008-12-30 23:16:12        421159          5
       104  674867887 2008-12-30 23:17:54        421195          6
       105  674867890 2008-12-30 23:18:07        421200          7

     RECID      STAMP FIRST_TIME          FIRST_CHANGE#  SEQUENCE#
---------- ---------- ------------------- ------------- ----------
       106  674867893 2008-12-30 23:18:09        421203          8
       107  674904465 2008-12-30 23:18:13        421205          9
       108  674904480 2008-12-31 09:27:44        422927         10
       109  674904499 2008-12-31 09:28:00        422937         11
       110  674904517 2008-12-31 09:28:19        422948         12
       111  674904534 2008-12-31 09:28:37        422959         13
       112  674904553 2008-12-31 09:28:54        422969         14
       113  674904571 2008-12-31 09:29:12        422979         15
       114  674904589 2008-12-31 09:29:30        422990         16
       115  674904607 2008-12-31 09:29:48        423001         17
       116  674904625 2008-12-31 09:30:06        423011         18

     RECID      STAMP FIRST_TIME          FIRST_CHANGE#  SEQUENCE#
---------- ---------- ------------------- ------------- ----------
       117  674905146 2008-12-31 09:30:25        423021         19
       118  674905258 2008-12-31 09:39:06        423311         20

已選擇24行。

SQL>SQL> select * from nam.t;

        ID TDATE                     TSCN
---------- ------------------- ----------
         2 2008-12-31 09:28:00     422933
         3 2008-12-31 09:28:16     422944
         4 2008-12-31 09:28:34     422955
         5 2008-12-31 09:28:52     422965
         6 2008-12-31 09:29:10     422975
         7 2008-12-31 09:29:28     422986
         8 2008-12-31 09:29:46     422997
         9 2008-12-31 09:30:04     423007
        10 2008-12-31 09:30:22     423017
         1 2008-12-30 21:12:49     393466
         2 2008-12-30 21:12:49     393466

        ID TDATE                     TSCN
---------- ------------------- ----------
         3 2008-12-30 21:12:49     393466
         4 2008-12-30 21:12:49     393466
         5 2008-12-30 21:12:49     393466
         6 2008-12-30 21:12:49     393466
         7 2008-12-30 21:12:49     393466
         8 2008-12-30 21:12:49     393466
         9 2008-12-30 21:12:49     393466
        10 2008-12-30 21:12:49     393466
         1 2008-12-31 09:27:44     422923

已選擇20行。

這是接著昨天的試驗(yàn)做的,那么從時(shí)間點(diǎn)上來看,有10條記錄是今天早上插入的,一共20條記錄。當(dāng)前日志序列號(hào)是21。

SQL> alter system switch logfile;    -----切換到日志22,此時(shí)表T記錄數(shù)為10條,以這里為恢復(fù)點(diǎn),恢復(fù)到日志22前,那么記錄數(shù)為20條,并且沒有ID為10以上的記錄。

系統(tǒng)已更改。

SQL> select count(*) from nam.t;

  COUNT(*)
----------
        20

SQL> conn nam/nam
已連接。
SQL> begin
  2  for i in 11 .. 20 loop
  3  insert into t values(i,sysdate,dbms_flashback.get_system_change_number);
  4  end loop;
  5  commit;
  6  end;
  7  /

PL/SQL 過程已成功完成。

SQL> alter system switch logfile;  -----切換到日志23

系統(tǒng)已更改。

SQL> begin
  2  for i in 21 .. 30 loop
  3  insert into t values(i,sysdate,dbms_flashback.get_system_change_number);
  4  end loop;
  5  commit;
  6  end;
  7  /

PL/SQL 過程已成功完成。

SQL> alter system switch logfile;   -----切換到日志24

系統(tǒng)已更改。

SQL> archive log list;
ORA-01031: 權(quán)限不足
SQL> conn / as sysdba
已連接。
SQL> archive log list;
數(shù)據(jù)庫日志模式            存檔模式
自動(dòng)存檔             啟用
存檔終點(diǎn)            USE_DB_RECOVERY_FILE_DEST
最早的聯(lián)機(jī)日志序列     22
下一個(gè)存檔日志序列   24
當(dāng)前日志序列           24
SQL>  select recid,stamp,first_time,first_change#,sequence# from v$log_history w
here recid > 94;

     RECID      STAMP FIRST_TIME     FIRST_CHANGE#  SEQUENCE#
---------- ---------- -------------- ------------- ----------
        95  674860547 30-12月-08            393517         58
        96  674860657 30-12月-08            393559         59
        97  674860793 30-12月-08            393610         60
        98  674860817 30-12月-08            393662         61
        99  674863695 30-12月-08            393611          1
       100  674863732 30-12月-08            398609          2
       101  674865190 30-12月-08            398626          3
       102  674867772 30-12月-08            419400          4
       103  674867874 30-12月-08            421159          5
       104  674867887 30-12月-08            421195          6
       105  674867890 30-12月-08            421200          7

     RECID      STAMP FIRST_TIME     FIRST_CHANGE#  SEQUENCE#
---------- ---------- -------------- ------------- ----------
       106  674867893 30-12月-08            421203          8
       107  674904465 30-12月-08            421205          9
       108  674904480 31-12月-08            422927         10
       109  674904499 31-12月-08            422937         11
       110  674904517 31-12月-08            422948         12
       111  674904534 31-12月-08            422959         13
       112  674904553 31-12月-08            422969         14
       113  674904571 31-12月-08            422979         15
       114  674904589 31-12月-08            422990         16
       115  674904607 31-12月-08            423001         17
       116  674904625 31-12月-08            423011         18

     RECID      STAMP FIRST_TIME     FIRST_CHANGE#  SEQUENCE#
---------- ---------- -------------- ------------- ----------
       117  674905146 31-12月-08            423021         19
       118  674905258 31-12月-08            423311         20
       119  674906989 31-12月-08            423359         21
       120  674907086 31-12月-08            424718         22
       121  674907121 31-12月-08            424759         23

已選擇27行。

SQL>

SCN,日志序列,一切都是正常的,等下我們恢復(fù)到22之前,所以現(xiàn)在DUMP控制文件,記錄其中的信息:

***************************************************************************
REDO THREAD RECORDS
***************************************************************************
(size = 256, compat size = 256, section max = 8, section in-use = 1,
  last-recid= 0, old-recno = 0, last-recno = 0)
(extent = 1, blkno = 9, numrecs =
THREAD #1 - status:0xf thread links forward:0 back:0
#logs:3 first:1 last:3 current:3 last used seq#:0x18
enabled at scn: 0x0000.0006018b 12/30/2008 21:45:23
disabled at scn: 0x0000.00000000 01/01/1988 00:00:00
opened at 12/31/2008 09:24:32 by instance orcl
Checkpointed at scn:  0x0000.00067b46 12/31/2008 10:12:01
thread:1 rba0x18.2.10)

***************************************************************************
DATA FILE RECORDS
***************************************************************************
(size = 520, compat size = 520, section max = 100, section in-use = 6,
  last-recid= 25, old-recno = 0, last-recno = 0)
(extent = 1, blkno = 11, numrecs = 100)
DATA FILE #1:
  (name # G:\ORADATA\ORCL\SYSTEM01.DBF
creation size=0 block size=8192 status=0xe head=8 tail=8 dup=1
tablespace 0, index=1 krfil=1 prev_file=0
unrecoverable scn: 0x0000.00000000 01/01/1988 00:00:00
Checkpoint cnt:207 scn: 0x0000.00067b46 12/31/2008 10:12:01
Stop scn: 0xffff.ffffffff 12/31/2008 00:06:41
Creation Checkpointed at scn:  0x0000.0000000b 12/27/2008 13:48:04
thread:0 rba0x0.0.0)

注意enabled at scn: 0x0000.0006018b沒有變化,但數(shù)據(jù)文件部分scn: 0x0000.00067b46發(fā)生變化(之前scn: 0x0000.0006759f),這是最重要的一個(gè)SCN,這個(gè)SCN變化的機(jī)制是日志切換時(shí)發(fā)生的CHECKPOINT寫入控制文件的,同時(shí)還寫入了其他信息,不如REDO部分的RBA,這是恢復(fù)的基礎(chǔ)。

然后我們開始做不完全恢復(fù),過程略。。。。

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2008-12-31 11:17 |只看該作者
恢復(fù)完成后,我們效驗(yàn)記錄及相關(guān)的SCN:

SQL> select * from t;

        ID TDATE                TSCN
---------- -------------- ----------
         2 31-12月-08         422933
         3 31-12月-08         422944
         4 31-12月-08         422955
         5 31-12月-08         422965
         6 31-12月-08         422975
         7 31-12月-08         422986
         8 31-12月-08         422997
         9 31-12月-08         423007
        10 31-12月-08         423017
         1 30-12月-08         393466
         2 30-12月-08         393466

        ID TDATE                TSCN
---------- -------------- ----------
         3 30-12月-08         393466
         4 30-12月-08         393466
         5 30-12月-08         393466
         6 30-12月-08         393466
         7 30-12月-08         393466
         8 30-12月-08         393466
         9 30-12月-08         393466
        10 30-12月-08         393466
         1 31-12月-08         422923

已選擇20行。

----記錄正確,20條,且沒有后來插入的ID>10的記錄

SQL> archive log list;
數(shù)據(jù)庫日志模式            存檔模式
自動(dòng)存檔             啟用
存檔終點(diǎn)            USE_DB_RECOVERY_FILE_DEST
最早的聯(lián)機(jī)日志序列     1
下一個(gè)存檔日志序列   1
當(dāng)前日志序列           1
SQL> select * from v$log;

    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS
---------- ---------- ---------- ---------- ---------- --- ----------------
FIRST_CHANGE# FIRST_TIME
------------- --------------
         1          1          1   52428800          1 NO  CURRENT
       424719 31-12月-08

         2          1          0   52428800          1 YES UNUSED
            0

         3          1          0   52428800          1 YES UNUSED
            0


SQL> select stamp,
  2         sequence#,
  3         first_change#,
  4         first_time,
  5         next_change#,
  6         end_of_redo_type
  7    from v$archived_log x
  8   where x.stamp > 674860547
  9   order by first_change#
10  /

     STAMP  SEQUENCE# FIRST_CHANGE# FIRST_TIME     NEXT_CHANGE# END_OF_RED
---------- ---------- ------------- -------------- ------------ ----------
674905258         20        423311 31-12月-08           423359
674905258         20        423311 31-12月-08           423359
674908150         20        423311 31-12月-08           423359
674906990         21        423359 31-12月-08           424718
674906990         21        423359 31-12月-08           424718

     STAMP  SEQUENCE# FIRST_CHANGE# FIRST_TIME     NEXT_CHANGE# END_OF_RED
---------- ---------- ------------- -------------- ------------ ----------
674907086         22        424718 31-12月-08           424759
674907086         22        424718 31-12月-08           424759
674907122         23        424759 31-12月-08           424774
674907122         23        424759 31-12月-08           424774
674908163         24        424774 31-12月-08           425091 RESETLOGS
674908163         24        424774 31-12月-08           425091 RESETLOGS

已選擇61行。

SQL>


***************************************************************************
REDO THREAD RECORDS
***************************************************************************
(size = 256, compat size = 256, section max = 8, section in-use = 1,
  last-recid= 0, old-recno = 0, last-recno = 0)
(extent = 1, blkno = 9, numrecs =
THREAD #1 - status:0xf thread links forward:0 back:0
#logs:3 first:1 last:3 current:1 last used seq#:0x1
enabled at scn: 0x0000.00067b0f 12/31/2008 10:29:22
disabled at scn: 0x0000.00000000 01/01/1988 00:00:00
opened at 12/31/2008 10:29:34 by instance orcl
Checkpointed at scn:  0x0000.00067b12 12/31/2008 10:29:34
thread:1 rba0x1.2.10)


***************************************************************************
DATA FILE RECORDS
***************************************************************************
(size = 520, compat size = 520, section max = 100, section in-use = 6,
  last-recid= 31, old-recno = 0, last-recno = 0)
(extent = 1, blkno = 11, numrecs = 100)
DATA FILE #1:
  (name # G:\ORADATA\ORCL\SYSTEM01.DBF
creation size=0 block size=8192 status=0xe head=8 tail=8 dup=1
tablespace 0, index=1 krfil=1 prev_file=0
unrecoverable scn: 0x0000.00000000 01/01/1988 00:00:00
Checkpoint cnt:209 scn: 0x0000.00067b12 12/31/2008 10:29:34
Stop scn: 0xffff.ffffffff 12/31/2008 10:29:22
Creation Checkpointed at scn:  0x0000.0000000b 12/27/2008 13:48:04
thread:0 rba0x0.0.0)

這個(gè)enabled at scn: 0x0000.00067b0f發(fā)生了變化,作為跨越恢復(fù)的銜接點(diǎn)(之前enabled at scn: 0x0000.0006018b),記錄下數(shù)據(jù)文件的scn: 0x0000.00067b12。這時(shí)候我們?cè)俅尾迦氩糠钟涗,并切換日志,完成后再次DUMP控制文件,最后一次的控制文件應(yīng)該變化的僅僅是數(shù)據(jù)文件的SCN,而enabled at scn不會(huì)變化。

SQL> begin
  2  for i in 101 .. 110 loop
  3  insert into tt values(i,sysdate,dbms_flashback.get_system_change_number);
  4  end loop;
  5  commit;
  6  end;
  7  /

PL/SQL 過程已成功完成。

SQL> select * from tt;

        ID TDATE                TSCN
---------- -------------- ----------
       101 31-12月-08         425121
       102 31-12月-08         425121
       103 31-12月-08         425121
       104 31-12月-08         425121
       105 31-12月-08         425121
       106 31-12月-08         425121
       107 31-12月-08         425121
       108 31-12月-08         425121
       109 31-12月-08         425121
       110 31-12月-08         425121

已選擇10行。

SQL> alter system switch logfile;

系統(tǒng)已更改。

SQL> insert into tt select * from tt;

已創(chuàng)建10行。

SQL> commit;

提交完成。

SQL> alter system switch logfile;

系統(tǒng)已更改。

SQL>  select recid,stamp,first_time,sequence# from v$log_history where recid > 1
17;

     RECID      STAMP FIRST_TIME      SEQUENCE#
---------- ---------- -------------- ----------
       118  674905258 31-12月-08             20
       119  674906989 31-12月-08             21
       120  674907086 31-12月-08             22
       121  674907121 31-12月-08             23
       122  674908912 31-12月-08              1
       123  674908931 31-12月-08              2

已選擇6行。

SQL> alter system switch logfile;

系統(tǒng)已更改。

SQL> alter system switch logfile;

系統(tǒng)已更改。

SQL> archive log list;
數(shù)據(jù)庫日志模式            存檔模式
自動(dòng)存檔             啟用
存檔終點(diǎn)            USE_DB_RECOVERY_FILE_DEST
最早的聯(lián)機(jī)日志序列     3
下一個(gè)存檔日志序列   5
當(dāng)前日志序列           5
SQL> alter system switch logfile;

系統(tǒng)已更改。

SQL> alter system switch logfile;

系統(tǒng)已更改。

SQL> alter system switch logfile;

系統(tǒng)已更改。

SQL> alter system switch logfile;

系統(tǒng)已更改。

SQL> alter system switch logfile;

系統(tǒng)已更改。

SQL> archive log list;
數(shù)據(jù)庫日志模式            存檔模式
自動(dòng)存檔             啟用
存檔終點(diǎn)            USE_DB_RECOVERY_FILE_DEST
最早的聯(lián)機(jī)日志序列     8
下一個(gè)存檔日志序列   10
當(dāng)前日志序列           10
SQL>


***************************************************************************
REDO THREAD RECORDS
***************************************************************************
(size = 256, compat size = 256, section max = 8, section in-use = 1,
  last-recid= 0, old-recno = 0, last-recno = 0)
(extent = 1, blkno = 9, numrecs =
THREAD #1 - status:0xf thread links forward:0 back:0
#logs:3 first:1 last:3 current:1 last used seq#:0xa
enabled at scn: 0x0000.00067b0f 12/31/2008 10:29:22
disabled at scn: 0x0000.00000000 01/01/1988 00:00:00
opened at 12/31/2008 10:29:34 by instance orcl
Checkpointed at scn:  0x0000.00067d31 12/31/2008 10:46:48
thread:1 rba0xa.2.10)


***************************************************************************
DATA FILE RECORDS
***************************************************************************
(size = 520, compat size = 520, section max = 100, section in-use = 6,
  last-recid= 31, old-recno = 0, last-recno = 0)
(extent = 1, blkno = 11, numrecs = 100)
DATA FILE #1:
  (name # G:\ORADATA\ORCL\SYSTEM01.DBF
creation size=0 block size=8192 status=0xe head=8 tail=8 dup=1
tablespace 0, index=1 krfil=1 prev_file=0
unrecoverable scn: 0x0000.00000000 01/01/1988 00:00:00
Checkpoint cnt:217 scn: 0x0000.00067d31 12/31/2008 10:46:48
Stop scn: 0xffff.ffffffff 12/31/2008 10:29:22
Creation Checkpointed at scn:  0x0000.0000000b 12/27/2008 13:48:04
thread:0 rba0x0.0.0)

enabled at scn沒有變化,數(shù)據(jù)文件的scn: 0x0000.00067d31發(fā)生變化(之前scn: 0x0000.00067b12)。那么,我們備份集里的數(shù)據(jù)文件SCN是0006759f,第一次插入數(shù)據(jù)后變化為00067b46,resetlogs后恢復(fù)到了00067b12,最后插入完數(shù)據(jù)變化為00067d31,也就是說,恢復(fù)時(shí),ORACLE會(huì)判定一個(gè)恢復(fù)范圍,當(dāng)前控制文件里記錄的數(shù)據(jù)文件SCN-備份集數(shù)據(jù)文件SCN。但在實(shí)際恢復(fù)的過程中,ORACLE會(huì)先將歸檔日志中(當(dāng)前enabled at scn-1)-備份集數(shù)據(jù)文件SCN之間的記錄恢復(fù),那么這樣就恢復(fù)到了日志22之前(日志22的FIRST_CHANGE#為424718=00067b0f-1,所以它也不被恢復(fù),注意換算16進(jìn)制),之后所有的舊日志全部廢棄不再恢復(fù)(判斷標(biāo)準(zhǔn)應(yīng)該是STAMP及FIRST_TIME小于當(dāng)前SEQUENCE#=1這個(gè)日志的STAMP及FIRST_TIME)。然后,ORACLE根據(jù)enabled at scn為起點(diǎn),根據(jù)新的日志SEQUENCE#來逐一推進(jìn)恢復(fù)數(shù)據(jù)。當(dāng)resetlogs發(fā)生時(shí),控制文件中記錄的數(shù)據(jù)文件scn也發(fā)生了重置,置回enabled at scn-1(SCN的具體數(shù)值可能有會(huì)少許的差別,這主要看數(shù)據(jù)庫啟動(dòng)后Checkpoint cnt發(fā)生的次數(shù))。

所以,我覺得跨越恢復(fù)時(shí),真正起到作用的是enabled at scn,這個(gè)值很重要,很多信息都是從這里來的,根據(jù)這個(gè)值,就可以推測(cè)出那些歷史日志是被resetlogs掉的。

論壇徽章:
1
丑牛
日期:2014-08-07 17:07:05
4 [報(bào)告]
發(fā)表于 2008-12-31 11:40 |只看該作者
提示: 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2009-01-01 18:42 |只看該作者
樓主的資料很受用,建議加精
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP