小编dez*_*zso的帖子

Postresql 复制 pg_basebackup 没有复制连接的 pg_hbaconf 条目

我已经更新了我pg_hba.conf的主人。

host    loko     replicator      10.0.2.15/32               trust
Run Code Online (Sandbox Code Playgroud)

我确实重新加载了配置。然后我用这个命令创建了一个用户

 CREATE USER replicator REPLICATION LOGIN ENCRYPTED PASSWORD 'repl'
Run Code Online (Sandbox Code Playgroud)

loko这是我的主人和replicator用户的数据库。

并在从站上运行此命令

pg_basebackup -h x.x.x.x -D "C:\Program Files\PostgreSQL\9.4\data" -U 
replicator -v -P --write-recovery-conf -X stream
Run Code Online (Sandbox Code Playgroud)

结果是

no pg_hba.conf entry for replication connection from host x.x.x.x. user replicator, SSL off
Run Code Online (Sandbox Code Playgroud)

非常感谢您的帮助。我是新手,所以我不知道这有什么问题。我只是跟着教程。

postgresql

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

XID 环绕指标尚不清楚

最近,我的一个数据库遇到了 XID 环绕问题。所以,我从模式开始single-user并运行vacuum。一切都很好。但是,当我检查datfrozenxid它时,它约为 15 亿,而我的txid_current约为 700 亿。我觉得,它有很大的不同,有些东西是错误的。

下面的查询,我曾经看到datfrozenxidpg_database

select datname, datfrozenxid, age(datfrozenxid) from pg_database order by datname;
Run Code Online (Sandbox Code Playgroud)

我已从http://www.rummandba.com/2014/02/understanding-xid-wrap-around.html阅读了 XID 环绕场景

根据上面链接中给出的示例,这对我来说很有意义。但是,我用我的统计数据计算过xidWrapLimit,,,,xidStopLimitxidWarnLimitxidVacLimit

xidWrapLimit = oldest_datfrozenxid + (MaxTransactionId >> 1);
xidStopLimit = xidWrapLimit - 1000000;
xidWarnLimit = xidStopLimit - 10000000;
(I haven't given all the values here since I am looking only for xidWarnLimit)
Run Code Online (Sandbox Code Playgroud)

所以,这xidWarnLimit是 37.47 亿,而我目前的金额txid_current超过 700 亿。奇怪的是,这个数字txid_current …

postgresql transaction vacuum

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

需要在 Oracle 上按日期计算记录和分组计数

我有一张像下面这样的表

   ID                created    sent    type
-----------------------------------------------------
0001463583000051783  31-JUL-12  1   270
0081289563000051788  01-AUG-12  1   270
0081289563000051792  01-AUG-12  1   270
0081289563000051791  01-AUG-12  1   270
0081289563000051806  01-AUG-12  1   270
0001421999000051824  06-AUG-12  1   270
0001421999000051826  06-AUG-12  1   270
0001464485000051828  06-AUG-12  1   270
0082162128000051862  09-AUG-12  2   278
0082162128000051861  09-AUG-12  2   278
0022409222082910259  09-AUG-12  3   278
Run Code Online (Sandbox Code Playgroud)

我想有以下输出

created     Count
---------------------
31-JUL-12   1
01-AUG-12   4
06-AUG-12   3
09-AUG-12   3
Run Code Online (Sandbox Code Playgroud)

在 Oracle 10g 上使用 SQL Developer 实现这一目标有多难?

我尝试了几个查询来生成这样一个表,最后它没有按日期对计数进行分组,当我们每天平均 5000-10000 笔交易时,它只是给我一个“1”的计数。我可能把它复杂化了。但我想要一些简单的东西,我可以在一个日期范围内每天提取交易量。

oracle-10g count oracle-sql-developer group-by

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

特殊甲骨文订单

我在 ORACLE 中有一个包含两列的表 (emp):

COMPANY   OFFICE    EMP
------------------------
9999      00001     emp1
9999      00001     emp2
9999      00002     emp3
9999      00002     emp4
0001      99999     emp5
0001      00001     emp6
0001      00002     emp7
0002      00001     emp8
0002      99999     emp9
0003      99999     emp10
0003      00001     emp11
0003      00002     emp12
Run Code Online (Sandbox Code Playgroud)

我想使用以下语句在 EMP 列中获取值:

SELECT 
   EMP 
FROM 
   emp
ORDER BY COMPANY /*(But 9999 is first)*/, OFFICE /*(But 99999 is first).*/
Run Code Online (Sandbox Code Playgroud)

我不知道怎么办。

oracle order-by

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

如何在不更改日期部分的情况下在 Datetimeoffset 列中设置 timeoffset

有什么办法来设置timeoffset一个中datetimeoffset柱直接,而不必使用SWITCHOFFSET改变的日期呢?

在下面的帖子中,我们可以看到SWITCHOFFSET将相应地更改日期以及设置时间偏移(这不是我们想要的):http : //blog.sqlauthority.com/2010/07/15/sql-server-datetime-功能开关偏移示例/

例如,我的日期值为“2013-02-10”,并希望将其记录在不同的时区,而不会丢失“2013-02-10”。只需将 timeoffset 设置为需要的值,例如:+11、-4、-6 等。

是否可以?

谢谢。

sql-server t-sql sql-server-2008-r2

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

将表数组作为参数传递给 postgresql 中的 upsert 函数

我有一个运行良好的 UPSERT 函数,但我批量更新和插入记录,可以修改此函数,以便我将所有记录作为数组传递给此函数,然后它将作为一个事务一次性插入/更新所有记录? 如果记录号 x 失败,它应该回滚撤消在 x 之前插入/更新的任何记录?这是我的 upsert 函数:

CREATE OR REPLACE FUNCTION save_weights(rec tbl_weightment)
  RETURNS text AS
$BODY$
DECLARE 
myoutput text :='Nothing has occured';
BEGIN

    update tbl_weightment set 
    vname=rec.vname,
    iquality=rec.iquality,
    vhooks=rec.vhooks,
    tstamp=rec.tstamp
    vtare=rec.vtare,
    vgross=rec.vgross     
    WHERE id=rec.id;

    IF FOUND THEN
        myoutput:= 'Record successfully updated';
        RETURN myoutput;
    END IF;

    BEGIN
        INSERT INTO tbl_weightment SELECT(rec).*;
        myoutput:= 'Record successfully added';           
    END;
 RETURN myoutput;

    END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
Run Code Online (Sandbox Code Playgroud)

这个功能可以修改成这样save_weights(rec tbl_weightment[])吗??任何帮助将不胜感激

postgresql functions postgresql-9.1 array upsert

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

需要帮助设计包含要存储的 ID 列表的表

我需要创建一个表来保存保存的电子邮件以供将来发送(收件人、发件人、消息、预定发送日期等)。

这里的问题是,直到发送当天我才知道谁应该收到电子邮件。

我的意思是,创建电子邮件是为了发送给某些选定的组织,但该组织的“成员”将不断加入和离开,因此,如果有人创建下个月要发送的电子邮件,则要发送的成员电子邮件地址列表到那时就会有所不同。

所以,我需要在表中保存的是电子邮件应该发送到的组织列表,以便我在实际发送电子邮件时可以查询最新的成员电子邮件地址列表。希望这是有道理的。

无论如何,我的问题是:什么被认为是“正确的设计”?

我最初的想法是只保存以逗号分隔的组织 ID 列表。

我知道我永远不必搜索列表中的组织,所以我不在乎它是否不可查询,而且我知道我可以将其标准化为每个接收组织一行,但这似乎是不必要的重复无目的的数据,特别是因为我只查询发件人而不是收件人。

那么,ID 列表只是一件可怕的、没有好处的、只有新手才会想到的坏事吗?或者说在某些情况下可以使用吗?或者还有其他我不知道的方法可以做到这一点?我确信我不是唯一一个遇到过这种情况的人!

database-design

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

psql:id SERIAL PRIMARY KEY 不是以 1 开头?

这是我不明白的地方,有人可以解释一下吗?

我创建一个表

CREATE TABLE cali (id SERIAL PRIMARY KEY,
    ALK_from char,
    ALK_to char,
    AND_from char,
    AND_to char);
Run Code Online (Sandbox Code Playgroud)

然后我只是尝试像这样从 csv 文件中插入一些数据

\COPY cali FROM '/home/.../data/output/id_cali.csv' (FORMAT CSV);
Run Code Online (Sandbox Code Playgroud)

这给了我这个错误:

ERROR:  value "4372840000" is out of range for type integer
CONTEXT:  COPY cali, line 1, column id: "4372840000"
Run Code Online (Sandbox Code Playgroud)

我知道 4372840000 会导致整数溢出。这就是为什么我首先尝试将值作为字符插入。

但我的理解是,这id SERIAL PRIMARY KEY是某种自动增量,为什么值 4372840000 用于列id

该文件看起来像这样

4372840012,4372840013,13,14,
4372840014,4372840014,15,15,
Run Code Online (Sandbox Code Playgroud)

postgresql bulkcopy serialization

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

Postgres 自动插入带时区的时间戳(印度)

有没有办法在插入查询时自动插入带区域的时间戳?(就像 id 自动递增,因为我不想在 sql 中传递参数作为时间,如果我们使用 zone,则每个地方都相同)。pg 9.1 版。以及如何使用所需的时间格式?

postgresql timestamp postgresql-9.1 timezone

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

在sql中将多列转换为2列并将单行转换为多行

使用Select top 1语句我必须从没有任何唯一键的 8 列表中检索数据。现在我想将此表转换为两列:原始列名到第一列,其各自的值到第二列。

像这样的原始表:

Column1 | Column2 | Column3 | Column4 
55      | 108     | 555     | 85
Run Code Online (Sandbox Code Playgroud)

和预期的结果:

ColumnName | Value
Column1    | 55
Column2    | 108
Column3    | 555
Column4    | 85
Run Code Online (Sandbox Code Playgroud)

sql-server sql-server-2008-r2

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