oracle学习(七)——数据库管理
数据库的管理主要分四部分:
数据库管理员:主要介绍了数据库管理员的种类、权限等;
数据的恢复和备份:主要介绍了数据库表级、方案级和数据库级的导入和导出方法;
数据字典和动态性能视图:主要介绍了数据字典与视图的常见功能;
表空间:主要介绍了表空间的概念、结构以及针对表空间的相关操作。
1、数据库管理员:
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权限;
6)三个权限的关系为:
Sysdba与sysoper具体的权限可以看下表:
而dba的权限为:
7)数据库管理员另外的工作:
例如:
Show parameter;
就会呈现相应的参数;
2、数据库表的逻辑备份与恢复
数据备份分为:物理备份与逻辑备份。
导出:即从数据库导出到磁盘(备份),反方向即为导入(恢复)。
逻辑备份是在数据库正在运行的情况下进行。
1)导出分三种进行:
一个用户对应一个数据方案,每个方案中存放多种数据对象(表、视图等)。
2)导出表:
@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;
3)导出方案:
例如:
此时,会导出两个方案,即system的和scott的两个方案。
4)导出数据库:
Inctype=complete:增量备份;
File=d:\\x.dmp:备份到哪里。
例如:
5)导入表:
例如:
表示存储在方案中的,emp表导入时,存储在scott方案中。
6)导入方案:
7)导入数据库:
3、数据字典和动态性能视图
数据字典:存放静态信息;
动态性能视图:存放经常变化的信息;
数据字典是由基表和动态视图组成。
1)数据字典:
下面为数据字典中的主要视图:
当执行dba_tables时,必须使用system用户,拥有dba权限才可以。
查询有多少用户:
可以看到它对应的密码:
查看scott拥有哪些角色:
如何知道用户包含了哪些角色:
其他说明:
2)动态性能视图:
4、管理表空间和数据文件
1)表空间:
表存储在表空间,表空间由多个数据文件组成,所以最终表存储在数据文件中。
类似于:
张三在北京,北京是由多块土地构成,所以最终张三在土地上。
2)数据库的逻辑结构:
Oracle中表空间的数量是没有限制的。
表空间与用户没有从属关系,用户可以访问多个表空间,一个表空间也可以多个用户访问。
但是,表与表空间有从属关系。
建表空间需要用到dba用户,或者拥有create tablespace权限:
".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'
users为表空间名。
query_data为表空间名。
上面的命令需要在system中运行。
建立只读表空间的步骤:
(1) 用scott用户创建一张表,并插入一条语句:
(2) 然后进入到system用户下,执行只读操作(执行之前需要退出scott用户):
(3) 再进入scott用户,执行insert语句:
此时就不可执行insert了。
(4) 如果让scott再可以执行读写。
此时,scott就可以更改了。
例如:
3)删除表空间:
4)扩展表空间:
例如:
扩展表空间主要有三种方法:
Size是增加文件;
Resize是将原来的文件变大;
扩展表空间后,再执行insert语句就可以了:
4)故障处理——移动数据文件:
如果磁盘的一部分被毁坏,如何迁移好的表空间。
上面步骤为迁移的主要步骤。
另外,表空间还有如下操作: