我正试图减少在我们拥有的管道上安装 Oracle 的时间。目前,它是dbca
在静默模式下使用数据库模板文件安装的。大多数时间似乎是在创建数据字典等。我有一个理论,即克隆一个完全普通的安装并在之后使用数据泵添加应用程序特定数据会更快。我只是想看看是否值得为此付出努力 - 有人试过吗?
仅供参考 - 它是使用 ASM 进行存储的 Oracle 12c EE。
我正试图减少在我们拥有的管道上安装 Oracle 的时间。目前,它是dbca
在静默模式下使用数据库模板文件安装的。大多数时间似乎是在创建数据字典等。我有一个理论,即克隆一个完全普通的安装并在之后使用数据泵添加应用程序特定数据会更快。我只是想看看是否值得为此付出努力 - 有人试过吗?
仅供参考 - 它是使用 ASM 进行存储的 Oracle 12c EE。
似乎是一个简单的问题,但我发现了相互矛盾的信息。任何人都可以启发我(理想情况下有一个坚如磐石的来源)?是吗:
我的直觉说事务日志文件。
在我的 SQL Server 2012 x64 Std 实例上,由于昨天事务日志已填满,我有一个大事务失败,它无法回滚,SQL Server 已重新启动特定数据库以执行恢复。
数据库大约 750GB,tlog 达到 170GB(非常大的 ETL 作业正在运行)。该作业只运行了几个小时,但到目前为止恢复已经花费了超过 24 小时(完成 70%,在第 3 阶段,共 3 阶段)。
什么我不明白为什么要花这么长时间?磁盘上似乎没有任何压力,sys.dm_exec_requests
显示它正在等待PAGEIOLATCH_EX/SH
,这是我所期望的。我本可以在这段时间内恢复整个数据库......
如果有人能提供任何启示,将不胜感激。
编辑:根据要求,获取错误日志的输出:
Recovery of database 'MyDB' (6) is 77% complete (approximately 28100 seconds remain). Phase 3 of 3. This is an informational message only. No user action is required.
Recovery of database 'MyDB' (6) is 77% complete (approximately 28095 seconds remain). Phase 3 of 3. This is an informational message only. No user action is required.
Recovery of database 'MyDB' (6) is 77% complete (approximately 28099 seconds remain). Phase 3 of 3. This is an informational message only. No user action is required.
Recovery of database 'MyDB' (6) is 77% complete (approximately 28102 seconds remain). Phase 3 of 3. This is an informational message only. No user action is required.
Recovery of database 'MyDB' (6) is 77% complete (approximately 28097 seconds remain). Phase 3 of 3. This is an informational message only. No user action is required.
此外,sys.dm_exec_requests
您所追求的信息:
session_id command status percent_complete
35 DB STARTUP background 86.06061
启用/授予 IFI 和“执行卷维护任务”。
我有一个损坏的表,1 个大约 160 万行的可疑页面变成了一个 290 万行的表。我想尝试这个:
ALTER DATABASE [CorruptDB] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
DBCC CHECKDB (CorruptDB, REPAIR_ALLOW_DATA_LOSS) WITH TABLOCK;
..但我想知道如何确定数据丢失前后的行数。如果我做:
UPDATE STATISTICS [corrupt_table] WITH FULLSCAN;
它失败了,因为当然有一个撕裂的页面中途向下。这同样适用于:
SELECT COUNT(*) FROM [corrupt_table];
我想我的问题是,非全扫描UPDATE STATISTICS
肯定会正确更新行数吗?
我知道这只是一页破损的页面,应该相当于此表中的大约 100 行,我只是想确定一下。
注意:这不是在生产系统上,它只是在我的笔记本电脑 (2012 Std x64) 上本地,实际问题已经解决(通过恢复)——我已经拿了一份数据库来玩。
我有一个没有索引的 HEAP 表(在 SQL Server 2012 Std 上)。我需要在列上创建聚集索引INT
。大约有 12 亿行,该int
列可以为空且不唯一。我正在努力弄清楚这将在文件组中占用多少空间。有人可以建议吗?
编辑:我会顺便在 tempdb 中排序
这似乎是一个基本问题,但我找不到任何答案 - 我需要能够从链接服务器获取服务器名称/实例等。我尝试了几件事:
select <linked server>.@@SERVERNAME;
select <linked server>.SERVERPROPERTY('ServerName');
……但没有喜悦。有任何想法吗?
这是SQL 2008 R2
& 2014
(2008R2
是链接服务器)
编辑:错误是:
消息 102,级别 15,状态 1,第 2 行“@@SERVERNAME”附近的语法不正确。
好的,在我开始之前,我知道你不应该这样做......
我继承了一个 SQL Server 实例 (2008 R2 SP2 x64),它有一个带有非常大事务日志的数据库(完整模式,没有 tlog 备份),并且日志位于压缩文件夹中(不要问)。我需要解决这个问题,并且认为我最好的方法是分离数据库(没有理由不应该检查点)并重新附加 mdf 忽略 ldf,以便在适当的文件夹结构中创建一个新的。然后我可以实施一个像样的备份策略。
我真的不想备份这个 tlog,因为它很大,而且在一个压缩文件夹中,所以谁知道它到底有多大。另一种选择是简单地截断 tlog 但这已被弃用......也许将 tlog 备份到 /dev/null (无论 windows equiv 是什么)?
显然我会在做任何事情之前做一个完整的备份——无论如何这些每天都会发生。
我想我要问的是,这里最安全的方法是什么?
编辑:实际上,我只是想 - 如果我每天进行完整备份,那么 tlog 是否会在 BU 之后立即无用?
我计划将 3 个 Oracle 实例(所有相同的 Oracle Home)从 11.2.0.3 升级到 11.2.0.4。我正在浏览安装程序,然后遇到有关升级或仅安装数据库软件的问题。我最初只想升级一个实例,让其他实例在 11.2.0.3 上并行运行。我的问题是,有什么区别:
Install database software only
Upgrade an existing database
我真的不想碰那里的其他 SID。
如果我有这样的 T-SQL 代码:
While @done<1
Begin
WAITFOR DELAY '00:00:30';
Set @done=<some select statement>
End
这可能会增加等待时间CXPACKET
吗?大概其他处理器会在WAITFOR
运行时等待?