本文主要介绍的是,Oracle数据库软件安装好之后到正式使用这个过程中需要做的所有操作。
安装好数据库的时候,其实我们自己已经设置好了Oracle数据库的SYS账号和SYSTEM账号和对应的密码,这个是我们进行后续操作的前提;
基础概念:Oracle数据库、实例、用户、表空间、表之间的关系 | |
---|---|
数据库: | Oracle数据库是数据的物理存储。这就包括(数据文件ORA或者DBF、控制文件、联机日志、参数文件)。其实Oracle数据库的概念和其它数据库不一样,这里的数据库是一个操作系统只有一个库。可以看作是Oracle就只有一个大数据库。 |
实例: | 一个Oracle实例(Oracle Instance)有一系列的后台进程(Backguound Processes)和内存结构(Memory Structures)组成。一个数据库可以有n个实例。 |
用户: | 用户是在实例下建立的。不同实例可以建相同名字的用户。 |
表空间: | 表空间是一个用来管理数据存储逻辑概念,表空间只是和数据文件(ORA或者DBF文件)发生关系,数据文件是物理的,一个表空间可以包含多个数据文件,而一个数据文件只能隶属一个表空间。 |
数据文件(dbf、ora) | 数据文件是数据库的物理存储单位。数据库的数据是存储在表空间中的,真 正是在某一个或者多个数据文件中。而一个表空间可以由一个或多个数据文件组成,一个数据文件只能属于一个表空间。一旦数据文件被加入到某个表空间后,就不能删除这个文件,如果要删除某个数据文件,只能删除其所属于的表空间才行。 |
常规情况下,安装一个数据库的时候就已经建立了一个实例
(1)在实例下创建表空间,指定物理文件存储位置;
本处 E:/MY_DATASPACE/ 为自己在磁盘E下创建的文件夹,下列代码为创建后续数据库文件的存储位置
--创建表空间
CREATE TABLESPACE my_data DATAFILE
'E:/MY_DATABASE/my_data01.dbf'
size 1024M
autoextend on
DEFAULT STORAGE ( INITIAL 50k
NEXT 100K
PCTINCREASE 0) ;
--创建索引表空间
CREATE TABLESPACE my_index DATAFILE
'E:/MY_DATABASE/my_index01.dbf'
size 1024M
autoextend on
DEFAULT STORAGE ( INITIAL 50k
NEXT 100K
PCTINCREASE 0) ;
--默认表空间
create temporary tablespace my_temp
tempfile 'E:/MY_DATABASE/my_temp01.dbf'
size 1096M
reuse autoextend on;
--全局表空间
CREATE TABLESPACE my_clob DATAFILE
'E:/MY_DATABASE\my_clob.dbf'
size 128M autoextend on NEXT 1M
DEFAULT STORAGE ( INITIAL 50k
NEXT 100K
PCTINCREASE 0) ;
(2)创建拥有一定权限的角色;
因为Oracle是有权限控制的,创建权限的角色,方便给后续创建的用户同意授予角色所拥有的权限,这样的话,就不需要去维护每一个用户的权限,而是授予不同的角色不同的权限,然后将给不用的用户指定不同的角色;
CREATE ROLE my_dba;--创建my_dba这个角色
GRANT create session TO my_dba with admin option;
Grant create table to my_dba;
Grant create view to my_dba;
Grant create trigger to my_dba;
Grant create type to my_dba;
Grant create sequence to my_dba;
Grant create synonym to my_dba;
Grant create procedure to my_dba;
Grant execute any procedure to my_dba with admin option;
Grant create role to my_dba;
grant dba to my_dba;--授予dba实物权限给这个角色
(3)创建用户并给用户赋予角色;
--user01 为自己创建的账号,pwd001 为该用户指定的密码
create user user01 identified by pwd001 default tablespace my_data temporary tablespace my_temp quota unlimited on my_data;--
alter user user01 quota unlimited on my_index;
alter user user01 quota unlimited on my_clob;
alter user user01 quota unlimited on my_temp;
Grant my_dba to user01 ;--授予my_dba 权限给user01
ALTER USER user01 QUOTA UNLIMITED ON users;
如果在创建的过程中出现异常或者最后需要修改和删除用户和角色,可使用如下语句
drop role my_dba ;--删除角色 drop user user01 cascade;--删除用户并删除用户下的表
(4)在做完上述操作后,就可以使用IMP工具登录数据库,恢复数据库等操作
导入数据:先打开cmd命令行
IMP user01 /pwd001 @orcl file=E:\user01 .dmp full=y;
其中user01 为用户名,pwd001 为对应的密码,orcl 为当前实例名,user01 .dmp为数据库备份文件 full=y 表示完整导入;
Oracle中的IMP是不适用sqlplus命令的,是直接在cmd命令中直接执行imp命令。
导出数据:先打开cmd命令行
exp user01 /pwd001 @orcl file=E:\user01 .dmp full=y;`
Oracle中imp命令详解