上篇介绍了Oracle数据库的基本操作指令:增、删、改、查下面针对数据库的管理进行介绍
数据库角色介绍
数据管理员: 至少有一个数据库管理员dba,
职责:安装和升级oracel数据库
建库,表空间,表,视图,索引
制定并实施备份和恢复计划
数据库权限管理,调优,故障排除
对于高级dba,要求能参与项目开发,会编写sql语句,存储过程,触发器,规则,约束,包
Sys 和system区别
1、 最重要,存储的数据的重要性不同
Sys:所有oracle的数据字典的基表和视图都存放在sys用户中,这些基表和视图对于oracle的运行至关重要,有数据库自己维护,任何用户都不能手动更改,sys拥有dba,sysdba,sysoper角色或权限,是oracle权限的最高用户
System :用户存放次一级的内部数据,如oracle的一些特性或工具的管理信息,拥有dba,sysdba角色或系统权限
2、 其次区别
Sys必须以as sysdba或as sysyoper形式登录,不能以normal方式登录数据库
System如果正常登录,其实就是一个普通的dba,但如果以as sysdba登录,其结果实际上它是作为sys用户登录的。
数据库的逻辑备份和恢复
导出 导出表,导出方案,导出数据库
使用exp命令完成
Userid:用户指定执行导出操作员的用户名,口令,链接字符串
Tables:导出操作的表
Owner:导出操作的方法
Full=y:导出操作的数据库
Inctype:导出操作的增量类型
Rows :
Exp userid=scott/tiger@ myoraltables=(emo,dept) file=d:\e1.dmp
导出自己的方案
Exp scott/tiger@myoral owner= scottfile=d:\scott.dmp
导出其他的方案
Exp system/manager@myoralowner=(system,scott) file=d:\system.dmp
导出数据库
Exp userid=system/manager@myyoral full=yinctype=complete file =x.dmp
导入自己表
Imp userid=scott.tiger@myortables=(emp) file =d:\xx.dmp
导入表到其他用户
Imp userid =system/manager@myortables=(emp) file = d:\xx.demp rows =n
导入数据
Imp userid =scott/tiger@myor tables=(emp)file =d:\xx.dmp igore=y
数据字典和动态性能视图
Db 提供数据库的一些系统信息包括数据字典基表和数据字典视图,
动态性能视图:记载了例程启动后的相关信息
管理表空间和数据文件
Sql>select table_name from user_tables 查询该用户建立的所有的所有表格
All_tables 可访问到的所有表
Dba_tables 显示所有方案拥有的数据库表
查询表
Desc dba_users
查询有多少汇总角色?
Select* from dba_roles
查询某个用户,具有怎样的角色
Select * from dba_role_privs wheregrantee=’用户名’
当前数据库的全称 :Select * from global_name
管理表空间和数据文件
表空间:数据库的逻辑组成部分,物理上,数据库数据存放在数据文件中,逻辑上将,数据库则是存放在表空间中,表空间由一个或是多个数据文件组成
数据库的逻辑结构包括表空间,段,区和块
表空间:控制数据库占用的磁盘空间
Dba 可以将不同数据类型部署到不同的位置,有利于提高I/O性能,有利于备份和恢复等管理操作
建立表空间 create tablespace
建立数据库表空间
Create tablespace data01 datafile‘d:\test\data01.dbf’ size 20m uniform size 128k
使表空间脱机:Alter tablespace users offline
联机:Alter tablespace users online
只读为read only
约束
包括not null,unique,primay key ,foreign key ,check
表跟表的关系 references
删除约束:alter table 表名 drop primary key cascade.
维护数据的完整性
管理索引
用于加速数据存取的数据对象。
单列索引:Create index 索引名 on 表名(列名)
复合索引:Create index emp_indes on emp(ename,job );
缺点:
占用硬盘和内存 1.2倍
额外更新索引
显示索引
Select index_name ,index_type formuser_indexes where table_name=’表名’
管理权限和角色
查询权限
Select * from system_privilege_map order byname
查询某个角色包括哪些权限
Select * from dba_sys_privs wheregrantee=’DBA’
以上主要介绍了数据库管理员的职责以及权限,数据库完整性中的增加索引的利弊等管理。这部分虽然每个开发人员都常用的到功能,但是作为数据库管理,项目开发的管理人员确实必须要考虑并且做好的一项重要职责。