月度归档:2021年08月

Oracle数据添加用户(dba角色)和表空间

1.首先,创建(新)用户:
    create user username identified by password;
    username:新用户名的用户名
    password: 新用户的密码
也可以不创建新用户,而仍然用以前的用户,如:继续利用scott用户

2.创建表空间:
    create tablespace tablespacename datafile 'd:data.dbf' size xxxm;
    tablespacename:表空间的名字
    d:data.dbf':表空间的存储位置
    xxx表空间的大小,m单位为兆(M)
3.将空间分配给用户:
   alert user username default tablespace tablespacename;
   将名字为tablespacename的表空间分配给username 

4.给用户授权:
   grant create session,create table,unlimited tablespace to username;

5.然后再以楼主自己创建的用户登录,登录之后创建表即可。
conn username/password;6.查看服务名env |grep SID 7.授予dba权限grant dba to username7.使用上面的用户名、密码、sid登录plsql


每步执行的sql:(sjzx是数据库名、用户名、密码、表空间名)
(1)create user sjzx identified by sjzx
(2)create tablespace sjzx datafile 'D:dbapporadataorclsjzx.dbf' 
        size 100m 
        autoextend on next 32m maxsize 2048m

(3)alter user sjzx default tablespace sjzx

(4)grant create session,create table,unlimited tablespace to sjzx

 

1.创建用户
create user user_name identified by "user_password"
default tablespace tbs_name
temporary tablespace temp profile DEFAULT;

2.授权
grant connect to user_name;
grant create indextype to user_name;
grant create job to user_name;
grant create materialized view to user_name;
grant create procedure to user_name;
grant create public synonym to user_name;
grant create sequence to user_name;
grant create session to user_name;
grant create table to user_name;
grant create trigger to user_name;
grant create type to user_name;
grant create view to user_name;
grant unlimited tablespace to user_name;
alter user user_name quota unlimited on tbs_name;

  在oracle命令行中,查看oracle表空间数据文件位置

select t1.name,t2.name   from v$tablespace t1,v$datafile t2 where t1.ts# = t2.ts#;

 

 

oracle 11g用exp无法导出空表的解决方案

Oacle 11g中有个新特性,当表无数据时,不分配segment,以节省空间,当我们用exp导出空表时,无法导出。

 

解决方法是两个方面,一是处理现有的空表,让其能导出;二是设置参数,让后续的新的空表也可以导出

 ———————————–处理一           ———————————————————————————–

查询所有空表并分配segment,使用以下语句查询生成修改空表设置的SQL:

 

select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0;

  

 

 将输出的SQL复制到SQL执行窗口,并执行。

 

 ———————————–处理二           ——————————————————–—————————

设置系统参数,让后续新表自动分配segment,查询系统参数,该参数值默认是TRUE,当改为FALSE时,无论是空表还是非空表,都分配segment.

查询语句:show parameter deferred_segment_creation;

将这个参数修改为FALSE,修改语句为:

alter system set deferred_segment_creation=false;

再次查询确认参数是否修改成功:

show parameter deferred_segment_creation;

可见已经修改为FALSE了,如图: