我有 2 个数据库: postgres (新);tnpm(旧)。目前,我需要将数据从[tnpm]复制到[postgres]。我可以使用以下方法复制它:
INSERT INTO ip_cpu_mn(datetime, resource_name, cpu_utilization)
SELECT cpu_mn.datetime,resource_name, cpu_utilization
FROM dblink('host=10.0.32.175 user=postgres password=postgres dbname=TNPM_EXT',
'SELECT datetime, resource_name, cpu_utilization
FROM ext_ip.cpu_mn WHERE datetime =(SELECT MAX (datetime) - interval ''10 minutes'' as maxdate FROM ext_ip.cpu_mn)')
AS cpu_mn( datetime timestamp without time zone,
resource_name character varying(150),
cpu_utilization numeric(6,2))
Run Code Online (Sandbox Code Playgroud)
奇怪的是,当我开始在这些数据库之间进行验证时,新数据库中的数据不一致,似乎丢失了。复制过程使用 crontab 运行 5 分钟。我怎样才能避免这种情况?
我使用下面的参考来更新表 cust_eq_memory_dy 中的 2 列(客户名称、服务)。
表 msrouterlistfinal2 处的环回将匹配 cust_eq_memory_dy 处的地址。
当我在“FROM”处或附近遇到语法错误时,有人可以帮助我吗?
UPDATE cust_eq_memory_dy B
SET customername = A.customername
WHERE B.ipaddress = A.loopbackip
FROM (
SELECT *
FROM DBLINK ( 'host= 10.X.80.160 user=123 password=123 dbname=postgres',
'select customername, serviceid, loopbackip FROM msrouterlistfinal2 ')
as temp (
customername character varying (100),
serviceid character varying (50),
loopbackip character varying (30) )
)A
Run Code Online (Sandbox Code Playgroud)