oracle下的数据库实例、表空间、用户及其表的区分
完整的Oracle数据库通常由两部分组成:Oracle数据库和数据库实例。
1) 数据库是一系列物理文件的集合(数据文件,控制文件,联机日志,参数文件等);
2) Oracle数据库实例则是一组Oracle后台进程/线程以及在服务器分配的共享内存区。
在启动Oracle数据库服务器时,实际上是在服务器的内存中创建一个Oracle实例(即在服务器内存中分配共享内存并创建相关的后台内存),然后由这个Oracle数据库实例来访问和控制磁盘中的数据文件。Oracle有一个很大的内存快,成为全局区(SGA)。
一、数据库、表空间、数据文件
1、数据库
数据库是数据集合。Oracle是一种数据库管理系统,是一种关系型的数据库管理系统。
通常情况了我们称的“数据库”,并不仅指物理的数据集合,他包含物理数据、数据库管理系统。也即物理数据、内存、操作系统进程的组合体。
我们在安装Oracle数据库时,会让我们选择安装启动数据库(即默认的全局数据库)如下图:
全局数据库名:就是一个数据库的标识,在安装时就要想好,以后一般不修改,修改起来也麻烦,因为数据库一旦安装,数据库名就写进了控制文件,数据库表,很多地方都会用到这个数据库名。
启动数据库:也叫全局数据库,是数据库系统的入口,它会内置一些高级权限的用户如SYS,SYSTEM等。我们用这些高级权限账号登陆就可以在数据库实例中创建表空间,用户,表了。
查询当前数据库名:
select name from v$database;
2、数据库实例
用Oracle官方描述:实例是访问Oracle数据库所需的一部分计算机内存和辅助处理后台进程,是由进程和这些进程所使用的内存(SGA)所构成一个集合。
其实就是用来访问和使用数据库的一块进程,它只存在于内存中。就像Java中new出来的实例对象一样。
我们访问Oracle都是访问一个实例,但这个实例如果关联了数据库文件,就是可以访问的,如果没有,就会得到实例不可用的错误。
实例名指的是用于响应某个数据库操作的数据库管理系统的名称。她同时也叫SID。实例名是由参数instance_name决定的。
查询当前数据库实例名:
select instance_name from v$instance;
数据库实例名(instance_name)用于对外部连接。在操作系统中要取得与数据库的联系,必须使用数据库实例名。比如我们作开发,要连接数据库,就得连接数据库实例名:
jdbc:oracle:thin:@localhost:1521:orcl(orcl就为数据库实例名)
一个数据库可以有多个实例,在作数据库服务集群的时候可以用到。
3、表空间
Oracle数据库是通过表空间来存储物理表的,一个数据库实例可以有N个表空间,一个表空间下可以有N张表。
有了数据库,就可以创建表空间。
表空间(tablespace)是数据库的逻辑划分,每个数据库至少有一个表空间(称作SYSTEM表空间)。为了便于管理和提高运行效率,可以使用一些附加表空间来划分用户和应用程序。例如:USER表空间供一般用户使用,RBS表空间供回滚段使用。一个表空间只能属于一个数据库。
创建表空间语法:
Create TableSpace 表空间名称 DataFile 表空间数据文件路径 Size 表空间初始大小 Autoextend on
如:
create tablespace db_test datafile 'D:\oracle\product\10.2.0\userdata\db_test.dbf' size 50m autoextend on;
查看已经创建好的表空间:
select default_tablespace, temporary_tablespace, d.username from dba_users d
4、用户
Oracle数据库建好后,要想在数据库里建表,必须先为数据库建立用户,并为用户指定表空间。
上面我们建好了数据库和表空间,接下来建用户:
创建新用户:
CREATE USER 用户名 IDENTIFIED BY 密码 DEFAULT TABLESPACE 表空间(默认USERS) TEMPORARY TABLESPACE 临时表空间(默认TEMP)
如:
CREATE USER utest IDENTIFIED BY utestpwd DEFAULT TABLESPACE db_test TEMPORARY TABLESPACE temp;(这里临时表空间不能使用我们创建的db_test,不知为何?)
有了用户,要想使用用户账号管理自己的表空间,还得给它分权限:
GRANT CONNECT TO utest; GRANT RESOURCE TO utest; GRANT dba TO utest;--dba为最高级权限,可以创建数据库,表等。
查看数据库用户:
select * from dba_users;
5、表
有了数据库,表空间和用户,就可以用自定义的用户在自己的表空间创建表了。有了表,我们可以开发了。
简单的一段java代码访问oracle数据库
package oracleConn;import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet;public class Test {public static void main(String[] args) {// TODO Auto-generated method stubConnection con = null;// 创建一个数据库连接PreparedStatement pre = null;// 创建预编译语句对象,一般都是用这个而不用StatementResultSet result = null;// 创建一个结果集对象try{Class.forName("oracle.jdbc.driver.OracleDriver");System.out.println("开始尝试连接数据库");String url = "jdbc:oracle:thin:@localhost:1521:orcl";String user = "system";String password="123456";//获取连接con = DriverManager.getConnection(url, user, password);// 获取连接System.out.println("连接成功!");String sql = "select * from t_user where name=?";// 预编译语句,“?”代表参数pre = con.prepareStatement(sql);// 实例化预编译语句pre.setString(1, "hubin");// 设置参数,前面的1表示参数的索引,而不是表中列名的索引result = pre.executeQuery();// 执行查询,注意括号中不需要再加参数while (result.next())// 当结果集不为空时System.out.println("学号:" + result.getInt("id") + "姓名:"+ result.getString("name"));}catch (Exception e){e.printStackTrace();}finally{try{// 逐一将上面的几个对象关闭,因为不关闭的话会影响性能、并且占用资源// 注意关闭的顺序,最后使用的最先关闭if (result != null)result.close();if (pre != null)pre.close();if (con != null)con.close();System.out.println("数据库连接已关闭!");}catch (Exception e){e.printStackTrace();}}} }
转载于:https://www.cnblogs.com/hoobey/p/7711060.html
oracle下的数据库实例、表空间、用户及其表的区分相关推荐
- oracle查看所有用户6,oracle 查看 用户 用户权限 用户表空间 用户默认表空间
Oracle查询用户表空间 ◆Oracle查询用户表空间:select * from user_all_tables ◆Oracle查询所有函数和储存过程:select * from user_sou ...
- oracle 表空间-用户-授权-表创建
一.创建表空间 创建表空间为:MDMS_TS_File ,数据文件为:MDMS_TS_File.DBF ,指定存放路径为:'/oradata1/ ,大小为:2000M CREATE TABLESPAC ...
- Oracle 导入数据库 删除用户、删除表空间、删除表空间下所有表,查看当前表空间
导入数据库 在cmd下用 imp导入 格式: imp userName/passWord file=bmp文件路径 ignore = y (忽略创建错误)full=y(导入文件中全部内容); 例: ...
- Oracle 数据库表空间不足拓展方法实例演示,表空间剩余大小查看,通过新增表空间文件拓展表空间,表空间文件路径查看
Oracle 数据库表空间 第一章:表空间的拓展 ① 查看剩余表空间大小 ② 查看表空间文件路径 ③ 通过新增表空间文件拓展表空间 ④ 查看表空间已分配大小 第一章:表空间的拓展 ① 查看剩余表空间大 ...
- mysql导入创建表空间_oracle创建表空间 用户 数据库导入和导出(转)
已经安装orcale 9i 和pl/sql(6.0) OracleJobSchedulerORCL.OracleOraDb10g_home1iSQL*Plus OracleOraDb10g_home1 ...
- oracle初始化化表空间用户权限
oracle单实例安装完毕,需要初始化表空间.用户.等信息.不积跬步,何以至千里! 用sys账户登录oracle数据库,以此来完成所有操作! 01.创建临时表空间 create temporary t ...
- Oracle(一)创建表空间 用户以及用户授权
Oracle(一)创建表空间 用户以及用户授权 一.表空间 1.创建表空间 --创建表空间 create tablespace myoracle datafile 'd:\myoracle.dbf'- ...
- Oracle创建表空间/用户及导入导出
文章目录 一.SQL Plus登录 二.创建表空间,用户 1.创建文件夹 2.创建表空间 2.创建用户 3.用户绑定表空间 4.用户授权 三.Oracle导入导出 2.导出 3.导入 四.Navica ...
- oracle表空间,角色,权限,表,索引,序列号,视图,同义词,约束条件,存储函数和过程,常用数据字典,基本数据字典信息,查看VGA信息,维护表空间,创建表空间等信息
查看当前用户的缺省表空间 SQL>select username,default_tablespace from user_users; 查看当前用户的角色 SQL>select * fr ...
最新文章
- numpy.where用法详解,对2维数组判断解释的比较清楚的
- down 网卡端口周期性的up_Linux 中如何启用和禁用网卡?
- NetworkX系列教程(10)-算法之三:关键路径问题
- qt creator无法删除文件怎么办?(需要在cmakelists文件里配置)
- java 字符串 面试_JAVA中String介绍及常见面试题小结
- LINUX SHELL删除文件中的回车(WINDOWS转LINUX)
- 智慧城市大数据应用案例
- 编程必备的最基本5种算法思想
- 解决pr导入的视频在监控器里面画面会放大的问题
- 雷锋读图:如何通过社交媒体提高投资回报率
- A woman without arms
- 使用Windows批处理+ImageMagick 实现批量处理图片
- 混凝土试块送检要求与时间
- 在命令行窗口中打开win10的显示设置
- 树莓派安装后中文设置及输入法安装
- laravel faker 数据填充
- Windows 任务计划程序
- pandas筛选数据_2_条件筛选
- 新媒体运营是什么??新媒体运营通过哪些方式进行?
- bzoj刷题(shui)记录
热门文章
- mybatis 原理_Mybatis的工作原理
- 可能存在无限递归_Python之递归函数
- u8 api开发报类型不匹配错误_小程序云开发入门学习,小程序支付功能常见错误汇总及解决方案...
- Provisional headers are shown问题
- sublime php错误提示,sublime中检查php语法错误
- 项目中公用的一些php函数,大多数curl相关的
- 前端面试之webpack面试常见问题
- Python的collections模块中namedtuple结构使用示例
- Shadow Map阴影贴图技术之探 【转】
- [轉].NET项目是否有必要升级到.NET 3.5 + VS 2008