Oracle 备份与恢复学习笔记(11)

简介:

第十一章: RMAN 备份与恢复

----------------非归档模式 RMAN 备份恢复
一、查看测试环境

[oracle@oracle ~]$ !sql
sqlplus '/as sysdba'

SQL*Plus: Release 10.2.0.1.0 - Production on Thu Jul 28 08:40:15 2011

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

Connected to an idle instance.

08:40:17 SQL> startup
ORACLE instance started.

Total System Global Area  251658240 bytes
Fixed Size                  1218820 bytes
Variable Size             201328380 bytes
Database Buffers           46137344 bytes
Redo Buffers                2973696 bytes
Database mounted.
Database opened.
08:40:42 SQL> show parameter name

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_file_name_convert                 string
db_name                              string      lx01
db_unique_name                       string      lx01
global_names                         boolean     FALSE
instance_name                        string      lx01
lock_name_space                      string
log_file_name_convert                string
service_names                        string      lx01
08:41:29 SQL> !clear


08:41:45 SQL> archive log list;
Database log mode              No Archive Mode
Automatic archival             Disabled
Archive destination            /disk4/arch/lx01
Oldest online log sequence     1
Current log sequence           3
08:41:57 SQL> show parameter name

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_file_name_convert                 string
db_name                              string      lx01
db_unique_name                       string      lx01
global_names                         boolean     FALSE
instance_name                        string      lx01
lock_name_space                      string
log_file_name_convert                string
service_names                        string      lx01
08:42:10 SQL> select * from v$log;

    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- -------------------
         1          1          1   10485760          2 NO  INACTIVE               1278963 2011-07-22 12:00:15
         4          1          0   10485760          2 YES UNUSED                       0
         3          1          3   10485760          2 NO  CURRENT                1321065 2011-07-28 08:40:32
         2          1          2   10485760          2 NO  INACTIVE               1300729 2011-07-28 08:20:06

08:42:42 SQL> select name from v$datafile;

NAME
------------------------------------------------------------------------------------------------------------------------------------------------------
/u01/app/oracle/oradata/lx01/system01.dbf
/u01/app/oracle/oradata/lx01/rtbs01.dbf
/u01/app/oracle/oradata/lx01/sysaux01.dbf
/u01/app/oracle/oradata/lx01/user01.dbf
/u01/app/oracle/oradata/lx01/small_undo01.dbf
/u01/app/oracle/oradata/lx01/test01.dbf
/u01/app/oracle/oradata/lx01/users02.dbf
/u01/app/oracle/oradata/lx01/undo01.dbf
/u01/app/oracle/oradata/lx01/indexes01.dbf

9 rows selected.

 

[oracle@oracle ~]$ !sql
sqlplus '/as sysdba'

SQL*Plus: Release 10.2.0.1.0 - Production on Thu Jul 28 08:45:39 2011

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


Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

08:45:39 SQL> conn scott/tiger
Connected.
08:45:41 SQL> select * from tab;

TNAME                          TABTYPE  CLUSTERID
------------------------------ ------- ----------
ADMIN_EXT_EMPLOYEES            TABLE
SYS_TEMP_FBT                   TABLE
BONUS                          TABLE
DEPT                           TABLE
EMP                            TABLE
EMP_EXT                        TABLE
EXCEPTIONS                     TABLE
SALGRADE                       TABLE
EMP1                           TABLE
TEST                           TABLE

10 rows selected.

二、利用rman备份

RMAN> run {
2>  shutdown immediate;
3>  startup mount;
4>  backup database format='/disk4/rman/lx/%d_%s.bak';
5>  alter database open;
6> }

database closed
database dismounted
Oracle instance shut down

connected to target database (not started)
Oracle instance started
database mounted

Total System Global Area     251658240 bytes

Fixed Size                     1218820 bytes
Variable Size                201328380 bytes
Database Buffers              46137344 bytes
Redo Buffers                   2973696 bytes

