我很想知道其他数据库有哪些类似于Oracle 闪回查询的特性。似乎任何支持MVCC 的数据库都可以具有该功能,但是哪个呢?SO对于 SQL Server有这个问题,但在这里似乎更合适。
我正在使用 Oracle 11.1 并想确定一个表中的两行是否由同一事务插入。
是否有一个简单的 sql 语句将行映射到事务 ID?该表是仅插入表。
我有哪些选择?一些 baisc 解决方案可以,我真的不想要一些额外的工具来分析日志文件。
谢谢
在 Oracle(也可能在其他地方)中,执行 ALTER TABLE 语句将对当前事务进行隐式提交。
我们有一个工具(用 Java 编写)应该通过以下方式修改模式:
编写的工具将向用户显示当前模式布局并允许他对其进行修改。(基本上是向某些表添加或删除自定义“属性”列)一旦他满意,他就可以应用他的更改。
请注意:基本架构布局以及您需要通过 ALTER TABLE 更改某些内容这一事实是由标准预定义的,我们无法更改,因为其他工具将不再起作用。
现在的问题是我们不能在单个事务中运行这些更改,因为 AFAIK,不可能在一个事务中执行多个 ALTER TABLE 语句。
如果在应用更改时出现问题,我们有哪些选项可以“回滚”到初始状态?
注意:这里有人提出了 RESTORE POINT + FLASHBACK——从这个(Java)工具调用它是个好主意吗?(在一些应该使用该工具的站点上,我们没有完全控制数据库实例。)
注意:Oracle 10g2 及以上
SERIALIZABLE事务和闪回查询之间有什么概念上的区别吗?
我想使用 RMAN 复制到同一台服务器 Oracle 数据库。我已经为 Oracle 数据库配置了闪回恢复区。我的数据库正在使用 SPFILE,如下所示。
SQL> SELECT DECODE(value, NULL, 'PFILE', 'SPFILE') "Init File Type"
FROM sys.v_$parameter WHERE name = 'spfile
SPFILE
Run Code Online (Sandbox Code Playgroud)
我的问题是:
如果我的源数据库使用 SPFILE 那么我是否从 SPFILE 创建了一个 PFILE?如果是这样,我该怎么做?
他们这是什么意思?
您只需要创建在 PFILE 或 SPFILE 中引用的目录。
需要创建哪些目录?
生产数据库:/u01/app/oracle/oradata/DB11G/。我的 SPFILE ( spfileDB11g.ora):
DB11G.__java_pool_size=4194304
DB11G.__large_pool_size=4194304
DB11G.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
DB11G.__pga_aggregate_target=155189248
DB11G.__sga_target=264241152
DB11G.__shared_io_pool_size=0
DB11G.__shared_pool_size=171966464
DB11G.__streams_pool_size=4194304
*.audit_file_dest='/u01/app/oracle/admin/DB11G/adump'
*.audit_trail='db'
*.compatible='11.2.0.0.0'
*.control_files='/u01/app/oracle/oradata/DB11G/control01.ctl','/u01/app/oracle/oradata/DB11G/control02.ctl'#Restore Controlfile
*.db_block_size=8192
*.db_domain='localdomain'
*.db_flashback_retention_target=720
*.db_name='DB11G'
*.db_recovery_file_dest='/u01/app/oracle/fra'
*.db_recovery_file_dest_size=3221225472
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=DB11GXDB)'
*.log_archive_dest_1='location=/u01/app/oracle/archive_logs'
*.log_archive_format='db11g%r_%t_%s.arc'
*.memory_target=417333248
*.open_cursors=3^AC^@^@C"^@^@^D^@^@^@^@^@^@^@^@^@^A^DU^F^@^@00
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.undo_tablespace='UNDOTBS1'
Run Code Online (Sandbox Code Playgroud)如果备份文件(自动备份和备份集)位于源主机上的不同路径(不是默认 FRA 路径),那么我如何使用重复命令?顺便说一句,只有闪回日志位于默认位置 …
只是一个关于闪回和 Oracle 中回收站的一般问题。我尝试在我拥有的演示 oracle 数据库上执行此操作,但似乎不想填充回收站;我想要一个快速的答案。
可以执行以下操作:
flashback table table_name to before drop;
alter index "BIN$U/9fvJKaASzgQKjAYAIWhw==$0" rename to sys_c1113050;
Run Code Online (Sandbox Code Playgroud)
那么你能不能这样做,恢复一个表:
RENAME TABLE BIN$U/9fvJKaASzgQKjAYAIWhw==$0 TO TABLE_NAME
Run Code Online (Sandbox Code Playgroud) I'm not finding a lot of examples online of how to use Oracle Flashback Query and I'm hoping somebody can clarify syntax. I'm trying to execute a query with a large number of tables in it, but the syntax seems to require me to specify a timestamp for every single table involved in the query.
For example, the following query gets me consistent data, but it requires me to specify a timestamp for each table:
select t1.Field1, t2.Field2
from table1 …Run Code Online (Sandbox Code Playgroud) 我正在使用 Oracle 11gR1。作为项目的一部分,我必须通过禁用一些可能导致数据库损坏的约束(触发器和检查约束)来执行多个更新语句。
如果数据库损坏,我必须完全重新导入它,这是一项耗时的额外任务。
我对 Oracle Flashback 特性知之甚少。Flashback 会帮助我避免这些不必要的导入吗?如果出现任何问题,我可以设置一些稳定点并切换回那里吗?
有人可以给我简要介绍一下这个功能吗?
如果它符合我的要求,我会努力学习。
flashback ×8
oracle ×7
transaction ×2
alter-table ×1
duplication ×1
rman ×1
schema ×1
syntax ×1