创建空间表和用户名
-- 创建SDGIS表空间
create tablespace HNCGIS -- 表空间名
datafile 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\HNCGIS.DBF' size 100M -- 数据文件位置和初始文件大小
autoextend on next 100M maxsize unlimited logging -- 文件自动扩展大小
extent management local autoallocate
segment space management auto;
-- 创建SDGIS用户
create user HNCGIS
identified by HNCGIS
default tablespace HNCGIS
temporary tablespace TEMP;
-- 角色权限
grant connect to HNCGIS;
grant resource to HNCGIS;
GRANT CREATE SESSION, CREATE ANY TABLE, CREATE ANY VIEW ,CREATE ANY INDEX, CREATE ANY PROCEDURE,ALTER ANY TABLE, ALTER ANY PROCEDURE,DROP ANY TABLE, DROP ANY VIEW, DROP ANY INDEX, DROP ANY PROCEDURE,SELECT ANY TABLE, INSERT ANY TABLE, UPDATE ANY TABLE, DELETE ANY TABLE
TO HNCGIS;
-- 系统权限
grant unlimited tablespace to HNCGIS;
grant create any view to HNCGIS;
---------------------------------
-- 创建SDGISDATA表空间
create tablespace HNCGISDATA -- 表空间名
datafile 'D:\DATABASE\HNCGISDATA.DBF' size 400M -- 数据文件位置和初始文件大小
autoextend on next 400M maxsize unlimited logging -- 文件自动扩展大小
extent management local autoallocate
segment space management auto;
-- 创建HNCGISDATA用户
create user HNCGISDATA
identified by HNCGISDATA
default tablespace HNCGISDATA
temporary tablespace TEMP;
-- 角色权限
grant connect to HNCGISDATA;
grant resource to HNCGISDATA;
GRANT CREATE SESSION, CREATE ANY TABLE, CREATE ANY VIEW ,CREATE ANY INDEX, CREATE ANY PROCEDURE,ALTER ANY TABLE, ALTER ANY PROCEDURE,DROP ANY TABLE, DROP ANY VIEW, DROP ANY INDEX, DROP ANY PROCEDURE,SELECT ANY TABLE, INSERT ANY TABLE, UPDATE ANY TABLE, DELETE ANY TABLE
TO HNCGISDATA;
-- 系统权限
grant unlimited tablespace to HNCGISDATA;
grant create any view to HNCGISDATA;
Oracle 预设置
@echo off
set SYS_NAME=sys --
set SYS_PASS=sys
set TNS_NAME=orcl
echo #============================================
echo #= 注意:请在专业人士指导下使用该脚本
echo #= 初始化oracle
echo #============================================
pause
:work
cd. > temp.sql
>>temp.sql echo conn %SYS_NAME%/%SYS_PASS%@%TNS_NAME% as sysdba
rem 关闭用户过期
>>temp.sql echo ALTER SYSTEM SET SEC_CASE_SENSITIVE_LOGON = FALSE;
>>temp.sql echo ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
rem 空表导出oracle11G
>>temp.sql echo ALTER SYSTEM SET DEFERRED_SEGMENT_CREATION = FALSE;
rem 修改open_cursors参数
>>temp.sql echo ALTER SYSTEM SET open_cursors=20000;
rem 修改大小写敏感
>>temp.sql echo alter system set sec_case_sensitive_logon=false;
rem 修改最大连接数
>>temp.sql echo alter system set processes=3000 scope=spfile;
rem 关闭审计功能
>>temp.sql echo truncate table aud$;
>>temp.sql echo ALTER SYSTEM SET audit_trail=none scope=spfile;
rem 修改共享游标
>>temp.sql echo ALTER SYSTEM SET cursor_sharing=force scope=both;
>>temp.sql echo quit
sqlplus /nolog @temp.sql
del /q temp.sql
echo 初始化oracle完成
pause
:end
oracle 删除表空间及数据文件方法
--删除空的表空间,但是不包含物理文件
drop tablespace tablespace_name;
--删除非空表空间,但是不包含物理文件
drop tablespace tablespace_name including contents;
--删除空表空间,包含物理文件
drop tablespace tablespace_name including datafiles;
--删除非空表空间,包含物理文件
drop tablespace tablespace_name including contents and datafiles;
--如果其他表空间中的表有外键等约束关联到了本表空间中的表的字段,就要加上CASCADE CONSTRAINTS
drop tablespace tablespace_name including contents and datafiles CASCADE CONSTRAINTS;
以system用户登录,查找需要删除的用户:
--查找用户
select * from dba_users;
--查找工作空间的路径
select * from dba_data_files;
--删除用户
drop user 用户名称 cascade;
--删除表空间
drop tablespace 表空间名称 including contents and datafiles cascade constraint;
例如:删除用户名成为ABC,表空间名称为ABC
--删除用户,及级联关系也删除掉
drop user ABC cascade;
--删除表空间,及对应的表空间文件也删除掉
drop tablespace ABC including contents and datafiles cascade constraint;
删除无任何数据对象的表空间:
首先使用PL/SQL界面化工具,或者使用oracle自带的SQL PLUS工具,连接需要删除的表空间的oracle数据局库。
确认当前用户是否有删除表空间的权限,如果没有 drop tablespace,请先用更高级的用户(如sys)给予授权或者直接用更高级的用户。
用drop tablespace xxx ,删除需要删除的表空间。
删除有任何数据对象的表空间
使用drop tablespace xxx including contents and datafiles;来删除表空间。
注意事项:
如果drop tablespace语句中含有datafiles,那datafiles之前必须有contents关键字,不然会提示ora-01911错误