Starting backup at 22-JUL-11
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=37 devtype=DISK
channel ORA_DISK_1: starting full datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
input datafile fno=00001 name=/u01/app/oracle/oradata/lx01/system01.dbf
input datafile fno=00002 name=/u01/app/oracle/oradata/lx01/rtbs01.dbf
input datafile fno=00003 name=/u01/app/oracle/oradata/lx01/sysaux01.dbf
input datafile fno=00004 name=/u01/app/oracle/oradata/lx01/user01.dbf
input datafile fno=00010 name=/u01/app/oracle/oradata/lx01/undo01.dbf
input datafile fno=00006 name=/u01/app/oracle/oradata/lx01/test01.dbf
input datafile fno=00007 name=/u01/app/oracle/oradata/lx01/users02.dbf
input datafile fno=00011 name=/u01/app/oracle/oradata/lx01/indexes01.dbf
input datafile fno=00005 name=/u01/app/oracle/oradata/lx01/small_undo01.dbf
channel ORA_DISK_1: starting piece 1 at 22-JUL-11
channel ORA_DISK_1: finished piece 1 at 22-JUL-11
piece handle=/disk4/rman/lx/LX01_115.bak tag=TAG20110722T114920 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:35
Finished backup at 22-JUL-11

Starting Control File and SPFILE Autobackup at 22-JUL-11
piece handle=/disk4/recovery/lx01/LX01/autobackup/2011_07_22/o1_mf_s_757165750_72m71539_.bkp comment=NONE
Finished Control File and SPFILE Autobackup at 22-JUL-11

database opened

RMAN> list backup;


List of Backup Sets
===================

BS Key  Type LV Size       Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
111     Full    319.06M    DISK        00:00:29     22-JUL-11      
        BP Key: 111   Status: AVAILABLE  Compressed: NO  Tag: TAG20110722T114920
        Piece Name: /disk4/rman/lx/LX01_115.bak
  List of Datafiles in backup set 111
  File LV Type Ckp SCN    Ckp Time  Name
  ---- -- ---- ---------- --------- ----
  1       Full 1278135    22-JUL-11 /u01/app/oracle/oradata/lx01/system01.dbf
  2       Full 1278135    22-JUL-11 /u01/app/oracle/oradata/lx01/rtbs01.dbf
  3       Full 1278135    22-JUL-11 /u01/app/oracle/oradata/lx01/sysaux01.dbf
  4       Full 1278135    22-JUL-11 /u01/app/oracle/oradata/lx01/user01.dbf
  5       Full 1278135    22-JUL-11 /u01/app/oracle/oradata/lx01/small_undo01.dbf
  6       Full 1278135    22-JUL-11 /u01/app/oracle/oradata/lx01/test01.dbf
  7       Full 1278135    22-JUL-11 /u01/app/oracle/oradata/lx01/users02.dbf
  10      Full 1278135    22-JUL-11 /u01/app/oracle/oradata/lx01/undo01.dbf
  11      Full 1278135    22-JUL-11 /u01/app/oracle/oradata/lx01/indexes01.dbf

BS Key  Type LV Size       Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
112     Full    7.27M      DISK        00:00:01     22-JUL-11      
        BP Key: 112   Status: AVAILABLE  Compressed: NO  Tag: TAG20110722T114956
        Piece Name: /disk4/recovery/lx01/LX01/autobackup/2011_07_22/o1_mf_s_757165750_72m71539_.bkp
  Control File Included: Ckp SCN: 1278135      Ckp time: 22-JUL-11
  SPFILE Included: Modification time: 22-JUL-11

三、模拟测试环境

08:45:48 SQL> select * from test order by 1;

        ID
----------
         1
         2
         3
         4
         5
         6
         7
         8

8 rows selected.

08:45:53 SQL> conn /as sysdba
Connected.
08:46:01 SQL> select * from v$log;

    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- -------------------
         1          1          1   10485760          2 NO  INACTIVE               1278963 2011-07-22 12:00:15
         4          1          4   10485760          2 NO  CURRENT                1321633 2011-07-28 08:45:01
         3          1          3   10485760          2 NO  ACTIVE                 1321065 2011-07-28 08:40:32
         2          1          2   10485760          2 NO  INACTIVE               1300729 2011-07-28 08:20:06

08:46:06 SQL> insert into scott.test values (9);

1 row created.

08:46:17 SQL> insert into scott.test values (10);

1 row created.

08:46:20 SQL> commit;

Commit complete.

08:46:21 SQL> alter system switch logfile;

System altered.

08:46:25 SQL> /

System altered.

08:46:27 SQL> select * from v$log;

    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- -------------------
         1          1          5   10485760          2 NO  ACTIVE                 1321688 2011-07-28 08:46:25
         4          1          4   10485760          2 NO  ACTIVE                 1321633 2011-07-28 08:45:01
         3          1          3   10485760          2 NO  ACTIVE                 1321065 2011-07-28 08:40:32
         2          1          6   10485760          2 NO  CURRENT                1321690 2011-07-28 08:46:27

08:46:31 SQL> insert into scott.test values (11);

