iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >SNAPSHOT CONTROLFILE有什么用途
  • 957
分享到

SNAPSHOT CONTROLFILE有什么用途

2024-04-02 19:04:59 957人浏览 独家记忆
摘要

本篇内容介绍了“SNAPSHOT CONTROLFILE有什么用途”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有

本篇内容介绍了“SNAPSHOT CONTROLFILE有什么用途”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

根据我的理解:
snapshot control file只有在同步catalog的时候用到或者在控制文件备份的时候用到
(在备份控制文件之前会备份一个 SNAPSHOT CONTROLFILE )
----------------------------------------------------------
SNAPSHOT CONTROLFILE 的用途,顾名思义,应该是用来恢复控制文件的,下面是我的测试结果:
结论是:
1.SNAPSHOT CONTROLFILE 不能直接copy成control file,如果数据库已经shutdown
2.可以通过rman,将SNAPSHOT CONTROLFILE 恢复成控制文件
3.如果数据库没有shutdown,可以直接copy SNAPSHOT CONTROLFILE 成控制文件,但仍需要恢复(因为他是旧的)

下面是我的测试步骤:
---------------------------------------
查看snapshot controlfile的备份设置:
RMAN> SHOW SNAPSHOT CONTROLFILE NAME;

RMAN configuration parameters are:
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u01/ora9a/product/9.2/dbs/snapcf_tt9a.f'; # default

RMAN>

下面模拟控制文件丢失的恢复
$ ls
control01.ctl  cwmlite01.dbf  indx01.dbf     redo02.log     temp01.dbf     users01.dbf
control02.ctl  drsys01.dbf    odm01.dbf      redo03.log     tools01.dbf    xdb01.dbf
control03.ctl  example01.dbf  redo01.log     system01.dbf   undotbs01.dbf
$ rm cont*  --删除控制文件
$ ls
cwmlite01.dbf  example01.dbf  odm01.dbf      redo02.log     system01.dbf   tools01.dbf    users01.dbf
drsys01.dbf    indx01.dbf     redo01.log     redo03.log     temp01.dbf     undotbs01.dbf  xdb01.dbf
$
在控制文件被删除后,数据库还能正常操作:
sql> insert into test(no) values(4);

1 row created.

SQL> commit;

Commit complete.

SQL> alter system switch logfile;

System altered.

SQL> alter system checkpoint;

System altered.

SQL> /

System altered.

SQL>
SQL> select no,to_char(vdate,'yyyy-mm-dd hh34:mi:ss') from  test;

NO TO_CHAR(VDATE,'YYYY-MM-DDHH24:MI:SS')
---------- ---------------------------------------------------------
        1 2009-02-24 10:16:09
        2 2009-02-24 10:25:30
        3 2009-02-24 10:26:56
        4 2009-02-24 10:30:59

SQL>
重新启动数据库:
SQL> connect /as sysdba
Connected.
SQL> shutdown immediate
ORA-00210: cannot open the specified controlfile
ORA-00202: controlfile: '/u01/ora9a/oradata/tt9a/control01.ctl'
ORA-27041: unable to open file
IBM aiX RISC System/6000 Error: 2: No such file or directory
Additional infORMation: 3
没有了控制文件了,shutdown immediate出错
SQL>
SQL> shutdown abort;
oracle instance shut down.
SQL> startup
ORACLE instance started.

Total System Global Area  320569400 bytes
Fixed Size                   741432 bytes
Variable Size             285212672 bytes
Database Buffers           33554432 bytes
Redo Buffers                1060864 bytes
ORA-00205: error in identifying controlfile, check alert log for more info

SQL>
没有控制文件,数据库不能mount,现在把SNAPSHOT CONTROLFILE copy到对应目录
$ cp /u01/ora9a/product/9.2/dbs/snapcf_tt9a.f /u01/ora9a/oradata/tt9a/control01.ctl
$ cp /u01/ora9a/oradata/tt9a/control01.ctl /u01/ora9a/oradata/tt9a/control0t.ctl
$ cp /u01/ora9a/oradata/tt9a/control01.ctl /u01/ora9a/oradata/tt9a/control03.ctl
$ ls -lrt /u01/ora9a/oradata/tt9a/contr*      
-rw-r-----   1 ora9a    dba         1531904 Feb 24 10:36 /u01/ora9a/oradata/tt9a/control01.ctl
-rw-r-----   1 ora9a    dba         1531904 Feb 24 10:36 /u01/ora9a/oradata/tt9a/control0t.ctl
-rw-r-----   1 ora9a    dba         1531904 Feb 24 10:36 /u01/ora9a/oradata/tt9a/control03.ctl
$
SQL> startup
ORACLE instance started.

Total System Global Area  320569400 bytes
Fixed Size                   741432 bytes
Variable Size             285212672 bytes
Database Buffers           33554432 bytes
Redo Buffers                1060864 bytes
ORA-00205: error in identifying controlfile, check alert log for more info
照样不能mount数据库
----------------------------------------
尝试用rman恢复控制文件:
$ rman target /

Recovery Manager: Release 9.2.0.1.0 - 64bit Production

Copyright (c) 1995, 2002, Oracle Corporation.  All rights reserved.

connected to target database (not started)

RMAN> startup nomount;

Oracle instance started

Total System Global Area     320569400 bytes

Fixed Size                      741432 bytes
Variable Size                285212672 bytes
Database Buffers              33554432 bytes
Redo Buffers                   1060864 bytes

RMAN>  restore controlfile from '/u01/ora9a/product/9.2/dbs/snapcf_tt9a.f';

Starting restore at 24-FEB-09

using target database controlfile instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=13 devtype=DISK
channel ORA_DISK_1: copied controlfile copy
replicating controlfile
input filename=/u01/ora9a/oradata/tt9a/control01.ctl
output filename=/u01/ora9a/oradata/tt9a/control02.ctl
output filename=/u01/ora9a/oradata/tt9a/control03.ctl
Finished restore at 24-FEB-09

RMAN> alter database mount;

database mounted

RMAN>
ok,用rman可以进行恢复,让数据mount起来
恢复数据库
RMAN> recover database;

Starting recover at 24-FEB-09
using channel ORA_DISK_1

starting media recovery

arcHive log thread 1 sequence 1 is already on disk as file /u01/ora9a/oradata/tt9a/redo01.log
archive log thread 1 sequence 2 is already on disk as file /u01/ora9a/oradata/tt9a/redo02.log
archive log thread 1 sequence 3 is already on disk as file /u01/ora9a/oradata/tt9a/redo03.log
archive log filename=/u01/ora9a/oradata/tt9a/redo01.log thread=1 sequence=0
archive log filename=/u01/ora9a/oradata/tt9a/redo02.log thread=1 sequence=2
archive log filename=/u01/ora9a/oradata/tt9a/redo03.log thread=1 sequence=3
media recovery complete
Finished recover at 24-FEB-09

RMAN> alter database open;

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of alter db command at 02/24/2009 10:47:36
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open

RMAN> alter database open resetlogs;

database opened

RMAN>
查看先前insert的数据:
SQL> select no,to_char(vdate,'yyyy-mm-dd hh34:mi:ss') from  test;

NO TO_CHAR(VDATE,'YYYY-MM-DDHH24:MI:SS')
---------- ---------------------------------------------------------
        1 2009-02-24 10:16:09
        2 2009-02-24 10:25:30
        3 2009-02-24 10:26:56
        4 2009-02-24 10:30:59

SQL>
数据仍在,恢复成功!

=============================
下面仍是在数据库正常运行情况下,将控制文件删除,仍测试直接copy SNAPSHOT CONTROLFILE 的恢复方式:
SQL> insert into test(no) values(5);

1 row created.

SQL> commit;

Commit complete.

SQL>
SQL> !
$ pwd
/u01/ora9a/oradata/tt9a
$ ls
control01.ctl  control0t.ctl  example01.dbf  redo01.log     system01.dbf   undotbs01.dbf
control02.ctl  cwmlite01.dbf  indx01.dbf     redo02.log     temp01.dbf     users01.dbf
control03.ctl  drsys01.dbf    odm01.dbf      redo03.log     tools01.dbf    xdb01.dbf
$ rm contr*
$ ls
cwmlite01.dbf  example01.dbf  odm01.dbf      redo02.log     system01.dbf   tools01.dbf    users01.dbf
drsys01.dbf    indx01.dbf     redo01.log     redo03.log     temp01.dbf     undotbs01.dbf  xdb01.dbf
$
$ exit

SQL> select * from v$controlfile;

STATUS
---------------------
NAME
--------------------------------------------------------------------------------

/u01/ora9a/oradata/tt9a/control01.ctl


/u01/ora9a/oradata/tt9a/control02.ctl


/u01/ora9a/oradata/tt9a/control03.ctl


SQL> select dbid from v$database;
select dbid from v$database
                *
ERROR at line 1:
ORA-00210: cannot open the specified controlfile
ORA-00202: controlfile: '/u01/ora9a/oradata/tt9a/control01.ctl'
ORA-27041: unable to open file
IBM AIX RISC System/6000 Error: 2: No such file or directory
Additional information: 3

SQL>
没有控制文件,查询失败
现在将SNAPSHOT CONTROLFILE copy到对应目录,尝试直接恢复成控制文件:
SQL> !
$ pwd
/u01/ora9a/oradata/tt9a
$ cp  /u01/ora9a/product/9.2/dbs/snapcf_tt9a.f  control01.ctl
$ cp control01.ctl control02.ctl
$ cp control01.ctl control03.ctl
$ ls -lrt cont*
-rw-r-----   1 ora9a    dba         1531904 Feb 24 10:55 control01.ctl
-rw-r-----   1 ora9a    dba         1531904 Feb 24 10:55 control02.ctl
-rw-r-----   1 ora9a    dba         1531904 Feb 24 10:55 control03.ctl
$
注意,此时不要起停数据库,否则这样恢复的控制文件仍不可用
尝试查询control file信息
SQL> select dbid from v$database;

DBID
----------
3459515476

SQL>
ok,成功
查询数据文件头信息
SQL> select CHECKPOINT_CHANGE#   from v$datafile_header;
select CHECKPOINT_CHANGE#   from v$datafile_header
                                *
ERROR at line 1:
ORA-00600: internal error code, arguments: [2170], [], [], [], [], [], [], []

SQL>
失败
现在重新启动数据库,看看是否可以到mount状态:
SQL> shutdown immediate
ORA-00600: internal error code, arguments: [kccchb_1], [356], [353], [0], [353], [0], [], []
SQL> shutdown abort;
ORACLE instance shut down.
SQL>
SQL> startup
ORACLE instance started.

Total System Global Area  320569400 bytes
Fixed Size                   741432 bytes
Variable Size             285212672 bytes
Database Buffers           33554432 bytes
Redo Buffers                1060864 bytes
Database mounted.
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open


SQL>
ok,此时数据库可以mount起来了

SQL>
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open


SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR at line 1:
ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1: '/u01/ora9a/oradata/tt9a/system01.dbf'
提示需要恢复
SQL> recover database using backup controlfile;
ORA-00279: change 349227 generated at 02/24/2009 10:49:58 needed for thread 1
ORA-00289: suggestion : /u01/arch/1_1.dbf
ORA-00280: change 349227 for thread 1 is in sequence #1


Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
AUTO
ORA-00328: archived log ends at change 347581, need later change 349227
ORA-00334: archived log: '/u01/arch/1_1.dbf'


SQL> recover database using backup controlfile;
ORA-00279: change 349227 generated at 02/24/2009 10:49:58 needed for thread 1
ORA-00289: suggestion : /u01/arch/1_1.dbf
ORA-00280: change 349227 for thread 1 is in sequence #1


Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
/u01/ora9a/oradata/tt9a/redo01.log
Log applied.
Media recovery complete.

SQL> alter database open resetlogs;

Database altered.

SQL>
恢复成功
SQL> select no,to_char(vdate,'yyyy-mm-dd hh34:mi:ss') from  test order by vdate;

NO TO_CHAR(VDATE,'YYYY-MM-DDHH24:MI:SS')
---------- ---------------------------------------------------------
        1 2009-02-24 10:16:09
        2 2009-02-24 10:25:30
        3 2009-02-24 10:26:56
        4 2009-02-24 10:30:59
        5 2009-02-24 10:51:01

SQL>
ok,新插入的数据也在。

“SNAPSHOT CONTROLFILE有什么用途”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

您可能感兴趣的文档:

--结束END--

本文标题: SNAPSHOT CONTROLFILE有什么用途

本文链接: https://www.lsjlt.com/news/70173.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SNAPSHOT CONTROLFILE有什么用途
    本篇内容介绍了“SNAPSHOT CONTROLFILE有什么用途”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有...
    99+
    2022-10-19
  • XML有什么用途
    小编给大家分享一下XML有什么用途,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!XML是被设计为存储、传输以及交换数据的。XML不是被设计为用来显示数据的。XML可以将HTML与数据分离通...
    99+
    2022-10-19
  • C#是什么?它有什么用途?
    C#是一种强大而多用途的编程语言,它的应用范围广泛,能够满足各种不同的开发需求。无论您是一名初学者还是经验丰富的开发者,C#都能为您提供创造性和灵活性的开发环境。让我们来了解一下C#的基本概念:C#是一种面向对象的编程语言,由微软公司开发并...
    99+
    2023-10-22
    C#使用 C#编程 (C# Programming)
  • wamp5是什么 wamp有什么用途
    Wamp5是一个开源的软件集合,用于在Windows操作系统上搭建本地的Web服务器环境。它包括Windows操作系统(W)、Apa...
    99+
    2023-08-11
    wamp5
  • 云主机有什么用途
    云主机有以下几个常见的用途:1. 网站托管:可以将网站的文件和数据库放置在云主机上,通过互联网访问网站。2. 应用程序部署:可以将应...
    99+
    2023-09-20
    云主机
  • 学习python有什么用途
    这篇文章主要讲解了“学习python有什么用途”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“学习python有什么用途”吧!  1、web开发:Python是一种解释型脚本语言,开发效率高,...
    99+
    2023-06-01
  • 代理ip有什么用途
    这篇文章主要讲解了“代理ip有什么用途”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“代理ip有什么用途”吧!1、加快访问速度。通常代理服务器具有缓冲功能,存储空间大。当网络拥挤或系统故障时,...
    99+
    2023-06-20
  • 云服务器有什么用途
    云服务器的用途有:1、能够实现各类web服务,比如用来搭建网站;2、云服务器拥有高性能的数据处理能力,因此可以用来作邮件服务器使用;3、目前大部分APP和小程序后端都是采用云服务器来搭建的。具体内容如下:web服务云服务器可以实现各类web...
    99+
    2022-10-21
  • CSS animation属性有什么用途
    CSS animation属性用于创建和控制动画效果。它可以使元素在页面上移动、旋转、淡入淡出等,从而增加页面的交互性和吸引力。具体...
    99+
    2023-10-10
    CSS
  • 租用服务器有什么用途
    本篇内容主要讲解“租用服务器有什么用途”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“租用服务器有什么用途”吧! 租用服务器有什么用,主要用途体现在哪里?现在服务器的使用者众多,市场对服...
    99+
    2023-06-07
  • 云服务器都有什么用途
    云服务器是一种虚拟服务器软件,通常被用于存储和管理大量的数据,以便将它们分发到远程位置。这意味着您不需要拥有一台物理服务器,只需租用一台云服务器,即可实现对资源的远程访问和管理。 在使用云服务器时,您可以将数据存储在云服务器上的多个节点上...
    99+
    2023-10-26
    都有 用途 服务器
  • 外网加速器有什么用途
    外网加速器的用途:外网加速器是专门为用户打造减少延迟,提高游戏运行稳定开发的游戏加速类工具,它可以帮助用户使用各种各样的国外游戏专线并给玩家提供了各种热门的游戏加速功能,避免了因网络延迟而导致游戏运行不畅的问题。具体内容如下:外网加速器其实...
    99+
    2022-10-17
  • 香港服务器有什么用途
    香港服务器的用途有:1、能够使用香港服务器来建立网站或博客、电子商务平台;2、使用香港服务器存储数据具有较高的安全性以及恢复性;3、构建APP和其他应用程序后,需要放置在服务器中才能够通过网络访问,因此可以选择将应用程序放置在香港服务器中;...
    99+
    2022-10-13
  • 海外服务器有什么用途?
    海外服务器有什么用途?如今互联网时代,由于信息化的快速发展,企业从原先的传统业务转型到网络上来,因此,服务器行业也跟随着市场的需求而逐年增长。为何服务器行业会如此受到企业的追捧呢,这个我们需要先了解它的用途是什么?游戏平台:游戏是目前娱乐行...
    99+
    2023-06-05
  • win7更改配色有什么用途
    这篇文章主要介绍“win7更改配色有什么用途”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“win7更改配色有什么用途”文章能帮助大家解决问题。win7更改配色是干嘛的答:win7更改配色可以让用户自...
    99+
    2023-07-01
  • Java中的反射有什么用途
    这篇文章主要讲解了“Java中的反射有什么用途”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java中的反射有什么用途”吧!回顾:什么是反射?反射(Reflection)是Java 程序开发...
    99+
    2023-06-02
  • 云服务器私有ip有什么用途
    云服务器私有ip有以下几个用途: 提高安全性:云服务器是一个虚拟化的资源,用户的数据和应用程序都是在云服务器上运行的,因此,云服务器需要安全措施来保护用户的数据和应用程序。私有ip可以提供更好的安全性,使用户的数据和应用程序更加安全。 ...
    99+
    2023-10-28
    有什么 用途 服务器
  • 登录私有云服务器有什么用途
    私有云服务器的登录使得用户能够更容易地管理他们的网络。私有云服务器可以在企业内部网络中独立于企业的物理网络进行部署。这意味着用户可以通过一台计算机轻松地访问云服务器中的数据和应用程序。私有云服务器的登录还可以使用户能够更容易地访问云端中的文...
    99+
    2023-10-27
    有什么 用途 服务器
  • 阿里云服务器有什么用途
    阿里云服务器是阿里云提供的一种服务器产品,它可以用于存储和处理数据。以下是几个用途:数据存储 阿里云服务器存储在阿里云服务器上的数据可以存储到本地,这样可以减少数据的传输量和存储空间的使用。例如,如果您要存储大量的购物车数据,可以将数据存储...
    99+
    2023-10-26
    有什么 阿里 用途
  • 华为云服务器有什么用途
    华为云服务器是华为公司专门为企业客户提供的云计算服务,它可以帮助企业客户更好地存储、管理和处理数据,实现更高效的IT架构和应用部署,同时还支持多种云计算服务,如IaaS、PaaS、SaaS等。华为云服务器可以应用于各种企业场景,如云游戏、云...
    99+
    2023-10-25
    华为 有什么 用途
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作