Oracle基本概念与数据导入
Oracle基本概念
实例
一个Oracle实例(Oracle Instance)有一系列的后台进程(Backguound Processes)和内存结构(Memory Structures)组成。一个数据库可以有n个实例。
用户
Oracle数据库建好后,要想在数据库里建表,必须先为数据库建立用户,并为用户指定表空间。
表空间
Oracle数据库是通过表空间来存储物理表的,一个数据库实例可以有N个表空间,一个表空间下可以有N张表。
表空间(tablespace)是数据库的逻辑划分,每个数据库至少有一个表空间(称作SYSTEM表空间)。为了便于管理和提高运行效率,可以使用一些附加表空间来划分用户和应用程序。例如:USER表空间供一般用户使用,RBS表空间供回滚段使用。一个表空间只能属于一个数据库。
数据文件(dbf,ora)
数据文件是数据库的物理存储单位。数据库的数据是存储在表空间中的,真 正是在某一个或者多个数据文件中。而一个表空间可以由一个或多个数据文件组成,一个数据文件只能属于一个表空间。一旦数据文件被加入到某个表空间后,就不能删除这个文件,如果要删除某个数据文件,只能先删除其所属于的表空间才行。
注意
表的数据,是有用户放入某一个表空间的,而这个表空间会随机把这些表数据放到一个或者多个数据文件中。由于oracle的数据库不是普通的概念,oracle是有用户和表空间对数据进行管理和存放的。但是表不是有表空间去查询的,而是由用户去查的。因为不同用户可以在同一个表空间建立同一个名字的表!这里区分就是用户了!
关系示意图
管理员命令行登录
sys password as sysdba
Navicat连接Oracle数据库
如果你的机器已经装有 Oracle 数据库的话,那很简单,Navicat 可以直接连接到 Oracle 。
如果没装,那 Navicat 会提示你需要安装 Oracle 客户端,如果不是必要,千万别装 Oracle 客户端,先不说它的块头很大,有四五百兆,装完后你很难卸载干净。
根据 Navicat 官方的文档,其实只需要下载 Oracle 的 Instance Client 即可。这个包只包含一些 dll 文件,无需安装解压即可。
要根据不同的 Oracle 版本来下载 Instance Client 的版本,对应关系如下:
Oracle 9i 或者更新的版本,需要使用 Instance Client 11 这个版本
Oracle 8 和 8i 用 Instance Client 10 版本。
另外必须注意的时候,只能下载 32 位版本,因为 Navicat 不支持 64 位的版本,另外要下载 Basic 版本 (40M),而不是 Basic Lite 版(11兆),因为 Basic Lite 版不支持中文,连接的时候会告诉你服务器端的编码不被支持。
如下图所示:instantclient-basic-win32-11.2.0.1.0\instantclient_11_2\oci.dll
配置完之后我们就可以通过Navicat连接Oracle数据了
导入dmp文件
plsql导入较大的dmp文件时可能会遇到:please wait...done,然后就没有反应,建议用命令行导入
找到imp.exe文件,大概在“11.2.0\dbhome_1\BIN”,在cmd中输入
#导入一张表
imp.exe username/password file='D:\xxx.dmp' ignore=y tables=xxx
#导入多张表
imp.exe username/password file='D:\xxx.dmp' ignore=y tables=(xxx,yyy)
如果遇到表空间不足的问题,可以自己创建一个表空间custom_tablespace
创建Oracle表空间
执行如下sql脚本
create tablespace projectname_tablespace datafile 'D:\projectname01.DBF' size 100m autoextend on next 100m maxsize unlimited;
表空间若达到32G,增加表空间的数据文件,这样表空间大小变成64G
alter tablespace projectname_tablespace add datafile 'D:\projectname02.DBF' SIZE 32767M;
创建Oracle用户
执行如下sql脚本
create user projectname identified by password default tablespace projectname_tablespace;
grant resource, connect, dba to projectname;
删除用户
drop user "projectname" cascade
最新文章
- cocos2d-x 3.5以后版本的 luasocket
- [Android Pro] How to get recent tasks on Android “L”?
- .NET NLog 详解 (三) - LayoutRender
- {转}Unity3d+Jenkins 自动编译iOS、Android版本(U3D远程自动打包工具)
- Android Sdk 和ADT Eclipse安装配置步骤
- UI1_UIView层操作
- PCB抄板评估需要关注的因素
- 「OC」内存管理
- 前端之Photoshop切片
- hadoop 2.x安装:完全分布式安装
- 荣耀MagicBook黑苹果(i7)High Sierra 10.13.6
- AirBnB春招笔试题
- 动态代理处理service
- mysql 分库分表 ~ 方案选择浅谈
- android 面试题(一)
- 【Linux学习七】软件安装
- 快速阅读《QT5.9 c++开发指南》2
- 安装windows系统时遇到的大坑——鼠标键盘没反应
- Sql 查询当天、本周、本月记录
- web service与EJB的区别
热门文章
- scala中的高阶函数
- java代码实现JVM栈溢出,堆溢出
- 05_MySQL常见函数_分组函数
- 上传网站后建议执行:chown www:www -R /path/to/dir 对网站目录进行权限设置,/path/to/dir替换为你网站目录。
- ECMAScript 5中对Array中新增了9个方法
- centos7里没有ifcfg-eth0只有 ifcfg-ens33(没有Eth0网卡)
- 理解OAuth 2.0授权
- UVALive-3523 Knights of the Round Table (双连通分量+二分图匹配)
- IOS-源代码管理工具(Git)
- Comprehensive Python Cheatsheet