调试数据库生成脚本,需要频繁重建表空间
ORA-01940: 无法删除当前已连接的用户
drop user and table space
/** 清除原有表空间 重建表空间和用户 **/ declare tbs varchar2(100):='TS_data'; --表空间名称 tbs_tpm varchar2(100):='data_TEMP';--临时表空间名称 uname varchar2(100):='user';--用户名 密码为用户名小写 file_sp varchar2(100):='/';--文件分隔附 自动判断 tbs_exists INTEGER; filepath varchar2(100); dyn_sql varchar2(1000); begin --check exist select count(*) INTO tbs_exists from dba_data_files where tablespace_name=tbs; dbms_output.put_line(tbs||' exists '|| tbs_exists); /** **/ --drop old table space if tbs_exists>0 then dbms_output.put_line('drop exists old table space '||tbs); dyn_sql:='DROP USER '||uname||' cascade'; dbms_output.put_line(dyn_sql); execute immediate dyn_sql; dyn_sql:='DROP tablespace '||tbs||' including contents and datafiles cascade constraints '; dbms_output.put_line(dyn_sql); execute immediate dyn_sql; dyn_sql:='DROP tablespace '||tbs_tpm||' including contents and datafiles '; dbms_output.put_line(dyn_sql); execute immediate dyn_sql; end if; -- windows 系统的文件分隔符 if(instr(dbms_utility.port_string,'WIN')>0) then file_sp:='\'; end if; -- init file path select substr(file_name,0,instr(file_name,file_sp,-1,1)) into filepath from dba_data_files where rownum=1; dbms_output.put_line('filepath='||filepath); --create new table space dyn_sql:='create tablespace '||tbs||' logging datafile '''||filepath||tbs||'_data.dbf'' size 50m autoextend on next 10m maxsize unlimited '; dbms_output.put_line(dyn_sql); execute immediate dyn_sql; dyn_sql:='create temporary tablespace '||tbs_tpm||' tempfile '''||filepath||tbs_tpm||'.dbf'' size 500m autoextend on next 50m maxsize 2048m extent management local '; dbms_output.put_line(dyn_sql); execute immediate dyn_sql; -- USER SQL dyn_sql:='create user '||uname||' identified by "'||lower(uname)||'" '; dbms_output.put_line(dyn_sql); execute immediate dyn_sql; dyn_sql:='ALTER USER '||uname||' DEFAULT TABLESPACE "'||tbs||'" TEMPORARY TABLESPACE "'||tbs_tpm||'" ACCOUNT UNLOCK '; dbms_output.put_line(dyn_sql); execute immediate dyn_sql; dyn_sql:='ALTER USER '||uname||' QUOTA UNLIMITED ON "'||tbs||'"'; dbms_output.put_line(dyn_sql); execute immediate dyn_sql; dyn_sql:='grant connect,resource,dba to '||uname||' '; dbms_output.put_line(dyn_sql); execute immediate dyn_sql; dyn_sql:='ALTER USER '||uname||' DEFAULT ROLE "DBA"'; dbms_output.put_line(dyn_sql); execute immediate dyn_sql; dyn_sql:='grant connect,resource,dba to '||uname||' '; dbms_output.put_line(dyn_sql); execute immediate dyn_sql; end;
ORA-01940: 无法删除当前已连接的用户
SQL>alter user XXX account lock; SQL>SELECT * FROM V$SESSION WHERE USERNAME='LGDB'; SQL>alter system kill session 'xx,xx' SQL>drop user xx cascade
drop user and table space
DROP USER XXXXcascade; DROP tablespace TSXXXXN including contents and datafiles cascade constraints ; DROP tablespace XXXX_TEMP including contents and datafiles ;
查询表空间文件 select * from dba_data_files create tablespace TS_XXX logging datafile '/opt/oracle/oradata/orcl_pdm/TS_XXXX_data.dbf' size 50m autoextend on next 10m maxsize unlimited; create temporary tablespace XXXX_TEMP tempfile '/opt/oracle/oradata/orcl_pdm/XXXX_TEMP.dbf' size 500m autoextend on next 50m maxsize 2048m extent management local; -- USER SQL create user XXXX identified by XXXX ; ALTER USER XXXX DEFAULT TABLESPACE TS_XXXX TEMPORARY TABLESPACE XXXX_TEMP ACCOUNT UNLOCK ; -- QUOTAS ALTER USER XXXX QUOTA UNLIMITED ON TS_XXXX; -- SYSTEM PRIVILEGES grant connect,resource,dba to XXXX ; -- ROLES ALTER USER XXXX DEFAULT ROLE DBA; -- SYSTEM PRIVILEGES grant connect,resource,dba to XXXX ; select COUNT(*) from all_tables t where t.owner='XXXX';
发表评论
-
linux 安装mysql多个实例
2020-03-13 15:47 423mysql5.7.28多实例 安装mysql,不要启动 创 ... -
mongodb安全验证 密码登录
2020-03-09 16:07 8121、创建用户 cd /d C:\Program Files\ ... -
索引的创建对查询性能影响
2019-08-19 15:14 681索引的正确使用,对查询的性能影响很大 原查询,要2分多 ... -
mysql查询性能优化,650秒优化到0.18秒
2019-08-14 17:57 29开发人员技术水平不一,写出的sql执行性能怎么样,完全靠运气, ... -
MySQL 高可用集群架构 MHA 详解
2018-03-09 09:28 799MySQL 高可用集群架构 MHA ... -
B+tree 索引
2018-03-09 09:11 744mysql和oracle都用到B+tree ... -
怎么查看和修改 MySQL 的最大连接数
2018-03-09 08:47 1117通常,mysql的最大连接数默认是100, 最大可以达到163 ... -
mysql 删除重复记录 保留一条
2018-01-25 10:47 1168-- 方法一 /** 错误码: 1093 You ... -
rsync备份和删除指定文件
2018-01-02 10:23 2051文件异地备份时,需要将本地文件合并到服务器上,且不能删除服务器 ... -
windows mysql定时备份任务
2017-11-03 16:12 1001mysqlbak.cmd echo off set tx ... -
mysql 1418错误原因及解决
2017-09-30 11:14 1136SET GLOBAL log_bin_trust_functi ... -
windows上oracle11配置监听器
2017-08-23 14:00 1770oracle11 windows版安装后默认通过计算机名 ... -
centos yum 安装mysql
2016-08-11 10:08 527查看这篇文章 http://dev.mysql.com/dow ... -
expdp\impdp及exp\imp
2016-08-03 14:29 754作者写的文章很实用 ht ... -
oracle drop记录
2016-07-21 14:07 1588数据库中缺表了,查一下是什么时候删除的 select * ... -
powerdesigner 16 从数据库生成表结构无响应
2016-07-15 09:35 1323怪事了,powerdesigner从数据库反向生成表结构是,卡 ... -
plsql11 x64 安装和配置 解决OCI: not initialized
2016-06-18 09:38 16915下载了instantclient-basic-windows. ... -
oracle instantclient和plsql配置
2016-05-23 14:47 7381、下载instantclient 下载后多解压到某文件夹下 ... -
oracle AL32UTF8 zhs16gbk 安装字符编码
2016-05-23 14:30 1549NLS_LANG是环境变量,包括3部分NLS参数:NLS_LA ... -
oracle静默安装
2016-05-23 14:29 645oracle11G静默安装过程——linux环境 1.操作 ...
相关推荐
在深入探讨物理表空间删除和修复之前,我们先来了解一下Oracle物理表空间的一些基本概念: 1. **物理表空间**:Oracle中的物理表空间是由一个或多个操作系统级别的文件(即数据文件)组成的逻辑容器,用于存储用户的...
总之,管理Oracle数据库中CLOB类型的字段和表空间索引空间是一项重要的任务,直接影响到系统的性能和稳定性。通过合理的索引重建和表空间管理,可以确保数据库高效运行,并减少不必要的维护成本。在实践中,应结合...
管理脚本可以帮助监控表空间使用情况,创建新的表空间,扩展或收缩已有的表空间,以及处理空间不足的问题。 6. **归档与日志管理**:Oracle的日志系统是保证事务一致性和数据库可恢复性的重要部分。脚本可能包括...
这个过程的关键在于,通过导出/导入,我们可以保留原有的数据和表结构,然后在新的表空间中重建这些对象。这种方式比直接修改表空间更安全,因为它允许在操作过程中对数据进行备份,减少了因误操作导致的数据丢失...
- 文件"不要让临时表空间影响数据库性能 - Oracle - 3.mht"可能提供了实际的配置和优化步骤,包括脚本示例和监控工具的使用。 通过理解和优化临时表空间,可以显著提升Oracle数据库的性能,尤其是在处理大数据量和...
### Oracle误删除表空间后的数据库修复方法 #### 一、背景介绍 在Oracle数据库管理过程中,误操作导致的重要数据丢失是常见的问题之一。比如误删除表空间,这不仅会导致该表空间下的所有数据不可访问,还可能会...
在Oracle数据库管理中,SQL(Structured Query Language)脚本扮演着至关重要的角色,尤其是在日常维护、性能监控和问题排查方面。以下是一些Oracle管理中常用的SQL脚本及其相关的知识点: 1. **数据查询与操作**:...
1. 表空间和数据文件管理:创建、扩展或删除表空间,调整数据文件大小的SQL脚本,如CREATE TABLESPACE、ALTER DATABASE ADD DATAFILE和DROP TABLESPACE等。 2. 用户和权限管理:创建用户、赋予角色、分配权限的脚本...
- **逻辑恢复**:通过日志文件和SQL脚本,逐个重建表空间内的对象。 - **数据泵导出导入(Data Pump Export and Import)**:如果误删的是用户表空间,可以尝试导出然后再导入。 4. **预防措施**: - **权限控制...
9. **表空间管理**:创建、扩展、收缩和删除表空间的脚本,用于管理数据库的物理存储结构。 10. **事务和锁管理**:控制事务的提交(COMMIT)、回滚(ROLLBACK)和锁定数据以防止并发问题的脚本也是数据库管理的...
6. **数据库维护脚本**(如`db_maintenance.sql`):包括清理临时表空间、重建索引、分析表和索引等日常维护任务。这些脚本可以按计划任务自动运行,保持数据库高效运行。 7. **数据库升级脚本**(如`upgrade_11g_...
- 管理表空间(普通表空间、undo、temp表空间的创建、删除和扩容)。 - 数据库参数的管理(备份参数、修改参数以及pfile和spfile的互转)。 - redolog的管理(添加、删除日志组和成员)。 - 起停数据库,了解数据库...
此脚本可以帮助评估表的高水位空间、真实使用空间、预留空间以及浪费空间的情况,从而得出碎片的程度。 3. **使用脚本检查特定模式下的表碎片**:还可以使用特定脚本来找出某个Schema中表碎片超过25%的表。例如,...
通过定期运行这样的脚本,数据库管理员能够识别低效或未使用的索引,进而进行必要的优化,如重建索引、合并索引或删除无用索引,以提高整体数据库性能。同时,这也能够帮助规划未来的索引策略,确保资源的有效利用。
《基本成本的Oracle优化法则》是一本专注于Oracle数据库性能调优的专业书籍,它提供了一系列的脚本工具,帮助读者深入理解和应用Oracle的性能优化技术。Oracle数据库是全球广泛使用的数据库管理系统,尤其在企业级...
下面将详细讨论这两个工具以及相关的数据库脚本和SQL操作。 1. Oracle EXP工具:Export是Oracle数据库提供的一个实用程序,用于从数据库中导出数据和对象定义。它可以创建一个二进制的转储文件,包含了用户选择的...
- **存储浪费**:如果表中存在大量的删除和更新操作,那么高水位线以下的空间可能会被标记为已使用但实际上是空闲的,这将导致存储资源的浪费。 ### Oracle高水位处理脚本分析 #### 脚本解读 1. **分析表统计信息*...
- 定期备份数据库和表空间是防止数据丢失的重要措施。这通常涉及RMAN(Recovery Manager)命令或使用其他备份工具。 8. **权限和安全性**: - 管理用户权限、角色分配、审计策略等,确保数据库的安全性。 9. **...
综上,Oracle数据库的日常维护涉及到日志监控、表空间管理和会话管理。通过这些关键任务,DBA可以有效地预防和解决可能出现的问题,保证数据库的稳定性和高性能。对于DBA来说,熟悉这些操作并定期执行是至关重要的,...