Linux 下创建oracle表空间和用户 及 删除表空间

转载:http://kingxss.iteye.com/blog/1741076

创建用户和表空间: 


1、登录linux,以oracle用户登录(如果是root用户登录的,登录后用 su - oracle命令切换成oracle用户)

2、以sysdba方式来打开sqlplus,命令如下: sqlplus / as sysdba

3、创建临时表空间:
Sql代码   收藏代码
  1. --查询临时表空间文件的绝对路径。如果需要的话,可以通过查询来写定绝对路径。一般用${ORACLE_HOME}就可以了  
  2. select name from v$tempfile;  
  3. create temporary tablespace NOTIFYDB_TEMP tempfile '${ORACLE_HOME}\oradata\NOTIFYDB_TEMP.bdf' size 100m reuse autoextend on next 20m maxsize unlimited;  

 

4、创建表空间:

Sql代码   收藏代码
  1. --查询用户表空间文件的绝对路径:  
  2. select name from v$datafile;  
  3. create tablespace NOTIFYDB datafile '${ORACLE_HOME}\oradata\notifydb.dbf' size 100M reuse autoextend on next 40M maxsize unlimited default storage(initial 128k next 128k minextents 2 maxextents unlimited);  

 

5、创建用户和密码,指定上边创建的临时表空间和表空间

Sql代码   收藏代码
  1. create user hc_notify identified by hc_password default tablespace NOTIFYDB temporary tablespace NOTIFYDB_TEMP;  

 

6、赋予权限

Sql代码   收藏代码
  1. grant dba to hc_notify;  
  2. grant connect,resource to hc_notify;  
  3. grant select any table to hc_notify;  
  4. grant delete any table to hc_notify;  
  5. grant update any table to hc_notify;  
  6. grant insert any table to hc_notify;  

 

经过以上操作,就可以使用hc_notify/hc_password登录指定的实例,创建我们自己的表了。


删除表空间:

1、查看用户权限

Sql代码   收藏代码
  1. --查看用户要具备drop tablespace的权限,如果没有,先用更高级的用户(如sys)给予授权  
  2. select a2.username,a1.privilege from dba_sys_privs a1 , user_role_privs a2  
  3. where a1.privilege = 'DROP TABLESPACE'  
  4. and a1.grantee =a2.granted_role  

 

2、删除临时表空间

Sql代码   收藏代码
  1. --查看临时表空间文件  
  2. select name from v$tempfile;  
  3. --查看用户和表空间的关系  
  4. select USERNAME,TEMPORARY_TABLESPACE from DBA_USERS;  
  5. --如果有用户的默认临时表空间是NOTIFYDB_TEMP的话,建议进行更改  
  6. alter user xxx temporary tablespace tempdefault;  
  7. ---设置tempdefault为默认临时表空间  
  8. alter database default temporary tablespace tempdefault;  
  9. --删除表空间NOTIFYDB_TEMP及其包含数据对象以及数据文件  
  10. drop tablespace NOTIFYDB_TEMP including contents and datafiles;   

 

3.删除用户表空间

Sql代码   收藏代码
  1. --查看表空间文件  
  2. select name from v$datafile;  
  3. --停止表空间的在线使用  
  4. alter tablespace 表空间名称 offline;  
  5. --删除表空间NOTIFYDB_TEMP及其包含数据对象以及数据文件  
  6. drop tablespace NOTIFYDB including contents and datafiles;   
  7. 语法:
  8. DROP TABLESPACE tablespace_name  [ including contents [ and datafiles ] [ CASCADE CONSTRAINT ] ];
       无选项 -- 当表空间为空才能删除;
       including contents — 删除表空间及对象;
       including contents and datafiles — 删除表空间、对象及数据文件;
       includingcontents CASCADE CONSTRAINT — 删除关联;
       including contents and datafiles cascade constraint -- 含前两项。

 

Oracle用户权限查询相关操作:

