oracle10g建表空间和修改oracle字符和删除表空间和用户(加 标注)

查看用户情况(将被删除的用户登录)

--查看用户的默认表空间的关系
select username,default_tablespace from user_users;
--查看当前用户的角色
select * from user_role_privs;
--查看用户的系统级权限
select * from user_sys_privs;
--查看用户的表级权限
select * from user_tab_privs;
--查看用户下所有的表
select * from user_tables;
--显示当前会话所具有的权限
select * from session_privs;


步骤一:  删除user

drop user ×× cascade

说明: 删除了user,只是删除了该user下的schema objects,是不会删除相应的tablespace的。

--需要sys@ORCL AS SYSDBA 
/* 
CASECADE 是级联的意思
不是直接对表用,是对表的主键或是外键使用
目的是保持表的引用完整性。
ALTER TABLE ss
DROP CONSTRAINT ss_fk CASCADE
这样就可以删除这个表的外键的级联了。
*/

步骤二: 删除tablespace

DROP TABLESPACE tablespace_name INCLUDING CONTENTS AND DATAFILES;



--创建表空间
CREATE  TABLESPACE  elitegzgl  
DATAFILE '/orcldate/elitegzgl.dbf' 
SIZE 200M  AUTOEXTEND ON EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;


--创建临时表空间: 
create temporary tablespace elitegzgl_temp 
tempfile '/orcldate/elitegzgl_temp.dbf' 
size 32m 
autoextend on --表明是自动扩展

next 32m  --表示数据文件满了以后,扩展的大小

maxsize 2048m --表示数据文件的最大大小

extent management local;
 /*
extent是“区间”的意思
在oracle数据库中:extent management 有两种方式 extent management local(本地管理); extent management dictionary(数据字典管理)
默认的是local
每种也有两种大小增长方式:
uniform:默认为1M大小,在temp表空间里为默认的,但是不能被应用在undo表空间
    本地管理表空间与字典管理表空间相比大大提高了管理效率和数据库性能,其优点如下:
  1.减少了递归空间管理
  本地管理表空间是自己管理分配,而不是象字典管理表空间需要系统来管理空间分配,本地表空间是通过在表空间的每个数据文件中维持一个位图来跟踪在此文件中块的剩余空间及使用情况。并及时做更新。这种更新只对表空间的额度情况做修改而不对其他数据字典表做任何update操作,所以不会产生任何回退信息,从而大大减少了空间管理,提高了管理效率。同时由于本地管理表空间可以采用统一大小分配方式(UNIFORM),因此也大大减小了空间管理,提高了数据库性能。
  2.系统自动管理extents大小或采用统一extents大小
  本地管理表空间有自动分配(AUTOALLOCATE)和统一大小分配(UNIFORM)两种空间分配方式,自动分配方式(AUTOALLOCATE)是由系统来自动决定extents大小,而统一大小分配(UNIFORM)则是由用户指定extents大小。这两种分配方式都提高了空间管理效率。
  3.减少了数据字典之间的竞争
  因为本地管理表空间通过维持每个数据文件的一个位图来跟踪在此文件中块的空间情况并做更新,这种更新只修改表空间的额度情况,而不涉及到其他数据字典表,从而大大减少了数据字典表之间的竞争,提高了数据库性能。
  4.不产生回退信息
  因为本地管理表空间的空间管理除对表空间的额度情况做更新之外不修改其它任何数据字典表,因此不产生回退信息,从而大大提高了数据库的运行速度。
  5.不需合并相邻的剩余空间
  因为本地管理表空间的extents空间管理会自动跟踪相邻的剩余空间并由系统自动管理,因而不需要去合并相邻的剩余空间。同时,本地管理表空间的所有extents还可以具有相同的大小,从而也减少了空间碎片。
  6.减少了空间碎片
  7.对临时表空间提供了更好的管理
autoallocate:
You can convert a tablespace from dictionary extent management to local extent management
and back with the Oracle-supplied PL/SQL package DBMS_SPACE_ADMIN. The SYSTEM
tablespace and any temporary tablespaces, however, cannot be converted from local to the
older style dictionary managem
两种extent管理方式是可以相互转换的,利用PL/SQL DBMS_SPACE_ADMIN
但是系统表空间和临时表空间不能从local管理转化到dictionary管理。
*/



--6、赋予权限 创建用户并指定表空间
create user elitegzgl identified by letmein
default tablespace elitegzgl
temporary tablespace elitegzgl_temp;
grant connect,resource,dba to elitegzgl;


--修改字符

在Redhat上安装Oracle 10g没有设定字符集,采用的是操作系统默认字符集:WE8ISO8859P1,将字符集修改为:ZHS16GBK。由于过程不可逆,首先需要备份数据库。
1.数据库全备


2.查询当前字符集
SQL> select * from nls_database_parameters where parameter='NLS_CHARACTERSET';
PARAMETER                                VALUE
---------------------------------------- ----------------------------------------
NLS_CHARACTERSET                         WE8ISO8859P1


3.关闭数据库
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.


4.启动数据库到mount状态
SQL> startup mount
ORACLE instance started.
Total System Global Area  205520896 bytes
Fixed Size                  1266608 bytes
Variable Size             100666448 bytes
Database Buffers          100663296 bytes
Redo Buffers                2924544 bytes
Database mounted.


5.限制session
SQL> alter system enable restricted session;
System altered.


6.查询相关参数并修改
SQL> show parameter job_queue_processes;  
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
job_queue_processes                  integer     10


SQL> show parameter aq_tm_processes; 
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes                      integer     0


SQL> alter system set job_queue_processes=0;
System altered.


7.打开数据库
SQL> alter database open;
Database altered.


8.修改字符集
SQL> alter database character set ZHS16GBK;
alter database character set ZHS16GBK
*
ERROR at line 1:
ORA-12712: new character set must be a superset of old character set


出现错误提示,新字符集必须是老字符集的超集,也就原来字符集是新字符集的子集,可以再Oracle官方文档上查询字符集包含关系。下面使用Oracle内部命令internal_use,跳过超集检查,生产环境不建议使用此方法。


SQL> alter database character set internal_use ZHS16GBK;          
Database altered.


9.查询当前字符集
SQL> select * from nls_database_parameters where parameter='NLS_CHARACTERSET';
PARAMETER                                VALUE
---------------------------------------- ----------------------------------------
NLS_CHARACTERSET                         ZHS16GBK


10.关闭数据库
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.


11.启动数据库到mount状态
SQL> startup mount
ORACLE instance started.
Total System Global Area  205520896 bytes
Fixed Size                  1266608 bytes
Variable Size             100666448 bytes
Database Buffers          100663296 bytes
Redo Buffers                2924544 bytes
Database mounted.


12.将相关参数改回原来值
SQL> alter system set job_queue_processes=10;
System altered.


13.打开数据库
SQL> alter database open;
Database altered.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值