文献地址: https://blog.csdn.net/jmilk/article/details/51599260html
https://www.cnblogs.com/roger112/p/7685307.htmlsql
https://www.cnblogs.com/summary-2017/p/7866005.html数据库
https://www.cnblogs.com/kevinanni/p/3688921.html服务器
https://www.cnblogs.com/roger112/p/7685307.htmlsession
Oracle数据库介绍: 完整的Oracle数据库一般由两部分组成:Oracle数据库和数据库实例。 1) 数据库是一系列物理文件的集合(数据文件,控制文件,联机日志,参数文件等); 2) Oracle数据库实例则是一组Oracle后台进程/线程以及在服务器分配的共享内存区。oracle
在启动Oracle数据库服务器时,其实是在服务器的内存中建立一个Oracle实例(即在服务器内存中分配共享内存并建立相关的后台内存),而后由这个Oracle数据库实例来访问和控制磁盘中的数据文件。Oracle有一个很大的内存快,成为全局区(SGA)。ide
用Oracle官方描述:实例是访问Oracle数据库所需的一部分计算机内存和辅助处理后台进程,是由进程和这些进程所使用的内存(SGA)所构成一个集合。
其实就是用来访问和使用数据库的一块进程,它只存在于内存中。就像Java中new出来的实例对象同样。
咱们访问Oracle都是访问一个实例,但这个实例若是关联了数据库文件,就是能够访问的,若是没有,就会获得实例不可用的错误。
实例名指的是用于响应某个数据库操做的数据库管理系统的名称。她同时也叫SID。实例名是由参数instance_name决定的。spa
用户介绍:Oracle数据库建好后,要想在数据库里建表,必须先为数据库创建用户,并为用户指定表空间。上面咱们建好了数据库和表空间,接下来建用户,能够在建表时和建表后对用户指定表空间。
.net
权限:在pl/sql developer 即便没有作权限也能够进行相关操做,可是自己没权限是在其余编译的时候是行不通的,用户权限的管理很重要。线程
表空间概述
Oracle的表空间属于Oracle中的存储结构,是一种用于存储数据库对象(如:数据文件)的逻辑空间,是Oracle中信息存储的最大逻辑单元,其下还包含有段、区、数据块等逻辑数据类型。表空间是在数据库中开辟的一个空间,用于存放数据库的对象,一个数据库能够由多个表空间组成。能够经过表空间来实现对Oracle的调优。(Oracle数据库独特的高级应用)
表空间的分类
- 永久表空间:存储数据库中须要永久化存储的对象,好比二维表、视图、存储过程、索引。
- 临时表空间:存储数据库的中间执行过程,如:保存order by数据库排序,分组时产生的临时数据。操做完成后存储的内容会被自动释放。临时表空间是通用的,所的用户都使用TEMP做为临时表空间。通常只有tmp一个临时表空间,若是还须要别的临时表空间时,能够本身建立。
- UNDO表空间:保存数据修改前的副本。存储事务所修改的旧址,即被修改以前的数据。当咱们对一张表中的数据进行修改的同时会对修改以前的信息进行保存,为了对数据执行回滚、恢复、撤销的操做。
有关用户的操做:
1、建立用户
oracle内部有两个建好的用户:system和sys。用户可直接登陆到system用户以建立其余用户,由于system具备建立别 的用户的 权限。 在安装oracle时,用户或系统管理员首先能够为本身创建一个用户。
语法[建立用户]: create user 用户名 identified by 口令[即密码];
例子: create user test identified by test;
语法[更改用户]: alter user 用户名 identified by 口令[改变的口令];
例子: alter user test identified by 123456;
2、删除用户
语法:drop user 用户名;
例子:drop user test;
若用户拥有对象,则不能直接删除,不然将返回一个错误值。指定关键字cascade,可删除用户全部的对象,而后再删除用户。
语法: drop user 用户名 cascade;
例子: drop user test cascade;
3、受权角色
oracle为兼容之前版本,提供三种标准角色(role):connect/resource和dba.
(1)讲解三种标准角色:
1》. connect role(链接角色)
--临时用户,特指不须要建表的用户,一般只赋予他们connect role.
--connect是使用oracle简单权限,这种权限只对其余用户的表有访问权限,包括select/insert/update和delete等。
--拥有connect role 的用户还可以建立表、视图、序列(sequence)、簇(cluster)、同义词(synonym)、回话(session)和其余 数据的链(link)
2》. resource role(资源角色)
--更可靠和正式的数据库用户能够授予resource role。
--resource提供给用户另外的权限以建立他们本身的表、序列、过程(procedure)、触发器(trigger)、索引(index)和簇(cluster)。
3》. dba role(数据库管理员角色)
--dba role拥有全部的系统权限
--包括无限制的空间限额和给其余用户授予各类权限的能力。system由dba用户拥有
(2)受权命令
语法: grant connect, resource to 用户名;
例子: grant connect, resource to test;
(3)撤销权限
语法: revoke connect, resource from 用户名;
列子: revoke connect, resource from test;
4、建立/受权/删除角色
除了前面讲到的三种系统角色----connect、resource和dba,用户还能够在oracle建立本身的role。用户建立的role能够由表或系统权限或二者的组合构成。为了建立role,用户必须具备create role系统权限。
1》建立角色
语法: create role 角色名;
例子: create role testRole;
2》受权角色
语法: grant select on class to 角色名;
列子: grant select on class to testRole;
注:如今,拥有testRole角色的全部用户都具备对class表的select查询权限
3》删除角色
语法: drop role 角色名;
例子: drop role testRole;
注:与testRole角色相关的权限将从数据库所有删除
有关表空间的操做:
1. 建立表空间
create tablespace SIRM2
datafile 'D:\oracle\product\10.2.0\oradata\orcl\SIRM2.dbf' size 1024M --存储地址 初始大小1G
autoextend on next 10M maxsize unlimited --每次扩展10M,无限制扩展
EXTENT MANAGEMENT local autoallocate
segment space management auto;
2.建立用户
create user test identified by test
default tablespace SIRM2
temporary tablespace TEMP
profile DEFAULT;
3.受权
grant dba to test;
grant connect to test;
grant resource to test;
SYS用户在CMD下以DBA身份登录:
在CMD中打sqlplus /nolog
而后再
conn / as sysdba
//建立临时表空间
create temporary tablespace user_temp
tempfile 'D:\oracle\oradata\Oracle9i\user_temp.dbf'
size 50m
autoextend on
next 50m maxsize 20480m
extent management local;
//建立数据表空间
create tablespace test_data
logging
datafile 'D:\oracle\oradata\Oracle9i\user_data.dbf'
size 50m
autoextend on
next 50m maxsize 20480m
extent management local;
//建立用户并指定表空间
create user username identified by password
default tablespace user_data
temporary tablespace user_temp;
//给用户授予权限
grant connect,resource to username;
//之后以该用户登陆,建立的任何数据库对象都属于user_temp 和user_data表空间,
这就不用在每建立一个对象给其指定表空间了
撤权:
revoke 权限... from 用户名;
删除用户命令
drop user user_name cascade;
创建表空间
CREATE TABLESPACE data01
DATAFILE '/oracle/oradata/db/DATA01.dbf' SIZE 500M
UNIFORM SIZE 128k; #指定区尺寸为128k,如不指定,区尺寸默认为64k
删除表空间
DROP TABLESPACE data01 INCLUDING CONTENTS AND DATAFILES;
1、创建表空间
CREATE TABLESPACE data01
DATAFILE '/oracle/oradata/db/DATA01.dbf' SIZE 500M
UNIFORM SIZE 128k; #指定区尺寸为128k,如不指定,区尺寸默认为64k
2、创建UNDO表空间
CREATE UNDO TABLESPACE UNDOTBS02
DATAFILE '/oracle/oradata/db/UNDOTBS02.dbf' SIZE 50M
#注意:在OPEN状态下某些时刻只能用一个UNDO表空间,若是要用新建的表空间,必须切换到该表空间:
ALTER SYSTEM SET undo_tablespace=UNDOTBS02;
3、创建临时表空间
CREATE TEMPORARY TABLESPACE temp_data
TEMPFILE '/oracle/oradata/db/TEMP_DATA.dbf' SIZE 50M
4、改变表空间状态
1.使表空间脱机
ALTER TABLESPACE game OFFLINE;
若是是意外删除了数据文件,则必须带有RECOVER选项
ALTER TABLESPACE game OFFLINE FOR RECOVER;
2.使表空间联机
ALTER TABLESPACE game ONLINE;
3.使数据文件脱机
ALTER DATABASE DATAFILE 3 OFFLINE;
4.使数据文件联机
ALTER DATABASE DATAFILE 3 ONLINE;
5.使表空间只读
ALTER TABLESPACE game READ ONLY;
6.使表空间可读写
ALTER TABLESPACE game READ WRITE;
5、删除表空间
DROP TABLESPACE data01 INCLUDING CONTENTS AND DATAFILES;
6、扩展表空间
首先查看表空间的名字和所属文件
select tablespace_name, file_id, file_name,
round(bytes/(1024*1024),0) total_space
from dba_data_files
order by tablespace_name;
1.增长数据文件
ALTER TABLESPACE game
ADD DATAFILE '/oracle/oradata/db/GAME02.dbf' SIZE 1000M;
2.手动增长数据文件尺寸
ALTER DATABASE DATAFILE '/oracle/oradata/db/GAME.dbf'
RESIZE 4000M;
3.设定数据文件自动扩展
ALTER DATABASE DATAFILE '/oracle/oradata/db/GAME.dbf
AUTOEXTEND ON NEXT 100M
MAXSIZE 10000M;
设定后查看表空间信息
SELECT A.TABLESPACE_NAME,A.BYTES TOTAL,B.BYTES USED, C.BYTES FREE,
(B.BYTES*100)/A.BYTES "% USED",(C.BYTES*100)/A.BYTES "% FREE"
FROM SYS.SM$TS_AVAIL A,SYS.SM$TS_USED B,SYS.SM$TS_FREE C
WHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME AND A.TABLESPACE_NAME=C.TABLESPACE