oracle 数据库管理

本文介绍了 Oracle 数据库管理员(DBA)的基本职责,包括安装、升级数据库、备份与恢复计划、权限管理等内容。详细解释了 sys 和 system 用户的区别,以及如何进行数据库对象的逻辑备份与恢复。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、期望目标

(1)、了解oracle管理员的基本职责

(2)、掌握备份和恢复数据库/表的方法

(3)、理解表空间、数据字典、性能视图

2DBA职责

(1)、安装和升级oracle数据库

(2)、建库、表空间、表、视图、索引等

(3)、制定并实施备份与恢复计划

(4)、数据库权限管理,调优,故障排除

(5)、对于高级DBA,要求能参与项目开发,会变写sql语句、存储过程、触发器、规则、约束、包

3、管理数据库的用户主要是syssystem

主要区别是:

(1)、最重要的区别,存储数据的重要性不同。

Sys: 所有oracle的数据字典的基表和视图都存放在sys用户中,这些基表和视图对于oracle的运行时至关重要的,有数据库自己维护,任何用户不能手动更改。Sys用户拥有dba ,sysdba,sysoper角色或权限,是oracle权限最高用户。

System: 用于存放次一级的内部数据,oracle的一些特性或工具的管理信息。System用户拥有dba,sysdba角色和系统图权限。

(2)、其次的区别,权限不同

Sys用户必须以as sysdba,sysoper 登录。不能以normal方式登录

System 如果正常登录它其实就是一个普通的dba用户,但是如果以as sysdba 登录,它实际上是作为sys用户登录的,从登录信息可以看出来的

4Sysdba sysoper用户的区别

系统权限

Sysdba(最高权限)

Sysoper(其次)

区别

Startup(启动数据库)

Startup(DBA用户无此权限)

Shutdown

Shutdown(DBA用户无此权限)

Alter datebase open/mount/backup

Alter datebase open/mount/backup

改变字符集

none

Create database

None

Drop database

None

Create spfile

Create spfile

Alter database archivelog(归档日志)

Alter database archivelog

Alter database recover(恢复数据库)

只能完全恢复(不能不完全恢复)

拥有restricted session(会话限制)权限

拥有 restricted session 权限

可以让用户作为sys用户连接

可以进行一些基本操作,但不能查看用户数据

登录之后用户是sys

登录之后用户是public

5DBA权限的用户

Dba用户是指具有dba角色的数据库用户,特权用户可以执行启动实例,关闭实例等特殊操作,dba用户只有在启动数据库后才能执行各种管理工作。

6、管理初始化参数

显示初始化参数

(1)、显示初始化参数

Show parameter

(2)、如何修改参数

此文件在C:\oracle\admin\myoral\pfile\init.ora 文件中修改

7、数据库()的逻辑备份与恢复

(1)、逻辑备份

逻辑备份是指使用工具export将数据库对象的结构和数据导出到文件的过程,逻辑恢复是指当数据库对象被误操作而损坏后使用工具import利用备份的文件把数据对象导入到数据库的过程。

(2)、物理备份

物理备份即可在数据库open的状态下进行也可以再关闭数据库后进行,但是逻辑备份和恢复只能在open的状态下进行

8、导出

说明:导出具体分为:导出表,导出方案,导出数据库三种方式。

在导入导出是要到oracle主目录下的bin目录下导出

导出使用exp命令完成,常用的选项有:

Userid: 用于指定执行导出操作的用户名、口令、连接字符串

Tables: 用于指定执行导出操作的表

Owner: 用于指定执行导出操作的方案

Full=y: 用于指定执行导出操作的数据库

Inctype: 用于指定执行导出操作的增量类型

Rows: 用于指定执行导出操作是否要导出表中的数据 rows=n表结构

File: 用于指定导出文件名 .dmp

导出表实例:

(1)、导出自己的表

exp userid=scott/tiger@oamis tables=(emp,dept) file=c:\empscott.dmp

(2)、导出其他用户的表(使用DBA的权限或是exp_full_database)

exp userid=system/password@oamis tables=(scott.emp,scott.dept)file=c:\empsystem.dmp

