视频学习Oracle记录
========================================
四、 Oracle数据库管理
========================================
1、数据库管理员
职责
安装和升级Oracle数据库
建库,表空间,表,视图,索引...
制定并实施备份和恢复
数据库权限管理,调优,故障排除
能参与项目开发,会编写sql语句、存储过程、触发器、规则、约束、包等
2、数据库(表)的逻辑备份与恢复
分为逻辑备份和物理备份
逻辑备份:使用工具export将数据对象的结构和数据导出到文件的过程
逻辑恢复:数据库对象被误删后而损坏后使用工具import将备份文件中的数据对象导入到数据库的过程
物理备份:指的是可以在数据库open状态下进行也可以在close状态下数据库后台进行,但是逻辑上的备份和恢复只能在open状态下进行。
导出可以分为三种方式
a、使用exp命令完成,命令常用的选项有:
userid:指定执行导出用的用户名和口令
tables:指定执行导出操作的表
owner:指定执行导出操作的方案
full=y:指定执行导出操作的数据库
inctype:指定执行导出操作的增量类型
rows:指定执行导出操作是否要导出表中的数据
file:指定导出文件名字
b、导出表
导出自己的表:exp userid=scoot/tiger@mydatabase tables=(emp,department,...) file=c:\a.dmp
导出其它表:(需要dba权限或是使用exp_full_database的权限)exp userid=system/manager@mydatabase tables=(scott.emp) file=d:\b.dmp
导出表结构:exp userid=scoot/tiger@mydatabase tables=(emp,department,...) file=c:\a.dmp rows=n
使用直接导出方式:exp userid=scoot/tiger@mydatabase tables=(emp,department,...) file=c:\a.dmp direct=y
导出自己的方案:exp userid=scoot/tiger@mydatabase owner=scott file=c:\a.dmp
导出其它方案:(需要dba权限或是使用exp_full_database的权限)exp userid=system/manager@mydatabase owner=(system,scott) file=d:\b.dmp;--(owner=(a,b)表示导出a,b两个方案)
导出数据:exp userid=system/manager@mydatabase full=y inctype=complete file=c:\a.dmp
c、导入表
导入自己的表:imp userid=scott/tiger@mydatabase tables=(emp) file=c:\a.dmp
导入表到其他用户,需要用户具有dba权限或者是imp_full_database:imp userid=system/manager@mydatabase tables=(emp) file=c:\a.dmp touser=scott
导入表的结构而不导入数据:imp userid=scott/tiger@mydatabase tables=(emp) file=c:\a.dmp rows=n
导入数据:imp userid=scott/tiger@mydatabase tables=(emp) file=c:\a.dmp ignore=y
导入自身方案:imp userid=scott/tiger file=c:\xx.dmp
导入其他方案,要求用户具有dba的权限:imp userid=system/manager file=d:\xxx.dmp fromuser=system touser=scott
注意:导入和导出的时候需要到Oracle安装目录下的bin文件夹下exp.exe
3、数据字典和动态性能视图
数据字典:Oracle中重要的组成部分,它提供了数据库的一些系统信息,它是只读表和视图的集合,数据字典的所有者为sys用户。用户只能在数据字典上执行查询操作(select语句),而其他维护和修改是由系统自动完成。数据字典的组成:字典基表和数据字典视图,视图主要包括:user_xxx,all_xxx,dba_xxx三种类型。
user_tables:select table_name from user_tables;--显示当前用户所用有的所有表,它只返回用户所对应方案的所有表
all_tables:select table_name from all_tables;--显示当前用户可以访问的所有表
dba_tables:显示所有方案拥有的数据库表,这种方案的数据字典视图要求用户必须是dba角色。
例子:如何查询一个角色包含的权限?
select * from dba_roles where role='角色名'
a、一个角色包含的系统权限
select * from dba_sys_privs where grantee='角色名';--connect dba
b、一个角色包含的对象权限
select * from dba_tab_privs where grantee='角色名'
例子:Oracle究竟有多少种角色?
select * from dba_roles;
例子:如何查看某个用户具有什么样的角色?
select * from dba_role_privs where grantee='SCOTT';
例子:显示正在使用的数据全名?
select * from global_name;
动态性能视图:记载了例程启动后的相关信息。
4、管理表空间和数据文件
表空间是数据库的逻辑组成部分;
建立表空间:create tablespace;
建立数据表空间:create tablespace data01 datafile 'c:\test\data01.dbf' size 20M uniform size 128k;
使用数据表空间:create table mypart(no number(4),name vachar2(14)) tablespace data01;