1.创建表空间
create tablespace 表空间名称
datafile ‘/oracledata/tablespace_name.DBF’ (表空间路径及文件)
size 1024M(文件大小)
autoextend on maxsize unlimited (不限时自动扩展)
;
例子:
create tablespace RRAIN_SPACE datafile '/u01/app/oracle/oradata/rain.DBF' size 1024M autoextend on maxsize unlimited;
为什么要创建表空间,因为oralce是以表空间去管理存储数据的。
2.创建用户
create user 用户名
identified by 密码
default tablespace 默认表空间名称
temporary tablespace 临时表空间名称; // 临时表空间
例子
create user rain identified by rain123 default tablespace RRAIN_SPACE temporary tablespace temp;
3.给用户赋值权限
create directory 目录名称 as ‘/oradata/dmp’ // 创建目录,并指定该目录的位置
grant read, write on directory 目录名称 to 用户名称 // 将用户和目录对应并设读写权限,这样用户才能使用该目录。
grant connect to 用户名
grant create any library to 用户名
grant create any procedure to 用户名
grant create any sequence to 用户名
grant imp_full_database to 用户名
grant resource to 用户名
grant unlimited tablespace to 用户名
例子
create directory RAINDMP as '/home/oracle/dmp/raindmp';
grant read, write on directory RAINDMP to rain;
grant connect to rain;
grant create any library to rain;
grant create any procedure to rain;
grant create any sequence to rain;
grant imp_full_database to rain;
grant resource to rain;
grant unlimited tablespace to rain;
你可以查看一下目录对应的用户
select * from dba_directories;
删除目录
drop directory ELCSUATDMP;
4.导入(这一步可以不做)
impdp 用户名/密码@数据库链接实例 directory=目录名称
dumpfile=***.DMP //待导入的数据
logfile=***.log; // 日志文件
这只是展示如何导入已经有的数据,你可以不用做这一步操作。
impdp elcsuat/elcsuat123@ORCL11G directory=ELCSUATDMP dumpfile=ELCS20200327_EXPORT.DMP logfile=ELCS20200327_EXPORT.log;
ORCL11G 是
导入的时候,如果发现这样的错误:
ORA-39002: invalid operation
ORA-39070: Unable to open the log file.
ORA-29283: invalid file operation
ORA-06512: at "SYS.UTL_FILE", line 536
ORA-29283: invalid file operation
一般都是权限问题,执行以下命令就OK
chown -R oracle:oinstall /home/oracle/dmp/raindmp
注意:导入数据 是根据导出的数据 来源的,所以导出的数据文件dmp里,就带有用户和表空间,所以导入的时候,一定要匹配了,否则就会不能导入
如果导入数据有误,我们可以重新删除 表空间,用户和路径,重新再按照以上的步骤执行即可。
drop tablespace GJYW_SPACE including contents and datafiles;
drop user gjywft cascade;
drop directory GJYWDMP;
4.查询验证
- 查表空间:
select tablespace_name from dba_tablespaces;
- 查用户
select username from dba_users;
- 查表空间位置:
select * from dba_data_files where tablespace_name = 'RRAIN_SPACE';
查用户默认表空间
select username,default_tablespace from dba_users where username ='RAIN';
发现没有,表空间和用户名,最终都是存大写的名称。
5.创建表
建表或者导入数据的时候,不要在使用 sqlplus / as sysdba 了,而是应该使用你创建的用户,比如以上的 rain用户
create table student(
id varchar(36) primary key,
name varchar(50) not null
);
插入:
insert into student(id, name) values('0001','iRain93');
查询:
select id, name from student;
到这里,这篇文章的目的已经完成,你可以继续读后续内容
做完这些,oralce安装创建已经差不多,不过有点麻烦的是你每次开机,都需要启动数据库,启动数据库监听,如下:
启动数据库监听
lsnrctl start
启动数据库
sqlplus / as sysdba
startup
虽然就是这么几个命令,但我不想每次都这样,所以有了《Linux配置oralce开机自动启动》这篇文章,提供参考。
- 关于用户的sql
-- 查当前用户
select username from user_users;
-- 查所有用户
select username from dba_users;
-- 删除用户
drop user elcsuat cascade;
-- 查指定用户
select username from dba_users where username ='ELCSUAT';
- 关于表空间的sql
-- 查表空间
select tablespace_name from dba_tablespaces;
-- 删除表空间同时删除表空间文件
drop tablespace TABLE_SPACE_NAME including contents and datafiles;
- 关于用户和表空间的sql
-- 查表空间对用的用户
select t.default_tablespace, to_char(wmsys.wm_concat(username)) all_users from dba_users t group by t.default_tablespace;
-- 修改用户默认表空间
alter user elcsuat default tablespace ELCSUAT_DBSPACE;
以上玩熟以后,你需要《Linux配置oralce开机自动启动》