Chinaunix首页 | 论坛 | 博客
  • 博客访问: 894801
  • 博文数量: 101
  • 博客积分: 2256
  • 博客等级: 大尉
  • 技术积分: 1481
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-19 17:52
文章存档

2017年(1)

2013年(2)

2012年(25)

2011年(73)

分类: Oracle

2011-04-19 18:27:28

一.控制文件的作用
控制文件记录了物理数据库的当前状态。一般为3个,三个控制文件都是一摸一样的,最好是分开放在不同的磁盘上。

二.控制文件的内容
2.1数据库的名字;
数据库的标示符:创建数据库是oracle自动生成的;
数据库创建的时间戳:它是在数据库创建时生成的;
联机重做日志文件的名字和准确位置;
当前日志的学历号:它是在日志切换时oracle记录的;
日志的历史信息:它是在日志切换时oracle记录的;
归档日志文件的准确位置和状态;
数据文件的名字和准确位置;
表空间的信息;
备份的准确位置和状态;


三.控制文件的大小问题(抱歉,这个问题暂时还无法解决,等以后会设置个专题来说明)
大概初步的概念就是分为可重用部分和不可重用部分。


四.用数据字典来查看控制文件的配置
示例如下:
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.

C:/Documents and Settings/jacky>sqlplus/nolog

SQL*Plus: Release 10.2.0.1.0 - Production on 星期一 3月 21 22:40:39 2011

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

SQL> conn / as sysdba;
已连接。
SQL> col type format a35;
SQL> select type,record_size,records_total,records_used
2 from v$controlfile_record_section;

TYPE RECORD_SIZE RECORDS_TOTAL RECORDS_USED
----------------------------------- ----------- ------------- ------------
DATABASE 316 1 1
CKPT PROGRESS 8180 11 0
REDO THREAD 256 8 1
REDO LOG 72 16 3
DATAFILE 428 100 4
FILENAME 524 2298 8
TABLESPACE 68 100 5
TEMPORARY FILENAME 56 100 1
RMAN CONFIGURATION 1108 50 0
LOG HISTORY 56 292 4
OFFLINE RANGE 200 163 0

TYPE RECORD_SIZE RECORDS_TOTAL RECORDS_USED
----------------------------------- ----------- ------------- ------------
ARCHIVED LOG 584 28 0
BACKUP SET 40 409 0
BACKUP PIECE 736 200 0
BACKUP DATAFILE 116 282 0
BACKUP REDOLOG 76 215 0
DATAFILE COPY 660 223 0
BACKUP CORRUPTION 44 371 0
COPY CORRUPTION 40 409 0
DELETED OBJECT 20 818 0
PROXY COPY 852 249 0
BACKUP SPFILE 36 454 0

TYPE RECORD_SIZE RECORDS_TOTAL RECORDS_USED
----------------------------------- ----------- ------------- ------------
DATABASE INCARNATION 56 292 2
FLASHBACK LOG 84 2048 0
RECOVERY DESTINATION 180 1 1
INSTANCE SPACE RESERVATION 28 1055 1
REMOVABLE RECOVERY FILES 32 1000 0
RMAN STATUS 116 141 0
THREAD INSTANCE NAME MAPPING 80 8 8
MTTR 100 8 1
DATAFILE HISTORY 568 57 0
STANDBY DATABASE MATRIX 400 10 10
GUARANTEED RESTORE POINT 212 2048 0

TYPE RECORD_SIZE RECORDS_TOTAL RECORDS_USED
----------------------------------- ----------- ------------- ------------
RESTORE POINT 212 2083 0

已选择34行。

SQL> --record_size为每个记录的字节数;
SQL> --record_total为该段所分配的记录个数;
SQL> --records_used为该段使用的记录个数;
SQL> --也可以用条件语句缩小范围;
SQL> select type,record_size,records_total,records_used
2 from v$controlfile_record_section
3 where type in ('DATAFILE','TABLESPACE','REDO LOG');

TYPE RECORD_SIZE RECORDS_TOTAL RECORDS_USED
----------------------------------- ----------- ------------- ------------
REDO LOG 72 16 3
DATAFILE 428 100 4
TABLESPACE 68 100 5

SQL> --下面介绍一种好的方法来查看控制文件的位置;
SQL> col name for a55
SQL> select status,name from v$controlfile;

STATUS NAME
------- -------------------------------------------------------
E:/ORACLE/PRODUCT/10.2.0/ORADATA/JACKY/CONTROL01.CTL
E:/ORACLE/PRODUCT/10.2.0/ORADATA/JACKY/CONTROL02.CTL
E:/ORACLE/PRODUCT/10.2.0/ORADATA/JACKY/CONTROL03.CTL

SQL>


五.添加和移动控制文件
5.1在一个已经安装的的oracle数据库中使用正文初始化参数文件(pfile)添加或者移动控制文件的具体步骤。
a).利用数据字典v$controlfile来获取现有的控制文件名字;
b).正常关闭数据库,用命令shutdown或者shutdown immediate;
c).将新的控制文件名添加到参数文件的control_files参数中;//区别
d).使用操作系统命令将现有的控制文件复制到指定位置;
e).重新启动数据库,用命令startup;
f).利用数据字典v$controlfile来验证新的控制文件名字是否正确;
g).如果有误,重复上述操作;如果无误,就删除无用的旧的控制文件;


