Oracle11 创建表空间、用户、权限、导入数据

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开机自动启动》

猜你喜欢

转载自blog.csdn.net/u010411264/article/details/105592245