大型数据库.docx
《大型数据库.docx》由会员分享,可在线阅读,更多相关《大型数据库.docx(17页珍藏版)》请在冰豆网上搜索。
大型数据库
1、
数据库的体系结构包括物理存储结构与逻辑存储结构,其中:
物理存储结构是指与Oracle数据库相关的各个物理文件,包括:
数据文件、控制文件、重做日志文件、参数文件、警告文件、跟踪文件;
逻辑存储结构控制数据库存储空间的分配和使用,包括:
表空间、段、区、数据块。
数据文件:
内容:
1)用户数据:
用户表、DML语句可调整;
2)数据字典数据:
数据字典表记录DB结构、只读不可修改、DDL语句调整
3)真实看到的文件
作用:
读取数据
特点:
1)至少包含一个SYSTEM表空间、DDL语言
2)各种不同表空间数据字典信息
3)我的数据保存在表空间上,表空间是以多个数据文件的形式体现的。
2、控制文件:
内容:
1)DB基本信息:
DBID
2)DB结构信息
3)最后一次同步的SCN信息
3.1)同步:
内存区域databasebuffercache的脏数据写出磁盘
3.2)SCN:
(systemchangenumber),时间轴、生命线
4)当前日志序列号
5)RMAN备份信息
作用:
1)记录数据库基本信息
2)记录内存下一些信息
特点:
1)大小一般不变(固定部分、可变部分)
2)个数,一个即可,分类存放
3、重做日志文件:
内容:
按时间顺序记录着DB中的改变(redoentry条目),数据块改变就会生成重做
作用:
提供数据的可恢复性
特点:
1)大小不变
2)顺序写
3)容量有限,循环覆写
4)至少两组日志,日志成员冗余
5)提供恢复的手段
SPfile的定义、作用
oracle数据库通过一系列参数来对数据库进行配置。
这些参数是以键-值对的形式来表示的,如:
MAXLOGFILES=50
BACKGROUND_DUMP_DEST=C:
\DUMP
其中,等号左边是参数名,右边是对应的参数的值,值的类型有多种,典型的如数字和字符串.
参数文件就是存储这些参数的地方,oracle在启动时会从参数文件中读取相关的配置。
手动创建数据库:
决定唯一的实例和数据库名
选择一个数据库特征设置
设置操作系统变量
编辑/创建初始化参数文件
启动实例(nomount)
执行CREATEDATABASE命令
运行脚本,生成数据字典,完成以上的创建步骤
创建数据库:
一、SYSTEM表空间:
跟系统管理有关
1、用数据库建立
2、包含数据字典
3、包含SYSTEM回滚段
二、Non-SYSTEM表空间:
或用户表空间
1、分离段
2、方便完成空间的管理
3、控制分配给用户的空间的限额
建立表空间:
3、
本地管理的表空间:
1、减少对数据字典表的争用
2、空间分配或重新分配发生时,不产生回滚数据
3、不需要解决碎片压缩的问题
创建数据表的方法:
(数据原理及应用书P89)
1、用EnterpriseManage创建数据表
2、用SQL命令创建数据表
创建索引的方法:
(数据原理及应用书P99)
1、用EnterpriseManage创建索引
①用索引创建向导创建索引
②直接创建索引
2、用SQL命令创建索引
数据库open时,使用下列语句来看数据字典。
Descdictionary
Select*fromdict;
Descv$fixed_table//查询所有的动态性能表
Select*fromv$fixed_table;
基本表是加密的。
数据字典是在基本表的基础之上,通过select语句,对基本表中的数据进行翻译,得到的一些视图。
通过这些视图反映的信息就非常直观了。
SQL>conndyf/adminassysdba
已连接。
SQL>setwrapoff
SQL>setlinesize200
SQL>select*fromdba_users;
得到系统中所有存在的用户ID。
DBA口令不知,怎样处理已给的数据库:
如果口令文件丢失,或忘记了密码,这时必须取消口令设置。
取消SYS口令可以按以下方法进行:
1、重建一个口令:
当口令忘记或口令被破坏时,可以删除原口令文件,使用ORAPWD重新创建一个新的口令文件即可。
2、修改参数文件
在参数文件中,将参数REMOTE-LOGIN-PASSWORDFILE修改为NONE
3、修改网络配置文件
修改网络配置文件SQLNET.ORA
4、修改注册表
通过修改注册表取消口令,只适用于WindowsNT/2000
口令管理的方法:
使用profiles管理口令
Profiles由一系列口令和资源限制的命了名的集合,通过CREATEUSER或ALTERUSER命令,把Profiles指定给相应的用户,可以使之生效或不生效,如果未指定,则有DEFAULTprofile,它没有任何口令或资源的限制。
1、通过使用profiles并把它们指定给用户,来启动口令管理
2、使用CREATEUSER或ALTERUSER命令,来锁定、不锁定和过期帐户
3、口令限制必须强制生效
oracle实例
i、Oracle实例是内存结构和后台进程的集合
ii、启动Oracle实例的过程,即:
分配内存、启动后台进程
iii、Oracle实例的内存包括SGA和PGA;
当启动实例的时候分配SGA;
当服务器进程建立时分配PGA;
一般情况下,SGA:
PGA=8:
1分配内存。
iiii、Oracle实例的后台进程包括SMON、PMON、DBWR、LGWR、ARC、CKPT等。
所谓备份,就是将数据库复制到某一存储介质中保存起来的过程,存放于存储介质中的数据库拷贝称为原数据库的备份或副本,这个副本包括了数据库所有重要的组成部分,如初始化参数文件、数据文件、控制文件和重做日志文件。
数据库备份是Oracle9i防护不可预料的数据丢失和应用程序错误的有效措施。
数据库备份的模式:
数据库可运行在两种备份模式下:
非归档(NOARCHIVELOG)模式和归档(ARCHIVELOG)模式。
在非归档模式下,数据库不能进行联机日志的归档,仅能保护数据库实例崩溃故障,而不能免于介质故障。
只有最近存储于联机重做日志组中的数据库修改才可以用于实例崩溃恢复。
在归档模式下,数据库可实施联机日志的归档,该模式也称为介质可恢复模式。
查看一个数据库处于何种备份模式,可以通过企业管理器,选择“例程”→“配置”,即可查看当前数据库的备份模式。
也可以通过脚本ARCHIVELOGLIST;查看当前数据库的备份模式
数据库恢复就是当数据库发生故障后,从归档和联机日志文件中读取日志记录并将这些变化应用到做好的数据库数据文件备份中,将其更新到最近的状态。
数据库的恢复包括前滚(RollingForward)和后滚(RollingBack)两个阶段。
在前滚阶段,如果数据库只是从实例崩溃中恢复,则只需应用必要的联机日志文件和数据文件去重新执行所有已提交的但不在数据库当前文件中的事务,但如果数据库从介质故障中恢复,则还需要使用已备份的数据文件、归档日志文件来完成前滚。
在后滚阶段,Oracle利用数据库后滚段中的信息去“撤销”在系统崩溃时由任何打开(未提交)事务所作的数据库修改。
Oracle9i的数据库恢复可以使用企业管理器或手工方式进行。
使用企业管理器进行数据库恢复:
⑴启动企业管理器后,展开“数据库”节点,右击要恢复的数据库,在快捷菜单中选择“备份管理”→“恢复”,弹出如图8.25所示的“恢复向导”简介窗口。
⑵单击“下一步”按钮,弹出“恢复选择”窗口。
⑶单击“下一步”按钮,弹出“表空间”窗口。
⑷单击“下一步”按钮,弹出“重命名”窗口
⑸单击“下一步”按钮,弹出“配置”窗口。
⑹单击“完成”按钮,将恢复作业提交,系统弹出“概要”窗口。
⑺单击“确定”按钮,完成此次恢复工作,提交恢复操作作业,系统弹出相应消息框。
使用PL/SQL命令进行数据库恢复
Oracle9i强烈推荐使用RECOVER语句而非ALTERDATABASERECOVER语句来执行介质恢复。
因为在大多数情况下,前者更容易实现且效率较高。
RECOVER命令的语法如下:
RECOVER[AUTOMATIC]
DATABASE|TABLESPACE表空间名1[,表空间名2,…]
|DATAFILE数据文件名1[,数据文件名2,…]
[UNTILCANCEL|TIME时间|CHANGE数字]
USINGBACKUPCONTROLFILE;
权限是指执行特定类型sql命令或是访问其它方案对象的权利,包括系统权限和对象权限两种:
系统权限
是指执行特定类型sql的权利。
它用于控制用户可以执行的一个或是一组数据库操作。
比如当用户具有createtable权限时,可以在其方案中建表,当用户具有createanytable权限时,可以在任何方案中建表,oracle提供了100多种系统权限。
对象权限介绍
指访问其它方案对象的权利,用户可以直接访问自己方案的对象,但是如果要访问别的方案的对象,则必须具有对象的权限。
角色
角色就是相关权限的命令集合,使用角色的主要目的就是为了简化权限的管理,假定有用户A,B,C为了让他们都拥有权限
1)连接数据库
2)在scott.emp表上select,insert,update
如果采用直接授权操作,则需要进行12次授权。
用户管理的一些选项
1、唯一的用户名、字母开头、不包括特殊字符、最长30个
2、要有一种认证方式,通常采用密码认证,也就是登录时提供用户名和密码
3、默认表空间
Oracle10g中定义了一个数据库级别的默认表空间,如果用户没有定义默认表空间,那么就使用这个作为自己的默认表空间,10g以前,如果出现这种情况,那么就是用system表空间,这显然不合理,因此建立一个数据库级别的表空间还是很有意义的
4、默认临时表空间
临时表空间最经典的使用就是排序的时候,PGA容纳不了排序所产生的临时数据,9i开始可以指定数据库级别的默认临时表空间
5、配置文件
用来控制用户密码策略、以及资源使用的配置信息
6、用户组
7、锁定状态
数据库建立以后,会产生两个重要的用户:
sys和system
sys是超级管理员,必须作为sysdba登陆,这是安全措施
因为sys的权限太大,使用sysdba登陆以后,审计文件会记录登录的时间信息,system没有sys的权限大
最通常的用法是:
日常管理中,不要使用sys和system登录数据库,而是建立一个用户、并赋予DBA角色,使用该用户进行日常的管理工作
Profile的作用主要表现在两个方面:
1、密码策略
2、对用户所能使用的资源进行管理
3、profile存放在数据字典里面,默认有一个名字为default的profile
权限分为两种:
系统权限、对象权限
系统权限指的是用户能够做什么事情的权限
例如:
创建一个表空间、创建表等Oracle10g有超过100个的系统权限有很多的权限带有any,举例createtable表示能够在自己的schema里面创建表createanytable表示能够在其他schema里面创建表所有的系统权限都放在system_privilege_map数据字典里面
对象权限
例如用户可以查询另一个用户下的一个对象,这就是对象权限
角色管理
角色是一组权限的集合,并给该集合起了个名称,这个名称就是角色名。
角色可以赋给某个用户,这样该用户就具有了角色所包含的所有权限。
角色还可以赋给另外的角色。
角色的赋权过程中,不能形成环路,否则报错。
A角色赋给了B角色,又把B角色赋给了C角色,如果有要把C角色赋给A角色,系统就会报错。
角色管理的好处
1、利于权限的分配
20个用户,他们的权限相同,每个用户10个权限,总共需要赋权限200次。
如果为10个权限建立一个角色,那么只需要付权限30次(10次给角色、20次给用户)
2、利于权限的管理
我们可以从角色中收回某个权限,这样20个都失去了这个权限
我们通过禁用这个角色,让20个用户失去角色中所有的权限
创建角色: