小编Phi*_*lᵀᴹ的帖子

用于教育的虚拟 Oracle 服务器?

我目前是一名大学生,正在介绍 Oracle 10G。我似乎无法一直上课,我很好奇是否有任何虚拟 Oracle 服务器或类似的东西可以让我拥有一个(简而言之)虚拟数据库,我可以通过SQL* Plus 并输入我正在学习的命令?我正在运行 Windows 7 家庭高级版。

非常感谢!

oracle

4
推荐指数
2
解决办法
173
查看次数

如果 <table> 具有虚拟列,是否(以及如何)在 Oracle 中“插入到 <table> 值 <rowtype-variable>”

这是一张桌子

create table tq84_virtual_test_without (
  col_1 number,
  col_2 number,
  col_3 number,
  col_4 number,
  col_5 number
);
Run Code Online (Sandbox Code Playgroud)

规则col_5的值是其他四列的总和。

所以表格被相应地填充:

insert into tq84_virtual_test_without values( 1, 2, 3, 4, 10);
insert into tq84_virtual_test_without values( 3, 8, 7, 5, 23);

commit;
Run Code Online (Sandbox Code Playgroud)

现在,假设需要复制一行并更改列的值。这当然可以非常优雅地完成(恕我直言,也就是说)使用rowtype-variable,就像这样

declare
  r tq84_virtual_test_without%rowtype;
begin

  select * into r from tq84_virtual_test_without where col_2 = 8;

  r.col_4 := r.col_4 - 2;
  r.col_5 := r.col_5 - 2;

  insert into tq84_virtual_test_without values r;

end;
/
Run Code Online (Sandbox Code Playgroud)

这很优雅,因为它不会用insert into …

oracle oracle-11g-r2 insert virtual-columns

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

ORA-12549 的狡猾原因?

我正在处理一个相当庞大的 ETL 处理,它不断向我抛出ORA-12549错误。

一直在寻找数据库中的问题,至今一无所获。DBA 说数据库“很好” - 有资源,没有达到要打开或处理的最大文件数,并且在所有表空间上都有空间。

我开始怀疑这个错误是否可能是由客户端抛出的。但是它是一个使用JDBC连接的Java应用程序,堆大小为16GB,根据GC日志也几乎没有填满。

这个过程本身相当简单:在 Oracle 中进行大量选择,对数据应用一些逻辑,然后定期提交到另一个表。我使用了从 500 万行到仅仅 10 万行的提交(分为 100 批 1k 行)。错误总是在同一点上。

有人能给我一些关于正在发生的事情的见解吗?我应该去哪里寻找线索?

客户端,ulimit 是 1024(在 Oracle 的服务器上是 65k),这有关系吗?

oracle etl oracle-11g-r2

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

查找通过 IP 连接的会话

无论如何要查看哪些地址连接正在连接?

更多信息:

我一再发现人们使用 IP 而不是 DNS 名称设置连接字符串,并且在 SQL2012 及更高版本中,通过服务器名称连接到实例而不包括实例名称(即它在端口 1433 上的位置)。我想对此进行审核,以便在使用不合规的连接字符串进行连接后的数小时内,我可以收到警报并快速找到罪魁祸首并解决问题;与等待基础设施的变化(例如,我们移动到非标准端口,或切换到不同 IP 上的不同主机同时保持相同的底层 DNS 条目)相反,由于不合规的配置而导致更严重的意外.

sql-server sql-server-2008-r2

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

sp_BlitzIndex v 4.5 (2016-11-15) 因整理错误而失败

发布此信息以防其他人遇到此问题...(修复如下)更新到 SQL 2016 SP1 后,我还更新到了 sp_Blitz procs 的最新版本。不幸的是,sp_BlitzIndex 现在在“收集计算列信息”中爆炸了。线 1586 附近的部分。

这是错误文本:

Gathering Computed Column Info.
Failure populating temp tables.
Msg 2787, Level 16, State 1, Procedure sp_BlitzIndex, Line 1620 [Batch Start Line 4]

Invalid format specification: 
    '%.%' THEN 1 ELSE 0 END AS is_function,
    'ALTER TABLE ' + QUOTENAME(s.name) + '.' + QUOTENAME(t.name) + 
    ' ADD ' + QUOTENAME(c.name) + ' AS ' + cc.definition  + 
    CASE WHEN is_persisted = 1 THEN ' PERSISTED' ELSE '' END + ';' …
Run Code Online (Sandbox Code Playgroud)

sql-server-2016 sp-blitzindex

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

Windows 身份验证的间歇性登录问题

我有一个奇怪的。在过去的几周里,我通过 Windows 身份验证偶尔遇到登录错误,网络团队和我还没有找到解决方案。

