我想知道是否有必要在函数/过程中插入/删除/更新后写入提交?
例子:
create or replace function test_fun
return number is
begin
delete from a;
return 0;
end;
Run Code Online (Sandbox Code Playgroud)
或程序
create or replace procedure aud_clear_pro
as
begin
delete from a;
end;
Run Code Online (Sandbox Code Playgroud)
删除后需要提交吗?
无法理解以下情况:
如果我从 SQL 窗口调用函数/过程,那么它需要提交
但
如果我使用 dbms_scheduler 调度函数/过程并运行该作业,则会自动提交 delete 语句。
为什么?
我想释放 Linux 机器上的磁盘空间。我已经深入研究了空间使用情况,发现以下目录的大小很大
/u01/app/11.2.0/grid/cv/log
/u01/app/11.2.0/grid/log/diag/tnslsnr/r1n1/listener_scan2/alert (Contains xml files)
/u01/app/11.2.0/grid/rdbms/audit(Contains .aud files)
/home/oracle/oradiag_oracle/diag/clients/user_oracle/host_XXXXXXXXXX/alert(Contains xml files)
/u01/app/oracle/diag/rdbms/crimesys/crimesys1/alert (Contains xml files)
Run Code Online (Sandbox Code Playgroud)
我可以删除这些目录中的内容吗?注意:我的意思是内容而不是目录。
我有以下情况。
我有 RAC。在两个节点上都有锁。
SID EVENT USERNAME BLOCKING_SESSION ROW_WAIT_OBJ# OBJECT_NAME LOCKWAIT SQL_ID STATUS
1 102 enq: TX - row lock contention MYUSER 155 136972 TABLE1V 0000000810EFA958 5f4bzdg49fdxq ACTIVE
2 111 enq: TX - row lock contention MYUSER 155 136972 TABLE1V 0000000810EFAC98 5f4bzdg49fdxq ACTIVE
Run Code Online (Sandbox Code Playgroud)
SID EVENT USERNAME ROW_WAIT_OBJ# OBJECT_NAME LOCKWAIT SQL_ID STATUS
1 155 SQL*Net message from client MYUSER 136971 MyTABLEIMAGES_IDPK 4hw85z8absbjc INACTIVE
Run Code Online (Sandbox Code Playgroud)
SID EVENT USERNAME BLOCKING_SESSION ROW_WAIT_OBJ# OBJECT_NAME LOCKWAIT SQL_ID STATUS
1 65 enq: TX - row lock …Run Code Online (Sandbox Code Playgroud) 我错误地将数据文件添加到表空间......并试图删除它。我运行以下命令:
alter database datafile 'datafile_name' OFFLINE;
Run Code Online (Sandbox Code Playgroud)
现在当我跑步时
alter database datafile 'datafile_name' ONLINE;
Run Code Online (Sandbox Code Playgroud)
表明
ORA-01113: file 30 needs media recovery
ORA-01110: data file 30: 'datafile_name'
Run Code Online (Sandbox Code Playgroud)
文件的状态也是 RECOVER... 我能做什么?我无法重新启动数据库....
我有以下情况:
DB1(位于srv1服务器上)数据库的备份在每天凌晨 1:00 进行。
我备份了 2011 年 10 月 24 日的文件(数据文件、归档日志、控制文件、spfile),并将它们恢复到服务器srv2 上。
在恢复 Oracle 所需的日志文件期间:
RMAN-06054:介质恢复请求线程 1 的未知归档日志,序列为 228,起始 SCN 为 26651733
我在服务器srv1上搜索了该日志文件并将其复制到服务器srv2。将其注册到数据库并recover database再次运行命令。仍然是同样的错误,但与其他序列号和 SCN。
RMAN-06054:介质恢复请求线程 1 的未知归档日志,序列为 229,起始 SCN 为 26654944
这些归档日志是在 2011 年 10 月 24 日之后生成的,因此该日期的备份不应该知道更新的归档日志。我可以设置恢复直到那个序列,但我只是想知道 SCN 存储在哪里?为什么我的 Oracle 需要更新的归档日志?
服务器srv1和srv2没有相互联系。
非常感谢。
我遇到了异常情况,无法理解会发生什么。
我正在使用 PL/SQL Developer 8.0.4.1514(我也尝试过 v7,但相同)连接数据库。有时(当我尝试登录时,或者当我打开另一个会话时,或者当我尝试在以前打开的会话中运行查询时)会出现此错误消息

有时在 3 次尝试后错误解决(每次尝试使用相同的密码),有时需要一次尝试解决...
可能是什么原因?
谢谢 ...
我发现我的数据库,特别是USERS表空间的大小急剧增加。
我如何才能找到对位于此表空间中的对象执行的 DML 操作?
我在 2013 年 12 月 31 日备份了数据文件。它成功完成了数据文件备份,但存档日志备份失败。
现在,我想确定我应该备份哪些存档日志,以确保在恢复 31.12.2013 数据文件备份后我的数据库可以恢复。
我想让我的数据库在打开时停止实例恢复,怎么做?
我想要它,因为它在尝试进行实例恢复时崩溃,我正在测试某些情况并想禁用它
有没有可能?
我在非常强大的服务器上安装了 Oracle RAC,可以说这些服务器有额外的内存、cpu 和存储:) ...所以我的服务器比它需要的要强大得多。
我的经理和其他管理员(没有足够的资源)需要将我的 RAC 移动到虚拟机,以便利用 RAC 服务器来满足他们的需求。
我需要你的建议...怎么办?我是否必须在虚拟机上移动我的 RAC?如果不是,我应该说什么论据来证明这个想法是愚蠢的?
非常感谢您,等待您的建议和巧妙的论据...
我有一个高度分散的数据文件。现在它的大小是10GB,实际使用的大小是2.5GB,所以7.5是免费的。
我决定导出数据,删除该数据文件,重新创建它并导入数据。
我应该提到什么?有没有机会丢失一些物体?删除数据文件后?
我有一个表空间,一个数据文件。请向我提供有关导出脚本的任何建议。
有一个选项:
TABLESPACES list of tablespaces to export
Run Code Online (Sandbox Code Playgroud)
如果我写这样的脚本
exp username/aaa file=a.dmp tablespaces=my_tb_name log=a.log grants=y indexes=y constraints=y triggers=y
Run Code Online (Sandbox Code Playgroud)
是否足以从该表空间导入所有内容以及与包含对象相关的任何内容(我的意思是授权、约束、触发器......)
是否有必要在数据库服务器上而不是在客户端上运行导出?
非常感谢,等你聪明的建议
我已经完成了以下步骤:
删除INCREMENTAL LEVEL 0备份而不告诉控制文件。所以手动删除了。并没有进行交叉检查。
使用INCREMENTAL LEVEL 1备份数据库(不进行交叉检查)。多么令人惊讶,日志显示我成功完成了增量级别 1。
请注意,我没有INCREMENTAL LEVEL 0备份,但控制文件不知道。我只有INCREMENTAL LEVEL 1。
我试图用这个备份恢复数据库,但当然不能。它告诉我没有找到数据文件 1-5 的备份...
如果控制文件事先知道过期的备份,再增量级别1备份首先会做0级增量之后,该增量级别1。
如何避免这种情况。我必须在备份脚本中使用 chrosscheck 吗?或者在 RMAN 中设置恢复窗口?
我有 Oracle 11g 数据库。备份由 Netbackup 服务器进行。因此,Netbackup 通过其保留来删除备份本身。RMAN 保留策略配置为 REDUNDANCY 2。
请给我建议。