1 row created.

08:46:48 SQL> insert into scott.test values (12);

1 row created.

08:46:50 SQL> commit;

Commit complete.

08:46:51 SQL> alter system switch logfile;

System altered.

08:46:56 SQL> /

System altered.

08:47:02 SQL> /

System altered.

08:47:03 SQL> /

System altered.

08:47:05 SQL> select * from v$log;

    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- -------------------
         1          1          9   10485760          2 NO  INACTIVE               1321706 2011-07-28 08:47:03
         4          1          8   10485760          2 NO  INACTIVE               1321704 2011-07-28 08:47:02
         3          1          7   10485760          2 NO  INACTIVE               1321702 2011-07-28 08:46:56
         2          1         10   10485760          2 NO  CURRENT                1321708 2011-07-28 08:47:05

/

    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- -------------------
         1          1          9   10485760          2 NO  INACTIVE               1321706 2011-07-28 08:47:03
         4          1          8   10485760          2 NO  INACTIVE               1321704 2011-07-28 08:47:02
         3          1          7   10485760          2 NO  INACTIVE               1321702 2011-07-28 08:46:56
         2          1         10   10485760          2 NO  CURRENT                1321708 2011-07-28 08:47:05

08:47:13 SQL> alter system switch logfile;

System altered.

08:47:16 SQL> select * from scott.test;

        ID
----------
         6
         7
         8
         1
         2
         3
         4
         5
         9
        10
        11
        12

12 rows selected.

08:47:22 SQL> shutdown abort
ORACLE instance shut down.
08:47:41 SQL> !
[oracle@oracle ~]$ 
[oracle@oracle ~]$ rm /u01/app/oracle/oradata/lx01/*.dbf

[oracle@oracle ~]$ sqlplus '/as sysdba'

SQL*Plus: Release 10.2.0.1.0 - Production on Thu Jul 28 08:50:16 2011

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

Connected to an idle instance.

08:50:16 SQL> startup
ORACLE instance started.

Total System Global Area  251658240 bytes
Fixed Size                  1218820 bytes
Variable Size             201328380 bytes
Database Buffers           46137344 bytes
Redo Buffers                2973696 bytes
Database mounted.
ORA-01157: cannot identify/lock data file 1 - see DBWR trace file
ORA-01110: data file 1: '/u01/app/oracle/oradata/lx01/system01.dbf'


08:50:25 SQL> select file# ,error from v$recover_file;

     FILE# ERROR
---------- -----------------------------------------------------------------
         1 FILE NOT FOUND
         2 FILE NOT FOUND
         3 FILE NOT FOUND
         4 FILE NOT FOUND
         5 FILE NOT FOUND
         6 FILE NOT FOUND
         7 FILE NOT FOUND
        10 FILE NOT FOUND
        11 FILE NOT FOUND

9 rows selected.

08:50:37 SQL> exit
ERROR:
ORA-03135: connection lost contact


Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options (with complications)

四、用rman restore database

08:52:45 SQL> select dbid from v$database;

      DBID
----------
1559643052

08:54:04 SQL>


RMAN> list backup;

using target database control file instead of recovery catalog

List of Backup Sets
===================

BS Key  Type LV Size       Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
113     Full    142.50M    DISK        00:00:26     28-JUL-11      
        BP Key: 113   Status: AVAILABLE  Compressed: NO  Tag: TAG20110728T084406
        Piece Name: /disk4/rman/lx/lx01_118_757673047.bak
  List of Datafiles in backup set 113
  File LV Type Ckp SCN    Ckp Time  Name
  ---- -- ---- ---------- --------- ----
  1       Full 1321454    28-JUL-11 /u01/app/oracle/oradata/lx01/system01.dbf
  5       Full 1321454    28-JUL-11 /u01/app/oracle/oradata/lx01/small_undo01.dbf
  10      Full 1321454    28-JUL-11 /u01/app/oracle/oradata/lx01/undo01.dbf
  11      Full 1321454    28-JUL-11 /u01/app/oracle/oradata/lx01/indexes01.dbf

BS Key  Type LV Size       Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
114     Full    176.95M    DISK        00:00:34     28-JUL-11      
        BP Key: 114   Status: AVAILABLE  Compressed: NO  Tag: TAG20110728T084406
        Piece Name: /disk4/rman/lx/lx01_119_757673047.bak
  List of Datafiles in backup set 114
  File LV Type Ckp SCN    Ckp Time  Name
  ---- -- ---- ---------- --------- ----
  2       Full 1321454    28-JUL-11 /u01/app/oracle/oradata/lx01/rtbs01.dbf
  3       Full 1321454    28-JUL-11 /u01/app/oracle/oradata/lx01/sysaux01.dbf
  4       Full 1321454    28-JUL-11 /u01/app/oracle/oradata/lx01/user01.dbf
  6       Full 1321454    28-JUL-11 /u01/app/oracle/oradata/lx01/test01.dbf
  7       Full 1321454    28-JUL-11 /u01/app/oracle/oradata/lx01/users02.dbf

BS Key  Type LV Size       Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
115     Full    7.27M      DISK        00:00:01     28-JUL-11      
        BP Key: 115   Status: AVAILABLE  Compressed: NO  Tag: TAG20110728T084443
        Piece Name: /disk4/recovery/lx01/LX01/autobackup/2011_07_28/o1_mf_s_757673037_732pfw39_.bkp
  Control File Included: Ckp SCN: 1321454      Ckp time: 28-JUL-11
  SPFILE Included: Modification time: 22-JUL-11

RMAN> shutdown

database dismounted
Oracle instance shut down

RMAN> startup nomount

connected to target database (not started)
Oracle instance started

Total System Global Area     251658240 bytes

Fixed Size                     1218820 bytes
Variable Size                201328380 bytes
Database Buffers              46137344 bytes
Redo Buffers                   2973696 bytes

RMAN> set dbid=1559643052;

executing command: SET DBID

RMAN> restore controlfile from '/disk4/recovery/lx01/LX01/autobackup/2011_07_28/o1_mf_s_757673037_732pfw39_.bkp';

Starting restore at 28-JUL-11
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=36 devtype=DISK

channel ORA_DISK_1: restoring control file
channel ORA_DISK_1: restore complete, elapsed time: 00:00:02
output filename=/disk1/lx01/oradata/control01.ctl
output filename=/disk1/lx01/oradata/control02.ctl
output filename=/disk2/lx01/oradata/control03.ctl
Finished restore at 28-JUL-11

RMAN> alter database mount;

database mounted
released channel: ORA_DISK_1

RMAN> restore database;

Starting restore at 28-JUL-11
Starting implicit crosscheck backup at 28-JUL-11
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=36 devtype=DISK
Crosschecked 2 objects
Finished implicit crosscheck backup at 28-JUL-11

Starting implicit crosscheck copy at 28-JUL-11
using channel ORA_DISK_1
Finished implicit crosscheck copy at 28-JUL-11

searching for all files in the recovery area
cataloging files...
cataloging done

List of Cataloged Files
=======================
File Name: /disk4/recovery/lx01/LX01/autobackup/2011_07_28/o1_mf_s_757673037_732pfw39_.bkp

using channel ORA_DISK_1

skipping datafile 1; already restored to file /u01/app/oracle/oradata/lx01/system01.dbf
skipping datafile 5; already restored to file /u01/app/oracle/oradata/lx01/small_undo01.dbf
skipping datafile 10; already restored to file /u01/app/oracle/oradata/lx01/undo01.dbf
skipping datafile 11; already restored to file /u01/app/oracle/oradata/lx01/indexes01.dbf
skipping datafile 2; already restored to file /u01/app/oracle/oradata/lx01/rtbs01.dbf
skipping datafile 3; already restored to file /u01/app/oracle/oradata/lx01/sysaux01.dbf
skipping datafile 4; already restored to file /u01/app/oracle/oradata/lx01/user01.dbf
skipping datafile 6; already restored to file /u01/app/oracle/oradata/lx01/test01.dbf
skipping datafile 7; already restored to file /u01/app/oracle/oradata/lx01/users02.dbf
restore not done; all files readonly, offline, or already restored
Finished restore at 28-JUL-11

五、查看restore 结果
[oracle@oracle ~]$ !sql
sqlplus '/as sysdba'

SQL*Plus: Release 10.2.0.1.0 - Production on Thu Jul 28 08:52:15 2011

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


Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

08:52:16 SQL> select checkpoint_change# from v$database;

CHECKPOINT_CHANGE#
------------------
           1321454

08:52:31 SQL> select checkpoint_change#,file# from v$datafile;

CHECKPOINT_CHANGE#      FILE#
------------------ ----------
           1321454          1
           1321454          2
           1321454          3
           1321454          4
           1321454          5
           1321454          6
           1321454          7
           1321454         10
           1321454         11

9 rows selected.


08:52:38 SQL> select checkpoint_change#,file# from v$datafile_header;

CHECKPOINT_CHANGE#      FILE#
------------------ ----------
           1321454          1
           1321454          2
           1321454          3
           1321454          4
           1321454          5
           1321454          6
           1321454          7
           1321454         10
           1321454         11

9 rows selected.

六、用rman 进行恢复

RMAN> recover database;

Starting recover at 28-JUL-11
using channel ORA_DISK_1

starting media recovery

archive log thread 1 sequence 8 is already on disk as file /disk1/lx01/oradata/redo04b.log
archive log thread 1 sequence 9 is already on disk as file /disk1/lx01/oradata/redo01b.log
archive log thread 1 sequence 10 is already on disk as file /disk1/lx01/oradata/redo02b.log
archive log thread 1 sequence 11 is already on disk as file /disk1/lx01/oradata/redo03b.log
unable to find archive log
archive log thread=1 sequence=3
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of recover command at 07/28/2011 08:59:30
RMAN-06054: media recovery requesting unknown log: thread 1 seq 3 lowscn 1321454

RMAN> alter database open;

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of alter db command at 07/28/2011 08:59:57
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open

RMAN> alter database open resetlogs;

database opened

RMAN>

alter_lx01.log 告警日志信息:

alter database mount
Thu Jul 28 08:58:15 2011
Setting recovery target incarnation to 20
Thu Jul 28 08:58:15 2011
Successful mount of redo thread 1, with mount id 1560169571
Thu Jul 28 08:58:15 2011
Database mounted in Exclusive Mode
Completed: alter database mount
Thu Jul 28 08:59:29 2011
alter database recover datafile list clear
Thu Jul 28 08:59:29 2011
Completed: alter database recover datafile list clear
Thu Jul 28 08:59:29 2011
alter database recover datafile list
 1 , 2 , 3 , 4 , 5 , 6 , 7 , 10 , 11
Completed: alter database recover datafile list
 1 , 2 , 3 , 4 , 5 , 6 , 7 , 10 , 11
Thu Jul 28 08:59:29 2011
alter database recover if needed
 start until cancel using backup controlfile
Media Recovery Start
ORA-279 signalled during: alter database recover if needed
 start until cancel using backup controlfile
...
Thu Jul 28 08:59:29 2011
alter database recover cancel
Thu Jul 28 08:59:30 2011
Media Recovery Canceled
Completed: alter database recover cancel
 










本文转自 客居天涯 51CTO博客,原文链接:http://blog.51cto.com/tiany/792534,如需转载请自行联系原作者
目录
相关文章
|
7月前
|
Oracle 关系型数据库 数据库
9-2 Oracle数据库(表)的逻辑备份与恢复 --导出与导入
9-2 Oracle数据库(表)的逻辑备份与恢复 --导出与导入
|
3月前
|
Oracle 关系型数据库 数据处理
某教程学习笔记(一):10、oracle数据库注入
某教程学习笔记(一):10、oracle数据库注入
19 0
|
4月前
|
SQL 存储 Oracle
oracle如何定期备份数据库sql文件
【1月更文挑战第7天】oracle如何定期备份数据库sql文件
60 8
|
9月前
|
Oracle 关系型数据库 数据库
通过数据泵expdp、impdp方式备份与还原(导出与导入)Oracle数据库
通过数据泵expdp、impdp方式备份与还原(导出与导入)Oracle数据库
|
Oracle 关系型数据库 5G
Oracle 12C rman备份占用大量临时表空间
Oracle 12C rman备份占用大量临时表空间
400 0
|
12月前
|
存储 SQL 监控
Oracle BCT(Block Change Tracking)与增量备份---发表在数据和云
BCT(Block Change Tracking)是Oracle从10g开始有的特性。BCT的原理是记录数据文件里每个数据块的变化,并把这些变化信息保存在BCT的跟踪文件中。
335 0
|
12月前
|
Oracle 关系型数据库 内存技术
|
12月前
|
Oracle 关系型数据库 Linux
Oracle自动备份脚本(Linux)
Oracle自动备份脚本(Linux)
101 0
|
Oracle 关系型数据库 数据处理
某教程学习笔记(一):10、oracle数据库注入
某教程学习笔记(一):10、oracle数据库注入
100 0
某教程学习笔记(一):10、oracle数据库注入
|
SQL Oracle 关系型数据库
Oracle中如何备份控制文件?备份控制文件的方式有哪几种?
Oracle中如何备份控制文件?备份控制文件的方式有哪几种?
284 0

推荐镜像

更多