Sql代码   收藏代码
  1. --查看所有的用户  
  2. select * from all_users;  
  3. --查看当前用户信息  
  4. select * from user_users;  
  5. --查看当前用户的角色  
  6. select * from user_role_privs;  
  7. --查看当前用户的权限  
  8. select * from user_sys_privs;  
  9. --查看当前用户的表可操作权限  
  10. select * from user_tab_privs;  
  11.   
  12. --查看某一个表的约束,注意表名要 大写  
  13. select * from user_constraints where table_name='TBL_XXX';  
  14. --查看某一个表的所有索引,注意表名要 大写  
  15. select index_name,index_type,status,blevel from user_indexes where table_name = 'TBL_XXX';  
  16. --查看索引的构成,注意表名要 大写  
  17. select table_name,index_name,column_name, column_position FROM user_ind_columns WHERE table_name='TBL_XXX';  
  18.   
  19. --系统数据字典 DBA_TABLESPACES 中记录了关于表空间的详细信息  
  20. select * from sys.dba_tablespaces;  
  21.   
  22. --查看用户序列  
  23. select * from user_sequences;  
  24. --查看数据库序列  
  25. select * from dba_sequences;  
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Linux创建Oracle表空间的步骤如下: 1. 连接到Oracle数据库,使用sysdba权限登录。 2. 创建表空间语法如下: CREATE TABLESPACE tablespace_name DATAFILE '/path/to/datafile.dbf' SIZE size_in_MB AUTOEXTEND ON NEXT size_in_MB MAXSIZE max_size_in_MB; 其中,tablespace_name为表空间名称,/path/to/datafile.dbf为数据文件路径,size_in_MB为初始大小,AUTOEXTEND ON表示自动扩展,NEXT size_in_MB表示每次扩展的大小,MAXSIZE max_size_in_MB表示最大大小。 3. 执行创建表空间命令,例如: CREATE TABLESPACE mytablespace DATAFILE '/u01/app/oracle/oradata/mydb/mytablespace.dbf' SIZE 100M AUTOEXTEND ON NEXT 50M MAXSIZE 500M; 其中,mytablespace表空间名称,/u01/app/oracle/oradata/mydb/mytablespace.dbf为数据文件路径,初始大小为100M,每次扩展50M,最大大小为500M。 4. 创建完成后,可以使用以下命令查看表空间信息: SELECT tablespace_name, file_name, bytes/1024/1024 AS size_MB FROM dba_data_files WHERE tablespace_name = 'mytablespace'; 其中,mytablespace表空间名称。 ### 回答2: 在Linux下使用Oracle创建表空间是非常简单的,只需遵循以下步骤: 1.首先,您必须确定将要创建表空间的名称和大小等详细信息,例如表空间名称为MY_TEST,大小为500MB,块大小为8KB。然后登录到Oracle数据库,使用sysdba账户或具有create tablespace权限的用户。 2.打开sqlplus,使用sysdba账户或具有create tablespace权限的用户登录到Oracle数据库中,例如: $ sqlplus / as sysdba 或者: $ sqlplus username/password 3.创建表空间,使用create tablespace命令,例如: CREATE TABLESPACE MY_TEST DATAFILE '/u01/app/oracle/oradata/example01.dbf' SIZE 500M AUTOEXTEND ON NEXT 50M MAXSIZE 2G EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO DEFAULT STORAGE (INITIAL 64K NEXT 64K MINEXTENTS 1 MAXEXTENTS 100 PCTINCREASE 0); 这里,MY_TEST是表空间名称,/u01/app/oracle/oradata/example01.dbf是数据文件的路径,SIZE是表空间的初始大小,NEXT是每次自动增加的大小,MAXSIZE是表空间的最大尺寸,EXTENT MANAGEMENT LOCAL表示使用本地管理段,SEGMENT SPACE MANAGEMENT AUTO表示在创建段时自动分配存储空间,DEFAULT STORAGE用于设置表空间存储的默认值。 4.创建成功后,您可以通过以下命令查看已经创建表空间: SELECT * FROM DBA_TABLESPACES; 该命令将显示所有已定义的表空间,包括名称、块大小、初始大小等详细信息。 总的来说,只要您遵循以上步骤,使用OracleLinux创建表空间就可以轻而易举地完成。 ### 回答3: 在Linux下,Oracle表空间是一种用于存储表、索引、一些数据类型和其他各种数据库对象的逻辑结构。在 Oracle 中,表空间是数据库的基本组成部分,一个数据库可以由多个表空间来组成。每个表空间都有自己的名称和数据文件来存储数据,因此我们可以在同一个数据库中使用多个表空间来组织数据。 首先需要创建一个新的数据文件,这个文件将会是新表空间的物理存储位置。可以使用 "touch" 命令创建一个空数据文件: ``` [oracle@hostname ~]$ touch /u01/app/oracle/oradata/dbname/new_tablespace.dbf ``` 注意,这是一个简单的例子,实际情况中需要根据实际的路径和文件名进行替换。 然后使用 SQL 命令来创建一个新的表空间,并把这个数据文件指定为新空间的物理位置: ``` SQL> CREATE TABLESPACE new_space DATAFILE '/u01/app/oracle/oradata/dbname/new_tablespace.dbf' SIZE 500M; ``` 在这个例子中,我们创建了一个新的表空间名为 new_space,指定了数据文件的路径和名称,并且限定了文件大小为 500MB。 如果在创建表空间时需要更多的控制选项,还可以在 SQL 命令中使用如下的参数进行调整: - BLOCKSIZE:指定数据块的大小,一般默认为8K。 - AUTOEXTEND:指定数据文件自动扩展的方式。 - MAXSIZE:指定数据文件的最大大小限制。 - EXTENT MANAGEMENT:指定如何分配空间的方式,可以指定为LOCAL 或者 DICTIONARY。 - SEGMENT SPACE MANAGEMENT:指定如何管理数据段中各个空间分配的方式,可以指定为 MANUAL 或者 AUTO。 - UNIFORM:当指定为 "UNIFORM" 选项时,Oracle表空间的分配方式更改为一样大小的分配。 例如,如果希望自动添加一个扩展到 1GB 的新文件,可以使用如下命令: ``` SQL> CREATE TABLESPACE new_space DATAFILE '/u01/app/oracle/oradata/dbname/new_tablespace.dbf' SIZE 500M AUTOEXTEND ON MAXSIZE 1G; ``` 如果需要创建大量的表空间,也可以使用脚本进行批量创建。在脚本中需要修改路径、文件名和其他参数,以适应实际需求。 创建表空间可以在 Oracle 数据库中进行查询: ``` SQL> SELECT tablespace_name, status, contents, extent_management, segment_space_management FROM dba_tablespaces; ``` 这个命令将返回数据库中所有表空间的详细信息。如果新创建表空间未出现在列表中,则表示出现了错误,应该检查语法、目录权限等方面的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值