Обсуждение: Stream Replication archive command Access is denied question
I setup my PostgreSQL 9.0.1 Stream Replication.
Here is my config of master database address 192.168.5.4
------------------------pg_hba.conf
# IPv4 local connections:
host all all 0.0.0.0/0 trust
# IPv6 local connections:
host all all ::1/128 trust
host replication postgres 0.0.0.0/0 trust
------------------------postgresql.conf
wal_level = hot_standby
archive_mode = on
archive_command = 'copy %p D:/3SDATABACKUP/PITR/WAL/%f' # command to use to archive a logfile segment
max_wal_senders = 5
wal_keep_segments = 32
Here is my config of standby database
------------------------postgresql.conf
hot_standby = on
------------------------recovery.conf
standby_mode = 'on'
primary_conninfo = 'host=192.168.5.4 port=5432 user=postgres'
trigger_file = 'standby.stop'
restore_command = 'copy \\192.168.5.4\pitr\wal\%f %p'
Stream Replication work well, every thing I update on master database will exist on standby database.
But on master database log have error
2011-01-01 10:14:19 ICT LOG: archive command failed with exit code 1
2011-01-01 10:14:19 ICT DETAIL: The failed archive command was: copy "pg_xlog\000000010000000300000056" "D:\3SDATABACKUP\PITR\WAL\000000010000000300000056"
Access is denied.
2011-01-01 10:14:20 ICT LOG: archive command failed with exit code 1
2011-01-01 10:14:20 ICT DETAIL: The failed archive command was: copy "pg_xlog\000000010000000300000056" "D:\3SDATABACKUP\PITR\WAL\000000010000000300000056"
Access is denied.
2011-01-01 10:14:21 ICT LOG: archive command failed with exit code 1
2011-01-01 10:14:21 ICT DETAIL: The failed archive command was: copy "pg_xlog\000000010000000300000056" "D:\3SDATABACKUP\PITR\WAL\000000010000000300000056"
2011-01-01 10:14:21 ICT WARNING: transaction log file "000000010000000300000056" could not be archived: too many failures
On computer of master database (192.168.5.4), PITR directory only have
D:/3SDATABACKUP/PITR/WAL/000000010000000300000053
D:/3SDATABACKUP/PITR/WAL/000000010000000300000053.00000020.backup
D:/3SDATABACKUP/PITR/WAL/000000010000000300000054
D:/3SDATABACKUP/PITR/WAL/000000010000000300000055
D:/3SDATABACKUP/PITR/WAL/000000010000000300000055.00000020.backup
Please Help me how to fix error on master database and will restore_command on standby database work?
Thanks in advance.
Tuan Hoang ANh
Here is my config of master database address 192.168.5.4
------------------------pg_hba.conf
# IPv4 local connections:
host all all 0.0.0.0/0 trust
# IPv6 local connections:
host all all ::1/128 trust
host replication postgres 0.0.0.0/0 trust
------------------------postgresql.conf
wal_level = hot_standby
archive_mode = on
archive_command = 'copy %p D:/3SDATABACKUP/PITR/WAL/%f' # command to use to archive a logfile segment
max_wal_senders = 5
wal_keep_segments = 32
Here is my config of standby database
------------------------postgresql.conf
hot_standby = on
------------------------recovery.conf
standby_mode = 'on'
primary_conninfo = 'host=192.168.5.4 port=5432 user=postgres'
trigger_file = 'standby.stop'
restore_command = 'copy \\192.168.5.4\pitr\wal\%f %p'
Stream Replication work well, every thing I update on master database will exist on standby database.
But on master database log have error
2011-01-01 10:14:19 ICT LOG: archive command failed with exit code 1
2011-01-01 10:14:19 ICT DETAIL: The failed archive command was: copy "pg_xlog\000000010000000300000056" "D:\3SDATABACKUP\PITR\WAL\000000010000000300000056"
Access is denied.
2011-01-01 10:14:20 ICT LOG: archive command failed with exit code 1
2011-01-01 10:14:20 ICT DETAIL: The failed archive command was: copy "pg_xlog\000000010000000300000056" "D:\3SDATABACKUP\PITR\WAL\000000010000000300000056"
Access is denied.
2011-01-01 10:14:21 ICT LOG: archive command failed with exit code 1
2011-01-01 10:14:21 ICT DETAIL: The failed archive command was: copy "pg_xlog\000000010000000300000056" "D:\3SDATABACKUP\PITR\WAL\000000010000000300000056"
2011-01-01 10:14:21 ICT WARNING: transaction log file "000000010000000300000056" could not be archived: too many failures
On computer of master database (192.168.5.4), PITR directory only have
D:/3SDATABACKUP/PITR/WAL/000000010000000300000053
D:/3SDATABACKUP/PITR/WAL/000000010000000300000053.00000020.backup
D:/3SDATABACKUP/PITR/WAL/000000010000000300000054
D:/3SDATABACKUP/PITR/WAL/000000010000000300000055
D:/3SDATABACKUP/PITR/WAL/000000010000000300000055.00000020.backup
Please Help me how to fix error on master database and will restore_command on standby database work?
Thanks in advance.
Tuan Hoang ANh
On 01/01/11 1:23 AM, tuanhoanganh wrote: > archive_command = 'copy %p D:/3SDATABACKUP/PITR/WAL/%f' # > command to use to archive a logfile segment > ... > 2011-01-01 10:14:19 ICT LOG: archive command failed with exit code 1 > 2011-01-01 10:14:19 ICT DETAIL: The failed archive command was: copy > "pg_xlog\000000010000000300000056" > "D:\3SDATABACKUP\PITR\WAL\000000010000000300000056" > Access is denied. Is by any chance D: a network mapped drive in Windows ? drive mappings are by user session. the postgres service is running in a different user session than your interactive desktop session, so your desktop shared drives mean nothing to it. if you're copying across the network, use the UNC name, like archive_command = 'copy %p //servername/sharename/3SDATABACKUP/PITR/WAL/%f' # command to use to archive a logfile segment and make sure that on the server, there is a postgres user with the same password as the service account. or, if you are in an active directory environment, use a domain account to run the service.
Is by any chance D: a network mapped drive in Windows ?
No, D is a driver on master computer. I can copy 000000010000000300000056 file from postgresql data\pg_xlog to D:/3SDATABACKUP/PITR
No, D is a driver on master computer. I can copy 000000010000000300000056 file from postgresql data\pg_xlog to D:/3SDATABACKUP/PITR
On Sat, Jan 1, 2011 at 4:30 PM, John R Pierce <pierce@hogranch.com> wrote:
On 01/01/11 1:23 AM, tuanhoanganh wrote:archive_command = 'copy %p D:/3SDATABACKUP/PITR/WAL/%f' # command to use to archive a logfile segment...
2011-01-01 10:14:19 ICT LOG: archive command failed with exit code 1
2011-01-01 10:14:19 ICT DETAIL: The failed archive command was: copy "pg_xlog\000000010000000300000056" "D:\3SDATABACKUP\PITR\WAL\000000010000000300000056"
Access is denied.
Is by any chance D: a network mapped drive in Windows ?
drive mappings are by user session. the postgres service is running in a different user session than your interactive desktop session, so your desktop shared drives mean nothing to it.
if you're copying across the network, use the UNC name, like
archive_command = 'copy %p //servername/sharename/3SDATABACKUP/PITR/WAL/%f' # command to use to archive a logfile segment
and make sure that on the server, there is a postgres user with the same password as the service account. or, if you are in an active directory environment, use a domain account to run the service.
--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general
On 01/01/11 1:50 AM, tuanhoanganh wrote: > Is by any chance D: a network mapped drive in Windows ? > No, D is a driver on master computer. I can copy > 000000010000000300000056 file from postgresql data\pg_xlog to > D:/3SDATABACKUP/PITR does the postgres service account have write access to that directory ? check the access control lists on the directory and parents. note that postgres might NOT be a member of 'Users' or other generic groups
Thanks in advance.
When I share D:/3SDATABACKUP/PITR on master computer, I set account postgres only read when access \\192.168.5.4\pitr but directory sercurity of D:/3SDATABACKUP/PITR user postgers has been changed to read only. I had changed directory sercurity of D:/3SDATABACKUP/PITR user postgers to full access. Everything work fine.
Thanks you very much. Sorry for my English.
Tuan Hoang ANh.
When I share D:/3SDATABACKUP/PITR on master computer, I set account postgres only read when access \\192.168.5.4\pitr but directory sercurity of D:/3SDATABACKUP/PITR user postgers has been changed to read only. I had changed directory sercurity of D:/3SDATABACKUP/PITR user postgers to full access. Everything work fine.
Thanks you very much. Sorry for my English.
Tuan Hoang ANh.
On Sat, Jan 1, 2011 at 5:18 PM, John R Pierce <pierce@hogranch.com> wrote:
On 01/01/11 1:50 AM, tuanhoanganh wrote:does the postgres service account have write access to that directory ?Is by any chance D: a network mapped drive in Windows ?
No, D is a driver on master computer. I can copy 000000010000000300000056 file from postgresql data\pg_xlog to D:/3SDATABACKUP/PITR
check the access control lists on the directory and parents. note that postgres might NOT be a member of 'Users' or other generic groups
--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general