小编kup*_*upa的帖子

在函数/过程中的 DML 操作之后是否需要提交?

我想知道是否有必要在函数/过程中插入/删除/更新后写入提交?

例子:

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)

删除后需要提交吗?

无法理解以下情况:

  1. 如果我从 SQL 窗口调用函数/过程,那么它需要提交

  2. 如果我使用 dbms_scheduler 调度函数/过程并运行该作业,则会自动提交 delete 语句。

    为什么?

oracle stored-procedures dml functions

20
推荐指数
1
解决办法
5万
查看次数

如何释放磁盘空间?要清理哪些日志/目录?

我想释放 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)

我可以删除这些目录中的内容吗?注意:我的意思是内容而不是目录。

oracle oracle-11g-r2 disk-space

15
推荐指数
2
解决办法
9万
查看次数

如何解决 enq: TX - 行锁争用?

我有以下情况。

我有 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)

oracle locking wait-types

9
推荐指数
2
解决办法
8万
查看次数

ORA-01113: 文件 # 需要媒体恢复 ORA-01110

我错误地将数据文件添加到表空间......并试图删除它。我运行以下命令:

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... 我能做什么?我无法重新启动数据库....

oracle

7
推荐指数
1
解决办法
4万
查看次数

RMAN-06054:介质恢复请求未知的归档日志,SCN 保存在哪里?

我有以下情况:

  1. DB1(位于srv1服务器上)数据库的备份在每天凌晨 1:00 进行。

  2. 我备份了 2011 年 10 月 24 日的文件(数据文件、归档日志、控制文件、spfile),并将它们恢复到服务器srv2 上

  3. 在恢复 Oracle 所需的日志文件期间:

    RMAN-06054:介质恢复请求线程 1 的未知归档日志,序列为 228,起始 SCN 为 26651733

  4. 我在服务器srv1上搜索了该日志文件并将其复制到服务器srv2。将其注册到数据库并recover database再次运行命令。仍然是同样的错误,但与其他序列号和 SCN。

    RMAN-06054:介质恢复请求线程 1 的未知归档日志,序列为 229,起始 SCN 为 26654944

这些归档日志是在 2011 年 10 月 24 日之后生成的,因此该日期的备份不应该知道更新的归档日志。我可以设置恢复直到那个序列,但我只是想知道 SCN 存储在哪里?为什么我的 Oracle 需要更新的归档日志?

服务器srv1srv2没有相互联系。

非常感谢。

oracle backup rman recovery error-handling

7
推荐指数
1
解决办法
2万
查看次数

ORA-01017: 无效的用户名/密码;登录被拒绝

我遇到了异常情况,无法理解会发生什么。

我正在使用 PL/SQL Developer 8.0.4.1514(我也尝试过 v7,但相同)连接数据库。有时(当我尝试登录时,或者当我打开另一个会话时,或者当我尝试在以前打开的会话中运行查询时)会出现此错误消息

在此处输入图片说明

有时在 3 次尝试后错误解决(每次尝试使用相同的密码),有时需要一次尝试解决...

可能是什么原因?

谢谢 ...

oracle oracle-11g-r2 error-handling

5
推荐指数
1
解决办法
4934
查看次数

我的数据库的大小急剧增加。为什么?

我发现我的数据库,特别是USERS表空间的大小急剧增加。

我如何才能找到对位于此表空间中的对象执行的 DML 操作?

oracle database-size

5
推荐指数
1
解决办法
4001
查看次数

RMAN 列出恢复指定备份所需的归档日志

我在 2013 年 12 月 31 日备份了数据文件。它成功完成了数据文件备份,但存档日志备份失败。

现在,我想确定我应该备份哪些存档日志,以确保在恢复 31.12.2013 数据文件备份后我的数据库可以恢复。

oracle backup rman recovery

5
推荐指数
1
解决办法
5万
查看次数

如何在 ORACLE 中禁用实例恢复?

我想让我的数据库在打开时停止实例恢复,怎么做?

我想要它,因为它在尝试进行实例恢复时崩溃,我正在测试某些情况并想禁用它

有没有可能?

oracle instance recovery

3
推荐指数
1
解决办法
1808
查看次数

虚拟机上的 Oracle RAC

我在非常强大的服务器上安装了 Oracle RAC,可以说这些服务器有额外的内存、cpu 和存储:) ...所以我的服务器比它需要的要强大得多。

我的经理和其他管理员(没有足够的资源)需要将我的 RAC 移动到虚拟机,以便利用 RAC 服务器来满足他们的需求。

我需要你的建议...怎么办?我是否必须在虚拟机上移动我的 RAC?如果不是,我应该说什么论据来证明这个想法是愚蠢的?

非常感谢您,等待您的建议和巧妙的论据...

oracle rac

3
推荐指数
1
解决办法
1808
查看次数

2
推荐指数
1
解决办法
1万
查看次数

消除数据库碎片(导出、删除和重新导入表)

我有一个高度分散的数据文件。现在它的大小是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)

是否足以从该表空间导入所有内容以及与包含对象相关的任何内容(我的意思是授权、约束、触发器......)

是否有必要在数据库服务器上而不是在客户端上运行导出?

非常感谢,等你聪明的建议

oracle export import

2
推荐指数
1
解决办法
4475
查看次数

增量级别 1 备份没有增量级别 0?

我已经完成了以下步骤:

  1. 使用INCREMENTAL LEVEL 0备份数据库
  2. 删除INCREMENTAL LEVEL 0备份而不告诉控制文件。所以手动删除了。并没有进行交叉检查。

  3. 使用INCREMENTAL LEVEL 1备份数据库(不进行交叉检查)。多么令人惊讶,日志显示我成功完成了增量级别 1

请注意,我没有INCREMENTAL LEVEL 0备份,但控制文件不知道。我只有INCREMENTAL LEVEL 1

我试图用这个备份恢复数据库,但当然不能。它告诉我没有找到数据文件 1-5 的备份...

如果控制文件事先知道过期的备份,再增量级别1备份首先会做0级增量之后,该增量级别1

如何避免这种情况。我必须在备份脚本中使用 chrosscheck 吗?或者在 RMAN 中设置恢复窗口?

我有 Oracle 11g 数据库。备份由 Netbackup 服务器进行。因此,Netbackup 通过其保留来删除备份本身。RMAN 保留策略配置为 REDUNDANCY 2。

请给我建议。

oracle backup rman

1
推荐指数
1
解决办法
5600
查看次数