06-Oracle表空间与用户管理

news2025/3/1 8:10:38

本讲主要内容:

1.表空间管理:表空间的作用,创建,修改,删除及管理;

2.用户管理:创建用户,修改用户,删除用户,修改密码,解锁;

3.用户权限管理:授权,撤销授权

4.数据库的备份与恢复

5.数据库导入导出

表空间

数据库由若干表空间组成
表空间的集合包含:
  表段,存放表数据
  索引段,存放索引数据
  临时段,排序
  回滚段,事务读一致性、回滚
查看有哪些表空间
  Select * from v$tablespace
查看有哪些数据文件
  Select * from v$datafile

表空间管理

表空间和数据文件的作用:
  使用户数据和数据字典 ( 系统表数据 ) 数据相分离。减少字典对象和模式对象在同一个数据文件中的竞争
  使不同应用程序的数据相分离。使用户对数据文件的管理更清晰,各个程序的表空间的操作互不影响,即使单个表空间处于脱机也不影响其他的表空间正常运行
  将回滚段从用户数据中分离出来,防止了单个磁盘的故障造成的数据的不可恢复

表空间可以分为两大类:

  系统表空间:
在创建数据库时一同创建的,用于存放数据字典对象,并包含了系统回滚段。
可以存储用户数据,但 oracle 建议一般不用于存放用户数据
  非系统表空间:
永久表空间:
用于存储用户永久数据
临时表空间 (temporary tablespace)
用于存储临时数据,如用户数据进行排序时产生的数据;使用临时表空间在很大程度上提高了用户进行大量数据的排序性能
还原表空间 (undo tablepspace)
提供对回滚段的自动管理

管理表空间主要包括以下操作:

  创建表空间
Create (temporary|undo) tablespace
  更改表空间的存储参数
  更改表 Alter tablespace/manage tablespace
  空间的状态
  删除表空间
drop tablepace/manage tablespace
  查看表空间的信息
对表空间中的 的分配和使用有两种管理方式:
  数据字典管理
使用数据字典来跟踪表空间的使用情况
  本地管理( 9i 后默认的方式,也是推荐的方式):
使用位图跟踪表空间的使用情况,位图存储于头文件中

创建表空间

  Extend management 子句:区的管理方式
本地管理 ( local ) 还是字典管理 ( dictionary )
如果是 local 需要指定是自动管理 ( autoallocate ) 表空间大小还是一个指定大小 ( uniform size ) 的区来管理
  Segment space management 子句 : 段空间的管理方式
自动管理 (auto) 或使用空闲列表进行管理 (manual)
用户还需要指定是否启动重做日志文件纪录表空间的数据更改情况( Logging  /  nologging
  datafile 子句 :
至少指定一个属于该表空间的数据文件

创建表空间

CREATE TABLESPACE "APP" 
    LOGGING 
    DATAFILE  'C:\ORACLE\ORADATA\EXAMPLE\APP1.DBF'  SIZE 5M REUSE 
    AUTOEXTEND    ON NEXT  512K MAXSIZE  10M 

创建本地管理的临时表空间

CREATE  temporary TABLESPACE "APPTEMP" 
      TEMPFILE  'C:\ORACLE\ORADATA\EXAMPLE\APPTEMP.DBF'  SIZE 5M 
EXTENT MANAGEMENT  LOCAL
Uniform size 1 M

创建本地管理的还原表空间

CREATE  undo TABLESPACE “roolback1" 
      DATAFILE  'C:\ORACLE\ORADATA\EXAMPLE\roolback1.DBF'  SIZE 5M 

表空间的状态

联机
  用户可以正常访问此表空间的数据
  又可以将联机状态的表空间设置为只读或可读写:
脱机
  此状态的表空间或数据暂时不可用,用户不能访问
  用于部分的停止数据库、修复数据库文件、改物理文件名、移动物理文件
  表空间脱机

ALTER TABLESPACE "APP" OFFLINE Normal

  恢复表空间为联机状态

  ALTER TABLESPACE "APP" ONLINE

更改表空间的状态

  SYSTEM 表空间和临时表空间不能被脱机
  包含活动的回滚段的表空间也不能被脱机
  Normal
清除此表空间的所有数据文件在 SGA 中分配的空间,该方式为 默认方式 ,且再联机的时候不需要执行介质恢复
  Temporary
脱机前需要设置检查点,则再联机的时候需要执行介质恢复
  Immediate
脱机前不需要设置检查点,则再联机的时候需要执行介质恢复
如果数据库运行在 noarchivelog 模式下,则不能立即脱机
For recover
  将数据库中进行 point-in-time 恢复的表空间设置为脱机

设置表空间为只读,只读表空间不能写数据,可删除数据

  ALTER TABLESPACE "APP" READ ONLY
  可将只读表空间写到 CD 中,然后修改表空间数据文件的位置

设置表空间为读/

  ALTER TABLESPACE "APP" READ WRITE

删除表空间

DROP TABLESPACE “APP” INCLUDING CONTENTS AND DATAFILES
带INCLUDING CONTENTS可删除表空间的对象,不删文件
带AND DATAFILE删除数据文件

改变表空间数据文件大小

ALTER DATABASE DATAFILE ‘d:\oracle\oradata\study\myapp01.dbf’ 
Resize 50m       --改变大小
ALTER TABLESPACE ‘MYAPP’
		ADD DATAFILE ‘d:\oracle\oradata\study\mypp02.dbf’ size 10m;

改变表空间数据文件

  准备好数据文件
  表空间离线
  修改数据文件
举例
表空间离线
	Alter tablespace ‘myapp’ offline
修改数据文件名称,在操作系统下改
修改表空间数据文件
	alter tablespace myapp
	rename datafile ’d:\oracle\oradata\study\myapp01.dbf’
	to ’d:\oracle\oradata\study\myapp02.dbf’

脚本创建表空间

CREATE TABLESPACE "STORE" 
    LOGGING 
    DATAFILE 'D:\ORACLE\ORADATA\STUDY\STORE.ora' SIZE 5M EXTENT 
    MANAGEMENT LOCAL

创建用户

Oracle 是一个多用户的数据库系统,每个试图使用 Oracle 的用户都必须得到一个合法的用户名和口令。
用户也叫方案,是一组逻辑对象的所有者;
创建用户时需要指定:
  验证方法 :连接数据库的合法密码
  默认和临时表空间 :当用户创建对象时,如果没有特殊指定另一个表空间,将使用默认表空间。临时表空间用来创建临时段。

语法:
  Create user 用户名 Identified  by  密码 
  default tablespace 默认表空间名称
  quota  nk   on 表空间名字
  password expire 
  Account  {lock | unlock}
  参数说明:
quota  nk 限制用户在表空间上的使用限额,单位为 KB MB ,如为 unlimited 说明使用表空间不受限制
password expire 说明用户的密码已经到期失效,登陆的时候要强制用户修改密码
Account 指锁定或解除用户帐号

举例

创建用户

CREATE USER "ST" IDENTIFIED BY "123" DEFAULT TABLESPACE "STORE" 
    ACCOUNT UNLOCK;
GRANT "CONNECT" TO "ST";
GRANT "RESOURCE" TO "ST";



修改用户的默认表空间
ALTER USER kong default tablespace=store
修改用户在表空间上的空间使用限额
ALTER USER kong quote 10m ON STORE
修改用户密码
Alter user test identified by test11;

启动两个SQL PLUSAB表示

A>conn sys/change_on_install as sysdba
A>create user test identified by test123 default tablespace store;
B>conn test/test123   --出错,没有create session的权限
A>grant create session to test; --授权成功
B>conn test/test123	--连接成功
B>create table ab(a number(5), b varchar2(20));  --权限不足
A>grant create table to test;  --赋给操作权限
B>create table ab(a number(5), b varchar2(20)); --没有表空间store的权限
A>grant unlimited tablespace to test;  --赋给用户表空间资源的操作权限
B>create table ab(a number(5), b varchar2(20)); --创建成功
B>select * from scott.dept;  --表或试图不存在,因为没权限
B>grant select any table to test;  --赋给用户可以查询任何表空间的表的数据
B>select * from scott.dept;  --OK
B>create user test1 identified by test1 --权限不足
A>grant create user to test with admin option; --给test赋给创建用户的权限,	并且test可以将创建用户的权限赋给其他用户
A>grant create session to test with admin option;
B>create user test1 identified by test1  --创建成功
B>conn test1/test1  	--连接失败,没有权限
B>grant create session to test1  --test用户将create session权限赋给test1
B>conn test1/test1	--连接成功

对象权限

数据控制语言为用户提供权限控制命令
用于权限控制的命令有:
GRANT 授予权限
REVOKE 撤销已授予的权限

SQL> GRANT SELECT, UPDATE ON EMP  TO user;

SQL> GRANT SELECT ON EMP TO user WITH GRANT OPTION;

SQL> GRANT UPDATE(SAL, HIREDATE)  ON EMP TO user;

SQL> REVOKE SELECT, UPDATE ON EMP FROM user;

查看用户的权限

查看当前用户的角色

  SQL>select * from user_role_privs;
 
查看当前用户的系统权限和表级权限
 
SQL>select * from user_sys_privs;
 SQL>select * from user_tab_privs;

select * from session_privs;  //用户连上后

查看角色权限

select * from dba_sys_privs where grantee in ('CONNECT','RESOURCE');  

select * from role_sys_privs where role='角色名';

常用字典信息

表空间信息表

  DBA_TABLESPACE
  V$TABLESPACE

数据文件信息表

  DBA_DATA_FILES
  V$DATAFILE

临时文件信息

  DBA_TEMP_FILES
  V$TEMPFILE

查看用户及其默认的表空间

  Select username,default_tablespace from dba_users

备份与恢复简介

备份是数据库中数据的副本,它可以保护数据在出现意外损失时最大限度的恢复

Oracle数据库的备份包括以下两种类型:

 

故障类型 

导致数据库操作中止的故障包括四种类型:

 

数据库备份

在数据库中提供了两种备份数据的方法: 物理备份 逻辑备份
逻辑备份:备份表、视图、触发器、模式对象。。。
物理备份
  冷备份
停止服务,拷贝物理文件
  热备份
数据库正常运行情况下备份,数据库需要运行在归档模式

导出和导入实用程序

导出和导入实用程序用于实施数据库的逻辑备份和恢复
导出实用程序将数据库中的对象定义和数据备份到一个操作系统二进制文件中
导入实用程序读取二进制导出文件并将对象和数据载入数据库中
导入命令
  IMP
导出命令
  EXP
在导出自身模式下的对象时不需要什么特殊权限
但希望对其他模式下的对象进行操作的时候就必须必须具备 EXP_FULL_DATABASE IMP_FULL_DATABASE 的角色。
可以通过 OEM 中提供的工具进行导入 / 导出的操作

导出和导入实用程序的特点有:
  可以按时间保存表结构和数据
  允许导出指定的表,并重新导入到新的数据库中
  可以把数据库迁移到另外一台异构服务器上
  在两个不同版本的 Oracle 数据库之间传输数据
  在联机状态下进行备份和恢复
  可以重新组织表的存储结构,减少链接及磁盘碎片

使用以下三种方法调用导出和导入实用程序:

导出和导入数据库对象的四种模式是: 

导出实用程序有以下常用命令参数:

参数

说明

USERID

确定执行导出实用程序的用户名和口令

BUFFER

确定导出数据时所使用的缓冲区大小,其大小用字节表示

FILE

指定导出的二进制文件名称,默认的扩展名是.dmp

FULL

指定是否以全部数据库方式导出,只有授权用户才可使用此参数

OWNER

要导出的数据库用户列表

HELP

指定是否显示帮助消息和参数说明

ROWS

确定是否要导出表中的数据

TABLES

按表方式导出时,指定需导出的表和分区的名称

PARFILE

指定传递给导出实用程序的参数文件名

TABLESPACES

按表空间方式导出时,指定要导出的表空间名

 

 导入实用程序

导入实用程序有如下常用命令参数:

参数

说明

USERID

指定执行导入的用户名和密码

BUFFER

指定用来读取数据的缓冲区大小,以字节为单位

COMMIT

指定是否在每个数组(其大小由BUFFER参数设置)插入后进行提交

FILE

指定要导入的二进制文件名

FROMUSER

指定要从导出转储文件中导入的用户模式

TOUSER

指定要将对象导入的用户名。FROMUSERTOUSER可以不同

FULL

指定是否要导入整个导出转储文件

TABLES

指定要导入的表的列表

ROWS

指定是否要导入表中的行

PARFILE

指定传递给导入实用程序的参数文件名,此文件可以包含这里列出的所有参数

IGNORE

导入时是否忽略遇到的错误,默认为N

TABLESPACES

按表空间方式导入,列出要导入的表空间名

本人从事软件项目开发20多年,2005年开始从事Java工程师系列课程的教学工作,录制50多门精品视频课程,包含java基础,jspweb开发,SSH,SSM,SpringBoot,SpringCloud,人工智能,在线支付等众多商业项目,每门课程都包含有项目实战,上课PPT,及完整的源代码下载,有兴趣的朋友可以看看我的在线课堂

讲师课堂链接:https://edu.csdn.net/lecturer/893

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/396857.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【LeetCode】13. 罗马数字转整数

题目链接:https://leetcode.cn/problems/roman-to-integer/ 📕题目要求: 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 例如, 罗马数字 2 写做 II ,即…

微电影广告发展的痛点

微电影广告以不可阻挡之势进入大众生活中,企业利用微电影广告来进行企业形象塑造的例子比比皆是。于是乎,微电影广告在为企业塑造品牌形象方面上取得了可喜的效果,但也不可忽视,在这个发展过程中,微电影广告所面临的问…

ruoyi-vue-plus1(控制台相关的输出日志)(p6spy插件)(jackson全局配置)(StopWatch)

Jackson配置在启动项目时,我们发现日志打印出这样几行字,初始化了jacdson配置,我们去查看一下来源找。我们找到了一个全局序列化配置类,其中重写了BigNumberSerializer.INSTANCE进去查看发现了这里对于部分范围的数字进行了转为为…

JDK动态代理(powernode CD2207 video)(内含教学视频+源代码)

JDK动态代理(powernode CD2207 video)(内含教学视频源代码) 教学视频原代码下载链接地址:https://download.csdn.net/download/weixin_46411355/87545977 目录JDK动态代理(powernode CD2207 video&#xf…

2022CCPC女生赛(补题)(A,C,E,G,H,I)

迟了好久的补题&#xff0c;&#xff0c;现在真想把当时赛时的我拉出来捶一拳排序大致按照题目难度。C. 测量学思路&#xff1a;直接循环遍历判断即可&#xff0c;注意角度要和2π取个最小值。AC Code&#xff1a;#include <bits/stdc.h>typedef long long ll; const int…

Linux设备的I/O模型

背景&#xff1a;进程休眠和唤醒为了把一个进程设置为睡眠状态&#xff0c;需要把这个进程从TASK_RUNNING(可运行状态或就绪态)状态设置为TASK_INTERRUPTIBLE(浅度睡眠)或TASK_NUINTERRUPTIBLE(深度睡眠)状态&#xff0c;并且从进程调度器的运行队列中移走&#xff0c;我们称这…

jUnit的学习笔记

jUnit学习笔记要不要做单元测试的思考jUnit的使用jUnit的一些注意事项注解Assert断言JUnitCoreTestCaseTestResultTestSuite 测试套件忽略测试时间测试异常测试参数化测试jUnit中遇到的问题1.多线程测试时&#xff0c;jUnit自动退出了&#xff1f;2.测试入库的数据时&#xff0…

各种激活函数的计算公式、图像以及实现代码

激活函数已经成为神经网络中非常重要的一部分&#xff0c;随着各种类型的神经网络模型被人们开发出来&#xff0c;各种激活函数也应运而生&#xff0c;在不同的场景中&#xff0c;取得良好的效果。本文跟据著名的YOLO系列目标检测模型的源码 AlexeyAB Darknet&#xff0c;整理出…

HTML第5天 HTML新标签与特性

新标签与特性文档类型设定前端复习帮手W3Schoool常用新标签datalist标签&#xff0c;与input元素配合&#xff0c;定义选项列表fieldset元素新增input表单文档类型设定 document – HTML: 开发环境输入html:4s – XHTML: 开发环境输入html:xt – HTML5: 开发环境输入html:5 前…

如何在知行之桥EDI系统中定时自动更换交易伙伴AS2证书?

为了保证客户与交易伙伴之间数据传输的安全性&#xff0c;AS2传输协议中&#xff0c;通常会通过一对数字证书对传输数据进行签名和加密。但是证书是有有效期的&#xff0c;在证书到期之前&#xff0c;需要贸易双方及时更换新的证书。 在更新证书时&#xff0c;由于客户通常是和…

第十六节 接口

接口 接口是一种规范。规范也是一种公开的。 接口中的成分特点&#xff1a;JDK8之前接口中只能有抽象方法和常量。 接口的用法&#xff1a; ●接口是用来被类实现(implements)的&#xff0c;实现接口的类称为实现类。实现类可以理解成所谓的子类。 从上面可以看出&#xff0c…

网络的瓶颈效应

python从小白到总裁完整教程目录:https://blog.csdn.net/weixin_67859959/article/details/129328397?spm1001.2014.3001.5501 ❤ 网络的瓶颈效应 网络瓶颈&#xff0c;指的是影响网络传输性能及稳定性的一些相关因素&#xff0c;如网络拓扑结构&#xff0c;网线&#xff0…

了解栈Stack一篇文章就够了

什么是栈栈是一种特殊的线性表&#xff0c;只允许一端进行数据的插入和删除&#xff0c;即先进后出原则。类似于弹夹先装进去的子弹后面出&#xff0c;后放入的子弹先出。栈的底层原理栈是一种线性结构&#xff0c;所以既能使用数组实现&#xff0c;也能使用链表实现&#xff0…

【蓝桥杯刷题训练营】day05

1 数的分解 拆分成3个数相加得到该数 然后采用了一种巨愚蠢的办法&#xff1a; int main() {int count 0;int a 2;int b 0;int c 1;int d 9;int a1, a2, a3;int c1, c2, c3;int d1, d2, d3;for (a1 0; a1 < 2; a1){for (a2 0; a2 < 2; a2){for (a3 0; a3 <…

中断和事件

目录 中断概述 什么是中断&#xff1f; 什么是EXTI&#xff1f; EXTI初始化结构体&#xff1a; 中断/事件线&#xff1a; EXTI模式&#xff1a; 触发类型&#xff1a; EXTI控制&#xff1a; 什么是优先级&#xff1f; 什么是优先级分组&#xff1f; 什么是NVIC&#…

【Java】最新版本SpringCloudStream整合RocketMQ实现单项目中事件的发布与监听

文章目录前言依赖配置代码参考前言 SpringCloud项目中整合RocketMQ是为了削峰填谷。 这里我使用RocketMQ的作用用于接收项目中产生的消息&#xff0c;然后异步的发送邮件给客户&#xff0c;这是这个项目的产生的背景。 依赖配置 <dependencies><dependency><…

开发钉钉微应用,实现免登+调试

1.创建h5微应用 https://open.dingtalk.com/document/orgapp/develop-org-h5-micro-applications 根据里面的三个步骤,创建h5微应用 2.免登之前必须要先进行JSAPI的授权 文档说明: https://open.dingtalk.com/document/orgapp/jsapi-authentication 根据文档中的说明 步骤…

spring事物源码分析

今天的任务是剖析源码&#xff0c;看看Spring 是怎么运行事务的&#xff0c;并且是基于当前最流行的SpringBoot。还有&#xff0c;我们之前剖析Mybatis 的时候&#xff0c;也知道&#xff0c;Mybatis 也有事务&#xff0c;那么&#xff0c;他俩融合之后&#xff0c;事务是交给谁…

MySQL (六)------MySQL的常用函数、 事务(TCL)、DCL用户操作语句、常见环境、编码问题

第一章 MySQL的常用函数 1.1 字符串函数 1.1.1 字符串函数列表概览 函数用法CONCAT(S1,S2,......,Sn)连接S1,S2,......,Sn为一个字符串CONCAT_WS(separator, S1,S2,......,Sn)连接S1一直到Sn&#xff0c;并且中间以separator作为分隔符CHAR_LENGTH(s)返回字符串s的字符数LENGTH…

深入理解性能压测工具原理

如果没有性能测试工具如何通过手工实现 如果没有性能测试工具&#xff0c;通过手工进行性能测试&#xff0c;这是一个值得我们思考的问题。这时候需要一个协调员发送指令&#xff0c;一个操作员进行操作&#xff0c;对系统施加压力&#xff0c;多个操作员代表着多个用户进行并…