`
insertyou
  • 浏览: 864407 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

表空间和启动关闭DB详解

阅读更多

上课内容:
表空间之增删改(重点:修改数据文件为自动增长)
打开和关闭数据库的模式

上课准备/参考:
一、表空间之增删改(重点:如何修改数据文件为自动增长)
表空间分类:
系统表空间与非系统表空间
临时表空间与永久表空间

表空间管理:
区管理(默认为本地自动管理)(推荐“本地自动管理”)
——本地管理(local):支持 oracle 8i, oracle 9i,oracle 10g
<本地管理可细分为:自动分配(默认)和统一分配>
——数据字典管理(dictionary):支持 oracle 7,oracle 8,oracle 8i,oracle 9.0.1
段管理
自动(默认)(推荐)
手动
创建表空间
create tablespace ——创建(永久)表空间
create temporary tablespace ——创建临时表空间
create undo tablespace ——创建撤消表空间
注意:在撤销表空间上不能建立永久方案对象(如表、索引等)
示例:
create tablespace myts01
datafile '路径\myts01_1.dbf' size 2m
( 文件的大小不可省,扩展名必须是dbf;临时表空间用 tempfile )
extent management local | dictionary ——区管理《默认为本地,学生了解》
[uniform size 128k | autoallocate] ——区的分配方式《默认为自动,学生了解》
segment space management auto ——段管理《默认为手动,学生掌握》

删除表空间(除了系统表空间,任何表空间都可以被删除)
强烈建议:在删除表空间前,对数据库做一次完整备份,以便出错时恢复
drop tablespace myts01 including contents
——只从数据字典中删除表空间信息,而不删除硬盘上的文件
drop tablespace myts01 including contents and datafiles
——连同数据字典中的表空间信息和硬盘上的文件一起删除

修改表空间
1、修改表空间的名称(10G特有的)
alter tablespace myts01 rename to myts01_new
2、修改表空间中数据文件的“位置和”名称
步骤:表空间脱机----在OS中重命名数据文件----使用下面的RENAME语句,在“数据库内部”重命名数据文件
alter tablespace myts01
rename datafile
'路径\myts01_1.dbf', '路径\myts01_2.dbf' --------必须来自于同一个表空间
to
'路径\myts01_01.dbf', '路径\myts01_02.dbf';

alter database
rename file
'路径\myts01_01.dbf', '路径\myts01_02.dbf' --------可以来自于不同的表空间
to
'路径\myts01_1.dbf', '路径\myts01_2.dbf';

2、使表空间只读 | 可读写
alter tablespace myts01 read only | read write
3、使表空间脱机 | 联机--------改变数据文件的可用性,处于脱机状态的数据文件不可用(不能读、也不能写)
----改变表空间的可用性(表空间+所有数据文件):
alter tablespace myts01 offline [ normal ] | online
----改变表空间“所有数据文件”的可用性, 但是“表空间本身”的可用性不受影响《不讲》
<** 此时必须处于“归档日志模式(archivelog)”下 **>
alter tablespace myts01 datafile offline [ normal ] | online
----单独改变某个数据文件的可用性《不讲》
<** 此时必须处于“归档日志模式(archivelog)”下 **>
alter database datafile '路径\文件名' offline [ normal ] | online;
注意:脱机的方式有四种;
不能使“系统表空间”中的数据文件脱机
4、扩展表空间<重要>--------增加新的, 改变旧的
4.1 添加数据文件
alter tablespace myts01
add datafile '路径\myts01_2.dbf' size 3m; <注意:size参数不可省>
autoextend on next 3m maxsize 50m;
注:若myts01是临时表空间,则datafile应改为tempfile
思考:能否alter database来增加数据文件?<提示:可在OEM中观察>
*** 除了向表空间“添加新的数据文件”以外, 另一种“增加表空间的存储空间”的方法是:
*** 改变该表空间已有数据文件的大小------- 1、设置数据文件为自动增长 2、手工改变数据文件的大小
4.2 手工改变数据文件大小
alter database datafile '路径\myts01_2.dbf'
resize 4m;
注意:也可利用RESIZE子句来缩小数据文件,不过必须保证缩小后的数据文件足够容纳其中已有的数据
4.3 使数据文件自动增长<重要>
----创建表空间时将数据文件设置为自动增长
<互动>
----增加新的数据文件时设置为自动增长
<互动>
----把已有数据文件设置为自动增长
alter database datafile '路径\myts01_2.dbf'
autoextend on next 1m maxsize 20m;
禁止数据文件自动增长
alter database datafile '路径\myts01_2.dbf'
autoextend off;

5、当有多个临时表空间时,默认临时表空间为TEMP 《不讲》
修改数据库默认“临时”表空间(9.2版本 不能修改数据库“默认表空间”)
alter database default temporary tablespace mytmpts01;

6、查询表空间信息
6.1 使用dba_tablespaces视图查询表空间的基本信息
select * from dba_tablespaces;
6.2 查询数据库的数据文件及其所属的表空间
select tablespace_name,file_name,blocks from dba_data_files;

二、打开和关闭数据库的模式
回顾:
例 程-----内存中的部分
数据库-----硬盘中的部分

启动和关闭数据库都是按三大步骤进行的, 每完成一个步骤,就进入一个模式

启动数据库的三大步骤:
1、创建并启动例程 读取初始化参数文件
(内存结构和服务进程得到分配、初始化和启动)
2、装载数据库 由参数文件(参数control_files)找到并读取控制文件
(读取:数据库名称、数据文件的位置和名称等关于数据库物理结构的信息
此时,数据文件和日志文件将处于联机状态)
3、打开数据库 打开所有处于联机状态的数据文件和日志文件
重要:
在启动数据库的过程中,文件的使用顺序是:参数文件、控制文件、数据文件和日志文件
只有这些文件都被正常读取和使用后,数据库才能正常启动

关闭数据库的三大步骤:
1、关闭数据库
2、卸载数据库
3、终止例程

启动模式
startup nomount 完成启动步骤的第1步(启动) <适用:创建新库、重建控制文件>
startup mount 完成启动步骤的第1步和第2步(启动、装载)
<适用:重命名数据库文件、完全恢复、改变归档模式>
startup [open] 默认 完成启动步骤的第1步、第2步和第3步(启动、装载、打开)
startup pfile=路径\参数文件名

转换启动模式
startup nomount (注意:nomount模式不能直接切换到open模式)
alter database mount (切换)
alter database open (切换)

启动的FORCE选项
------若正常方式不能启动,可以采用FORCE强制启动
------原理: 首先异常关闭数据库,然后重新启动
------优点: 无论数据库处于什么模式,都可以使用该选项;不需要事先用SHUTDOWN语句关闭数据库

启动的PFILE选项
startup [force] pfile='e:\pfile*.ora'
create pfile='...' from spfile='...'
create spfile='...' from pfile='...'
注意:服务器初始化参数文件(spfile*.ora)是二进制文件
文本初始化参数文件(pfile*.ora或init.ora)是文本文件
2者在格式上是不同的
重要:
例程在启动时,必须读取一个初始化参数文件
执行startup时,如果没有指定pfile选项,
oracle会首先读取“默认位置的spfile”,如果没有找到,
oracle将继续读取“默认位置的pfile”,如果没有找到,
启动就会失败


关闭数据库
——为了执行脱机备份(即“冷备份”)或执行数据库升级,DBA需要关闭数据库
关闭数据库的三大步骤:
1、关闭数据库——将日志缓存中的内容写入日志文件,将数据缓存中的“脏数据”写入数据文件,
再关闭所有的数据文件和日志文件,但是控制文件依然打开
2、卸载数据库——控制文件被关闭,但例程依然存在
3、终止例程——终止所有的服务进程和后台进程,回收SGA

关闭选项
shutdown normal(默认)——特点:阻止新的连接,“等待”用户主动断开现有连接
(因为被动等待,所以耗时可能很长,关闭所耗时间完全取决于用户主动断开连接的时间)
shutdown transactional——特点:阻止新的连接和新的事务,“等待”所有未提交的活动事务提交
(可保证用户不会丢失当前工作的信息)
shutdown immediate——特点:阻止新的连接和新的事务,立即回滚未提交的事务(“不用等待”)
(脱机备份、电力即将中断、数据库异常但无法通知用户)

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics