小编Pet*_*ier的帖子

pg_ctl 挂在 ssh 上

我正在设计一个过程来测试我的 postgresql 10.8 备份,方法是将它们恢复到一次性虚拟机中的随机时间点。不过,我一直无法完全自动化该过程。我在官方文档的第 8 步(第 25.3.4 节)被阻止

  1. 启动服务器。

执行pg_ctl startover ssh 时,命令会挂起,直到被杀死。如果我直接通过 ssh 连接到 VM 并执行pg_ctl start,则命令会按预期快速返回。

2012 年的这个帖子似乎描述了一个类似的场景。在我的情况,不过Postgres的过程即使当它是挂呼叫会话被杀死成功启动(可能是9.0.5和10.8之间虽然有所改善?)。

这个 github 问题似乎相关,但遗憾的是,通过用一种我不知道的语言进行了长时间的重写“解决了”,并最终得出结论,它是pg_ctl二进制文件中的一个错误。

大问题

如何自动执行第 8 步,以便我可以继续对备份媒体进行后续验证测试?

这是我需要破解的二进制文件中的一个突出错误吗?或者我错过了一个明智的实施?

restore virtualisation ssh postgresql-10

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

不使用系统时间的时态表

我们希望在 SQL Server 2016 中实现时态表。我们正在创建一个数据仓库并开发类型 2 缓慢变化的维度表。

对于 BeginDate,我们希望它取决于交易日期而不是当前的 getdate 时间。我们正在重新处理交易历史记录。下面的示例中,客户具有健身房或银行状态,并且根据交易日期从不活动状态变为活动状态或待处理状态。

我们目前有这个。

CREATE TABLE dbo.Department
(
    CustomerId int primary key,
    MembershipStatus int,
    TransactionDate datetime
 );
Run Code Online (Sandbox Code Playgroud)

我们想创建一个这样的表。

CREATE TABLE dbo.DepartmentHistory
(
    CustomerId int primary key,
    MembershipStatus int,
    TransactionDate datetime,
    BeginDatetime datetime,
    EndDatettime datetime
 );
Run Code Online (Sandbox Code Playgroud)

示例用法如下:

  1. 2018 年 3 月 5 日的第一笔客户交易为待处理 P
    +------------+--------+------------+---------+
    | 客户 ID | 状态 | 开始日期 | 结束日期 |
    +------------+--------+------------+---------+
    | 1 | 普 | 2018 年 3 月 5 日 | 空|
    +------------+--------+------------+---------+
  1. 第二笔交易是 2018 年 …

sql-server temporal-tables sql-server-2016

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

错误:MySQL 意外关闭

这是我的 XAMPP 控制面板的屏幕截图:

截屏

这是我的错误日志:

2019-11-27  7:54:14 0 [Note] InnoDB: Mutexes and rw_locks use Windows interlocked functions
2019-11-27  7:54:14 0 [Note] InnoDB: Uses event mutexes
2019-11-27  7:54:14 0 [Note] InnoDB: Compressed tables use zlib 1.2.11
2019-11-27  7:54:14 0 [Note] InnoDB: Number of pools: 1
2019-11-27  7:54:14 0 [Note] InnoDB: Using SSE2 crc32 instructions
2019-11-27  7:54:14 0 [Note] InnoDB: Initializing buffer pool, total size = 16M, instances = 1, chunk size = 16M
2019-11-27  7:54:14 0 [Note] InnoDB: Completed initialization of buffer …
Run Code Online (Sandbox Code Playgroud)

mysql shutdown

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

过滤索引依赖项在哪里列出?

给定一个表格...

create table dbo.FilterIDXTest ( 
    id int not null identity primary key clustered,
    _bigint bigint,
    _varchar10 varchar(10),
    _varchar20 varchar(20),
    _guid uniqueidentifier
);

go

create unique index uq_FilterIDXTest
    on dbo.FilterIDXTest ( _varchar10, _varchar20 ) 
    include ( _guid )
    where _bigint is not null 
        and id > 5;

go
Run Code Online (Sandbox Code Playgroud)

...在什么(如果有)目录视图(或其他格式良好的参考对象)中可以WHERE定位和严格识别子句中的列名称?

sys.indexes可以查看提醒我们的filter_definition([_bigint] IS NOT NULL AND [id]>(5))

sys.index_columns可以查看ONINCLUDE列,但仅列出原始CREATE INDEX命令中的 5 列中的 3 列。filter_predicate此处未找到这些列。

我必须假设filter_predicate在某个阶段对依赖项进行了严格检查,因为sp_rename …

metadata database-internals sql-server-2012 filtered-index

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

SSRS 可以用于更新或修改数据表吗?

我们都知道SSRS(SQL Server Reporting Services)是读取数据的。

但是,SSRS 是否可以用于更新行或插入行,是否应该使用?

我在这里看到资源,您可以在其中获取用户输入参数并更新行。只是询问是否建议/允许以这种方式使用该工具。微软是否反对这样做?

资源说明:

sql-server ssrs

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

SQL查询在使用where 1条件时返回相同的值

我创建了一个临时表并插入了如下所示的值。

create table #temp( val int );

insert into #temp values(333);
insert into #temp values(222);
insert into #temp values(111);
Run Code Online (Sandbox Code Playgroud)

在查询下面的 select 语句时,我得到了 333 作为答案。

Select * 
from #temp a 
Where 1 =(
    Select COUNT(VAL) 
    from #temp b 
    where a.val <= b.val
);
Run Code Online (Sandbox Code Playgroud)

结果:

val

333
Run Code Online (Sandbox Code Playgroud)

您能否帮助我了解 SQL Server 是如何使用此解决方案的。

sql-server query

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

Invoke-SqlCmd - 将强制转换为整数以防止注入

我很懒惰,宁愿参数化一次(以获得名称的 object_id)并Invoke-SqlCmd用于其余工作。

给定一系列用于处理任意服务器对象的函数,下面的测试是否足以确认 CmdletBinding 输入参数Int32防止通过用户提供的方式注入$object_id

function foo {
    [CmdletBinding()]Param(
        [Int32]$object_id 
    )
    $query = "select type_desc from sys.objects where object_id = $object_id;"
    Invoke-Sqlcmd -ServerInstance "localhost" -Database "tempdb" -Query $query
}

foo 3
foo "0 union all select name from sys.syslogins where sid = 0x01"
foo $null
foo ([math]::Pow(2,31)+1)
foo @(1,2)
Run Code Online (Sandbox Code Playgroud)

sql-server sql-injection powershell

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

在查询存储中查找特定查询

我在数据库上启用了查询存储。我有一个要跟踪的特定查询。我有很多关于 sp_BlitzCache 查询的详细信息(如 SQL 文本、SQL 句柄、SQL 哈希、计划缓存句柄/哈希等)。

我是否可以使用来自 sp_BlitzCache 的信息搜索查询存储以跟踪那里的查询?我想强制执行特定的执行计划,因为查询会遇到参数嗅探问题。

sql-server-2016 query-store

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

光标永不停止

我似乎在这个光标中犯了一个错误,我似乎无法弄清楚我做错了什么。

我已经确认select拉回了 2 行。但是当我将它传递到游标中选择出现字符串时,我可以提取我需要的确切值。这两行看起来像下面这样......

|DATAIDONTWANT|...|DATAIDONTWANT|<|1|DATAIDONTWANT|<|2|DATAIDONTWANT|...|
|DATAIDONTWANT|...|DATAIDONTWANT|<|1|DATAIDONTWANT|<|2|DATAIDONTWANT|...|
Run Code Online (Sandbox Code Playgroud)

光标似乎抓住了第一行并不断循环,永远不会进入下一行或结束程序。

declare
    @clobstringP varchar(max),
    @clobstring  varchar(max);

declare SevenCursor cursor for 
    select [value] as ClobP
    from string_split(@clobstring, '>')
    where value like '%<|2|%';

open SevenCursor;
fetch next from SevenCursor into @clobstringP;

while @@FETCH_STATUS = 0
begin
    insert into [database].dbo.tablestuff ( ValueP ) 
    select file387
    from ( 
        select 
             RowId387 = row_number() over( order by ( select 1 ) )
            ,file387  = [value]
        from string_split(@clobstringP, '|')
    ) a
    where a.RowId387 = 6;

end;

close SevenCursor;
deallocate …
Run Code Online (Sandbox Code Playgroud)

sql-server t-sql cursors

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

“TABLESAMPLE BERNOULLI(1)”不是很随机吗?

每当我需要从表中返回随机记录并且性能很重要时,而不是:

SELECT column FROM table ORDER BY random() LIMIT 1;
Run Code Online (Sandbox Code Playgroud)

我经常做:

SELECT column FROM table TABLESAMPLE BERNOULLI(1) LIMIT 1;
Run Code Online (Sandbox Code Playgroud)

速度快多了,但似乎不是很随机?看起来重复使用此方法时会返回很多相同的记录。是我一个人的问题,还是这种方法的随机性要低得多(因此用处不大)?

postgresql

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