oracle学习(七)——数据库管理

数据库的管理主要分四部分:

数据库管理员:主要介绍了数据库管理员的种类、权限等;

数据的恢复和备份:主要介绍了数据库表级、方案级和数据库级的导入和导出方法;

数据字典和动态性能视图:主要介绍了数据字典与视图的常见功能;

表空间:主要介绍了表空间的概念、结构以及针对表空间的相关操作。

1、数据库管理员:

oracle学习(七)——数据库管理

oracle学习(七)——数据库管理

oracle学习(七)——数据库管理

1)Sys是个董事长,system是总经理,一般是由总经理来做事情。
2)Sys用户对应sys方案,主要存放数据字典的基表和视图;
基表:数据字典的基本表,存放数据字典的相关信息;
3)Sys系统用户会有三个权限:dba(数据库管理员角色)、sysdba(系统管理员,最高权限)、sysoper(系统操作员);
当sys用户产生的时候,上面三个角色就自动交给用户了。
拥有这样的角色就拥有角色所拥有的系统权限;
4)用sys登录时,需要制定哪一种方式登录,即:
Conn sys/change_on_install as sysdba;
如果不指定则会报错:
SQL>conn sys/change_on_install;
ERROR:
ORA-28009: connection to sys should be as sysdba or sysoper
5)System用户也对应一个自己的方案。
这个方案存放次一级的数据,他拥有dba、sysdba的权限,但是没有sysoper权限,因此他不能建数据库。
用system登录时可以直接使用:conn system/123456;他就登录了一个普通的dba权限;
 oracle学习(七)——数据库管理
6)三个权限的关系为:
Sysdba与sysoper具体的权限可以看下表:
oracle学习(七)——数据库管理
而dba的权限为:
oracle学习(七)——数据库管理
7)数据库管理员另外的工作:
oracle学习(七)——数据库管理
例如:
Show parameter;
就会呈现相应的参数;
2、数据库表的逻辑备份与恢复
数据备份分为:物理备份与逻辑备份。
oracle学习(七)——数据库管理
导出:即从数据库导出到磁盘(备份),反方向即为导入(恢复)。
逻辑备份是在数据库正在运行的情况下进行。
1)导出分三种进行:
oracle学习(七)——数据库管理
一个用户对应一个数据方案,每个方案中存放多种数据对象(表、视图等)。
2)导出表:
oracle学习(七)——数据库管理 
@myoral:数据库实例;
数据的导出时,必须要到oracle的主目录下的bin目录中去导:
F:\app\livan\product\11.2.0\dbhome_1\BIN
cmd进入到这个目录下,再使用exp命令:
exp userid=scott/[email protected] tables=(emp) file=d:\emp.dmp;
当导出多张表时:
exp userid=scott/[email protected] tables=(emp, dept) file=d:\emp.dmp;
oracle学习(七)——数据库管理 
3)导出方案:
oracle学习(七)——数据库管理 
例如:
oracle学习(七)——数据库管理 
此时,会导出两个方案,即system的和scott的两个方案。
4)导出数据库:
oracle学习(七)——数据库管理 
Inctype=complete:增量备份;
File=d:\\x.dmp:备份到哪里。
例如:
oracle学习(七)——数据库管理 
5)导入表:
oracle学习(七)——数据库管理 
例如:
oracle学习(七)——数据库管理 
表示存储在方案中的,emp表导入时,存储在scott方案中。
6)导入方案:
oracle学习(七)——数据库管理 
7)导入数据库:
oracle学习(七)——数据库管理
3、数据字典和动态性能视图
数据字典:存放静态信息;
动态性能视图:存放经常变化的信息;
数据字典是由基表和动态视图组成。
1)数据字典:
oracle学习(七)——数据库管理 
下面为数据字典中的主要视图:
oracle学习(七)——数据库管理 
当执行dba_tables时,必须使用system用户,拥有dba权限才可以。
oracle学习(七)——数据库管理 
查询有多少用户:
oracle学习(七)——数据库管理 
可以看到它对应的密码:
oracle学习(七)——数据库管理 
查看scott拥有哪些角色:

oracle学习(七)——数据库管理  

oracle学习(七)——数据库管理

如何查询一个角色拥有哪些权限:
oracle学习(七)——数据库管理 
如何知道用户包含了哪些角色:
oracle学习(七)——数据库管理 
oracle学习(七)——数据库管理 
其他说明:
oracle学习(七)——数据库管理 
2)动态性能视图:
oracle学习(七)——数据库管理 
4、管理表空间和数据文件
oracle学习(七)——数据库管理 
1)表空间:
oracle学习(七)——数据库管理 
表存储在表空间,表空间由多个数据文件组成,所以最终表存储在数据文件中。
类似于:
张三在北京,北京是由多块土地构成,所以最终张三在土地上。
2)数据库的逻辑结构:
oracle学习(七)——数据库管理 
Oracle中表空间的数量是没有限制的。
oracle学习(七)——数据库管理 
表空间与用户没有从属关系,用户可以访问多个表空间,一个表空间也可以多个用户访问。
但是,表与表空间有从属关系。
oracle学习(七)——数据库管理 
建表空间需要用到dba用户,或者拥有create tablespace权限:
oracle学习(七)——数据库管理 
".dbf"就是讲到的数据文件。
表空间中文件的上限为500M,如果不够,可以扩成多个文件。
Uniform是区的大小按照128k来分配。
查询固定表空间下的表:
select * from dba_segments a  where a.tablespace_name='BTMUCHINDEXTBSLARG4K' 
查看表空间的对象:
select segment_type 
from dba_segments a 
where a.tablespace_name='BTMUCHDATATBSDETL4K' 
oracle学习(七)——数据库管理 
users为表空间名。
query_data为表空间名。
上面的命令需要在system中运行。
建立只读表空间的步骤:
(1) 用scott用户创建一张表,并插入一条语句:
oracle学习(七)——数据库管理 
(2) 然后进入到system用户下,执行只读操作(执行之前需要退出scott用户):
oracle学习(七)——数据库管理 
(3) 再进入scott用户,执行insert语句:
oracle学习(七)——数据库管理 
此时就不可执行insert了。
(4) 如果让scott再可以执行读写。
oracle学习(七)——数据库管理 
此时,scott就可以更改了。
oracle学习(七)——数据库管理 
例如:
oracle学习(七)——数据库管理 
3)删除表空间:
oracle学习(七)——数据库管理 
4)扩展表空间:
oracle学习(七)——数据库管理 
例如:
oracle学习(七)——数据库管理 
扩展表空间主要有三种方法:
oracle学习(七)——数据库管理 
Size是增加文件;
Resize是将原来的文件变大;
扩展表空间后,再执行insert语句就可以了:
oracle学习(七)——数据库管理 
4)故障处理——移动数据文件:
如果磁盘的一部分被毁坏,如何迁移好的表空间。
oracle学习(七)——数据库管理 
oracle学习(七)——数据库管理 

上面步骤为迁移的主要步骤。

另外,表空间还有如下操作:

oracle学习(七)——数据库管理