5.2如果使用了服务器初始化参数(spfile),步骤会有些区别。下面是具体步骤;
a).利用数据字典v$controlfile来获取现有的控制文件名字;
b).修改spfile,使用alter system set control_files命令来改变控制文件的位置;//区别
c).正常关闭数据库,用命令shutdown或者shutdown immediate;
d).使用操作系统命令将现有的控制文件复制到指定位置;
e).重新启动数据库,用命令startup;
f).利用数据字典v$controlfile来验证新的控制文件名字是否正确;
g).如果有误,重复上述操作;如果无误,就删除无用的旧的控制文件;


5.3下面是操作实例
5.3.1实验环境
硬件:DELL笔记本电脑
操作系统:windows xp sp3
数据库:Oracle Release 10.2.0.1.0

5.3.2操作步骤
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.
Microsoft Windows XP
欢迎来到Jacky的工作室!!!
今天是2011-03-23 星期三
现在已经是20:13:51.70
C:/Documents and Settings/jacky>sqlplus/nolog

SQL*Plus: Release 10.2.0.1.0 - Production on 星期三 3月 23 20:14:02 2011

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

SQL> conn / as sysdba;
已连接。
SQL> spool d:/323.txt;
SQL> --先来确认数据库使用的是pfile还是spfile;
SQL> show parameter pfile;

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string E:/ORACLE/PRODUCT/10.2.0/DB_1/
DBS/SPFILEJACKY.ORA
SQL> --执行第二套方法,先是查询到控制文件的位置;
SQL> col name for a55;
SQL> select status,name from v$controlfile;

STATUS NAME
------- -------------------------------------------------------
E:/ORACLE/PRODUCT/10.2.0/ORADATA/JACKY/CONTROL01.CTL
E:/ORACLE/PRODUCT/10.2.0/ORADATA/JACKY/CONTROL02.CTL
E:/ORACLE/PRODUCT/10.2.0/ORADATA/JACKY/CONTROL03.CTL

SQL> --下面是来用命令修改参数;
SQL> alter system set control_files=
2 'E:/ORACLE/PRODUCT/10.2.0/ORADATA/JACKY/CONTROL01.CTL',
3 'C:/controlfilejacky/CONTROL02.CTL',
4 'F:/controlfilejacky/CONTROL03.CTL' scope=spfile;

系统已更改。

SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> host copy E:/ORACLE/PRODUCT/10.2.0/ORADATA/JACKY/CONTROL02.CTL C:/controlfi
lejacky/CONTROL02.CTL
Microsoft Windows XP
欢迎来到Jacky的工作室!!!
今天是2011-03-23 星期三
现在已经是20:28:19.70
已复制 1 个文件。

SQL> host copy E:/ORACLE/PRODUCT/10.2.0/ORADATA/JACKY/CONTROL03.CTL F:/controlfi
lejacky/CONTROL03.CTL
Microsoft Windows XP
欢迎来到Jacky的工作室!!!
今天是2011-03-23 星期三
现在已经是20:28:39.93
已复制 1 个文件。

SQL> startup;
ORACLE 例程已经启动。

Total System Global Area 612368384 bytes
Fixed Size 1250428 bytes
Variable Size 184552324 bytes
Database Buffers 419430400 bytes
Redo Buffers 7135232 bytes
数据库装载完毕。
数据库已经打开。
SQL> col name for a55;
SQL> select status,name from v$controlfile;

STATUS NAME
------- -------------------------------------------------------
E:/ORACLE/PRODUCT/10.2.0/ORADATA/JACKY/CONTROL01.CTL
C:/CONTROLFILEJACKY/CONTROL02.CTL
F:/CONTROLFILEJACKY/CONTROL03.CTL

SQL> exit;
从 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options 断开

C:/Documents and Settings/jacky>E:

E:/>cd E:/ORACLE/PRODUCT/10.2.0/ORADATA/JACKY

E:/oracle/product/10.2.0/oradata/jacky>del CONTROL02.CTL

E:/oracle/product/10.2.0/oradata/jacky>del CONTROL03.CTL

E:/oracle/product/10.2.0/oradata/jacky>dir
驱动器 E 中的卷没有标签。
卷的序列号是 20E2-F689

E:/oracle/product/10.2.0/oradata/jacky 的目录

2011-03-23 20:32

.
2011-03-23 20:32 ..
2011-03-23 20:31 7,061,504 CONTROL01.CTL
2011-03-23 20:27 52,429,312 REDO01.LOG
2011-03-23 20:27 52,429,312 REDO02.LOG
2011-03-23 20:27 52,429,312 REDO03.LOG
2011-03-23 20:27 272,637,952 SYSAUX01.DBF
2011-03-23 20:27 503,324,672 SYSTEM01.DBF
2011-03-22 22:01 20,979,712 TEMP01.DBF
2011-03-23 20:27 26,222,592 UNDOTBS01.DBF
2011-03-23 20:27 5,251,072 USERS01.DBF
9 个文件 992,765,440 字节
2 个目录 12,879,560,704 可用字节

E:/oracle/product/10.2.0/oradata/jacky>完成。

阅读(550) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~