我在运行 Windows Server 2012 R2 的物理服务器上运行 SQL 2016。

虽然这种情况一直在发生,但我一直告诉用户等待五分钟,然后再次尝试登录。如果用户等待五分钟,他们将(大多数情况下)能够登录。我曾遇到过 15 分钟无法登录的情况,然后我的下一次登录尝试成功了。

从 SQL 错误日志中,我看到如下条目:

登录失败。登录名来自不受信任的域,不能与 Windows 身份验证一起使用。[客户端:XX.XX.XXX.XXX] 错误:18452,严重性:14,状态:1。

SSPI 握手失败,错误代码为 0x80090311,在建立具有集成安全性的连接时状态 14;连接已关闭。原因:AcceptSecurityContext 失败。Windows 错误代码指示失败的原因。无法联系授权进行身份验证。[客户:XX.XX.XXX.XXX] 错误:17806,严重性:20,状态:14。

从服务器,我看到这个:

一个帐户登录失败。

主题:安全 ID:NULL SID 帐户名称:- 帐户域:- 登录 ID:0x0

登录类型:3

登录失败的帐户:安全 ID:NULL SID 帐户名称:A 用户帐户域:A 域

失败信息:失败原因:登录期间发生错误。状态:0xC000005E 子状态:0x0

进程信息:调用方进程 ID:0x0 调用方进程名称:-

网络信息: 工作站名称: A 计算机源网络地址: - 源端口: -

详细的身份验证信息:登录过程:NtLmSsp 身份验证包:NTLM 传输服务:- 包名称(仅限 NTLM):- 密钥长度:0

任何想法可能导致(有时)这样的登录失败?

security sql-server sql-server-2016

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

一对至多一个关系还是多个空列?

我有一个包含许多属性的表,可以将这些属性分组为逻辑组,因此将这些属性放在单独的表中的想法似乎很有吸引力。逻辑组并不代表实体本身。设置组中的一个属性后,也必须设置该组中的大多数其余属性(但不是全部)。组的字段类型一般为VARCHAR(15-20). 也没有BLOBorTEXT字段。

逻辑组不代表子类型,因为它们并不相互排斥。

该实体对阅读的要求多于对写作的要求。因此,一张大桌子看起来很合适。此外,这样就可以避免查询中的连接。我不喜欢这种方法的部分是大量可为空的字段。

寻求专家建议。

database-design

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

在哪里可以获得 SQL Server 2012 的 master.dacpac 文件?

我将 Visual Studio 2012 Professional 与 SQL Server Data Tools 与 SQL Server 2012 标准版数据库实例一起使用。
我无法在我的开发机器或托管 SQL Server 实例的服务器上找到 master.dacpac 文件。

我怎样才能获得这个文件,这样我就可以摆脱如下警告:

SQL71502: Procedure: <ProcedureName> has an unresolved reference to object [sys].[objects]  
Run Code Online (Sandbox Code Playgroud)

sql-server-2012 ssdt visual-studio-2012 system-databases

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

暂时停止日志传送

如何暂时停止日志传送 --> 执行任务 --> 启动日志传送?是否可以 ?

sql-server sql-server-2008-r2 log-shipping

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

为什么并行 pg_restore 命令可能需要更长的时间才能完成其非并行等效命令?

我使用 pg_restore 从目录备份恢复 50 GB 数据库,使用以下命令,该命令使用了 4 个作业:

pg_restore -d analytics -U postgres  -j 4 -v "D:\Program Files\PostgreSQL\10\backups\Analytics_08_2018__7_53_21.36.compressed"
Run Code Online (Sandbox Code Playgroud)

我从命令行运行了这个。恢复时间比非并行恢复长约 2 小时。它似乎在恢复作业结束时继续创建索引

pg_restore: launching item 2817 INDEX nidx_bigrams_inc_hits
pg_restore: creating INDEX "public.nidx_bigrams_inc_hits"
pg_restore: finished item 2965 TABLE DATA trigrams
pg_restore: launching item 2822 INDEX nidx_trigrams_inc_hits
pg_restore: creating INDEX "public.nidx_trigrams_inc_hits"
pg_restore: finished item 2823 INDEX nidx_unigrams_inc_hits
pg_restore: finished item 2822 INDEX nidx_trigrams_inc_hits
pg_restore: finished item 2817 INDEX nidx_bigrams_inc_hits
pg_restore: finished main parallel loop
Run Code Online (Sandbox Code Playgroud)

每个 pg_restore“创建索引”作业在 pg_stat_activity 中的状态均为“空闲”。另一个 pg_restore 作业在提交时“空闲”。

我希望并行恢复能够比默认恢复快得多,而且它似乎一直在这样做,直到大约 …

postgresql parallelism pg-restore postgresql-10

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