(3)、导出表结构

Exp userid=system/password@oamis tables=(scott.emp,scott.dept)file=c:\empsystem.dmp

Row=n

(4)、直接导出(有数据、速度快)

exp userid=system/password@oamis tables=(scott.emp,scott.dept)file=c:\empsystem.dmp direct=y

导出方案

(1)、导出自己的方案

Exp userid=scott/tiger@oamis owner=scott file=c:\scottowner.dmp

(2)、导出其他人的方案

Exp system/password@oamis owner=(system,scott)

file=c:\systemowner.dmp

(3)、导出数据库

导出数据库是指利用export导出所有数据库中的对象及数据,要求用户具有DBA权限或者是exp_full_database 权限

Exp system/password@oamis full=y inctype=complete

file=c:\full.dmp

9、导入

导入就是使用工具import 将文件中的对象和数据导入到数据库中,但是导入要使用的文件必须是export所导出的文件。导入也分表、方案、数据库。

Import 常用的选项有:

Userid: 用于指定执行导入操作的用户名,口令,连接字符串

Tables: 用于指定执行导入操作的表

Formuser: 用于指定源用户

Touser: 用于指定目标用户

File: 用于指定导入文件名

Full=y: 用于指定执行导入整个文件

Inctype: 用于指定执行导入操作的的增量类型 complete 增量

Rows: 知道你给是否要导入表行(数据)

Ignore: 如果表存在,则只导入数据

导入表

(1)、导入自己的表

Imp userid=scott/tiger@oamis tables=(emp) file=d:\xx.dmp

(2)、导入表到其他用户(dba权限或是imp_full_database)

Imp userid=system/password@oamis tables=(scott.emp) file=d:\xx.dmp

(3)、导入表的结构(不到入数据)

Imp userid=scott/tiger@oamis tables=(emp) file=d:\xxx.dmp rows=n

(4)、导入数据(对象存在只导入数据)

Imp userid=soctt/tiger@oamis tables=(emp) file=d:\xxx.dmp ignore=y

导入方案

(1)、导入自身方案

Imp userid=scott/tiger@oamis file=d:\xxx.dmp

(2)、导入其他方案

Imp userid=system/password@oamis file=d:\xxx.dmp fromuser=system touser=scott

导入数据库

当导入数据库时,会导入所有对象的结构和数据,案例如下:

案例: imp userid=system/password@oamis full=y file=d:\xx.dmp

1、 数据字典和动态性能视图

数据字典是oracle数据库中最重要的组成部分,他提供了数据库的一些系统信息

动态性能视图记载了例程启动后的相关信息。

数据字典

解释: 数据字典记录了数据库的系统信息,它是只读表和数据的集合,数据字典的所有者为sys用户。用户只能在数据字典上执行查询操作,而维护和修改时有系统自动完成的

数据字典包含数据基表和数据字典视图。

1、 数据基表存储数据库的基表信息,普通用户不能访问数据字典的基表。

2、 数据字典视图时基于数据字典基表所建立的视图,普通用户可以查询数据字典视图获取系统信息。数据字典视图主要包括user_xxx,all_xxx,dba_xxx三种类型

a) User_tables
显示当前用户所拥有的表,它只返回用户所对应方案的所有表。

b) All_tables
显示当前用户可以访问到得所有表.(当前用户方案的所有表+其他用户方案中自己可以访问到得表)

c) Dba_tables
显示所有方案拥有的数据库表,但是查询这种数据库字典视图,要求用户必须是dba角色或是有select any table 系统权限。

用户名、权限、角色

在建立用户是,oracle会把用户的信息存放到数据字典中,当给用户授予权限或是角色时,oracle会将权限和角色的信息存放到数据字典。

说明:

Dba_user 显示所有数据库用户的信息

Dba_sys_privs 显示用户所具有的系统权限

Dba_tab_privs 显示用户具有的对象权限

Dba_col_privs 显示用户具有的列权限

Dba_role_privs 显示用户所具有的角色

dba_roles 数据库所有的角色

system_privilege_map oracle中所有系统权限

实例:

1、 查询oracle中所有的系统权限,一般是DBA
select * from system_privilege_map order by name;

2、 查询oracle中所有的角色
select * from dba_roles

3、 查询oracle 中所有的对象权限
select distinct privilege from dba_tab_privs;

4、 查询数据库表空间
select tablespace_name from dba_tablespaces

5、 查询一个角色包含多少个权限(系统权限+对象权限)
(1)、查询一个角色包含的系统权限(可在pl/sql中查看)
select * from Dba_sys_privs where grantee='DBA';
或者是
select * from role_sys_privs where role='DBA'

(2)、查询一个角色包含的对象权限

select * from dba_tab_privs where grantee='DBA'

(3)、如何查看一个用户具有什么样的角色

select * from dba_role_privs where grantee='LY'

(4)、显示当前用户可以访问的所有数据字典视图

select * from dict where comments like '%grant%';

(5)、显示当前数据库的全称

Select * from global_name;

结果OAMIS.REGRESS.RDBMS.DEV.US.ORACLE.COM

动态性能视图用于记录当前例程的活动信息,当启动oracle server,系统会建立动态性能视图;停止时删除动态性能视图.oracle的动态性能视图以v_$开始的,并且oracle为每个动态性能视图都提供了相近的同义词,并且同义词都是以V$开始的,所有者为sys.

2、 管理表空间和数据文件

介绍

表空间是数据库的逻辑组成部分。从物理上讲,数据库数据存放在数据文件中;从逻辑上讲,数据库则是存放在表空间中,表空间由一个或是多个数据文件组成。

数据库的逻辑结构

Oracle 中逻辑结构包括表空间、段、区和块。

表空间(500M)

1、表空间用于从逻辑上组织数据库的数据

优点有

1、控制数据库占用的磁盘空间

2Dba可以将不同数据类型部署到不同的位置,这样有利于提高i/0性能,同时利于备份和恢复等管理操作。

2、建立表空间

Create tablespace (DBA 或是 create tablespace 权限)

3、建立数据表空间

实例:

建立名称为sp001的表空间,并为该表空间建立名为sp001.dbf的数据文件,区的大小为128K

create tablespace sp001 datafile 'c:\tablespace\sp001.dbf' size 5m uniform size 128K

4、使用表空间
实例:

create table mypart1(deptno number(2),dname varchar2(20)) tablespace sp001

5、改变表空间
实例:

使表空间脱机

Alter tablespace 表空间名称 offline;

使表空间联机

Alter tablespace 表空间名称 online;

只读表空间

Alter tablespace 表空间名称 read only

读写表空间

Alter tablespace 表空间名称 read write

6、查询表空间有多少个表(表空间名称必须大写)
select * from all_tables where tablespace_name='SP001';
7、知道表明查询属于哪个表空间

select * from user_tables where table_name='MYPART';

8、删除表空间
drop tablespace 表空间名称 contents and datafiles;
说明:如果including contents 则删除该空间所有的数据库对象,datafile表示将数据库文件也删除了

扩展表空间:

1、 增加数据文件

alter tablespace sp01 add datafile 'c:\tablespace\sp01_2.dbf' size 20m;

2、修改数据文件大小
alter database datafile 'c:\tablespace\sp01_1.dbf' resize 10m;

3、设置文件自动增长

alter database datafile 'c:\tablespace\sp01_1.dbf'

autoextend on next 5m maxsize 500m;

移动数据空间:(下面是9i的方法)

1、 确定数据文件所在的表空间
select tablespace_name from dba_data_files

where file_name ='C:\TABLESPACE\SP01.DBF';

2、 使表空间脱机
alter tablespace sp01 offline;

3、 使用命令移动文件到指定的目标位置

Host move C:\TABLESPACE\SP01.DBF C:\new_ts\ SP01.DBF

4、 执行alter tablespace 命令

alter tablespace sp01 rename datafile 'C:\spacetable\sp01.dbf' to 'c:\new_ts\sp01.dbf'

5、 是表空间联机

Alter tablespace sp01 online;

注意:

导入表默认导入到userid 登录的用户

权限分对象权限和系统权限。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值